㈠ 单片机延时程序的延时时间怎么算的
单片机的延时程序通过执行指令来达到延源歼时效果,这个时间等于执行的指令需要的时间,而一个指令需要的时间叫做指令周期,这个时间等于若干个机器周期。
(1)延时程序时间如何选用扩展阅读:
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<ms;i++)
{
for(j=0;j<110;j++);
}
}
㈡ 求计算下面汇编延时程序的延时时间。
延时程序的时间,与每条指令的机器周期数有关,例如题目中出现的
MOV Rn,data指令为1个机器周期,
DJNZ Rn,LOOP指令为2个机器周扮毕孙期。
而每个机器周期的时间,又由系统的时钟频率决定。以经典的51单片机为例,一个机器周期为12个系统时钟周数带期。若系统时钟频率为10M,即1个系统时钟周期为1us,则一个机器周期的时间为12us。
计算程序的延时时间,要先对照指令表,查出每条指令的机器周期数,再结合程序中出现的机循环次数,统计出程序总的机器周数。将总机器周期数乗以一个机器周期的时间,厅链就得到了程序总的延时时间。
对于现在一些改良的51兼容单片机,1个机器周期已不再是12个系统时钟。例如STC的单片机中,就有4个系统时钟,甚至1个系统时钟的产品。所以在真正地计算延时的时候,必须要依据所选用单片机的芯片手册所提供的参数,以及电路设计的系统时钟频率进行。