?? led0-99-tmr0-int.asm
字號:
;*****************************************************
;功能:實現兩位數碼管的0-99遞增動態掃描,遞增速度約為1秒
;特點:使用了TMR0的定時與中斷功能,實現了數碼管的動態掃描
;時間:2007年5月30日
;不足:1秒定時還不夠精確
;*****************************************************
include<p16f877.inc>
TimeNum EQU 20H ;定義時間控制變量
DisNum EQU 21H ;定義顯示位控制變量
DelNum EQU 22H ;定義延遲函數變量
Second EQU 23H ;定義時間秒變量
Minute EQU 24H ;定義時間分鐘變量
org 0
goto main
;********************中斷服務子程序********************
org 4
incf TimeNum,1 ;控制秒是否該加1
movlw 0eh
subwf TimeNum,0
btfss STATUS,Z
goto BACK
clrf TimeNum
incf Second,1
movlw 0Ah ;控制分鐘是否該加1
subwf Second,0
btfss STATUS,Z
goto BACK
clrf Second
incf Minute,1
movlw 0Ah
subwf Minute,0
btfss STATUS,Z
goto BACK
clrf Minute
BACK bcf INTCON,T0IF ;清楚中斷標志位
movlw 0
movwf TMR0 ;TMR0重新裝入
retfie
;*****************************************************
;*****************主程序開始**************************
main
bcf STATUS,RP0
bcf STATUS,RP1
clrf TimeNum ;清楚自定義變量
clrf DisNum
clrf Second
clrf Minute
movlw 0a0h
movwf INTCON ;開總中斷,使能TMR0中斷
bsf STATUS,RP0
bcf STATUS,RP1
movlw 07H ;將分頻器分配給TMRO,分頻比比1:256,時鐘源為內部時鐘源
movwf OPTION_REG
movlw 0
movwf TRISC ;設置RC口為輸出
movwf TRISD ;設置RD口為輸出
bcf STATUS,RP0
bcf STATUS,RP1
movlw 0
movwf PORTD
movwf PORTC
movwf TMR0 ;裝入TMR0初始值
Display incf DisNum,1 ;控制數碼管顯示位
movlw 01h
andwf DisNum,w
addwf PCL,F
goto DisS
goto DisG
DisS movf Minute,0 ;顯示十位
call TABLE
movwf PORTD
movlw 0x01
movwf PORTC
call Delay
clrf PORTC
goto BACK1
DisG movf Second,0 ;顯示個位
call TABLE
movwf PORTD
movlw 0x02
movwf PORTC
call Delay
clrf PORTC
BACK1 goto Display
;**************************************************
;**************查表子程序**************************
TABLE
addwf PCL
retlw 0c0h
retlw 0f9h
retlw 0a4h
retlw 0b0h
retlw 99h
retlw 92h
retlw 82h
retlw 0f8h
retlw 80h
retlw 90h
;**************************************************
;************延遲子函數****************************
Delay movlw 0ffh
movwf DelNum
NEXT1 decf DelNum,1
btfss STATUS,Z
goto NEXT1
movlw 0ffh
movwf DelNum
NEXT2 decf DelNum,1
btfss STATUS,Z
goto NEXT2
return
;**************************************************
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -