天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234
設計開發

專注差異化嵌入式產品解決方案 給智能產品定制注入靈魂給予生命

開發工具

提供開發工具、應用測試 完善的開發代碼案例庫分享

技術支持

從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創造無限潛能!

新聞中心

提供最新的單片機資訊,行業消息以及公司新聞動態

ST套件上時鐘小時分鐘輪換顯示,24小時誤差5秒以內

更新時間: 2019-03-26
閱讀量:1757

ST套件上時鐘,小時與分鐘每2秒輪換顯示,按S2調整分鐘,按S3調整小時 ;顯示小時時DP,分鐘時DP不亮 ;實際測試與手機時間對比,現已運行11個小時,較準確 ;mplab模擬,計算每天可能要慢5秒以內(STOPWACH) ;初學PIC第二個程序,by wonderfulsf 12/12/2004

LIST P=16F84A,R=DEC __CONFIG B'11111111110001'

;--------------------------------

RTCC EQU 01H PC EQU 02H STATUS EQU 03H PORTA EQU 05H PORTB EQU 06H INTCON EQU 0BH OPTION_REG EQU 1H TRISA EQU 5H TRISB EQU 6H

;-----------------------STATUS C EQU 0 Z EQU 2 RP0 EQU 5

;-----------------------INTCON T0IF EQU 2 T0IE EQU 5 GIE EQU 7

;-----------------------IN PROGRAME VAR C0 EQU 10H C1 EQU 11H C2 EQU 12H TABADD EQU 13H FLAGS EQU 14H ;顯示標志寄存,1位高/低位掃描 ;2位小時/分鐘顯示標志 ;34位分別為分鐘/小時調整態標志 DIS_H EQU 15H ;顯示位緩存 DIS_L EQU 16H SEC EQU 17H ;秒位 MIN_H EQU 18H ;分鐘 MIN_L EQU 19H HOU_H EQU 1AH ;小時 HOU_L EQU 1BH W_T EQU 1CH ST_T EQU 1DH DIGMS EQU 1EH ;5ms計數 ;------------------------

ORG 0000H GOTO MAIN ORG 004H TIME MOVWF W_T SWAPF STATUS,W MOVWF ST_T

MOVLW 100 MOVWF RTCC BCF INTCON,T0IF

MOVLW 0FFH ;關閉數碼管 MOVWF PORTB ;B口高電平 BSF PORTA,1 ;A口高電平 BSF PORTA,2

BTFSC FLAGS,3 ;3位調整分鐘時只顯示分鐘不切換顯示 BSF FLAGS,2 BTFSC FLAGS,4 ;4位調整小時時只顯示小時 BCF FLAGS,2 MOVFW MIN_H ;顯示分鐘或小時,由FLAG(2)位決定 BTFSS FLAGS,2 ;1時顯示分種 MOVFW HOU_H MOVWF DIS_H

MOVFW MIN_L BTFSS FLAGS,2 MOVFW HOU_L MOVWF DIS_L

MOVLW TABLE ;B口顯示數據,高低位由FLAGS(1)位決定 MOVWF TABADD MOVFW DIS_L BTFSS FLAGS,1 MOVFW DIS_H ADDWF TABADD,W CALL CONVERT MOVWF PORTB BTFSS FLAGS,2 ;顯示小時時DPBCF PORTB,7 BTFSS FLAGS,1 BCF PORTA,1 BTFSC FLAGS,1 BCF PORTA,2 MOVLW 00000010B XORWF FLAGS,1

;------------------------------------顯示完成,FLAGS(1)取反 INCF DIGMS,1 ;5ms計時,200次進秒 MOVLW 200 XORWF DIGMS,0 BNZ TIMEND CLRF DIGMS

INCF SEC,1 BCF FLAGS,2 BTFSS SEC,1 BSF FLAGS,2 ;2秒種,小時/分鐘交換 MOVLW 60 XORWF SEC,0 BNZ TIMEND CLRF SEC INCF MIN_L,1 MOVLW 10 XORWF MIN_L,0 BNZ TIMEND CLRF MIN_L

INCF MIN_H,1 MOVLW 6 XORWF MIN_H,0 BNZ TIMEND CLRF MIN_H

MOVLW 2 XORWF HOU_H,0 BZ HOU1 INCF HOU_L,1 MOVLW 10 XORWF HOU_L,0 BNZ TIMEND CLRF HOU_L INCF HOU_H,1 GOTO TIMEND HOU1 INCF HOU_L,1 MOVLW 4 XORWF HOU_L,0 BNZ TIMEND CLRF HOU_L CLRF HOU_H

TIMEND SWAPF ST_T,W MOVWF STATUS SWAPF W_T,F SWAPF W_T,W RETFIE

;-------------------------------------- MAIN CLRF PORTA CLRF PORTB

BSF STATUS,RP0 MOVLW 00011000B MOVWF TRISA MOVLW 00000000B MOVWF TRISB MOVLW 10000100B MOVWF OPTION_REG BCF STATUS,RP0

MOVLW 100 MOVWF RTCC MOVLW 0FFH MOVWF PORTB BSF PORTA,1 BSF PORTA,2 CLRF DIGMS CLRF DIS_L CLRF DIS_H CLRF MIN_L CLRF MIN_H CLRF HOU_L CLRF HOU_H BCF INTCON,T0IF BSF INTCON,T0IE BSF INTCON,GIE ;---------------------------------------- LOOP BCF FLAGS,3 BCF FLAGS,4 BTFSS PORTA,3 GOTO SET_1 BTFSS PORTA,4 GOTO SET_2 GOTO LOOP ;----------------------------------- SET_1 BTFSC PORTA,3 ;S2按下,去抖動后,調整分鐘 GOTO LOOP CALL DELAY BTFSC PORTA,3 GOTO LOOP

BSF FLAGS,3 INCF MIN_L,1 MOVLW 10 XORWF MIN_L,0 BNZ SET_1 CLRF MIN_L

INCF MIN_H,1 MOVLW 6 XORWF MIN_H,0 BNZ SET_1 CLRF MIN_H GOTO SET_1 ;----------------------------------- SET_2 BTFSC PORTA,4 ;S3按下后調整小時 GOTO LOOP CALL DELAY BTFSC PORTA,4 GOTO LOOP

BSF FLAGS,4 MOVLW 2 XORWF HOU_H,0 BZ HOU2 INCF HOU_L,1 MOVLW 10 XORWF HOU_L,0 BNZ SET_2 CLRF HOU_L INCF HOU_H,1 GOTO SET_2 HOU2 INCF HOU_L,1 MOVLW 4 XORWF HOU_L,0 BNZ SET_2 CLRF HOU_L CLRF HOU_H GOTO SET_2

;----------------------------------- DELAY MOVLW 150 ;延時0.1S MOVWF C1 L2 MOVLW 255 MOVWF C2 L3 DECFSZ C2,1 GOTO L3 DECFSZ C1,1 GOTO L2 RETLW 0 ;----------------------------------- CONVERT MOVWF PC TABLE RETLW 081H RETLW 0E7H RETLW 092H RETLW 0A2H RETLW 0E4H RETLW 0A8H RETLW 088H RETLW 0E3H RETLW 080H RETLW 0A0H ;----- -------------------------------------- END

 



联系我们: 璧山县| 垫江县| 阿克陶县| 金溪县| 邓州市| 永济市| 仙游县| 武夷山市| 莒南县| 阿巴嘎旗| 疏附县| 富顺县| 安福县| 乌恰县| 北辰区| 庄浪县| 临洮县| 石门县| 谷城县| 张家界市| 名山县| 札达县| 房产| 兴山县| 深泽县| 汉沽区| 饶平县| 怀远县| 乌鲁木齐市| 同德县| 东港市| 泗水县| 文登市| 海阳市| 新津县| 炉霍县| 平遥县| 湖南省| 酒泉市| 屏山县| 潞城市|