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

📄 jdq.bak

📁 本程序为集中抄表系统中低压电力线载波数据采集器程序源代码
💻 BAK
📖 第 1 页 / 共 2 页
字号:
;-----------------------------------------------------
;当前表对应继电器下发状态
;A:继电器状态
JUDGE_JDQ_STATE_BYTE:
                CJNE    A,#01H,JUMP_RELAY_OPEN            ;判断继电器状态是闭合否?
                MOV	A,R7                              ;当前表地址通道号
JUDGE_CLOSE_METER1:
		CJNE    A,#1,JUDGE_CLOSE_METER2           ;判断是1号表否
                MOV     JDQ_1_4_STATE,#01H                ;置1-4路继电器状态字为01H
                AJMP    SETB_1_4_CHANNEL                  ;转清其它通道值并发送
JUDGE_CLOSE_METER2:
                CJNE    A,#2,JUDGE_CLOSE_METER3           ;判断是2号表否
                MOV     JDQ_1_4_STATE,#04H                ;置1-4路继电器状态字为04H
                AJMP    SETB_1_4_CHANNEL                  ;转清其它通道值并发送
JUDGE_CLOSE_METER3:
                CJNE    A,#3,JUDGE_CLOSE_METER4           ;判断是3号表否
                MOV     JDQ_1_4_STATE,#10H                ;置1-4路继电器状态字为10H
                AJMP    SETB_1_4_CHANNEL                  ;转清其它通道值并发送
JUDGE_CLOSE_METER4:
                CJNE    A,#4,JUDGE_CLOSE_METER5           ;判断是4号表否
                MOV     JDQ_1_4_STATE,#40H                ;置1-4路继电器状态字为40H
SETB_1_4_CHANNEL:
                MOV     JDQ_5_8_STATE,#00H                ;置5-8路继电器状态字为0
                MOV     JDQ_9_12_STATE,#00H               ;置9-12路继电器状态字为0
                MOV     JDQ_13_16_STATE,#00H              ;置13-16路继电器状态字为0
                LJMP    JUDGE_END                         ;转发送
JUMP_RELAY_OPEN:
                LJMP    RELAY_OPEN                        ;转判断是断开状态否
JUDGE_CLOSE_METER5:
                CJNE    A,#5,JUDGE_CLOSE_METER6           ;判断是5号表否
                MOV     JDQ_5_8_STATE,#01H                ;置5-8路继电器状态字为01H
                AJMP    SETB_5_8_CHANNEL                  ;转清其它通道值并发送
JUDGE_CLOSE_METER6:
                CJNE    A,#6,JUDGE_CLOSE_METER7           ;判断是6号表否
                MOV     JDQ_5_8_STATE,#04H                ;置5-8路继电器状态字为04H
                AJMP    SETB_5_8_CHANNEL                  ;转清其它通道值并发送
JUDGE_CLOSE_METER7:
                CJNE    A,#7,JUDGE_CLOSE_METER8           ;判断是7号表否
                MOV     JDQ_5_8_STATE,#10H                ;置5-8路继电器状态字为10H
                AJMP    SETB_5_8_CHANNEL                  ;转清其它通道值并发送
JUDGE_CLOSE_METER8:
                CJNE    A,#8,JUDGE_CLOSE_METER9           ;判断是8号表否
                MOV     JDQ_5_8_STATE,#40H                ;置5-8路继电器状态字为40H
SETB_5_8_CHANNEL:
                MOV     JDQ_1_4_STATE,#00H                ;置1-4路继电器状态字为0
                MOV     JDQ_9_12_STATE,#00H               ;置9-12路继电器状态字为0
                MOV     JDQ_13_16_STATE,#00H              ;置13-16路继电器状态字为0
                LJMP    JUDGE_END                         ;转发送
JUDGE_CLOSE_METER9:
                CJNE    A,#9,JUDGE_CLOSE_METER10          ;判断是9号表否
                MOV     JDQ_9_12_STATE,#01H               ;置9-12路继电器状态字为01H
                LJMP    SETB_9_12_CHANNEL                 ;转清其它通道值并发送
JUDGE_CLOSE_METER10:
                CJNE    A,#10,JUDGE_CLOSE_METER11         ;判断是10号表否
                MOV     JDQ_9_12_STATE,#04H               ;置9-12路继电器状态字为04H
                LJMP    SETB_9_12_CHANNEL                 ;转清其它通道值并发送
JUDGE_CLOSE_METER11:
                CJNE    A,#11,JUDGE_CLOSE_METER12         ;判断是11号表否
                MOV     JDQ_9_12_STATE,#10H               ;置9-12路继电器状态字为10H
                LJMP    SETB_9_12_CHANNEL                 ;转清其它通道值并发送
JUDGE_CLOSE_METER12:
                CJNE    A,#12,JUDGE_CLOSE_METER13         ;判断是12号表否
                MOV     JDQ_9_12_STATE,#40H               ;置9-12路继电器状态字为40H
SETB_9_12_CHANNEL:
                MOV     JDQ_1_4_STATE,#00H               ;置1-4路继电器状态字为0
                MOV     JDQ_5_8_STATE,#00H               ;置5-8路继电器状态字为0
                MOV     JDQ_13_16_STATE,#00H             ;置13-16路继电器状态字为0
                LJMP    JUDGE_END                        ;转发送
JUDGE_CLOSE_METER13:
                CJNE    A,#13,JUDGE_CLOSE_METER14        ;判断是13号表否
                MOV     JDQ_13_16_STATE,#01H             ;置13-16路继电器状态字为01H
                LJMP    SETB_13_16_CHANNEL               ;转清其它通道值并发送
JUDGE_CLOSE_METER14:
                CJNE    A,#14,JUDGE_CLOSE_METER15        ;判断是14号表否
                MOV     JDQ_13_16_STATE,#04H             ;置13-16路继电器状态字为04H
                LJMP    SETB_13_16_CHANNEL               ;转清其它通道值并发送
JUDGE_CLOSE_METER15:
                CJNE    A,#15,JUDGE_CLOSE_METER16        ;判断是15号表否
                MOV     JDQ_13_16_STATE,#10H             ;置13-16路继电器状态字为10H
                LJMP    SETB_13_16_CHANNEL               ;转清其它通道值并发送
JUDGE_CLOSE_METER16:
                CJNE    A,#16,JUDGE_STATE_ERR            ;判断是16号表否
                MOV     JDQ_13_16_STATE,#40H             ;置13-16路继电器状态字为40H
SETB_13_16_CHANNEL:
                MOV     JDQ_1_4_STATE,#00H               ;置1-4路继电器状态字为0
                MOV     JDQ_5_8_STATE,#00H               ;置5-8路继电器状态字为0
                MOV     JDQ_9_12_STATE,#00H              ;置9-12路继电器状态字为0
                LJMP    JUDGE_END                        ;转发送
JUDGE_STATE_ERR:
                LJMP    WR_JDQ_STATE_END                 ;通道号错误,退出
;--------------------------------
;继电器断开状态判断:
RELAY_OPEN:
                CJNE    A,#00H,JUDGE_STATE_ERR            ;判断继电器状态是断开否?若两种状态都不是,不存储并不回应,等待重发
                MOV	A,R7                              ;当前表地址通道号
JUDGE_OPEN_METER1:
		CJNE    A,#1,JUDGE_OPEN_METER2            ;判断是1号表否
                MOV     JDQ_1_4_STATE,#02H                ;置1-4路继电器状态字为02H
                AJMP    SETB_1_4_CHANNEL2                 ;转清其它通道值并发送
JUDGE_OPEN_METER2:
                CJNE    A,#2,JUDGE_OPEN_METER3            ;判断是2号表否
                MOV     JDQ_1_4_STATE,#08H                ;置1-4路继电器状态字为08H
                AJMP    SETB_1_4_CHANNEL2                 ;转清其它通道值并发送
JUDGE_OPEN_METER3:
                CJNE    A,#3,JUDGE_OPEN_METER4            ;判断是3号表否
                MOV     JDQ_1_4_STATE,#20H                ;置1-4路继电器状态字为20H
                AJMP    SETB_1_4_CHANNEL2                 ;转清其它通道值并发送
JUDGE_OPEN_METER4:
                CJNE    A,#4,JUDGE_OPEN_METER5            ;判断是4号表否
                MOV     JDQ_1_4_STATE,#80H                ;置1-4路继电器状态字为80H
SETB_1_4_CHANNEL2:
                MOV     JDQ_5_8_STATE,#00H                ;置5-8路继电器状态字为0
                MOV     JDQ_9_12_STATE,#00H               ;置9-12路继电器状态字为0
                MOV     JDQ_13_16_STATE,#00H              ;置13-16路继电器状态字为0
                LJMP    JUDGE_END                         ;转发送
JUDGE_OPEN_METER5:
                CJNE    A,#5,JUDGE_OPEN_METER6            ;判断是5号表否
                MOV     JDQ_5_8_STATE,#02H                ;置5-8路继电器状态字为02H
                AJMP    SETB_5_8_CHANNEL2                 ;转清其它通道值并发送
JUDGE_OPEN_METER6:
                CJNE    A,#6,JUDGE_OPEN_METER7            ;判断是6号表否
                MOV     JDQ_5_8_STATE,#08H                ;置5-8路继电器状态字为08H
                AJMP    SETB_5_8_CHANNEL2                 ;转清其它通道值并发送
JUDGE_OPEN_METER7:
                CJNE    A,#7,JUDGE_OPEN_METER8            ;判断是7号表否
                MOV     JDQ_5_8_STATE,#20H                ;置5-8路继电器状态字为20H
                AJMP    SETB_5_8_CHANNEL2                 ;转清其它通道值并发送
JUDGE_OPEN_METER8:
                CJNE    A,#8,JUDGE_OPEN_METER9            ;判断是8号表否
                MOV     JDQ_5_8_STATE,#80H                ;置5-8路继电器状态字为80H
SETB_5_8_CHANNEL2:
                MOV     JDQ_1_4_STATE,#00H                ;置1-4路继电器状态字为0

⌨️ 快捷键说明

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