📄 pic-延时程序集.txt
字号:
PIC-延时程序集
;**********************************************************
; 脉冲延时程序
;**********************************************************
DELAY
MOVLW 1FH ;CLK时序廷时
MOVWF F7
DECFSZ F7 ,1
GOTO $-1
RETURN
;**********************************************************
; 1MS延时程序
;**********************************************************
DELAY1MS:
MOVLW 02H
MOVWF 20H
LOOP2:
MOVLW 0A5H
MOVWF 21H
LOOP1:
DECFSZ 21H,F
GOTO LOOP1
DECFSZ 20H,F
GOTO LOOP2
RETURN
;实际测试为1003us
;**********************************************************
; 10MS延时程序
;**********************************************************
DELAY10MS:
MOVLW 0eH
MOVWF 20H
LOOP2:
MOVLW 0EDH
MOVWF 21H
LOOP1:
DECFSZ 21H,F
GOTO LOOP1
DECFSZ 20H,F
GOTO LOOP2
RETURN
;实际测试为10.017ms
;**********************************************************
; 100MS延时程序
;**********************************************************
DELAY100MS:
MOVLW 90H
MOVWF 20H
LOOP2:
MOVLW 0E7H
MOVWF 21H
LOOP1:
DECFSZ 21H,F
GOTO LOOP1
DECFSZ 20H,F
GOTO LOOP2
RETURN
;实际测试为100.375ms
;**********************************************************
; 5MS延时程序
;**********************************************************
DELAY5MS:
MOVLW 07H
MOVWF 20H
LOOP2:
MOVLW 0EDH
MOVWF 21H
LOOP1:
DECFSZ 21H,F
GOTO LOOP1
DECFSZ 20H,F
GOTO LOOP2
RETURN
;实际测试为5.012ms
;**********************************************************
; 50MS延时程序
;**********************************************************
DELAY50MS:
MOVLW 48H
MOVWF 20H
LOOP2:
MOVLW 0E6H
MOVWF 21H
LOOP1:
DECFSZ 21H,F
GOTO LOOP1
DECFSZ 20H,F
GOTO LOOP2
RETURN
;实际测试为49.975ms
;**********************************************************
; 500MS延时程序
;**********************************************************
DELAY500MS:
MOVLW 03H
MOVWF 20H
LP11:
MOVLW 0EBH
MOVWF 21H
LP21:
MOVLW 0EBH
MOVWF 22H
LP31:
DECFSZ 22H
GOTO LP31
DECFSZ 21H
GOTO LP21
DECFSZ 20H
GOTO LP11
RETURN
实际测试为 499.864 ms
;**********************************************************
; 1S延时程序
;**********************************************************
DELAY1S:
MOVLW 03H
MOVWF 20H
LP11:
MOVLW 0EBH
MOVWF 21H
LP21:
MOVLW 0ECH
MOVWF 22H
LP31:
DECFSZ 22H
GOTO LP31
DECFSZ 21H
GOTO LP21
DECFSZ 20H
GOTO LP11
RETURN
;实际测试为1.003秒
;**********************************************************
; 延时程序
;**********************************************************
DELAY:
MOVLW 0FFH ;将外层循环参数值FFH经过W
MOVWF 20H ;送入用作外循环变量的20H单元
LP0:
MOVLW 0FFH ;将内层循环参数值FFH经过W
MOVWF 21H ;送入用作内循环变量的21H单元
LP1:
DECFSZ 21H,1 ;变量21H内容递减,若为0跳跃
GOTO LP1 ;跳转到LP1处
DECFSZ 20H,1 ;变量20H内容递减,若为0跳跃
GOTO LP0 ;跳跃到LP0处
RETURN ;返回主程序
;实际测试为196.1ms
;**********************************************************
; 10US延时程序
;**********************************************************
DELAY10US
NOP
NOP
NOP
NOP
RETURN
;实际测试为10us
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -