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

📄 ir8604a.asm

📁 红外线学习控制及低压AC220V电力线载波组网通讯
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;/////version1.0   date:2002.7.24//////////////////////////////
;//// remote can not lock//////////////////////////////////////
;********************************************************************
;             BYTE      DEFINE
;********************************************************************
             P4   EQU  0D8H
             EMIT_COUNT         EQU  30H
             EMIT_TIMES         EQU  31H
             COUNT_ZERO         EQU  32H
             OLD_ZERO           EQU  33H
             NOISE              EQU  34H
             TEST_HEAD          EQU  35H
             SKIP_THROLD        EQU  36H              
             INFRA_LOW          EQU  37H
             SEND_LOW1          EQU  38H
             SEND_LOW2          EQU  39H
             SEND_LOW3          EQU  3AH
             SEND_LOW4          EQU  3BH
             COMMAND            EQU  3CH
             ID_HIGH            EQU  3DH
             ID_LOW             EQU  3EH
             RECE_LOW1          EQU  3FH
             RECE_LOW2          EQU  40H
             RECE_LOW3          EQU  41H
             RECE_LOW4          EQU  42H
             SEND_BUF1          EQU  43H
             SEND_BUF2          EQU  44H
             SEND_BUF3          EQU  45H
             SEND_BUF4          EQU  46H
             THROLD             EQU  47H
             RECE_TIME          EQU  48H
             CHANNEL_IDLE_COUNT EQU  49H
             MAC                EQU  4AH
             wr_iic_data1       equ  4BH
             iic_RD_data        EQU  4CH
             sample1_h          equ  4DH
             sample1_l          equ  4EH
             sample0_h          equ  4FH
             sample0_l          equ  50H
             level_h            equ  51H
             level_l            equ  52H
             stop_count         equ  53H    
             START_HIGH         EQU  54H
             START_LOW          EQU  55H
             STOP_LEARN         EQU  56H
             frame_count        EQU  57H
             IIC_ID_RD_DATA     EQU  58H
             DAT1_INFRA         EQU  59H
             DAT2_INFRA         EQU  5AH
             DAT3_INFRA         EQU  5BH
             INFRA_HIGH_WAIT    EQU  5CH
             INFRA_LOW_WAIT     EQU  5DH
             FAC_CODE_HIGH      EQU  5EH
             FAC_CODE_LOW       EQU  5FH
             COUNT_108MS        EQU  60H
             LOCAL_SHIFT        EQU  61H
             TRIG_SHIFT         EQU  62H
             SHIFT_SETUP        EQU  63H             
             COUNT_BEE          EQU  64H
             ACK_COUNT          EQU  65H
             TYPE               EQU  66H
             ROOM               EQU  67H
             TEAM               EQU  68H
             LOCAL_A_TYPE       EQU  69H
             LOCAL_B_TYPE       EQU  6AH
             LOCAL_C_TYPE       EQU  6BH
             LOCAL_D_TYPE       EQU  6CH
             LOCAL_A_ROOM       EQU  6DH
             LOCAL_B_ROOM       EQU  6EH
             LOCAL_C_ROOM       EQU  6FH
             LOCAL_D_ROOM       EQU  70H
             LOCAL_A_TEAM       EQU  71H
             LOCAL_B_TEAM       EQU  72H
             LOCAL_C_TEAM       EQU  73H
             LOCAL_D_TEAM       EQU  74H
             SHIFT_A_SETUP      EQU  75H
             SHIFT_B_SETUP      EQU  76H
             SHIFT_C_SETUP      EQU  77H
             SHIFT_D_SETUP      EQU  78H
             INFRA_RESPONSE     EQU  79H
             AUXR               EQU  8EH
             WATCHDOG           EQU  8FH
;//////////////////////////////////////////////////////////////////////
;            DIP      I/O PORT DEFINE
;**********************************************************************
;             SW_A_SETUP         BIT  P1.5
;             SW_A_RUN           BIT  P1.4
;             SW_A_ON            BIT  P3.5       ;K4
;             SW_A_OFF           BIT  P3.4
;//////////////////////////////////////////////////////////////////////
;             SW_B_SETUP         BIT  P1.1
;             SW_B_RUN           BIT  P1.0
;             SW_B_ON            BIT  P1.3       ;K3
;             SW_B_OFF           BIT  P1.2
;//////////////////////////////////////////////////////////////////////
;              SW_C_SETUP         BIT  P0.2
;              SW_C_RUN           BIT  P0.3
;              SW_C_ON            BIT  P0.0       ;K1
;              SW_C_OFF           BIT  P0.1
;//////////////////////////////////////////////////////////////////////
;              SW_D_SETUP         BIT  P0.6
;              SW_D_RUN           BIT  P0.7
;              SW_D_ON            BIT  P0.4       ;K2
;              SW_D_OFF           BIT  P0.5
;/////////////////////////////////////////////////////////////////////
;              TX1                BIT  P1.6
;              TX2                BIT  P1.7
;              TRIGGER            BIT  P2.6
;              BEE                BIT  P2.7
;              KEY_LOCAL          BIT  P3.1
;              CD4051_C           BIT  P2.0
;              CD4051_B           BIT  P2.1
;              CD4051_A           BIT  P2.2
;              SDA                BIT  P2.3
;              SCL                BIT  P2.4
;              SERIAL_OUT         BIT  P2.5
;              POWER_LINE_RX      BIT  P3.0
;              REM                BIT  P3.3
;              SCL_ID             BIT  P3.6
;              SDA_ID             BIT  P3.7
;//////////////////////////////////////////////////////////////////////
;//////////////////////////////////////////////////////////////////////
;            SMD      I/O PORT DEFINE
;**********************************************************************
              SW_A_SETUP         BIT  P3.5
              SW_A_RUN           BIT  P4.0
              SW_A_ON            BIT  P3.1       ;K4
              SW_A_OFF           BIT  P3.4
;//////////////////////////////////////////////////////////////////////
              SW_B_SETUP         BIT  P1.7
              SW_B_RUN           BIT  P4.3
              SW_B_ON            BIT  P1.5       ;K3
              SW_B_OFF           BIT  P1.6
;//////////////////////////////////////////////////////////////////////             
              SW_C_SETUP         BIT  P0.1
              SW_C_RUN           BIT  P0.0
              SW_C_ON            BIT  P0.3       ;K1
              SW_C_OFF           BIT  P0.2
;//////////////////////////////////////////////////////////////////////
              SW_D_SETUP         BIT  P1.2
              SW_D_RUN           BIT  P1.3
              SW_D_ON            BIT  P1.0       ;K2
              SW_D_OFF           BIT  P4.2
;/////////////////////////////////////////////////////////////////////
              TX1                BIT  P0.4
              TX2                BIT  P0.5
              TRIGGER            BIT  P0.6
              BEE                BIT  P1.1
              KEY_LOCAL          BIT  P1.4
              CD4051_C           BIT  P2.0
              CD4051_B           BIT  P2.1
              CD4051_A           BIT  P2.2
              SDA                BIT  P2.3
              SCL                BIT  P2.4
              SERIAL_OUT         BIT  P2.5
              POWER_LINE_RX      BIT  P3.0
              REM                BIT  P3.3
              SCL_ID             BIT  P3.6
              SDA_ID             BIT  P3.7
