单片机的延时,延时时间长度是怎么算的?最好有一个例子,来说明!

如题所述

如果单片机晶振为6M,机器周期即为2us=12/fosc
汇编语句对时间的把握精确于C语言,所以参考不同指令的长度,
就可以算出你的延迟时间。
单片机的延时程序:
MOV R7,#200
LOOP1:MOV R6,#125
LOOP2:DJNZ R6,LOOP2
DJNZ R7,LOOP1
RET

第一句为单周期指令,耗时2us
第二句执行了200次,耗时2*200us
第三句为双周期指令,执行了125*200次,耗时2*2*125*200us
第四句同第三句,耗时2*2*200us
第五句双指令周期
总够耗时2+2*200+2*2*125*200+2*2*200+2*2
约为100ms
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-17
延时长度根据你的振荡器的频率和后分频来计算的。
最简单就是写一段延时,用示波器测试一下。

简单的延时可以用nop循环,长延时尽量用定时器来做。
相似回答