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

📄 cjq3.0v.asm

📁 本程序为集中抄表系统中低压电力线载波数据采集器程序源代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	        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 + -