📄 delayms.asm
字号:
;调用需要定义以下函数原型
;extern void delayms_48us();
;extern void delayms_1ms();
;extern void delayms_10ms();
;extern void delayms_100ms();
;extern void delayms_1000ms();
; .\delayms.SRC generated from: delayms.c
; COMPILER INVOKED BY:
; C:\Keil\C51\BIN\C51.EXE delayms.c BROWSE DEBUG OBJECTEXTEND SRC(.\delayms.SRC)
NAME DELAYMS
?PR?delayms_48us?DELAYMS SEGMENT CODE
?PR?delayms_1ms?DELAYMS SEGMENT CODE
?PR?delayms_10ms?DELAYMS SEGMENT CODE
?PR?delayms_100ms?DELAYMS SEGMENT CODE
?PR?delayms_1000ms?DELAYMS SEGMENT CODE
PUBLIC delayms_1000ms
PUBLIC delayms_100ms
PUBLIC delayms_10ms
PUBLIC delayms_1ms
PUBLIC delayms_48us
; //CFUNC.c文件
;
; #define uchar unsigned char
; #define uint unsigned int
; void delayms_48us()
RSEG ?PR?delayms_48us?DELAYMS
delayms_48us:
USING 0
MOV R7,#21
DLY1S48us3: DJNZ R7,DLY1S48us3 ;248*2+4
nop
RET
; END OF delayms_1ms
;
; void delayms_1ms()
RSEG ?PR?delayms_1ms?DELAYMS
delayms_1ms:
USING 0
MOV R7,#229
DLY1S3: nop
nop
DJNZ R7,DLY1S3 ;248*2+4
nop
RET
; END OF delayms_1ms
;
;
; void delayms_10ms()
RSEG ?PR?delayms_10ms?DELAYMS
delayms_10ms:
USING 0
DLY10S1: MOV R6,#49
DLY10S2: MOV R7,#92
DLY10S3:
DJNZ R7,DLY10S3 ;248*2+5
DJNZ R6,DLY10S2 ;(248*2+3)*200+5
MOV R6,#22
DLY10S4: DJNZ R6,DLY10S4
NOP
RET
; END OF delayms_10ms
;
; void delayms_100ms()
RSEG ?PR?delayms_100ms?DELAYMS
delayms_100ms:
USING 0
DLY100S0: MOV R7,#0BFH
DLY100S1: MOV R6,#0EFH
DLY100S2:
DJNZ R6,DLY100S2
DJNZ R7,DLY100S1
DLY100S3: MOV R6,#141
DLY100S4: DJNZ R6,DLY100S4
NOP
RET
; END OF delayms_100ms
;
; void delayms_1000ms()
RSEG ?PR?delayms_1000ms?DELAYMS
delayms_1000ms:
USING 0
DLY1000S0: MOV R5,#8
DLY1000S1: MOV R6 ,#239
DLY1000S2: MOV R7 ,#239
DLY1000S3:
DJNZ R7 ,DLY1000S3
DJNZ R6 ,DLY1000S2
DJNZ R5 ,DLY1000S1
DLY1000_S1: MOV R6 ,#4
DLY1000_S2: MOV R7 ,#235
DLY1000_S3:
DJNZ R7 ,DLY1000_S3
DJNZ R6 ,DLY1000_S2
NOP
NOP
NOP
NOP
NOP
NOP
RET
; END OF delayms_1000ms
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -