⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tc328.asm

📁 用 PIC16F73 做的温控器,压缩包中有硬件排版图、原程序、还有编译好的 HEX 文件。
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	  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 + -