您的位置:首页东哥开发网家用电器开发
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

用PIC16C57做的带显示的烤箱

[日期:2008-01-04 ] [来源: 作者:] [字体: (投递新闻)

 

; 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