📄 delay.a51
字号:
;*********************************************************************************
; Module description:
; provide delay functions
; It is written in ASM
;
;
;Author : Yu Lu ,
; luyu1974@gmail.com
;
;*********************************************************************************/
NAME DELAY_MOD
PUBLIC DELAY_50US,DELAY_8US,DELAY_1MS,DELAY_25MS,DELAY_1S,DELAY_LY
USING 0
SUB_DELAY SEGMENT CODE
DT_DELAY SEGMENT DATA OVERLAYABLE
RSEG DT_DELAY
TIMER0: DS 1
TIMER1: DS 1
TIMER2: DS 1
RSEG SUB_DELAY
;**********************************************************
; These are some delay subroutine;
; The time of delay is expressed in the name of subroutine.
;**********************************************************
DELAY_50US:
MOV TIMER0,#75; #55 FOR 24MHZ, 22 FOR 11.0592MHZ
US50_1:
DJNZ TIMER0,US50_1
RET
DELAY_8US:
MOV TIMER0,#4 ;#10 FOR 24MHZ, 4 FOR 11.0592MHZ
US8_1:
DJNZ TIMER0,US8_1
RET
DELAY_1MS:
MOV TIMER2, #20
MS1_1:
LCALL DELAY_50US
DJNZ TIMER2,MS1_1
RET
DELAY_25MS:
MOV TIMER0,#45; #93 FOR 24MHZ, 45 FOR 11.0592MHZ
MS25_1:
MOV TIMER1,#255
MS25_2:
DJNZ TIMER1,MS25_2
DJNZ TIMER0,MS25_1
RET
DELAY_1S:
MOV TIMER2,#40
S1_1:
LCALL DELAY_25MS
DJNZ TIMER2,S1_1
RET
DELAY_LY:
MOV TIMER2, #160
DELAY_LY1:
LCALL DELAY_50US
DJNZ TIMER2,DELAY_LY1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -