单片机汇编语言怎么计算延时程序的?

请高手帮忙详细解释一下,例如1秒的延时
2024-05-10 16:55:43
推荐回答(3个)
回答1:

你可以采用单片机中的定时器/计时器,一般都是8位的,也有16位的,采用中断方式。
8位定时器中断间隔的计算:1/晶振频率x256,比如单片机采用1M频率的晶振,1/1000000x256,那么这个定时器中断2次间的间隔时间为256us(微秒)。
你只要在中断程序中用个寄存器计数,每+1就是256us,1秒约为3906个中断间隔

回答2:

看晶振频率,与一条指令所需要的周期 12M的晶振,一个机器周期为1us,这样,1秒钟就好算了吧

回答3:

;12M晶振时如下:
DELAY1S:
MOV R2,#10 ;外层延时10*200*0.5ms=1s
DELAY1:
MOV R3,#200 ;次层延时200*0.5ms
DELAY2:
MOV R4,#250 ;内层延时0.5ms
DJNZ R4,$
DJNZ R3,DELAY2
DJNZ R2,DELAY1
RET