人狗畜禽COMPANY LIMITED|全是肉的高H文〈男男〉|全篇肉高H秘书被C办公室四爱|全黄H全肉共妻|全黄H全肉短篇禁乱NP慕浅浅|全黄H全肉短篇N男男

技術(shù)熱線: 4007-888-234
設(shè)計開發(fā)

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

開發(fā)工具

提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享

技術(shù)支持

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動態(tài)

時鐘小時分鐘輪換顯示,24小時誤差5秒以內(nèi)

更新時間: 2019-03-25
閱讀量:1174

深圳市英銳恩科技有限公司:臺灣麥肯單片機(jī)(Micon MDT單片機(jī))亞太地區(qū)A級代理商

時鐘小時分鐘輪換顯示,24小時誤差5秒以內(nèi)
;小時與分鐘每2秒輪換顯示,按S2調(diào)整分鐘,按S3調(diào)整小時
;顯示小時時DP亮,分鐘時DP不亮
;實際測試與手機(jī)時間對比,現(xiàn)已運(yùn)行11個小時,較準(zhǔn)確
;mplab模擬,計算每天可能要慢5秒以內(nèi)(STOPWACH)
;初學(xué)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     ;顯示標(biāo)志寄存,1位高/低位掃描
        ;2位小時/分鐘顯示標(biāo)志
        ;3位4位分別為分鐘/小時調(diào)整態(tài)標(biāo)志
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計數(shù)
;------------------------

  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    ;關(guān)閉數(shù)碼管
  MOVWF PORTB    ;B口高電平
  BSF PORTA,1    ;A口高電平
  BSF PORTA,2

  BTFSC FLAGS,3   ;3位調(diào)整分鐘時只顯示分鐘不切換顯示
  BSF FLAGS,2
  BTFSC FLAGS,4   ;4位調(diào)整小時時只顯示小時
  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口顯示數(shù)據(jù),高低位由FLAGS(1)位決定
  MOVWF TABADD
  MOVFW DIS_L
  BTFSS FLAGS,1
  MOVFW DIS_H
  ADDWF TABADD,W
  CALL CONVERT
  MOVWF PORTB
  BTFSS FLAGS,2   ;顯示小時時DP亮
  BCF PORTB,7

  BTFSS FLAGS,1
  BCF PORTA,1
  BTFSC FLAGS,1
  BCF PORTA,2
  MOVLW 00000010B
  XORWF FLAGS,1  

;------------------------------------顯示完成,F(xiàn)LAGS(1)取反

  INCF DIGMS,1   ;5ms計時,200次進(jìn)秒
  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按下,去抖動后,調(diào)整分鐘
  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按下后調(diào)整小時
  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


邵阳市| 普洱| 莒南县| 博爱县| 越西县| 苏尼特右旗| 富源县| 和龙市| 喜德县| 云梦县| 高台县| 霍城县| 盘锦市| 栖霞市| 安丘市| 奉新县| 郯城县| 额济纳旗| 蒙阴县| 翁牛特旗| 明水县| 灌南县| 崇仁县| 吉林省| 北辰区| 扎囊县| 虞城县| 汽车| 新营市| 南木林县| 镇沅| 巩义市| 鲁甸县| 庄河市| 邵东县| 侯马市| 什邡市| 安福县| 博客| 上杭县| 永济市|