;**********************************************************************
;                   BIT DEFINE
;**********************************************************************
;            TX1                  BIT  04H
;            TX2                  BIT  05H
;            F_ID_KEY             BIT  09H
             F_STOP_LINE          BIT  09H 
             F_SEND_ENABLE        BIT  0AH
             F_CHANNEL_OCCUPY     BIT  0BH
             F_FALL               BIT  0CH
             F_RISE               BIT  0DH
             F_DATA               BIT  0EH
             F_CONTROL_STATE      BIT  0FH
             F_HEAD               BIT  10H  
             F_SAMPLE_ONE         BIT  11H
             F_SAMPLE_TWO         BIT  12H
             F_SEND_HIGH          BIT  13H
             F_MOTION             BIT  14H
             F_SEND_ZERO1         BIT  15H
             F_GROUP              BIT  16H               
             RECE_BORD_FLAG       BIT  17H
             F_SEND_RUNNING       BIT  18H
             F_INFRA_RESPONSE     BIT  19H
             F_MATH_LEVEL         BIT  25H 
             F_MATH_SAMPLE        BIT  26H
             F_10MS_WAIT          BIT  2AH
             F_10MS_READ          BIT  2BH
             F_10MS_LEARN         BIT  2CH 
             F_RESPONSE           BIT  2DH
             f_learn              bit  2Eh
             f_write              bit  2Fh
             f_necessary          bit  30H
             f_one_byte           bit  31H
             f_frame              bit  32H
             f_send               bit  33H
             F_FIRST_READ         BIT  34H
             f_second_read        bit  35H
             f_convert            bit  36h
             plority              bit  37H
             f_two_byte           bit  38H
             f_stop               bit  39H
             f_exit               bit  3AH
             f_fill               bit  3BH
             f_return             bit  3CH
             F_FIRST_LEARNED      BIT  3DH
             F_SECOND_LEARNED     BIT  3EH
             F_LEARN_RUNNING      BIT  3FH
             F_LOCAL              BIT  40H
             F_STATE_LOCAL        BIT  41H
             F_TRIGGER            BIT  42H
             F_INFRA              BIT  43H
             F_INFRA_WAIT         BIT  44H
             F_NO_ANSWER          BIT  45H
             F_ACK_WAIT           BIT  46H
             F_TEAM               BIT  47H
             F_TYPE               BIT  48H
             F_ROOM               BIT  49H
             F_SETUP              BIT  4DH
             F_REPEAT1            BIT  5DH
             F_REPEAT2            BIT  5EH
             A_ON_LEARNED         BIT  5FH
             A_OFF_LEARNED        BIT  60H
             B_ON_LEARNED         BIT  61H
             B_OFF_LEARNED        BIT  62H
             C_ON_LEARNED         BIT  63H
             C_OFF_LEARNED        BIT  64H
             D_ON_LEARNED         BIT  65H
             D_OFF_LEARNED        BIT  66H
             F_A_SETUP            BIT  67H
             F_B_SETUP            BIT  68H
             F_C_SETUP            BIT  69H
             F_D_SETUP            BIT  6AH  
             ORG 00H
             LJMP MAIN
             ORG 0003H
             LJMP INT0
             ORG 000BH
             LJMP TT0
             ORG 0013H
             LJMP INT1
             ORG 001BH
             LJMP TIMER1
             ORG 002BH
             LJMP TT2
             ORG 0040H
MAIN:       MOV R0,#00H
            MOV SP,#07H
FILL_ZERO:  MOV @R0,#00H
            INC R0
            CJNE R0,#255,FILL_ZERO
            MOV SHIFT_A_SETUP,#0FFH
            MOV SHIFT_B_SETUP,#0FFH              
            MOV SHIFT_C_SETUP,#0FFH              
            MOV SHIFT_D_SETUP,#0FFH              
            MOV R7,#50
DELAY_LOOP: LCALL DELAY_10MS
            DJNZ R7,DELAY_LOOP
;*****************************************************************
;          POWER UP READ EEPROM
;*****************************************************************
             MOV DPTR,#00H
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             ANL A,#0FH
             MOV ID_HIGH,A            
             MOV DPTR,#01H
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             MOV ID_LOW,A
             CJNE A,#0FFH,EEPROM0
             MOV A,ID_HIGH
             CJNE A,#0FH,EEPROM0             
             MOV  ID_HIGH,#00H
             MOV  ID_LOW,#00H
EEPROM0:     MOV DPTR,#03H            ;03H A TEAM ROOM
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             MOV LOCAL_A_ROOM,A
             MOV DPTR,#04H            ;04H A TEAM TYPE
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             MOV LOCAL_A_TYPE,A
             MOV DPTR,#05H            ;05H A TEAM TEAM
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             MOV LOCAL_A_TEAM,A
             MOV A,LOCAL_A_ROOM
             CLR C
             SUBB A,#17
             JNC EEPROM1
             SJMP   EEPROM2
