1. 首页 > 科技

keil单片机编写的延时函数,第二个for循环没起作用? 延时for循环条件空语句

keil单片机编写的延时函数,第二个for循环没起作用?延时for循环条件空语句

keil3,51单片机,关于for循环延时的问题

在C51中,uint是2个字节长,也就是16位,uchar是1个字节长,就是8位。

其实在这段C程序编译后去看汇编程序你会发现,用1个字节保存j,只需要使用DJNZ命令就可以了,而用2个字节的话,对低字节减1后,还需要判断是否有借位,如果有借位还需要对高字节进行判断。这些动作都需要一定量的汇编程序来完成,而程序运行的时间完全取决于程序量的多少,所以会有明显的不一样。

延时代码放在循环里为什么起不到作用

因为你的循环条件为while(KEY),当你KEY=0后,循环条件已经不满足了,所以感觉不到你的延时。

单片机for循环延时语句的问题

虽然delay定义的入口参数是int型的

但是内部延时函数的i是char型。unsigned char的范围是0-255

所以,改成unsigned int i,j;

就行了

单片机延时函数不起作用问题?

你这不起作用的原因太多了,你不发代码,不好回答啊

不过你先确定你的延时数字是不是足够大,不然一般有逻辑错误才会不起用