哪位单片机高手详细的告诉我一下:单片机中的延时程序的延时时间怎样计算的?比如,延迟 1S,2S等等

如题所述

第1个回答  2019-07-10
如果FOSC=12MHZ单片机,那么一个机器周期为12/12M=1us
如果是汇编语言的话:
L1:MOV
R7,#100
L2:MOV
R6,#100
L3:MOV
R5,#50
DJNZ
R5,$;此句两个机器周期也就是2T
DJNZ
R6,L3
DJNZ
R7,L2
RET
2T*50*100*100=1,000,000us(共一秒),这是粗略算法,有误差,但不是太大。
第2个回答  2019-07-11
比如
c51单片机的定时器1
是16位定时器
那么就是最大是65536
如果晶振频率是12MHZ
那么
最大定时时间是65.536毫秒
你定时一秒
就可以把定时器装初值
是15536
15536加到65536
正好是50毫秒
经过20次50毫秒
那么就是1s