; NEW MAIN BOARD OF 5660
; CHIP: PIC16C57
; ASSEMBLY:
; OSCILLATOR: XT ,16M Hz
; MEASUTE TEMPERATURE PARAMETER
; RM:100K IN 25'C
; RC:100K
; C :2.2uF
; WATCHDOG TIMER: ON
; DESIGNER: PRONICS_WCS
; DATE: 2003-3-29
; . ______________
; VSS < 1_|TOCK1 /MCLR|_28 RC
; VDD < 2_|VDD OSC1|_27 XTAL(4M)
; 3_|NC OSC2|_26 XTAL(4M)
; VSS 4_|VSS RC7|_25 < AC
; 5_|NC RC6|_24 > HEATER(H)
; LCD_COM4<> 6_|RA0 RC5|_23 > OSC&BEEP
; LCD_COM3<> 7_|RA1 RC4|_22 > FAN_H(L)
; LCD_COM2<> 8_|RA2 RC3|_21 < IR
; LCD_COM1<> 9_|RA3 RC2|_20 > FAN_L(L)
; SEG8 <> 10_|RB0 RC1|_19 <>AD_RM
; SEG7 <> 11_|RB1 RC0|_18 <>AD_RC
;SEG6&KEY(OSC)<> 12_|RB2 RB7|_17 <>SEG1&KEY(ON/OFF)
;SEG5&KEY(TE+)<> 13_|RB3 RB6|_16 <>SEG2&KEY(TIMER)
;SEG4&KEY(TM-)<> 14_|RB4 RB5|_15 <>SEG3&KEY(MODE)
; |______________|
; CTM8B57
LIST P=16C57
INCLUDE"F:\WCS\16C5X.INC"
;##################################
; DEFINE REGISTER
;##################################
V_SYSTEM EQU H'8'
;V_SYSTEM1 EQU H'1F' ;BANK0
V_SYSTEM3 EQU H'3F'
V_SYSTEM4 EQU H'50'
V_SYSTEM5 EQU H'5F' ;BANK2
V_SYSTEM6 EQU H'7F' ;BANK3
;##################################
; DEFINE FLAG REGISTER
;##################################
V_TS_FLAG EQU H'9' ;put time flag
V_INPUT_FLAG EQU H'A' ;put err handle an other flag
V_INPUT_FLAG1 EQU H'B' ;put key,buzzer,ac,ad flag
V_INPUT_FLAG2 EQU H'C' ;put ad flag
V_INPUT_FLAG3 EQU H'16' ;spare register
;##################################
; DEFINE PORT
;##################################
V_PA_DI EQU H'D'
V_PA_DA EQU H'E'
V_PC_DI EQU H'10'
V_PC_DA EQU H'F'
V_PB_DA EQU H'11'
;##################################
; DEFINE KEY REGISTER
;##################################
V_KEY_T EQU H'12'
V_KEY EQU H'13'
V_KEY_TIME EQU H'14'
;##################################
; DEFIN AD REGISTER
;##################################
V_AD_TEMP_L EQU H'15'
V_AD_TEMP_H EQU H'1F'
;##################################
; DEFINE TIME REGISTER
;##################################
V_TIME_20MS EQU H'17'
V_TIME_2S EQU H'18'
V_TIME_5MIN EQU H'19'
V_TIME_1H EQU H'1A'
V_TIME EQU H'1B'
V_PRESET_TEMP EQU H'1C'
V_AD_TEMP EQU H'1D'
;##################################
; DEFINE AC REGISTER
;##################################
V_AC_CNT EQU H'1E'
;##################################
; DEFINE DISPLAY REGISTER
;##################################
;BANK1
V_DIGI_COM1 EQU H'30'
V_DIGI_COM2 EQU H'31'
V_DIGI_COM3 EQU H'32'
V_DIGI_COM4 EQU H'33'
V_DISP_TIME EQU H'34'
V_DISP_CNT EQU H'35'
V_DIGI_TEMP EQU H'36'
;;#################################
; DEFINE BEEP
;##################################
V_TIME_BEEP EQU H'37'
V_KEY_TIME_REPEAT EQU H'38'
V_TIME_AC EQU H'39'
;-------------------------------------
; IR REGISTER
;------------------------------------
;###################################
; DEFINE SEND REGISTER
;###################################
V_IR_WIDTH EQU H'51' ; WIDTH OF HIGH PULSE
V_IR_STEP EQU H'52'
V_IR_CODE1 EQU H'53'
V_IR_CODE2 EQU H'54'
V_IR_CODE3 EQU H'55'
V_IR_CODE4 EQU H'56'
V_IR_CODE5 EQU H'57'
V_IR_CODE6 EQU H'58'
V_TIME_BLINK_2S EQU H'59'
V_TIME_BLINK_10S EQU H'5A'
V_TIME_BLINK EQU H'5B'
V_AD_TIME_DISCH EQU H'5C'
V_AD_TIME_RECH EQU H'5D'
;###################################
; DEFINE AD REGISTER
;###################################
V_AD_RM_H EQU H'70'
V_AD_RM_L EQU H'71'
V_AD_RC_H EQU H'72'
V_AD_RC_L EQU H'73'
V_AD_RESULT1 EQU H'74'
V_AD_RESULT2 EQU H'75'
V_AD_RESULT3 EQU H'76'
V_AD_TEMP1 EQU H'77'
V_AD_TEMP2 EQU H'78'
V_AD_TEMP3 EQU H'79'
V_AD_T1 EQU H'7A'
V_AD_T2 EQU H'7B'
V_AD_T3 EQU H'7C'
V_AD_T4 EQU H'7D'
V_AD_CNT EQU H'7E'
;##################################
; DEFINE SB
;##################################
;----------------------------------
; V_TS_FLAG(09H)
SB_AC_ERR EQU 0
SB_RUN EQU 1
SB_IR_EXCUTE EQU 2
SB_BLINK EQU 3
SB_BLINK_10S EQU 4
SB_MODE_L EQU 5
SB_MODE_H EQU 6
SB_MODE_AUTO EQU 7
;----------------------------------------
; V_INPUT_FLAG(0AH)
SB_KEY_EXCUTE EQU 0
SB_AD_H_L EQU 1
SB_IR_STATE EQU 2
SB_TEMP_REFRESH EQU 3
SB_TIME_REFRESH EQU 4
SB_OTHER_REFRESH EQU 5
SB_DISP_F EQU 6
SB_BEEP EQU 7
;----------------------------------------
; V_INPUT_FLAG1(0BH)
SB_HEAT_STATE EQU 0
SB_START EQU 1
SB_AD_ERR EQU 2
SB_IR_H2L EQU 3
SB_AD_FINISH EQU 4
SB_OSC EQU 5
SB_TIME_20MS EQU 6
;-----------------------------------------
; V_INPUT_FLAG2(0CH)
SB_AD_ENABLE EQU 0
SB_AD_START EQU 1
SB_AD_ACTIVE EQU 2
SB_AD_CALCU EQU 3
SB_AD_DISCH EQU 4
SB_AD_OK EQU 5
SB_AD_WHICH_R EQU 6
SB_AD_DIV EQU 7
;-----------------------------------------
; V_INPUT_FLAG3(16H)
SB_TIME_AD_20MS EQU 0
SB_AC_STATE EQU 1
SB_TMR EQU 2
SB_KEY_REPEAT EQU 3
SB_KEY_FINISH EQU 4
SB_AD_DIV1 EQU 5
SB_AD_DIV2 EQU 6
SB_AD_DIV3 EQU 7
;#########################################
; CONSTANT
;#########################################
; SYSTEM CONSTANT
C_SYSTEM EQU H'11'
C_SYSTEM1 EQU H'33'
C_SYSTEM2 EQU H'55'
C_SYSTEM3 EQU H'77'
C_SYSTEM4 EQU H'99'
C_SYSTEM5 EQU H'AA'
C_SYSTEM6 EQU H'CC'
;C_TIME_INT EQU D'233' ;8M
;C_TIME_INT EQU D'220' ;12M
;C_TIME_INT EQU D'207' ;16M
;C_TIME_INT EQU D'194' ;20M
;C_TIME_INT EQU D'181'
C_TIME_INT EQU D'134' ;4M
;-----------------------------------------
; TIME CONSTANT
C_TIME_20MS EQU D'160'
C_TIME_2S EQU D'100'
C_TIME_5MIN EQU D'150' ;D'150'
C_TIME_1H EQU D'12' ;D'12'
C_TIMER_1H EQU D'1'
C_TIMER_2H EQU D'2'
C_TIMER_3H EQU D'3'
C_TIMER_4H EQU D'4'
C_TIMER_5H EQU D'5'
C_TIMER_6H EQU D'6'
C_TIMER_7H EQU D'7'
C_TIMER_8H EQU D'8'
C_TIME_BLINK EQU D'30'
C_TIME_BLINK_2S EQU D'20'
C_TIME_BLINK_10S EQU D'25'
C_TIME_BEEP EQU D'3'
C_TIME_BEEP_S1 EQU D'31'
C_TIME_BEEP_S2 EQU D'28'
C_TIME_BEEP_S3 EQU D'3'
;-----------------------------------------
; KEY CONSTANT
C_KEY_TIME EQU D'60'
C_KEY_TIME_REPEAT EQU D'25'
C_KEY_ON_OFF EQU B'10000000'
C_KEY_TIMER EQU B'01000000'
C_KEY_MODE EQU B'00100000'
C_KEY_TEMP_UP EQU B'00001000'
C_KEY_TEMP_DOWN EQU B'00010000'
C_KEY_OSC EQU B'00000100'
;-----------------------------------------
; IR CONSTANT
C_IR_START EQU D'35' ;4.375MS(4.5MS)
C_IR_H_MAX EQU D'20' ;2.25MS
C_IR_H_MIN EQU D'12' ;1.37MS(1.68MS)
C_IR_L_MAX EQU D'10' ;1.13MS
C_IR_L_MIN EQU D'3' ;0.38MS(0.56MS)
C_IR_CNT EQU D'48'
C_IR_CUSTOM EQU H'55'
;------------------------------------------
; DISPLAY CONSTANT
;------------------------------------------
; AD CONSTANT
C_AD_TIME_RECH EQU D'50'
C_AD_TIME_DISCH EQU D'30';D'20'
C_RC EQU D'10'
;------------------------------------------
; AC CONSTANT
C_TIME_AC EQU D'25'
C_HZ_LOW EQU D'30'
C_HZ_HI EQU D'70'
;##########################################
; PORT DEFINE
;##########################################
;PA
HB_PA_LCD_COM1 EQU 0
HB_PA_LCD_COM2 EQU 1
HB_PA_LCD_COM3 EQU 2
HB_PA_LCD_COM4 EQU 3
;PB
;PC
HB_PC_AD_RM EQU 0
HB_PC_AD_RC EQU 1
HB_PC_FAN_L EQU 2
HB_PC_IR EQU 3
HB_PC_FAN_H EQU 4
HB_PC_OSC EQU 5
HB_PC_BEEP EQU 5
HB_PC_HEATER EQU 6
HB_PC_AC EQU 7
;#########################################
; MACRO DEFINE
;#########################################
M_RESET_HB_PORT_DI MACRO
MOVLW B'11111111'
TRIS PORTA
MOVLW B'00000000'
TRIS PORTB
MOVLW B'10001011'
TRIS PORTC
ENDM
M_RESET_HB_PORT_DA MACRO
MOVLW B'00000000'
MOVWF PORTA
MOVLW B'00000000'
MOVWF PORTB
MOVLW B'00110000'
MOVWF PORTC
ENDM
M_RESET_SB_PORT_DI MACRO
MOVLW B'11111111'
MOVWF V_PA_DI
MOVLW B'10001011'
MOVWF V_PC_DI
ENDM
M_RESET_SB_PORT_DA MACRO
MOVLW B'00000000'
MOVWF V_PA_DA
MOVLW B'00110000'
MOVWF V_PC_DA
MOVLW H'0F'
MOVWF V_PB_DA
ENDM
M_WDT_RESET_PORT MACRO
MOVLW B'00000000'
TRIS PORTB
MOVF V_PB_DA, W
MOVWF PORTB
MOVF V_PA_DI, W
TRIS PORTA
MOVF V_PA_DA, W
MOVWF PORTA
MOVF V_PC_DI, W
TRIS PORTC
MOVF V_PC_DA, W
MOVWF PORTC
ENDM
M_MAIN_REFRESH_PORT MACRO
MOVF V_PA_DI, W
TRIS PORTA
MOVF V_PA_DA, W
MOVWF PORTA
MOVLW B'00000000'
TRIS PORTB
MOVF V_PB_DA, W
MOVWF PORTB
MOVF V_PC_DI, W
TRIS PORTC
MOVF V_PC_DA, W
MOVWF PORTC
ENDM
M_BEEP_ACTIVE MACRO
MOVLW B'00100000'
XORWF PORTC, F
XORWF V_PC_DA, F
ENDM
M_JU_IR MACRO
BTFSS PORTC, HB_PC_IR
ENDM
M_READ_KEY MACRO
ENDM
M_OPEN_SB_HEATER MACRO
BSF V_PC_DA, HB_PC_HEATER
ENDM
M_CLOSE_SB_HEATER MACRO
BCF V_PC_DA, HB_PC_HEATER
ENDM
M_OPEN_HB_HEATER MACRO
BSF PORTC, HB_PC_HEATER
ENDM
M_CLOSE_HB_HEATER MACRO
BCF PORTC, HB_PC_HEATER
ENDM
M_CLOSE_FAN_L MACRO
BSF V_PC_DA, HB_PC_FAN_L
ENDM
M_OPEN_FAN_L MACRO
BCF V_PC_DA, HB_PC_FAN_L
ENDM
M_CLOSE_FAN_H MACRO
BSF V_PC_DA, HB_PC_FAN_H
ENDM
M_OPEN_FAN_H MACRO