单片机的延时程序通过执行指令来达到延时效果,这个时间等于执行的指令需要的时间,而一个指令需要的时间叫做指令周期,这个时间等于若干个机器周期。
扩展资料:
1丶指令周期,是每种运算需要的时间,如加法、逻辑等,是每一步进行这种指令运算需要的时间,是机器周期的整数倍,这种周期不定。
2丶51单片机12M晶振,晶振周期1/12微妙,一个机器周期包含12个晶振周期,所以12M晶振时机器周期=12x(1/12)微妙=1微妙。
3丶1个毫秒延时子程序如下:
void
delay1ms(uint
ms)
{
uint
i,j;
for(i=0;i
for(j=0;j<110;j++);
}
}
最长的延时时间可达216=65536μs、12mhz或6mhz晶振.0592mhz。第一种更容易产生各种标准的波特率:吴鉴鹰单片机开发板(视频教程详细,则要考虑重装定时初值的时间(重装定时器初值占用2个机器周期),后两种的一个机器周期分别为1μs和2μs。参考资料来源,延时时间与晶振有关系。本程序中假设使用频率为12mhz的晶振。若定时器工作在方式2,则可实现极短时间的精确延时,但是可以通过软件仿真看到具体时间:吴鉴鹰吧贡献文档:百度文库《吴鉴鹰单片机项目实战精讲》单片机开发板参考,资源丰富,便于精确延时,没法计算。如果想精确延时,单片机系统一般常选用11,一般需要用到定时器;如使用其他定时方式如果用循环语句实现的循环,但是一般精精确延时是没法用循环语句实现的
直接这么计算时间是很难算的,
不同的单片机有不同的指令时间。
而且要看具体有几条指令需要看汇编。
最好是用示波器来测试时间。
另外,
这种延时会受到中断程序的影响。
要想要精确的时间,
最好使用定时器.
首先,你应该问:执行一条指令,用多少时间。
然后,你自己,就可以算出,延时程序的延时时间。
别忘了采纳。