專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導入到強大技術(shù)支援服務 全程貼心伴隨服務,創(chuàng)造無限潛能!
;24小時循環(huán)定時器
;*************************************
LIST P=PIC16F84A
#INCLUDE P16F84A.INC ;選定芯片型號
;*************************************
COUNTER1 EQU 1FH ;選定RAM內(nèi)部地址用作計時的儲存器
COUNTER2 EQU 1EH ;命名為計數(shù)器
COUNTER3 EQU 1DH
COUNTER4 EQU 1CH
COUNTER5 EQU 1BH
COUNTER6 EQU 1AH
COUNTER7 EQU 19H
ORG 0 ;復位矢量
GOTO START
ORG D'12' ;從地址12開始存放程序
START MOVLW 0
BSF STATUS,RP0 ;選體1
MOVWF TRISB ;設(shè)B口為輸出
MOVLW B'00000001' ;設(shè)A口的0位為輸入
MOVWF TRISA
BCF STATUS,RP0 ;恢復到體0
CLRF PORTB
CLRW
CLRF COUNTER1
CLRF COUNTER2 ;選定的計數(shù)器清零
CLRF COUNTER3
CLRF COUNTER4
CLRF COUNTER5
CLRF COUNTER6
CLRF COUNTER7
;*********************************
LOOP0 BTFSC PORTA,0 ;按鍵按下,24小時定時開始
GOTO LOOP0
LOOPE CLRF COUNTER5 ;24小時定時一到,一次清零
MOVLW D'24'
MOVWF COUNTER6 ;設(shè)定24小時定時量
CLRF PORTB
HOUR CLRW
MOVLW D'60'
MOVWF COUNTER4 ;每小時的定時值
LOOPD MOVLW D'60'
MOVWF COUNTER7 ;每分的定時值
MIN CALL SECOND ;調(diào)用秒計時子程序
DECFSZ COUNTER7,1 ;積60秒(1分)
GOTO MIN
DECFSZ COUNTER4,1 ;積60分(1小時)
GOTO LOOPD
INCF COUNTER5,1 ;小時2進制計數(shù)
MOVF COUNTER5,0
MOVWF PORTB ;送B口LED顯示
DECFSZ COUNTER6,1
GOTO HOUR ;B口小時循環(huán)
GOTO LOOPE ;24小時到,跳到標號處從新循環(huán)
;*************************************
SECOND ORG D'80' ;秒定時子程序
BSF PORTB,7
LOOPT DECFSZ COUNTER1,1
GOTO LOOPT
DECFSZ COUNTER2,1
GOTO LOOPT
BCF PORTB,7
LOOPF INCFSZ COUNTER1,1
GOTO LOOPF
INCFSZ COUNTER2,1
GOTO LOOPF
CLRW
MOVLW 0X89
MOVWF COUNTER3
LOOPN INCFSZ COUNTER1,1
GOTO LOOPN
INCFSZ COUNTER3,1
GOTO LOOPN
MOVLW D'82'
MOVWF COUNTER1
LOOPV DECFSZ COUNTER1,1
GOTO LOOPV
RETURN
END