㈠ 单片机延时程序的延时时间怎么算的
单片机的延时程序通过执行指令来达到延源歼时效果,这个时间等于执行的指令需要的时间,而一个指令需要的时间叫做指令周期,这个时间等于若干个机器周期。
(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++);
}
}
㈡ 求问这段汇编语言的延时程序怎么计算延时时间
采纳答案,数字,算错了吧?
应该是 500 多毫秒。
51 单片机的指令,执行时间,是一个机器周期或二个机器周期。
只有乘除指令,是余手碰腊四个机器周期。
机器周期,称为T。
正确计算如下:
MOV R2, #10 ;1T
L1: MOV R3, #100 ;1T
L2: MOV R4, #250 ;1T
L3: DJNZ R4, L3 ;2T 2 * 250 = 500T
DJNZ R3, L2 ;2T (1+500+2) * 100 = 50300T
DJNZ R2, L1 ;2T (1+50300+2) * 10 = 503030T
RET ;2T (1+503030+2) = 503033T
总共执行竖吵嫌时间是:503033T。
当晶振是 12MHz,T 就是 1us。
那么,延时时间就是 503033us,约等于 500 毫秒。