EEPROM1:     
             MOV LOCAL_A_TEAM,#00H
             MOV LOCAL_A_TYPE,#00H
             MOV LOCAL_A_ROOM,#00H
EEPROM2:     MOV DPTR,#06H            ;06H B TEAM ROOM
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             MOV LOCAL_B_ROOM,A
             MOV DPTR,#07H            ;07H B TEAM TYPE
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             MOV LOCAL_B_TYPE,A
             MOV DPTR,#08H            ;08H B TEAM TEAM
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             MOV LOCAL_B_TEAM,A
             MOV A,LOCAL_B_ROOM
             CLR C
             SUBB A,#17
             JNC EEPROM3
             SJMP   EEPROM4
EEPROM3:     
             MOV LOCAL_B_TEAM,#00H
             MOV LOCAL_B_TYPE,#00H
             MOV LOCAL_B_ROOM,#00H
EEPROM4:     MOV DPTR,#09H            ;09H C TEAM ROOM
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             MOV LOCAL_C_ROOM,A
             MOV DPTR,#0AH            ;0AH C TEAM TYPE
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             MOV LOCAL_C_TYPE,A
             MOV DPTR,#0BH            ;0BH C TEAM TEAM
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             MOV LOCAL_C_TEAM,A
             MOV A,LOCAL_C_ROOM
             CLR C
             SUBB A,#17
             JNC EEPROM5
             SJMP   EEPROM6
EEPROM5:     
             MOV LOCAL_C_TEAM,#00H
             MOV LOCAL_C_TYPE,#00H
             MOV LOCAL_C_ROOM,#00H
EEPROM6:     MOV DPTR,#0CH            ;09H C TEAM ROOM
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             MOV LOCAL_D_ROOM,A
             MOV DPTR,#0DH            ;0AH C TEAM TYPE
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             MOV LOCAL_D_TYPE,A
             MOV DPTR,#0EH            ;0BH C TEAM TEAM
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             MOV LOCAL_D_TEAM,A
             MOV A,LOCAL_D_ROOM
             CLR C
             SUBB A,#17
             JNC EEPROM7
             SJMP   EEPROM8
EEPROM7:     
             MOV LOCAL_C_TEAM,#00H
             MOV LOCAL_C_TYPE,#00H
             MOV LOCAL_C_ROOM,#00H
EEPROM8:     MOV DPTR,#10H    
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             JZ EEPROM9
             CLR  A_ON_LEARNED
             SJMP EEPROM10
EEPROM9:     SETB A_ON_LEARNED
EEPROM10:    MOV DPTR,#11H    
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             JZ EEPROM11
             CLR  A_OFF_LEARNED
             SJMP EEPROM12
EEPROM11:    SETB A_OFF_LEARNED
EEPROM12:    MOV DPTR,#12H    
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             JZ EEPROM13
             CLR  B_ON_LEARNED
             SJMP EEPROM14
EEPROM13:    SETB B_ON_LEARNED
EEPROM14:    MOV DPTR,#13H    
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             JZ EEPROM15
             CLR  B_OFF_LEARNED
             SJMP EEPROM16
EEPROM15:    SETB B_OFF_LEARNED
EEPROM16:    MOV DPTR,#14H    
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             JZ EEPROM17
             CLR  C_ON_LEARNED
             SJMP EEPROM18
EEPROM17:    SETB C_ON_LEARNED
EEPROM18:    MOV DPTR,#15H    
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             JZ EEPROM19
             CLR  C_OFF_LEARNED
             SJMP EEPROM20
EEPROM19:    SETB C_OFF_LEARNED
EEPROM20:    MOV DPTR,#16H    
             LCALL READBYTE
             MOV A,IIC_RD_DATA
             JZ EEPROM21
             CLR  D_ON_LEARNED
             SJMP EEPROM22
EEPROM21:    SETB D_ON_LEARNED
EEPROM22:    MOV DPTR,#17H    
             LCALL READBYTE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -