STC89C52单片机,时钟电路用的晶振为11.0592M,关于延时程序的几个问题

1.第一段延时程序的 i<123 的123是怎么得到的2.第二段延时程序 i≥12,最小延时12us怎么得到 为什么要写i=i/10?什么作用?3.第三段程序里的900又是怎么来的?

这个123是经验值,是仿真或实际测试得出的数据,STC89C52是6T工作模式,比普通的51快一些,普通51的话这个值一般是110.
第二个延时,while(--i)类似于汇编的djnz Rn ,dest,这条指令为2个执行周期,因为i是整型数,所以实际上不止这一条指令,完成一个延时循环需要四五个机器周期,每个周期时间约为0.5us,所以这里有i>12.
第三个延时,900也是经验数据,调用一个delay_nus延时约为1us,实际仿真或测试可能为1个多微妙,所以这里给出900的参数。延时约1毫秒。
温馨提示:答案为网友推荐,仅供参考
相似回答