delay.a51

来自「基于USB接口的GPS驱动程序.gps后段接受以及输出,及usp驱动读写」· A51 代码 · 共 83 行

A51
83
字号
;*********************************************************************************
; 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 + =
减小字号Ctrl + -
显示快捷键?