51单片机的精确延时程序一 (2011-11-30 14:01:00)te style=”font-style: normal; line-height: 23px; padding: 0px 20px 0px 32px; height: 23px; min-width: 1px; overflow-x: visible; width: 34px; display: inline-block !important; background- -28px; background-repeat: no-repeat no-repeat;” >转载▼te>标签: 杂谈分类: C51单片机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,延时还是挺精确的。
以下程序精度有待调试:#include