📄 heaterf54.asm
字号:
;HEATER
;XT F=4.0MHz
;T=1uS
LIST P=PIC16C54C
#INCLUDE<P16C5X.INC>
; __CONFIG 3FF1H
;#DEFINE ;BANK1 BSF STATUS,RP0
;#DEFINE ;BANK0 BCF STATUS,RP0
#DEFINE LED1 BSF PORTA,0H
#DEFINE LED2 BCF PORTA,0H
INC EQU 02H
DEC EQU 03H
BEE EQU 01H
COUNT1 EQU 10H
COUNT2 EQU 11H
COUNT3 EQU 12H
COUNT4 EQU 13H
COUNT5 EQU 14H
COUNT6 EQU 15H
COUNT7 EQU 16H
COUNT8 EQU 17H
DISP1 EQU 18H
DISP2 EQU 19H
TEMP EQU 1AH
STEMP EQU 1BH
COUNT9 EQU 1CH
FLAG EQU 1DH
COUNT10 EQU 1EH
ORG 1FFH
GOTO START
ORG 00H
;==========================================
;TABLE1 WILL SHUT OFF THE HEATER
TABLE1 ADDWF PCL,1
RETLW 3FH;0
RETLW 06H;1
RETLW 5BH;2
RETLW 4FH;3
RETLW 66H;4
RETLW 6DH;5
RETLW 7DH;6
RETLW 07H;7
RETLW 7FH;8
RETLW 6FH;9
;TABLE1 WILL TURN ON THE HEATER
TABLE2 ADDWF PCL,1
RETLW 0BFH;0
RETLW 86H;1
RETLW 0DBH;2
RETLW 0CFH;3
RETLW 0E6H;4
RETLW 0EDH;5
RETLW 0FDH;6
RETLW 87H;7
RETLW 0FFH;8
RETLW 0EFH;9
;==========================================
;DELAY2MS
; MOVLW 03H
; MOVWF COUNT1
; MOVLW 096H
; MOVWF COUNT2
;LOOP0 DECFSZ COUNT2,1 ;DELAY 2.00mS
; GOTO LOOP0
; DECFSZ COUNT1,1
; GOTO LOOP0
; RETLW 0H
;==========================================
DELAY1MS
MOVLW 02H
MOVWF COUNT1
MOVLW 049H ;DELAY 1.00mS
MOVWF COUNT2
LOOP000 DECFSZ COUNT2,1
GOTO LOOP000
DECFSZ COUNT1,1
GOTO LOOP000
RETLW 0H
;===================================
;DELAY3MS
;; MOVLW 04H
; MOVWF COUNT1
; MOVLW 0E2H
; MOVWF COUNT2
;LOOP00 DECFSZ COUNT2,1 ;DELAY 3.00mS 2.995
; GOTO LOOP00
; DECFSZ COUNT1,1
; GOTO LOOP00
; NOP
; NOP
; RETLW 0H
;===================================
;DELAY5MS
; MOVLW 07H
; MOVWF COUNT1
; MOVLW 7AH ;DELAY 5.00mS
; MOVWF COUNT2
;LOOP01 DECFSZ COUNT2,1
; GOTO LOOP01
; DECFSZ COUNT1,1
; GOTO LOOP01
; RETLW 0H
;============================
;==============================
DELAY20MS
MOVLW 1AH
MOVWF COUNT1
MOVLW 0F6H
MOVWF COUNT2
LOOP03 DECFSZ COUNT2,1 ;DELAY 20.00mS
GOTO LOOP03
DECFSZ COUNT1,1
GOTO LOOP03
RETLW 0H
;================================
;==============================
DELAY100MS
MOVLW 82H
MOVWF COUNT1
MOVLW 0DBH ;DELAY 100.00mS
MOVWF COUNT2
LOOP05 DECFSZ COUNT2,1
GOTO LOOP05
DECFSZ COUNT1,1
GOTO LOOP05
RETLW 0H
;================================
;================================
DELAY500MS
MOVLW 03H
MOVWF COUNT1
MOVLW 089H
MOVWF COUNT2
CLRF COUNT3
LOOP07 DECFSZ COUNT3,1 ;DELAY 499.748 mS
GOTO LOOP07
DECFSZ COUNT2,1
GOTO LOOP07
DECFSZ COUNT1,1
GOTO LOOP07
RETLW 0H
;================================
;================================
BIN_2BCD
CLRF DISP1
CLRF DISP2
LOOP401 MOVLW D'10'
SUBWF TEMP,1
BTFSS STATUS,C
GOTO OVER1
INCF DISP1,1
GOTO LOOP401
OVER1 MOVLW D'10'
ADDWF TEMP,0
MOVWF DISP2
RETLW 0H
;================================
DISPOFF MOVF DISP1,W
CALL TABLE1
MOVWF PORTB
LED1
; CALL DELAY1MS
CALL DELAY1MS
CALL DELAY1MS
CALL DELAY1MS
MOVF DISP2,W
CALL TABLE1
MOVWF PORTB
LED2
; CALL DELAY1MS
CALL DELAY1MS
CALL DELAY1MS
CALL DELAY1MS
CLRF PORTB
RETLW 0H
;================================
DISPON MOVF DISP1,W
CALL TABLE2
MOVWF PORTB
LED1
; CALL DELAY1MS
CALL DELAY1MS
CALL DELAY1MS
CALL DELAY1MS
MOVF DISP2,W
CALL TABLE2
MOVWF PORTB
LED2
; CALL DELAY1MS
CALL DELAY1MS
CALL DELAY1MS
CALL DELAY1MS
RETLW 0H
;================================
TABLE3 ADDWF PCL,1
RETLW D'15'
RETLW D'16'
RETLW D'16'
RETLW D'17'
RETLW D'17'
RETLW D'18'
RETLW D'18'
RETLW D'19'
RETLW D'19';50
RETLW D'20'
RETLW D'20'
RETLW D'21'
RETLW D'21'
RETLW D'22'
RETLW D'22'
RETLW D'23'
RETLW D'23'
RETLW D'24'
RETLW D'24';60
RETLW D'25'
RETLW D'25'
RETLW D'26'
RETLW D'26'
RETLW D'27'
RETLW D'27'
RETLW D'28'
RETLW D'28'
RETLW D'29'
RETLW D'29';70
RETLW D'29'
RETLW D'30'
RETLW D'30'
RETLW D'31'
RETLW D'31'
RETLW D'32'
RETLW D'32'
RETLW D'33'
RETLW D'33'
RETLW D'34';80
RETLW D'34'
RETLW D'34'
RETLW D'35'
RETLW D'35'
RETLW D'35'
RETLW D'36'
RETLW D'36'
RETLW D'36'
RETLW D'37'
RETLW D'37';90
RETLW D'38'
RETLW D'38'
RETLW D'39'
RETLW D'39'
RETLW D'39'
RETLW D'40'
RETLW D'40'
RETLW D'41'
RETLW D'41'
RETLW D'41';100
RETLW D'42'
RETLW D'42'
RETLW D'42'
RETLW D'43'
RETLW D'43'
RETLW D'43'
RETLW D'44'
RETLW D'44'
RETLW D'44'
RETLW D'45';110
RETLW D'45'
RETLW D'46'
RETLW D'46'
RETLW D'47'
RETLW D'47'
RETLW D'47'
RETLW D'48'
RETLW D'48'
RETLW D'49'
RETLW D'49';120
RETLW D'49'
RETLW D'50'
RETLW D'50'
RETLW D'51'
RETLW D'51'
RETLW D'51'
RETLW D'52'
RETLW D'52'
RETLW D'52'
RETLW D'53';130
RETLW D'53'
RETLW D'54'
RETLW D'54'
RETLW D'54'
RETLW D'55'
RETLW D'55'
RETLW D'56'
RETLW D'56'
RETLW D'56'
RETLW D'57';140
RETLW D'57'
RETLW D'57'
RETLW D'58'
RETLW D'58'
RETLW D'59'
RETLW D'59'
RETLW D'60'
RETLW D'60'
RETLW D'60'
RETLW D'61';150
RETLW D'61'
RETLW D'62'
RETLW D'62'
RETLW D'62'
RETLW D'63'
RETLW D'63'
RETLW D'63'
RETLW D'64'
RETLW D'64'
RETLW D'65';160
RETLW D'65'
RETLW D'65'
RETLW D'66'
RETLW D'66'
RETLW D'67'
RETLW D'67'
RETLW D'67'
; MOVWF PORTB
RETLW D'68'
RETLW D'68'
RETLW D'69';170
RETLW D'69'
RETLW D'69'
RETLW D'70'
RETLW D'70'
RETLW D'71'
RETLW D'71'
RETLW D'71'
RETLW D'72'
RETLW D'72'
RETLW D'73';180
RETLW D'73'
RETLW D'73'
RETLW D'74'
RETLW D'74'
RETLW D'75'
RETLW D'75'
RETLW D'75'
RETLW D'76'
RETLW D'76'
;===================================
;================================
;================================
START CLRF PORTA
CLRF PORTB
; CLRF INTCON
;BANK1
CLRW
TRIS PORTB
MOVLW B'00011100'
TRIS PORTA
MOVLW B'11111000'
OPTION
;BANK0
BSF PORTA,BEE
CALL DELAY100MS
CALL DELAY100MS
BCF PORTA,BEE
FAULT
CLRF FLAG
MOVLW D'102';42
MOVWF STEMP
CLRF COUNT7
MOVLW D'11'
MOVWF COUNT8
LOOP100 BTFSC FLAG,0
GOTO LOOP99
CALL DELAY1MS
CALL DELAY1MS
DECFSZ COUNT7,1
GOTO LOOP99
DECFSZ COUNT8,1
GOTO LOOP99
BSF PORTA,BEE
CALL DELAY100MS
BCF PORTA,BEE
CALL DELAY500MS
CALL DELAY500MS
NOP
GOTO HEATING
LOOP99 MOVLW D'42'
SUBWF STEMP,W
BTFSS STATUS,C
GOTO FAULT
MOVLW D'189'
SUBWF STEMP,W
BTFSC STATUS,C
GOTO FAULT
MOVLW D'42';MOVLW D'22'
SUBWF STEMP,W
CALL TABLE3
MOVWF TEMP
CALL BIN_2BCD
CALL DISPOFF
LOOP101 BTFSC PORTA,INC
GOTO LOOP102
CALL DELAY20MS
BTFSC PORTA,INC
GOTO LOOP102
BTFSC PORTA,DEC
GOTO LOOP103
CALL DELAY20MS
BTFSC PORTA,DEC
GOTO LOOP103
CLRF PORTB
BSF PORTA,BEE
CALL DELAY100MS
BCF PORTA,BEE
CALL DELAY500MS
CALL DELAY500MS
NOP
GOTO HEATING
LOOP102 BTFSC PORTA,DEC
GOTO LOOP100
CALL DELAY20MS
BTFSC PORTA,DEC
GOTO LOOP100
CLRF PORTB
BSF FLAG,0
MOVLW D'5'
SUBWF STEMP,1
BSF PORTA,BEE
CALL DELAY100MS
BCF PORTA,BEE
CALL DELAY500MS
NOP
GOTO LOOP99
LOOP103 MOVLW D'5'
ADDWF STEMP,1
BSF FLAG,0
CLRF PORTB
BSF PORTA,BEE
CALL DELAY100MS
BCF PORTA,BEE
CALL DELAY500MS
NOP
GOTO LOOP99
;====================================
HEATING
;BANK1
CLRW
TRIS PORTB
MOVLW B'00011100'
TRIS PORTA
MOVLW B'11111000'
OPTION
;BANK0
CLRF TMR0
CALL DELAY1MS
MOVF TMR0,W
MOVWF TEMP
MOVLW D'42'
SUBWF TEMP,W
BTFSS STATUS,C
GOTO EER0
MOVLW D'189'
SUBWF TEMP,W
BTFSC STATUS,C
GOTO EER1
MOVF TEMP,W
SUBWF STEMP,W
BTFSS STATUS,C
GOTO STOP
MOVLW D'42'
SUBWF TEMP,W
CALL TABLE3
MOVWF TEMP
CALL BIN_2BCD
LOOP1000
CALL DISPON
BTFSC PORTA,INC
GOTO LOOP900
CALL DELAY20MS
BTFSC PORTA,INC
GOTO LOOP900
BTFSC PORTA,DEC
GOTO LOOP900
CALL DELAY20MS
BTFSC PORTA,DEC
GOTO LOOP900
CALL DISPOFF
CALL DELAY500MS
CALL DELAY500MS
NOP
GOTO START
LOOP900 DECFSZ COUNT9,1
GOTO LOOP1000
NOP
GOTO HEATING
STOP CLRF PORTB
;BANK1
CLRW
TRIS PORTB
MOVLW B'00011100'
TRIS PORTA
MOVLW B'11111000'
OPTION
;BANK0
MOVLW D'100'
MOVWF COUNT10
MOVLW D'62'
MOVWF COUNT9
BSF PORTA,BEE
SSTOP CALL DELAY500MS;DELAY 120S
FFF CALL DISPOFF
DECFSZ COUNT9,1
GOTO FFF
MOVLW D'62'
MOVWF COUNT9
DECFSZ COUNT10,1
GOTO SSTOP
BCF PORTA,BEE
LOOP88 ;BANK1
CLRW
TRIS PORTB
MOVLW B'00011100'
TRIS PORTA
MOVLW B'11111000'
OPTION
;BANK0
CLRF TMR0
CALL DELAY1MS
MOVF TMR0,W
MOVWF TEMP
MOVLW D'42'
SUBWF TEMP,W
BTFSS STATUS,C
GOTO EER0
MOVLW D'189'
SUBWF TEMP,W
BTFSC STATUS,C
GOTO EER1
MOVLW D'42'
SUBWF TEMP,W
CALL TABLE3
MOVWF TEMP
CALL BIN_2BCD
LOOP1001
CALL DISPOFF
BTFSC PORTA,INC
GOTO LOOP1002
CALL DELAY20MS
BTFSC PORTA,INC
GOTO LOOP1002
BTFSC PORTA,DEC
GOTO LOOP1002
CALL DELAY100MS
BTFSC PORTA,DEC
GOTO LOOP1002
NOP
GOTO START
LOOP1002
DECFSZ COUNT9,1
GOTO LOOP1001
NOP
GOTO LOOP88
EER0 ;BANK1
CLRW
TRIS PORTB
MOVLW B'00011100'
TRIS PORTA
MOVLW B'11111000'
OPTION
;BANK0
MOVLW B'01110001'
MOVWF PORTB
; LED2
BSF PORTA,BEE
NOP
GOTO EER0
EER1 MOVLW B'01110110'
MOVWF PORTB
BSF PORTA,BEE
GOTO EER1
;============================
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -