单片机延时程序是怎么实现的?

2025-04-30 22:27:54
推荐回答(2个)
回答1:

延时是靠CPU执行无关指令,把时间浪费掉。
具体来说,DJNZ指令需要2个周期,循环250次就是500个周期,两层循环就是500*500个周期,你调用一次DELAY子程序,CPU就空转250000个周期(注意这个计算不精确),如果晶振是12MHz,那就意味着时间过去了250ms,也就是延时250ms

回答2:

本程序的耗时计算如下:
1
+
[1
+
(1
+
1
+
2)
*
249
+
2]
*
5
+
2

4998
t
如果再算上主程序中的调用指令的2t,总共延时5000t。
如果时钟频率是6mhz,那么正好延时10ms。