📄 infra.asm
字号:
JC REMOTE8
LJMP REMOTE9 ; DATA>=24
REMOTE8: MOV A,DAT3_INFRA
CLR C
SUBB A,#16
MOV TYPE,A
SETB F_TYPE
SETB F_INFRA_WAIT
MOV INFRA_HIGH_WAIT,#00H
MOV INFRA_LOW_WAIT,#00H
MOV INFRA_RESPONSE,#00H
SETB F_INFRA_RESPONSE
LJMP REMOTE68 ; 16<=DATA<=23
REMOTE9: MOV A,DAT3_INFRA
XRL A,#25
JNZ REMOTE10
SETB F_CONTROL_STATE ;ON
CLR F_INFRA_WAIT
MOV INFRA_HIGH_WAIT,#00H
MOV INFRA_LOW_WAIT,#00H
LJMP REMOTE18
REMOTE10: MOV A,DAT3_INFRA
XRL A,#26
JNZ REMOTE11
CLR F_CONTROL_STATE
CLR F_INFRA_WAIT ;OFF
MOV INFRA_HIGH_WAIT,#00H
MOV INFRA_LOW_WAIT,#00H
LJMP REMOTE18
REMOTE11: MOV A,DAT3_INFRA
XRL A,#27
JNZ REMOTE12
CLR F_GROUP ;+
CLR F_ROOM
CLR F_TYPE
CLR F_TEAM
CLR F_INFRA_WAIT
MOV INFRA_HIGH_WAIT,#00H
MOV INFRA_LOW_WAIT,#00H
LJMP INFRA_REMOTE_QUIT
REMOTE12: MOV A,DAT3_INFRA
XRL A,#28
JNZ REMOTE13
CLR F_GROUP ;-
CLR F_ROOM
CLR F_TYPE
CLR F_TEAM
CLR F_INFRA_WAIT
MOV INFRA_HIGH_WAIT,#00H
MOV INFRA_LOW_WAIT,#00H
LJMP INFRA_REMOTE_QUIT
REMOTE13: MOV A,DAT3_INFRA
CJNE A,#29,REMOTE14
SETB F_TEAM ;A
MOV TEAM,#1
SETB F_INFRA_WAIT
MOV INFRA_HIGH_WAIT,#00H
MOV INFRA_LOW_WAIT,#00H
MOV INFRA_RESPONSE,#00H
SETB F_INFRA_RESPONSE
LJMP REMOTE68
REMOTE14: CJNE A,#30,REMOTE15
SETB F_TEAM ;B
MOV TEAM,#2
SETB F_INFRA_WAIT
MOV INFRA_HIGH_WAIT,#00H
MOV INFRA_LOW_WAIT,#00H
MOV INFRA_RESPONSE,#00H
SETB F_INFRA_RESPONSE
LJMP REMOTE68
REMOTE15: CJNE A,#31,REMOTE16
SETB F_TEAM ;C
MOV TEAM,#3
SETB F_INFRA_WAIT
MOV INFRA_HIGH_WAIT,#00H
MOV INFRA_LOW_WAIT,#00H
MOV INFRA_RESPONSE,#00H
SETB F_INFRA_RESPONSE
LJMP REMOTE68
REMOTE16: CJNE A,#32,REMOTE17
SETB F_TEAM ;D
MOV TEAM,#4
SETB F_INFRA_WAIT
MOV INFRA_HIGH_WAIT,#00H
MOV INFRA_LOW_WAIT,#00H
MOV INFRA_RESPONSE,#00H
SETB F_INFRA_RESPONSE
LJMP REMOTE68
REMOTE17:
CLR F_TYPE
CLR F_ROOM
CLR F_TEAM
CLR F_GROUP
CLR F_INFRA_WAIT
MOV INFRA_HIGH_WAIT,#00H
MOV INFRA_LOW_WAIT,#00H
LJMP INFRA_REMOTE_QUIT
;******************************************************
; MAC DETECT
;******************************************************
REMOTE18: JB F_TEAM,REMOTE18X2
JB F_ROOM,REMOTE18X1
MOV TEAM,LOCAL_A_TEAM
SJMP REMOTE18X2
REMOTE18X1: MOV TEAM,#00H
JNB F_CONTROL_STATE,REMOTE18X2
MOV TEAM,#1
REMOTE18X2: CLR TF1
CLR TR1
CLR ET1
MOV A,LOCAL_A_ROOM ;
CLR C
SUBB A,#1
ANL A,#00001111B
CLR C
RLC A
CLR C
RLC A
CLR ACC.1
SETB ACC.0
MOV MAC,A
CLR F_10MS_WAIT
MOV CHANNEL_IDLE_COUNT,#00H
CLR F_SAMPLE_ONE
CLR F_SAMPLE_TWO
MOV COUNT_ZERO,#00H
CLR F_SEND_ENABLE
LJMP REMOTE20
REMOTE19: LCALL EVENT_JUDGE
MOV THROLD,#07H
SETB CD4051_C
SETB CD4051_B
SETB CD4051_A
JB F_SEND_ENABLE,REMOTE20
MOV A,COUNT_ZERO
CLR C
SUBB A,#100
JC REMOTE19
LJMP INFRA_REMOTE_QUIT ;ALREADY DISPOSED
;**************************************************************
; COMMAND ANALYSIS
;**************************************************************
REMOTE20:
CLR F_NO_ANSWER
JB F_TYPE,REMOTE21
MOV TYPE,#2
SETB F_TYPE
REMOTE21: JB F_ROOM,REMOTE22
MOV ROOM,LOCAL_A_ROOM
REMOTE22: JNB F_GROUP,REMOTE26
CLR F_GROUP
JNB F_CONTROL_STATE,REMOTE23
LJMP INFRA_REMOTE_QUIT ;GROUP ON ERROR
REMOTE23: MOV A,TYPE
XRL A,#02H
JNZ REMOTE24
MOV ROOM,#00H
MOV TEAM,#00H
SETB F_RESPONSE ;LAMP GROUP OFF
MOV COUNT_BEE,#00H
MOV COMMAND,#00H
LCALL GENERATE_COM
SETB F_SEND_RUNNING
REMOTE24: LJMP INFRA_REMOTE_QUIT
;///////////////////////////////////////////////////////
; A TEAM ?
;///////////////////////////////////////////////////////
REMOTE26: MOV A,TYPE
XRL A,LOCAL_A_TYPE
JZ REMOTE27
LJMP REMOTE36
REMOTE27: MOV A,ROOM
XRL A,LOCAL_A_ROOM
JZ REMOTE28
LJMP REMOTE36
REMOTE28: MOV A,TEAM
JNZ REMOTE30
MOV A,LOCAL_A_TEAM
XRL A,#1
JZ REMOTE29
LJMP REMOTE36
REMOTE29: LJMP REMOTE32
REMOTE30: MOV A,TEAM
XRL A,LOCAL_A_TEAM
JZ REMOTE31
LJMP REMOTE36
REMOTE31: JB F_CONTROL_STATE,REMOTE34
REMOTE32: JB A_OFF_LEARNED,REMOTE33
LJMP INFRA_REMOTE_QUIT ;A OFF KEY NOT LEARN
REMOTE33: MOV START_HIGH,#04H
MOV START_LOW,#20H
MOV STOP_LEARN,#08H
MOV ROOM,LOCAL_A_ROOM
MOV TYPE,LOCAL_A_TYPE
MOV TEAM,LOCAL_A_TEAM
LJMP REMOTE66
REMOTE34: JB A_ON_LEARNED,REMOTE35
LJMP INFRA_REMOTE_QUIT ;A ON KEY NOT LEARN
REMOTE35: MOV START_HIGH,#00H
MOV START_LOW,#20H
MOV STOP_LEARN,#04H
MOV ROOM,LOCAL_A_ROOM
MOV TYPE,LOCAL_A_TYPE
MOV TEAM,LOCAL_A_TEAM
LJMP REMOTE66
;////////////////////////////////////////////////////////////////////
; B TEAM ?
;////////////////////////////////////////////////////////////////////
REMOTE36:
MOV A,TYPE
XRL A,LOCAL_B_TYPE
JZ REMOTE37
LJMP REMOTE46 ;TYPE IS NOT SAME
REMOTE37: MOV A,ROOM
XRL A,LOCAL_B_ROOM
JZ REMOTE38
LJMP REMOTE46
REMOTE38: MOV A,TEAM
JNZ REMOTE40
MOV A,LOCAL_B_TEAM
XRL A,#1
JZ REMOTE39
LJMP REMOTE46
REMOTE39: LJMP REMOTE42
REMOTE40: MOV A,TEAM
XRL A,LOCAL_B_TEAM
JZ REMOTE41
LJMP REMOTE46
REMOTE41: JB F_CONTROL_STATE,REMOTE44
REMOTE42: JB B_OFF_LEARNED,REMOTE43
LJMP INFRA_REMOTE_QUIT ;B OFF KEY NOT LEARN
REMOTE43:
MOV START_HIGH,#0CH
MOV START_LOW,#20H
MOV STOP_LEARN,#10H
MOV ROOM,LOCAL_B_ROOM
MOV TYPE,LOCAL_B_TYPE
MOV TEAM,LOCAL_B_TEAM
LJMP REMOTE66
REMOTE44: JB B_ON_LEARNED,REMOTE45
LJMP INFRA_REMOTE_QUIT ;B ON KEY NOT LEARN
REMOTE45: MOV START_HIGH,#08H
MOV START_LOW,#20H
MOV STOP_LEARN,#0CH
MOV ROOM,LOCAL_B_ROOM
MOV TYPE,LOCAL_B_TYPE
MOV TEAM,LOCAL_B_TEAM
LJMP REMOTE66
;//////////////////////////////////////////////////////////////////
; C TEAM ?
;////////////////////////////////////////////////////////////////////
REMOTE46:
MOV A,TYPE
XRL A,LOCAL_C_TYPE
JZ REMOTE47
LJMP REMOTE56 ;TYPE IS NOT SAME
REMOTE47: MOV A,ROOM
XRL A,LOCAL_C_ROOM
JZ REMOTE48
LJMP REMOTE56
REMOTE48: MOV A,TEAM
JNZ REMOTE50
MOV A,LOCAL_C_TEAM
XRL A,#1
JZ REMOTE49
LJMP REMOTE56
REMOTE49: LJMP REMOTE52
REMOTE50: MOV A,TEAM
XRL A,LOCAL_C_TEAM
JZ REMOTE51
LJMP REMOTE56
REMOTE51: JB F_CONTROL_STATE,REMOTE54
REMOTE52: JB C_OFF_LEARNED,REMOTE53
LJMP INFRA_REMOTE_QUIT ;C OFF KEY NOT LEARN
REMOTE53:
MOV START_HIGH,#14H
MOV START_LOW,#20H
MOV STOP_LEARN,#18H
MOV ROOM,LOCAL_C_ROOM
MOV TYPE,LOCAL_C_TYPE
MOV TEAM,LOCAL_C_TEAM
LJMP REMOTE66
REMOTE54: JB C_ON_LEARNED,REMOTE55
LJMP INFRA_REMOTE_QUIT ;C ON KEY NOT LEARN
REMOTE55: MOV START_HIGH,#10H
MOV START_LOW,#20H
MOV STOP_LEARN,#14H
MOV ROOM,LOCAL_C_ROOM
MOV TYPE,LOCAL_C_TYPE
MOV TEAM,LOCAL_C_TEAM
LJMP REMOTE66
;//////////////////////////////////////////////////////////////////
; D TEAM ?
;////////////////////////////////////////////////////////////////////
REMOTE56:
MOV A,TYPE
XRL A,LOCAL_D_TYPE
JZ REMOTE57
LJMP REMOTE67 ;TYPE IS NOT SAME
REMOTE57: MOV A,ROOM
XRL A,LOCAL_D_ROOM
JZ REMOTE58
LJMP REMOTE67
REMOTE58: MOV A,TEAM
JNZ REMOTE60
MOV A,LOCAL_D_TEAM
XRL A,#1
JZ REMOTE59
LJMP REMOTE67
REMOTE59: LJMP REMOTE62
REMOTE60: MOV A,TEAM
XRL A,LOCAL_D_TEAM
JZ REMOTE61
LJMP REMOTE67
REMOTE61: JB F_CONTROL_STATE,REMOTE64
REMOTE62: JB D_OFF_LEARNED,REMOTE63
LJMP INFRA_REMOTE_QUIT ;D OFF KEY NOT LEARN
REMOTE63:
MOV START_HIGH,#1CH
MOV START_LOW,#20H
MOV STOP_LEARN,#20H
MOV ROOM,LOCAL_D_ROOM
MOV TYPE,LOCAL_D_TYPE
MOV TEAM,LOCAL_D_TEAM
LJMP REMOTE66
REMOTE64: JB D_ON_LEARNED,REMOTE65
LJMP INFRA_REMOTE_QUIT ;D ON KEY NOT LEARN
REMOTE65:
MOV START_HIGH,#18H
MOV START_LOW,#20H
MOV STOP_LEARN,#1CH
MOV ROOM,LOCAL_D_ROOM
MOV TYPE,LOCAL_D_TYPE
MOV TEAM,LOCAL_D_TEAM
REMOTE66:
MOV COMMAND,#01H
LCALL GENERATE_COM
SETB F_SEND_RUNNING
JB F_SEND_RUNNING,$
LCALL SEND_IR
CLR F_CHANNEL_OCCUPY
MOV COUNT_BEE,#00H
SETB F_RESPONSE
LJMP INFRA_REMOTE_QUIT
REMOTE67: MOV COMMAND,#00H
LCALL GENERATE_COM
SETB F_SEND_RUNNING
MOV ACK_COUNT,#00H
SETB F_ACK_WAIT
INFRA_REMOTE_QUIT:
CLR F_GROUP
CLR F_ROOM
CLR F_TYPE
CLR F_TEAM
MOV TH1,#0FFH
MOV TL1,#120
SETB TR1
SETB ET1
REMOTE68: RET
DELAY100: MOV R7,#20
DEL9: DJNZ R7,DEL9
RET
TABLE: DB 21, 22, 23, 24, 17, 18, 19, 20
; 00H,01H,02H,03H,04H,05H,06H,07H
DB 33, 28, 33, 25, 33, 26, 27, 33
; 08H,09H,0AH,0BH,0CH,0DH,0EH,0FH
DB 29, 30, 31, 32, 12, 1, 2, 6
; 10H,11H,12H,13H, 14,15H,16H,17H
DB 5, 8, 3, 4, 11, 7, 9, 15
; 18H,19H,1AH,1BH,1CH,1DH,1EH,1FH
DB 33, 33, 33, 33, 33, 33, 33, 33
; 20H,21H,22H,23H,24H,25H,26H,27H
DB 33, 33, 33, 33, 33, 33, 33, 33
; 28H,29H,2AH,2BH,2CH,2DH,2EH,2FH
DB 33, 33, 33, 33, 33, 33, 33, 33
; 30H,31H,32H,33H,34H,35H,36H,37H
DB 33, 33, 33, 33, 33, 33, 33, 33
; 38H,39H,3AH,3BH,3CH,3DH,3EH,3FH
DB 16, 10, 13, 14, 33, 33, 33, 33
; 40H,41H,42H,43H,44H,45H,46H,47H
DB 33, 33, 33, 33, 33, 33, 0, 33
; 48H,49H,4AH,4BH,4CH,4DH,4EH,4FH
DB 33, 33, 33, 33, 33, 33, 33, 33
; 50H,51H,52H,53H,54H,55H,56H,57H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -