各种延时程序Variousdelayprocedures.doc
上传者:小健
2022-07-22 17:52:29上传
DOC文件
83 KB
各种延时程序(Various delay procedures)
5秒左右;延时
delay5s:推 04h
推05h
推06h
MOV R4, #50
delay5s_0: MOV R5、 # 200
delay5s_l: MOV R6, # 245
djnz R6,美元
djnz R5、 delay5s_l
djnz R4, delay5s_0
流行06h
流行05h
流行04h
RET
513微秒延时程序;
延迟:MOV R2, # Ofeh
极限:djnz R2,极限
RET
10毫秒延时程序;
dllOms: MOV R3, # 14h
dllOmsl: LCALL DELAY
djnz R3, dllOmsl
RET
0. Is延时程序12mhz;
延迟:MOV R6, # 250
DL1: MOV R7, # 200
材料:djnz R6, DL2
djnz R7, DL1
RET
1046549 微秒;延时(12M) ;具体的计算公式是:
;((((R7 * 2 + 1) + 2) * R6 + 1) + 2) * R5 + 1 + 4 = ((R7 * 2
+ 3) XR6 + 3)
* R5 + 5
德尔:MOV R5、# 08h
作为:MOV R6, # Offh
del2: MOV R7, # Offh
djnz R7,美元
djnz R6, del2
djnz R5 dell
RET
1秒延时子程序是以12mhz晶振;
delayls: MOV Rl, # 50
delO: MOV R2, # 91
作为:MOV R3, # 100
djnz R3,美元
djnz Rl, delO
RET
1秒延时子程序是以12mhz晶振为例算指令周期耗时;
KK: MOV R5、# 10; 1 指令周期 1
KI: MOV R6, # Offh; 1 指令周期 10
K2: MOV R7, # 80h; 1 指令周期 256 * 10 = 2560
K3: NOP; 1指令周期
128 * 256 * 10 = 327680
djnz R7, K3; 2指令周期
2 * 128 * 256 * 10 = 655360
djnz R6, K2; 2指令周期
2 * 256 * 10 = 5120
djnz R5、K1; 2 指令周期 2 * 10 = 20
RET
;2 指令周期 21 + 10 + 2560 + 327680 + 655360 + 5120 + 20 + 2 =990753
1秒;约等于1秒二1000000微秒 0.998抄;这个算下来也只有
t_0: MOV R7, # 10;
DI: MOV R6, # 200;
D2: MOV R5、 # 248;
djnz R5、美元
djnz R6, D2;
djnz R7, DI;
RET
1.000011秒;这样算下来应该是
t_0: MOV R7, # 10;
DI: MOV R6, # 200;
D2: NOP
MOV R5、 # 248;
djnz R7, DI;
RET
delay_2s:; 10ms (11. 0592mhz)
MOV R3, # 200
JMP delaylOms
delay_100ms:; 100ms (11. 0592mhz)
MOV R3, # 10
JMP delaylOms
delay_10ms:
MOV R3, # 1
delaylOms:; 去抖动 10ms
(11. 0592mhz)
MOV R4, #20
5秒左右;延时
delay5s:推 04h
推05h
推06h
MOV R4, #50
delay5s_0: MOV R5、 # 200
delay5s_l: MOV R6, # 245
djnz R6,美元
djnz R5、 delay5s_l
djnz R4, delay5s_0
流行06h
流行05h
流行04h
RET
513微秒延时程序;
延迟:MOV R2, # Ofeh
极限:djnz R2,极限
RET
10毫秒延时程序;
dllOms: MOV R3, # 14h
dllOmsl: LCALL DELAY
djnz R3, dllOmsl
RET
0. Is延时程序12mhz;
延迟:MOV R6, # 250
DL1: MOV R7, # 200
材料:djnz R6, DL2
djnz R7, DL1
RET
1046549 微秒;延时(12M) ;具体的计算公式是:
;((((R7 * 2 + 1) + 2) * R6 + 1) + 2) * R5 + 1 + 4 = ((R7 * 2
+ 3) XR6 + 3)
* R5 + 5
德尔:MOV R5、# 08h
作为:MOV R6, # Offh
del2: MOV R7, # Offh
djnz R7,美元
djnz R6, del2
djnz R5 dell
RET
1秒延时子程序是以12mhz晶振;
delayls: MOV Rl, # 50
delO: MOV R2, # 91
作为:MOV R3, # 100
djnz R3,美元
djnz Rl, delO
RET
1秒延时子程序是以12mhz晶振为例算指令周期耗时;
KK: MOV R5、# 10; 1 指令周期 1
KI: MOV R6, # Offh; 1 指令周期 10
K2: MOV R7, # 80h; 1 指令周期 256 * 10 = 2560
K3: NOP; 1指令周期
128 * 256 * 10 = 327680
djnz R7, K3; 2指令周期
2 * 128 * 256 * 10 = 655360
djnz R6, K2; 2指令周期
2 * 256 * 10 = 5120
djnz R5、K1; 2 指令周期 2 * 10 = 20
RET
;2 指令周期 21 + 10 + 2560 + 327680 + 655360 + 5120 + 20 + 2 =990753
1秒;约等于1秒二1000000微秒 0.998抄;这个算下来也只有
t_0: MOV R7, # 10;
DI: MOV R6, # 200;
D2: MOV R5、 # 248;
djnz R5、美元
djnz R6, D2;
djnz R7, DI;
RET
1.000011秒;这样算下来应该是
t_0: MOV R7, # 10;
DI: MOV R6, # 200;
D2: NOP
MOV R5、 # 248;
djnz R7, DI;
RET
delay_2s:; 10ms (11. 0592mhz)
MOV R3, # 200
JMP delaylOms
delay_100ms:; 100ms (11. 0592mhz)
MOV R3, # 10
JMP delaylOms
delay_10ms:
MOV R3, # 1
delaylOms:; 去抖动 10ms
(11. 0592mhz)
MOV R4, #20
各种延时程序Variousdelayprocedures