?? pic16c72.txt
字號:
; PROJECT : DIGITAL CLOCK =============
; DEVICE : PIC16C72 ==================
; WDT : OFF =======================
;============================================
LIST P=16C72, F=INHX8M
;============================================
; SYSTEM REGISTER AREA ======================
;============================================
INDIR EQU 00H ;BANK 0
RTCC EQU 01H
PC EQU 02H
STATUS EQU 03H
FSR EQU 04H
PORTA EQU 05H
PORTB EQU 06H
PORTC EQU 07H
PCLATH EQU 0AH
INTCON EQU 0BH
PIR1 EQU 0CH
TMR1L EQU 0EH
TMR1H EQU 0FH
T1CON EQU 10H
TMR2 EQU 11H
T2CON EQU 12H
SSPBUF EQU 13H
SSPCON EQU 14H
CCPR1L EQU 15H
CCPRLH EQU 16H
CCP1CON EQU 17H
ADRES EQU 1EH
ADCON0 EQU 1FH
OPTIONR EQU 01H ;BANK 1
TRISA EQU 05H
TRISB EQU 06H
TRISC EQU 07H
PIE1 EQU 0CH
PCON EQU 0EH
PR2 EQU 12H
SSPADD EQU 13H
SSPSTAT EQU 14H
ADCON1 EQU 1FH
;============================================
; USER DEFINE AREA ==========================
;============================================
HOUR_BUFF EQU 20H
HOUR10 EQU 21H
HOUR1 EQU 22H
MIN_BUFF EQU 23H
MIN10 EQU 24H
MIN1 EQU 25H
SEC_BUFF EQU 26H
SEC10 EQU 27H
SEC1 EQU 28H
SEC_CHECK EQU 29H
BUFFER EQU 2AH
LED_BUFF EQU 2BH
W_BUFF EQU 2CH
STATUS_BUFF EQU 2DH
DEL_CNT1 EQU 2EH
DEL_CNT2 EQU 2FH
SET_DEL EQU 30H
PRESS_CHK EQU 31H
;============================================
; BIT DEFINITION ============================
;============================================
CF EQU .0 ;STATUS
ZF EQU .2
RP0 EQU .5
RP1 EQU .6
;============================================
; RESET VECTOR ==============================
;============================================
ORG 0
GOTO START
;============================================
; INTERRUPT VECTOR ==========================
;============================================
ORG 4
BTFSC PIR1,0 ;TIMER1 OVERFLOW?
GOTO INT_SERVICE
RETFIE
;============================================
; MACRO DEFINITION ==========================
;============================================
BANK0 MACRO
BCF STATUS,RP0
ENDM
BANK1 MACRO
BSF STATUS,RP0
ENDM
;============================================
; 7 技弊膏飄 LED 迄飄 單撈磐 ================
;============================================
FND_TBL: ADDWF PC
RETLW B'11000000' ;'0'
RETLW B'11111001' ;'1'
RETLW B'10100100' ;'2'
RETLW B'10110000' ;'3'
RETLW B'10011001' ;'4'
RETLW B'10010010' ;'5'
RETLW B'10000010' ;'6'
RETLW B'11011000' ;'7'
RETLW B'10000000' ;'8'
RETLW B'10010000' ;'9'
;============================================
; 個眉 橇肺弊伐 =============================
;============================================
START: CALL INIT ;檬扁拳
;============================================
;===== 10矯 =================================
;============================================
START1: MOVLW B'11111110' ;FND 1
MOVWF PORTC
MOVF HOUR10,W
ANDWF LED_BUFF,W
MOVWF PORTB
CALL FND_CLEAR
CALL HOUR_BUTTON
;============================================
;===== 1矯 ==================================
;============================================
MOVLW B'11111101' ;FND 2
MOVWF PORTC
MOVF HOUR1,W
MOVWF PORTB
CALL FND_CLEAR
CALL MIN_BUTTON
;============================================
;===== 10盒 =================================
;============================================
MOVLW B'11111011' ;FND 3
MOVWF PORTC
MOVF MIN10,W
MOVWF PORTB
CALL FND_CLEAR
CALL SEC_BUTTON
;============================================
;===== 1盒 ==================================
;============================================
MOVLW B'11110111' ;FND 4
MOVWF PORTC
MOVF MIN1,W
MOVWF PORTB
CALL FND_CLEAR
;============================================
;===== 10檬 =================================
;============================================
MOVLW B'11101111' ;FND 5
MOVWF PORTC
MOVF SEC10,W
MOVWF PORTB
CALL FND_CLEAR
;============================================
;===== 1檬 ==================================
;============================================
MOVLW B'11011111' ;FND 6
MOVWF PORTC
MOVF SEC1,W
MOVWF PORTB
CALL FND_CLEAR
GOTO START1
FND_CLEAR: MOVLW .3
MOVWF DEL_CNT1
CLRF DEL_CNT2
FND_C1: DECFSZ DEL_CNT2
GOTO FND_C1
DECFSZ DEL_CNT1
GOTO FND_C1
MOVLW B'11111111'
MOVWF PORTB
RETURN
;============================================
;===== 檬 汲瀝(努府絹) ======================
;============================================
SEC_BUTTON: BTFSC PORTC,7
RETURN
CLRF SEC_BUFF
MOVLW SEC_BUFF
MOVWF FSR
CALL FND_CONV
RETURN
;============================================
;===== 盒 汲瀝 ==============================
;============================================
MIN_BUTTON: BTFSC PORTC,7 ;KEY PRESS?
GOTO MIN_B0 ;喘府瘤 臼疽欄擱 痢橇
BTFSC PRESS_CHK,0
GOTO MIN_B1 ;KEY PRESS啊 SET登絹 樂欄擱 痢橇
BSF PRESS_CHK,0 ;KEY PRESS SET
MOVLW .40
MOVWF SET_DEL ;TEMP DISPLAY COUNTER 檬扁拳
GOTO INC_MIN
MIN_B0: BCF PRESS_CHK,0 ;SWITCH PRESS BUFFER CLEAR
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -