1 / 6
文档名称:

各种延时程序.doc

格式:doc   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

各种延时程序.doc

上传人:xxj16588 2016/5/12 文件大小:0 KB

下载得到文件列表

各种延时程序.doc

相关文档

文档介绍

文档介绍:各种延时程序; 延时 5 秒左右 DELAY5S:PUSH 04H PUSH 05H PUSH 06H MOV R4,#50 DELAY5S_0:MOV R5,#200 DELAY5S_1:MOV R6,#245 DJNZ R6,$ DJNZ R5,DELAY5S_1 DJNZ R4,DELAY5S_0 POP 06H POP 05H POP 04H RET ;513 微秒延时程序 DELAY: MOV R2,#0FEH DELAY1: DJNZ R2,DELAY1 RET ;10 毫秒延时程序 DL10MS: MOV R3,#14H DL10MS1:LCALL DELAY DJNZ R3,DL10MS1 RET ; 延时程序 12mhz DELAY: MOV R6,#250 DL1: MOV R7,#200 DL2: DJNZ R6,DL2 DJNZ R7,DL1 RET ; 延时 1046549 微秒(12mhz) ; 具体的计算公式是: ;((((r7*2+1)+2)*r6+1)+2)*r5+1+4 = ((r7*2+3)*r6+3) *r5+5 DEL : MOV R5,#08H DEL1: MOV R6,#0FFH DEL2: MOV R7,#0FFH DJNZ R7,$ DJNZ R6,DEL2 DJNZ R5,DEL1 RET ;1 秒延时子程序是以 12MHz 晶振 Delay1S:mov r1,#50 del0: mov r2,#91 del1: mov r3,#100 djnz r3,$ djnz r2,del1 djnz r1,del0 Ret ;1 秒延时子程序是以 12MHz 晶振为例算指令周期耗时 KK: MOV R5,#10 ;1 指令周期 1 K1: MOV R6,#0FFH ;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 微秒; 这个算下来也只有 抄 T_0: MOV R7,#10; D1: MOV R6,#200; D2: MOV R5,#248; DJNZ R5,$ DJNZ R6,D2; DJNZ R7,D1; RET ; 这样算下来应该是 秒 T_0: MOV R7,#10; D1: MOV R6,#200; D2: NOP MOV R5,#248; DJNZ R5,$ DJNZ R6,D2; DJNZ R7,D1; RET DELAY_2S: ;10MS() MOV R3,#200 JMP DELAY10MS DELAY_100MS: ;100MS() MOV R3,#10 JMP DELAY10MS DELAY_10MS: MOV R3,#1 DELAY10MS: ; 去抖动 1