📄 ir8604a.asm
字号:
;/////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 + -