51单片机的准确延时程序剖析(C语言和汇编语言程序)
一、C51程序
在晶振为11.0592的情况下,如下程序能完成ms级的比较准确的延时:
1 void Delayms(unsigned int n)
2 {
3 unsigned int i,j;
4 for(j=n;j>0;j–)
5 for(i=112;i>0;i–);
6 }
用keil能够看出这个延时的时刻,咱们先延时1ms,即Delayms(1)。
进入Delayms前,sec=0.00042209s
延时后,sec=0.00142253s
能够知道Delayms(1)实践延时0.00142253s—0.00042209s=0.00100044s≈1ms
相同假如想延时15ms的话,用Delayms(15),实践延时0.01480903s≈15ms,延时仍是挺准确的。