?? pic16c72.txt
字號:
RETURN
MIN_B1: MOVF SET_DEL
BTFSC STATUS,ZF
GOTO INC_MIN
DECFSZ SET_DEL
RETURN
MOVLW .10
MOVWF SET_DEL ;TEMP DISPLAY COUNTER 檬扁拳
INC_MIN: INCF MIN_BUFF
MOVLW .60
XORWF MIN_BUFF,W
BTFSC STATUS,ZF
CLRF MIN_BUFF
MOVLW MIN_BUFF
MOVWF FSR
CALL FND_CONV
RETURN
;============================================
;===== 矯 汲瀝 ==============================
;============================================
HOUR_BUTTON:
BTFSC PORTC,7 ;KEY PRESS?
GOTO HOUR_B0 ;喘府瘤 臼疽欄擱 痢橇
BTFSC PRESS_CHK,1
GOTO HOUR_B1 ;KEY PRESS啊 SET登絹 樂欄擱 痢橇
BSF PRESS_CHK,1 ;KEY PRESS SET
MOVLW .40
MOVWF SET_DEL ;TEMP DISPLAY COUNTER 檬扁拳
GOTO INC_HOUR
HOUR_B0: BCF PRESS_CHK,1 ;SWITCH PRESS BUFFER CLEAR
RETURN
HOUR_B1: MOVF SET_DEL
BTFSC STATUS,ZF
GOTO INC_HOUR
DECFSZ SET_DEL
RETURN
MOVLW .10
MOVWF SET_DEL ;TEMP DISPLAY COUNTER 檬扁拳
INC_HOUR: INCF HOUR_BUFF
MOVLW .12
XORWF HOUR_BUFF,W
BTFSS STATUS,ZF
GOTO INC_HOUR1
MOVLW B'01100000' ;坷傈/坷饒 函版
XORWF LED_BUFF
INC_HOUR1: MOVLW .13
XORWF HOUR_BUFF,W
BTFSS STATUS,ZF
GOTO INC_HOUR2
MOVLW .1
MOVWF HOUR_BUFF
INC_HOUR2: MOVLW HOUR_BUFF
MOVWF FSR
CALL FND_CONV
RETURN
;============================================
; INTERRUPT SERVICE ROUTINE =================
;============================================
INT_SERVICE: BCF PIR1,0 ;CLEAR TIMER1 INTERRUPT FLAG
MOVWF W_BUFF
MOVF STATUS,W
MOVWF STATUS_BUFF
BCF T1CON,0 ;TIMER1 OFF
MOVLW 0BH
MOVWF TMR1H
MOVLW 0DCH
MOVWF TMR1L
BSF T1CON,0 ;TIMER1 ON
MOVLW B'00011000'
XORWF LED_BUFF
INCF SEC_CHECK
BTFSS SEC_CHECK,0
GOTO INT_S3
INCF SEC_BUFF
MOVLW .60
XORWF SEC_BUFF,W
BTFSS STATUS,ZF
GOTO INT_S2
CLRF SEC_BUFF
INCF MIN_BUFF
MOVLW .60
XORWF MIN_BUFF,W
BTFSS STATUS,ZF
GOTO INT_S2
CLRF MIN_BUFF
INCF HOUR_BUFF
MOVLW .12
XORWF HOUR_BUFF,W
BTFSS STATUS,ZF
GOTO INT_S1
MOVLW B'01100000' ;坷傈/坷饒 函版
XORWF LED_BUFF
INT_S1: MOVLW .13
XORWF HOUR_BUFF,W
BTFSS STATUS,ZF
GOTO INT_S2
MOVLW .1
MOVWF HOUR_BUFF
INT_S2: CALL CONVERT
INT_S3: MOVF STATUS_BUFF,W
MOVWF STATUS
SWAPF W_BUFF,F
SWAPF W_BUFF,W
RETFIE
;============================================
; 檬扁拳 SUBROUTINE =========================
;============================================
INIT: BANK1
MOVLW B'00111111'
MOVWF TRISA
MOVLW B'00000000'
MOVWF TRISB
MOVLW B'10000000'
MOVWF TRISC
CLRWDT
BANK0
BCF T1CON,0 ;TIMER1 OFF
MOVLW 0BH
MOVWF TMR1H
MOVLW 0DCH
MOVWF TMR1L
CLRF INTCON ;DISABLE ALL INTERRUPT
CLRF PIR1
BANK1
CLRF PIE1 ;DISABLE PERIPHERAL INTERRUPT
BSF PIE1,0 ;ENABLE TIMER1 INTERRUPT
MOVLW B'00000111' ;DIGITAL I/O
MOVWF ADCON1
BANK0
BSF INTCON,6 ;ENABLE PERIPHERAL INTERRUPT
BSF INTCON,7 ;ENABLE ALL INTERRUPT
MOVLW B'00110100' ;TIMER1, 8:1, TIMER1 OFF
MOVWF T1CON
BSF T1CON,0 ;TIMER1 ON
MOVLW .12
MOVWF HOUR_BUFF
CLRF MIN_BUFF
CLRF SEC_BUFF
MOVLW B'00111111' ;坷傈
MOVWF LED_BUFF
CLRF PRESS_CHK
CLRF SEC_CHECK
CALL CONVERT
RETURN
CONVERT: MOVLW HOUR_BUFF
MOVWF FSR
CALL FND_CONV
MOVLW MIN_BUFF
MOVWF FSR
CALL FND_CONV
MOVLW SEC_BUFF
MOVWF FSR
CALL FND_CONV
RETURN
FND_CONV: MOVF INDIR,W
MOVWF BUFFER
INCF FSR
CLRF INDIR
INCF FSR
CLRF INDIR
DECF FSR
FND_CONV1: MOVLW .10
SUBWF BUFFER,W
BTFSS STATUS,CF
GOTO FND_CONV2
MOVWF BUFFER
INCF INDIR
GOTO FND_CONV1
FND_CONV2: INCF FSR
MOVF BUFFER,W
CALL FND_TBL
MOVWF INDIR
DECF FSR
MOVF INDIR,W
BTFSS STATUS,ZF
GOTO FND_CONV3
MOVLW B'11111111'
GOTO FND_CONV4
FND_CONV3: CALL FND_TBL
FND_CONV4: MOVWF INDIR
RETURN
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -