📄 cjq3.0v.bak
字号:
MOV R0,#04H
MOV DPTR,#50
ST_LED: DJNZ DPH,ST_LED
DJNZ DPL,ST_LED
CPL S_LEDC
CPL R_LEDC
CPL S_LEDR
CPL R_LEDR
CPL WATCH_DOG ;清看门狗
DJNZ R0,ST_LED
CLR RCLK ;禁止继电器状态输出变化
CLR HW_CONTRA ;禁止产生38K红外载波信号。
;--------------------------------------
MOV IE,#00H
MOV SP,#0D9H ;堆栈为高端RAM 0D9-0FFH
;--------------------------------------
;复位需重新初始化RAM
;--------------------------------------
INIT_RAM:
MOV R0,#00H ;内部RAM初始化为0
INIT_RAM1: MOV @R0,#00H
INC R0
CJNE R0,#00H,INIT_RAM1
;----------------------------------------------------------
;--从C04中把数(01H-60H)读至RAM专用缓冲区(53H-0B3H)
;----------------------------------------------------------
LCALL READ_C04
;------------------------------------
;上电后检测电表类型,电子表丢掉当前脉冲数以保持与计度器示值一致,机械表不丢脉冲
LCALL JUDGE_METER_TYPE ;判断表类型
;---------------------------------------------------------------------------
;--判是否第一次上电,如第一次上电,将初始化数据送至RAM,并置写C45EEPROM的标志
;---------------------------------------------------------------------------
ST_FIRST_OR_NOT:
MOV DPH,#C04_ADDR_L
MOV DPL,#C04_START ;第一次上电地址
LCALL RD_C04_1BYTE
CJNE A,#55H,ST_IS_FIRST ;第一次初始化标志=55H?
LJMP ST_JUDGE_RELAY;ST_INI_EXIT ;--非第一次上电
;系统初次初始化或存储器标识错误需重新初始化
ST_IS_FIRST:
MOV B,#55H ;存储器初始状态值 ;--初始化标志=55H
MOV DPH,#C04_ADDR_L
MOV DPL,#C04_START ;--
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_1) ;初始化所有电表常数,第一只电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_1) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+1
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_2) ;表2,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+2
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_2) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+3
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_3) ;表3,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+4
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_3) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+5
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_4) ;表4,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+6
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_4) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+7
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_5) ;表5,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+8
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_5) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+9
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_6) ;表6,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+10
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_6) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+11
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_7) ;表7,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+12
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_7) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+13
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_8) ;表8,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+14
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_8) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+15
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_9) ;表9,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+16
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_9) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+17
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_10) ;表10,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+18
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_10) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+19
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_11) ;表11,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+20
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_11) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+21
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_12) ;表12,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+22
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_12) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+23
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_13) ;表13,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+24
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_13) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+25
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_14) ;表14,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+26
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_14) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+27
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_15) ;表15,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+28
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_15) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+29
LCALL WR_C04_1BYTE
MOV B,#LOW(METER_CONST_16) ;表16,电表常数低位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+30
LCALL WR_C04_1BYTE
MOV B,#HIGH(METER_CONST_16) ;电表常数高位
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_CONSTANT_0+31
LCALL WR_C04_1BYTE
MOV B,#01H ;初始化继电器为闭合状态 ;--继电器合
MOV DPH,#C04_ADDR_H
MOV DPL,#C04_RELAY_STATE_0
MOV R0,#16
RELAY_SET1:
LCALL WR_C04_1BYTE
INC DPL
DJNZ R0,RELAY_SET1 ;16通道写完否?
MOV R5,#LOW(METER_CONST_1) ;电表常数低位
MOV R4,#HIGH(METER_CONST_1) ;电表常数高位
MOV DPH,#1
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_2) ;电表常数低位
MOV R4,#HIGH(METER_CONST_2) ;电表常数高位
MOV DPH,#2
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_3) ;电表常数低位
MOV R4,#HIGH(METER_CONST_3) ;电表常数高位
MOV DPH,#3
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_4) ;电表常数低位
MOV R4,#HIGH(METER_CONST_4) ;电表常数高位
MOV DPH,#4
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_5) ;电表常数低位
MOV R4,#HIGH(METER_CONST_5) ;电表常数高位
MOV DPH,#5
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_6) ;电表常数低位
MOV R4,#HIGH(METER_CONST_6) ;电表常数高位
MOV DPH,#6
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_7) ;电表常数低位
MOV R4,#HIGH(METER_CONST_7) ;电表常数高位
MOV DPH,#7
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_8) ;电表常数低位
MOV R4,#HIGH(METER_CONST_8) ;电表常数高位
MOV DPH,#8
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_9) ;电表常数低位
MOV R4,#HIGH(METER_CONST_9) ;电表常数高位
MOV DPH,#9
LCALL COMPUTE_RESOLUTION ;写入电表分辨率
MOV R5,#LOW(METER_CONST_10) ;电表常数低位
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -