📄 cjq3.0v.asm
字号:
MOV R4,#HIGH(METER_CONST_10) ;电表常数高位
MOV DPH,#10
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_11) ;电表常数低位
MOV R4,#HIGH(METER_CONST_11) ;电表常数高位
MOV DPH,#11
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_12) ;电表常数低位
MOV R4,#HIGH(METER_CONST_12) ;电表常数高位
MOV DPH,#12
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_13) ;电表常数低位
MOV R4,#HIGH(METER_CONST_13) ;电表常数高位
MOV DPH,#13
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_14) ;电表常数低位
MOV R4,#HIGH(METER_CONST_14) ;电表常数高位
MOV DPH,#14
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_15) ;电表常数低位
MOV R4,#HIGH(METER_CONST_15) ;电表常数高位
MOV DPH,#15
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_16) ;电表常数低位
MOV R4,#HIGH(METER_CONST_16) ;电表常数高位
MOV DPH,#16
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
;---------------------------------------------
;读入所有继电器状态字并发送电前各状态
;---------------------------------------------
ST_JUDGE_RELAY:
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
MOV JDQ_13_16_STATE,#00H ;置13-16路继电器状态字为0
MOV R7,#00H ;从通道1号开始查询继电器状态
READ_JDQ:
LCALL READ_JDQ_STATE ;读出表1继电器状态字
CJNE A,#01H,JUDGE_OPEN_STATE
METER_JDQ1:
CJNE R7,#1,METER_JDQ2
MOV A,JDQ_1_4_STATE
ORL A,#01H ;置继电器1为闭合状态
MOV JDQ_1_4_STATE,A
AJMP READ_NEXT_JDQ
JUDGE_OPEN_STATE:
AJMP JUDGE_OPEN_STATE1
METER_JDQ2:
CJNE R7,#2,METER_JDQ3
MOV A,JDQ_1_4_STATE
ORL A,#04H ;置继电器2为闭合状态
MOV JDQ_1_4_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ3:
CJNE R7,#3,METER_JDQ4
MOV A,JDQ_1_4_STATE
ORL A,#10H ;置继电器3为闭合状态
MOV JDQ_1_4_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ4:
CJNE R7,#4,METER_JDQ5
MOV A,JDQ_1_4_STATE
ORL A,#40H ;置继电器4为闭合状态
MOV JDQ_1_4_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ5:
CJNE R7,#5,METER_JDQ6
MOV A,JDQ_5_8_STATE
ORL A,#01H ;置继电器5为闭合状态
MOV JDQ_5_8_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ6:
CJNE R7,#6,METER_JDQ7
MOV A,JDQ_5_8_STATE
ORL A,#04H ;置继电器6为闭合状态
MOV JDQ_5_8_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ7:
CJNE R7,#7,METER_JDQ8
MOV A,JDQ_5_8_STATE
ORL A,#10H ;置继电器7为闭合状态
MOV JDQ_5_8_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ8:
CJNE R7,#8,METER_JDQ9
MOV A,JDQ_5_8_STATE
ORL A,#40H ;置继电器8为闭合状态
MOV JDQ_5_8_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ9:
CJNE R7,#9,METER_JDQ10
MOV A,JDQ_9_12_STATE
ORL A,#01H ;置继电器9为闭合状态
MOV JDQ_9_12_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ10:
CJNE R7,#10,METER_JDQ11
MOV A,JDQ_9_12_STATE
ORL A,#04H ;置继电器10为闭合状态
MOV JDQ_9_12_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ11:
CJNE R7,#11,METER_JDQ12
MOV A,JDQ_9_12_STATE
ORL A,#10H ;置继电器11为闭合状态
MOV JDQ_9_12_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ12:
CJNE R7,#12,METER_JDQ13
MOV A,JDQ_9_12_STATE
ORL A,#40H ;置继电器12为闭合状态
MOV JDQ_9_12_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ13:
CJNE R7,#13,METER_JDQ14
MOV A,JDQ_13_16_STATE
ORL A,#01H ;置继电器13为闭合状态
MOV JDQ_13_16_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ14:
CJNE R7,#14,METER_JDQ15
MOV A,JDQ_13_16_STATE
ORL A,#04H ;置继电器14为闭合状态
MOV JDQ_13_16_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ15:
CJNE R7,#15,METER_JDQ16
MOV A,JDQ_13_16_STATE
ORL A,#10H ;置继电器15为闭合状态
MOV JDQ_13_16_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ16:
CJNE R7,#16,METER_JDQ17
MOV A,JDQ_13_16_STATE
ORL A,#40H ;置继电器16为闭合状态
MOV JDQ_13_16_STATE,A
AJMP READ_ALL_OVER ;读完16路
METER_JDQ17:
MOV R7,#00H ;
AJMP READ_ALL_OVER
READ_NEXT_JDQ:
LJMP READ_JDQ ;读下一通道
;---------------------------------------
;继电器断开状态
JUDGE_OPEN_STATE1:
CJNE A,#00H,JUDGE_ERR_STATE
METER_JDQ1_OPEN:
CJNE R7,#1,METER_JDQ2_OPEN
MOV A,JDQ_1_4_STATE
ORL A,#02H ;置继电器1为断开状态
MOV JDQ_1_4_STATE,A
AJMP READ_NEXT_JDQ
JUDGE_ERR_STATE:
AJMP ST_INI_EXIT
METER_JDQ2_OPEN:
CJNE R7,#2,METER_JDQ3_OPEN
MOV A,JDQ_1_4_STATE
ORL A,#08H ;置继电器2为断开状态
MOV JDQ_1_4_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ3_OPEN:
CJNE R7,#3,METER_JDQ4_OPEN
MOV A,JDQ_1_4_STATE
ORL A,#20H ;置继电器3为断开状态
MOV JDQ_1_4_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ4_OPEN:
CJNE R7,#4,METER_JDQ5_OPEN
MOV A,JDQ_1_4_STATE
ORL A,#80H ;置继电器4为断开状态
MOV JDQ_1_4_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ5_OPEN:
CJNE R7,#5,METER_JDQ6_OPEN
MOV A,JDQ_5_8_STATE
ORL A,#02H ;置继电器5为断开状态
MOV JDQ_5_8_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ6_OPEN:
CJNE R7,#6,METER_JDQ7_OPEN
MOV A,JDQ_5_8_STATE
ORL A,#08H ;置继电器6为断开状态
MOV JDQ_5_8_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ7_OPEN:
CJNE R7,#7,METER_JDQ8_OPEN
MOV A,JDQ_5_8_STATE
ORL A,#20H ;置继电器7为断开状态
MOV JDQ_5_8_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ8_OPEN:
CJNE R7,#8,METER_JDQ9_OPEN
MOV A,JDQ_5_8_STATE
ORL A,#80H ;置继电器8为断开状态
MOV JDQ_5_8_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ9_OPEN:
CJNE R7,#9,METER_JDQ10_OPEN
MOV A,JDQ_9_12_STATE
ORL A,#02H ;置继电器9为断开状态
MOV JDQ_9_12_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ10_OPEN:
CJNE R7,#10,METER_JDQ11_OPEN
MOV A,JDQ_9_12_STATE
ORL A,#08H ;置继电器10为断开状态
MOV JDQ_9_12_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ11_OPEN:
CJNE R7,#11,METER_JDQ12_OPEN
MOV A,JDQ_9_12_STATE
ORL A,#20H ;置继电器11为断开状态
MOV JDQ_9_12_STATE,A
AJMP READ_NEXT_JDQ
METER_JDQ12_OPEN:
CJNE R7,#12,METER_JDQ13_OPEN
MOV A,JDQ_9_12_STATE
ORL A,#80H ;置继电器12为断开状态
MOV JDQ_9_12_STAT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -