📄 tc328.asm
字号:
RETLW 044H ; 173
RETLW 045H ; 174
RETLW 046H ; 175
RETLW 047H ; 176
RETLW 048H ; 177
RETLW 04AH ; 178
RETLW 04BH ; 179
RETLW 04CH ; 180
RETLW 04EH ; 181
RETLW 050H ; 182
RETLW 052H ; 183
RETLW 054H ; 184
RETLW 056H ; 185
RETLW 058H ; 186
RETLW 05AH ; 187
RETLW 05CH ; 188
RETLW 05EH ; 189
RETLW 061H ; 190
RETLW 063H ; 191 (0BFH)
RETLW 063H ; 191 (0BFH)
RETLW 063H ; 191 (0BFH)
RETLW 063H ; 191 (0BFH)
RETLW 063H ; 191 (0BFH)
RETLW 063H ; 191 (0BFH)
;---------------------------
BEGIN: CLRF INTCON
CALL INIT
MAIN: CLRWDT
CLRF STATUS
BSF INTCON,5 ; Timer0
BSF INTCON,7 ; 总
BTFSC F1_AD
GOTO ADCH
BTFSC F1_DS
GOTO DISP
RKEY: MOVF PORTA,W
MOVWF KEYD ; D5,D4
BTFSS KEYD,5
GOTO K_DN
BTFSS KEYD,4
GOTO K_DN
CLRF KEYT
BTFSS F3_0 ;
GOTO RK_X
K_UP: BTFSS F3_1
GOTO RK_X
CLRF F3_FLG
MOVLW 10H
MOVWF KLSD
GOTO RK_X
K_DN: BTFSC F3_0
GOTO K_DN1
CLRF KEYT
CLRF F3_FLG
BSF F3_0
GOTO RK_X
K_DN1: MOVLW 0F0H
SUBWF KEYT ; KEYT - 240
BTFSS SC ; KEYT >=240 as 66mS
GOTO RK_X
BTFSC F3_1
GOTO RK_X
BTFSS KEYD,5
GOTO K_INC
BTFSS KEYD,4
GOTO K_DEC
CLRF F3_FLG
GOTO RK_X
K_DEC: BSF F3_1
BCF F1_0 ; 新设定 2 度内也加热
BSF F1_DSS ; 闪烁
MOVF SETT,W
BTFSS SZ
GOTO K_D1
MOVLW 03CH
MOVWF SETT
GOTO RK_X
K_D1: DECF SETT
GOTO RK_X
K_INC: BSF F3_1
BCF F1_0 ; 新设定 2 度内也加热
BSF F1_DSS ; 闪烁
INCF SETT
MOVF SETT,W
SUBLW 03CH ; 60 - SETT
BTFSS SC ; 60 >=SETT
CLRF SETT
RK_X: GOTO MAIN
GOTO MAIN
GOTO MAIN
ADCH: BSF STATUS,5
BCF STATUS,6
MOVLW 04H
MOVWF ADCON1
BCF STATUS,5
MOVLW 41H
MOVWF ADCON0
BSF STATUS,5
MOVLW 03BH
MOVWF TRISA
BCF STATUS,5
NOP
NOP
NOP
NOP
MOVLW AD_BUF
MOVWF FSR
MOVLW 30H
MOVWF AD_N
BCF GIE
BSF ADCON0,2
ADLP: BTFSC ADCON0,2
GOTO ADLP
BSF GIE
MOVF ADRESH,W
SUBWF ADP0,F
BTFSC SZ
GOTO ADSS
MOVWF ADP0
GOTO AD_X
ADSS: MOVWF ADP0
MOVWF AD_P
MOVLW 036H ; 54
SUBWF AD_P,W ; AD_P - 54
BTFSC SC ; AD_P < 54
GOTO BT54 ; AD_P >=54
MOVLW 0FFH ; 显示 --
GOTO T_mM
BT54: MOVWF AD_P
SUBLW 0BFH ; 191 - (AD_P)
BTFSC SC ; 191 < (AD_P)
GOTO STBF ; 191 >=(AD_P)
MOVLW 63H
GOTO T_mM
STBF: MOVF AD_P,W
CALL GET_T
T_mM: SUBWF ADT0,F
BTFSC SZ
GOTO ADST
MOVWF ADT0
GOTO AD_X
ADST: MOVWF ADT0
MOVWF ADTT
AD_X: BCF F1_AD
GOTO MAIN
;----------------------------
DISP: BTFSS F1_DSS ; 闪烁
GOTO DIS1
MOVF SETT,W
GOTO DIS2
DIS1: MOVF ADTT,W
DIS2: MOVWF DISH ; HEX_BCD
CLRF DISB
ANDLW 080H
BTFSC SZ
GOTO DIS3
MOVF ADTT,W
MOVWF DISB
GOTO DIS5
DIS3: MOVF DISH,W
BTFSC STATUS,2
GOTO DIS5
INCF DISB
MOVF DISB,W
ANDLW 0FH
SUBLW 09H ; 09 - W
BTFSC STATUS,0 ; 09 < W
GOTO DIS4 ; 09 >=W
MOVLW 0F0H
ANDWF DISB,F
MOVLW 10H
ADDWF DISB,F
DIS4: DECFSZ DISH,F
GOTO DIS3
DIS5: MOVF DISB,W
CALL DIS_D
MOVWF LEDR
MOVWF PORTC
BTFSC F1_HTT
BCF PORTC,0 ; LED 亮
SWAPF DISB,W
CALL DIS_D
MOVWF LEDL
MOVWF PORTB
HEAT: MOVF ADTT,W
ANDLW 080H
BTFSS SZ
GOTO HT_H ; 小于 0 度总加热
MOVF SETT,W
SUBWF ADTT,W ; ADTT - SETT
BTFSS SC ; ADTT >=SETT
GOTO HT_L ; ADTT < SETT
BCF PORTA,2 ; JK
BCF F1_HTT
BSF LED
GOTO HT_X
HT_L: BTFSS F1_0 ; 新上电.新设定 2 度内也加热
GOTO HT_H
MOVF ADTT,W
ADDLW HCZ ; 2005-09-16
SUBWF SETT,W ; SETT - (ADTT+2)
BTFSS SC ; SETT >=(ADTT+2)
GOTO HT_X ; SETT < (ADTT+2)
HT_H: BSF PORTA,2 ; JK
BSF F1_HTT
BSF F1_0
BCF LED
HT_X: BCF F1_DS
GOTO MAIN
;********************************
INIT: CLRWDT
CLRF STATUS
MOVLW 03BH ; 0011`1011
MOVWF PORTA
MOVLW 0FFH ; 1111`1111
MOVWF PORTB
MOVWF PORTC
BSF STATUS,5 ; BANK1
MOVLW 08FH ; 1000`1111
MOVWF OPTION_R
MOVLW 03BH ; 0011`1011
MOVWF TRISA
MOVLW 000H
MOVWF TRISB
MOVWF TRISC
CLRF INTCON
CLRF PIE1
CLRF PIE2
CLRF SSPSTAT
MOVLW 04H
MOVWF ADCON1
BCF STATUS,5 ; BANK0
MOVLW 03BH ; 0011`1011
MOVWF PORTA
MOVLW 0FFH ; 1111`1111
MOVWF PORTB
MOVWF PORTC
BSF STATUS,5 ; BANK1
MOVLW 08FH ; 1000`1111
MOVWF OPTION_R
MOVLW 03BH ; 0011`1011
MOVWF TRISA
MOVLW 000H
MOVWF TRISB
MOVWF TRISC
CLRF INTCON
CLRF PIE1
CLRF PIE2
CLRF SSPSTAT
MOVLW 04H
MOVWF ADCON1
BCF STATUS,5 ; BANK0
MOVLW 03BH ; 0011`1011
MOVWF PORTA
MOVLW 0FFH ; 1111`1111
MOVWF PORTB
MOVWF PORTC
CLRF PIR1
CLRF PIR2
CLRF T1CON
CLRF T2CON
CLRF PCLATH
CLRF INTCON
CLRF CCP1CON
CLRF CCP2CON
CLRF RCSTA
CLRF 20H
CLRF 21H
CLRF 22H
CLRF 23H
CLRF 24H
CLRF 25H
CLRF 26H
MOVLW CSZ ; 2005-09-15
MOVWF SETT
MOVLW 15H
MOVWF CT10
MOVWF CT320
MOVWF ADTT
MOVLW 30H
MOVWF AD_N
MOVLW AD_BUF
MOVWF FSR
MOVLW 15H ; ADTT=21 对应的 buf_data
FL_N: MOVWF INDF
INCF FSR
DECFSZ AD_N
GOTO FL_N
RETURN
;***************************
I_PRO: BTFSC T0IF
GOTO IP_T0
CLRF PIR1
CLRF PIR2
BCF INTF
BCF RBIF
I_EXT: BCF STATUS,5
MOVF STO_FSR,W
MOVWF FSR
MOVF STO_PCH,W
MOVWF PCLATH
SWAPF STO_S,W
MOVWF STATUS
SWAPF STO_W,F
SWAPF STO_W,W
RETFIE
;--------------------------
;4/3.6864 *256 = 278uS
IP_T0: BCF T0IF
INCF KEYT
DECFSZ CT10 ; 10mS
GOTO I_EXT
MOVLW 24H ; 10mS=36*278uS
MOVWF CT10
BSF F1_AD
DECFSZ CT320 ; 320mS
GOTO I_EXT
MOVLW 20H
MOVWF CT320 ; 320mS=32*10mS
BTFSS F1_DSS ; 2005-09-16 不以 KLSD 值判
GOTO KSD1
DECFSZ KLSD
GOTO KSD1
CLRF F3_FLG
BCF F1_DSS
KSD1: BTFSS F1_DSS
GOTO IT_DSS
BTFSC F1_DSM
GOTO IT_DSS
BSF F1_DSM ; 灭
MOVLW 0FFH
MOVWF PORTB
BTFSC F1_HTT
MOVLW 0FEH ; LED 亮
MOVWF PORTC
GOTO I_EXT
IT_DSS: BCF F1_DSM
BSF F1_DS
GOTO I_EXT
;--------------------------
;**************************
ORG 07FEH
BCF PCLATH,3
GOTO BEGIN
NOP
NOP
NOP
BCF PCLATH,3
GOTO BEGIN
NOP
NOP
NOP
BCF PCLATH,3
GOTO BEGIN
ORG 0FF0H
NOP
NOP
NOP
BCF PCLATH,3
GOTO BEGIN
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -