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

📄 infra.asm

📁 红外线学习控制及低压AC220V电力线载波组网通讯
💻 ASM
📖 第 1 页 / 共 2 页
字号:
              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 + -