📄 cjq3.0v.bak
字号:
;*********************************************************************************************
;---------------------------------------------------------------------------------------------
;------------------------河南英博电气有限公司远程抄表系统采集器程序清单-------------------------
;--------------------------------------2004年5月25日------------------------------------------
;*********************************************************************************************
;新型载波抄表系统
;程序名称:采集器程序CJQ3.0V.ASM
;本程序适用于电表常数是10整数倍的各类电表,带继电器控制,红外通信,中继功能(本采集器地址可作为其它采集器的中继)。
;CPU类型:AT89C55WD
;载波芯片:ST7536CFN
;存储器:铁电FM24C04A
;编写时间:2004年5月25日,载波芯片为ST7536CFN电力线载波MODEM,通信方式FSK,载波频率72KHZ,选择第3通道,1200BTS
;修改时间:2004年5月25日, 田家栋
;**************************************************************************************
TERMINAL_ID EQU 00100 ;本采集器地址00100--29900
TERMINAL_ID_1 EQU TERMINAL_ID+1 ;下属电表地址
TERMINAL_ID_2 EQU TERMINAL_ID+2
TERMINAL_ID_3 EQU TERMINAL_ID+3
TERMINAL_ID_4 EQU TERMINAL_ID+4
TERMINAL_ID_5 EQU TERMINAL_ID+5
TERMINAL_ID_6 EQU TERMINAL_ID+6
TERMINAL_ID_7 EQU TERMINAL_ID+7
TERMINAL_ID_8 EQU TERMINAL_ID+8
TERMINAL_ID_9 EQU TERMINAL_ID+9
TERMINAL_ID_10 EQU TERMINAL_ID+10
TERMINAL_ID_11 EQU TERMINAL_ID+11
TERMINAL_ID_12 EQU TERMINAL_ID+12
TERMINAL_ID_13 EQU TERMINAL_ID+13
TERMINAL_ID_14 EQU TERMINAL_ID+14
TERMINAL_ID_15 EQU TERMINAL_ID+15
TERMINAL_ID_16 EQU TERMINAL_ID+16
;**************************************************************************************
;采集器下属电表满刻度值
;**************************************************************************************
;--METER_CYCLE=100000=0186A0H
METER_CYCLE_1_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_1_1 EQU 86H
METER_CYCLE_1_0 EQU 0A0H
METER_CYCLE_2_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_2_1 EQU 86H
METER_CYCLE_2_0 EQU 0A0H
METER_CYCLE_3_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_3_1 EQU 86H
METER_CYCLE_3_0 EQU 0A0H
METER_CYCLE_4_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_4_1 EQU 86H
METER_CYCLE_4_0 EQU 0A0H
METER_CYCLE_5_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_5_1 EQU 86H
METER_CYCLE_5_0 EQU 0A0H
METER_CYCLE_6_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_6_1 EQU 86H
METER_CYCLE_6_0 EQU 0A0H
METER_CYCLE_7_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_7_1 EQU 86H
METER_CYCLE_7_0 EQU 0A0H
METER_CYCLE_8_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_8_1 EQU 86H
METER_CYCLE_8_0 EQU 0A0H
METER_CYCLE_9_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_9_1 EQU 86H
METER_CYCLE_9_0 EQU 0A0H
METER_CYCLE_10_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_10_1 EQU 86H
METER_CYCLE_10_0 EQU 0A0H
METER_CYCLE_11_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_11_1 EQU 86H
METER_CYCLE_11_0 EQU 0A0H
METER_CYCLE_12_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_12_1 EQU 86H
METER_CYCLE_12_0 EQU 0A0H
METER_CYCLE_13_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_13_1 EQU 86H
METER_CYCLE_13_0 EQU 0A0H
METER_CYCLE_14_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_14_1 EQU 86H
METER_CYCLE_14_0 EQU 0A0H
METER_CYCLE_15_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_15_1 EQU 86H
METER_CYCLE_15_0 EQU 0A0H
METER_CYCLE_16_2 EQU 01H ;--100000=0186A0H
METER_CYCLE_16_1 EQU 86H
METER_CYCLE_16_0 EQU 0A0H
;电表常数---------------------------------------
METER_CONST_1 EQU 3200 ;第1只表电表常数
METER_CONST_2 EQU 3200 ;第2只表电表常数
METER_CONST_3 EQU 3200 ;第3只表电表常数
METER_CONST_4 EQU 3200 ;第4只表电表常数
METER_CONST_5 EQU 3200 ;第5只表电表常数
METER_CONST_6 EQU 3200 ;第6只表电表常数
METER_CONST_7 EQU 3200 ;第7只表电表常数
METER_CONST_8 EQU 3200 ;第8只表电表常数
METER_CONST_9 EQU 3200 ;第9只表电表常数
METER_CONST_10 EQU 3200 ;第10只表电表常数
METER_CONST_11 EQU 3200 ;第11只表电表常数
METER_CONST_12 EQU 3200 ;第12只表电表常数
METER_CONST_13 EQU 3200 ;第13只表电表常数
METER_CONST_14 EQU 3200 ;第14只表电表常数
METER_CONST_15 EQU 3200 ;第15只表电表常数
METER_CONST_16 EQU 3200 ;第16只表电表常数
;**************************************************************************************
AUXR EQU 8EH ;CPU复位(内部WATCHDOG)时间设定
AUXR1 EQU 0A2H
;----------
ST7536_ADDR EQU 0B0H ;ST7536地址
SEIZURE_YARD EQU 30H ;ST7536捕获门限寄存器值30H
ST7536_SEIZ EQU 48H ;ST7536捕获门限寄存器地址
WRITE_CLOSE EQU 30H ;ST7536内部寄存器禁止写控制字
WRITE_OPEN EQU 0B0H ;ST7536内部寄存器允许写控制字
ST7536_WP EQU 4FH ;ST7536内部寄存器允许写保护字地址
;----------
C04_ADDR_L EQU 0A0H ;0A0H中高7位有效,C04的00H-0FFH部分芯片地址
C04_ADDR_H EQU 0A2H ;0A2H中高7位有效,C04的100H-1FFH部分芯片地址
;------
C04_TO_RAM_LEN EQU 60H ;上电后要读存储器字节数
;****************************************************************
;CPU内部RAM区地址分配
;****************************************************************
HIGH_PERSISTENCE_0_7 EQU 08H ;1-8通道有脉冲高电平持续标志
HIGH_PERSISTENCE_8_15 EQU 09H ;9-16通道有脉冲高电平持续标志
PULSE_STATE_0_7 EQU 0AH ;脉冲通道1-8的状态字
PULSE_STATE_8_15 EQU 0BH ;脉冲通道9-16的状态字
;----------------------------------------
;载波中断接收同一字节连续接收3次暂存器
ZBREC_FIRST_BYTE EQU 0CH ;当前字节接收的第一次数据寄存器
ZBREC_SECOND_BYTE EQU 0DH ;当前字节接收的第二次数据寄存器
ZBREC_THIRD_BYTE EQU 0EH ;当前字节接收的第三次数据寄存器
;----------------------------------------
REC_BUF EQU 10H ;接收缓冲从内部RAM 10H-1FH,共16字节
REC_BUF_LEN EQU 16 ;接收缓冲区的总长度
REC_HEAD EQU REC_BUF ;接收帧的起始符
REC_ADDR EQU REC_BUF+01H ;接收缓冲区的地址码
REC_CTRL_CODE EQU REC_BUF+03H ;接收帧的控制码
REC_DATA_FEILD_LEN EQU REC_BUF+04H ;接收帧的数据域长度
REC_DATA_FEILD EQU REC_BUF+05H ;接收帧的数据域首地址
REC_DATA_ID EQU REC_BUF+05H ;接收帧的数据标识首地址
REC_DATA_METER EQU REC_BUF+06H ;接收帧的数据域中的表号/中继号首地址
REC_DATA_ITEM EQU REC_BUF+08H ;接收帧的数据项首地址
;----------------------------------------
SEND_BUF EQU REC_BUF ;发送缓冲从内部RAM 10H-1FH,共16字节
SEND_BUF_LEN EQU 16 ;发送缓冲的总长度
SEND_HEAD EQU SEND_BUF ;发送帧的起始符
SEND_ADDR EQU SEND_BUF+01H ;发送帧的地址码
SEND_CTRL_CODE EQU SEND_BUF+03H ;发送帧的控制码
SEND_DATA_FEILD_LEN EQU SEND_BUF+04H ;发送帧的数据域长度
SEND_DATA_FEILD EQU SEND_BUF+05H ;发送帧的数据域首地址
SEND_DATA_ID EQU SEND_BUF+05H ;发送帧的数据标识首地址
SEND_DATA_METER EQU SEND_BUF+06H ;发送帧的数据域中的表号首地址
SEND_DATA_ITEM EQU SEND_BUF+08H ;发送帧的数据项首地址
;-------------------------------------------
FRM_PROCESS BIT 20H.0 ;载波帧正在处理标志,处理完后要清零
INIT_ST7536_FLAG BIT 20H.1 ;初始化ST7536标志
SEND_BYTE_OVER BIT 20H.2 ;发送字节标志
SAVE_PULSE_FLAG BIT 20H.3 ;有脉冲标记
SYNB BIT 20H.4 ;同步头找到标志
TXD_READY_FLAG BIT 20H.5 ;发送准备好
SLAVE_ANSWER_OK BIT 20H.6 ;读写SLAVE的SRAM正常应答与否的判断
BIT_CHANNEL BIT 20H.7 ;通道标志
SAVE_1S BIT 21H.0 ;1S到标志
ZB_OR_HW BIT 21H.1 ;载波通信或红外通信标志位,0为载波通信,1为红外通信
HW_FRM_PROCESS BIT 21H.2 ;红外帧正在处理标志,处理完后要清零
HW_LEADER_CHARACTER BIT 21H.3 ;红外接收到正确前导字节标志
HW_FRAMES_HEAD_RECEVED BIT 21H.4 ;红外帧正在接收标志
ZJQ_SEND_WAIT BIT 21H.5 ;中继下发等待接收1秒时间到标志
;----------
RAM_TO_C04_AGA_0_7 EQU 22H ;需要将通道0(-7)RAM中数据存进C04的标志
RAM_TO_C04_AGA_8_15 EQU 23H ;需要将通道8(-15)RAM中数据存进C04的标志
;----------------------------------------
COUNTER_100 EQU 24H ;100计数器:5秒定时
COUNTER_1S EQU 25H ;1S计数器:1秒定时
COUNTER_200 EQU 26H ;40计数器:20秒定时
;-------------------------------------------
HEAD_LO EQU 27H ;同步头低位字#0AFH
HEAD_HI EQU 28H ;同步头高位字#009H
REC_CUR_LEN EQU 29H ;载波接收区当前的数据长度
REC_WHOLE_BYTE EQU 2AH ;接收到的一个整字节,正确字节暂存存
REC_BIT_LEN EQU 2BH ;接收到的位数
SEND_WHOLE_BYTE EQU 2CH ;发送的一个整字节
SEND_BIT_LEN EQU 2DH ;已发送的位数
COUNTER_SEND_DELAY EQU 2EH ;发送延时寄存器
HW_REC_WHOLE_BYTE EQU 2FH ;红外接收接收到的一个当前字节
HW_REC_CUR_LEN EQU 30H ;红外接收区当前的数据长度
;---------------------------------------- 04-03-24
JDQ_1_4_STATE EQU 31H ;1-4路继电器状态字
JDQ_5_8_STATE EQU 32H ;5-8路继电器状态字
JDQ_9_12_STATE EQU 33H ;9-12路继电器状态字
JDQ_13_16_STATE EQU 34H ;13-16路继电器状态字
;----------------------------------------
HIGH_LEVEL_COUNT0 EQU 35H ;表1高电平记数
;HIGH_LEVEL_COUNT1 EQU HIGH_LEVEL_COUNT0+1 ;2高电平记数
;HIGH_LEVEL_COUNT2 EQU HIGH_LEVEL_COUNT0+2 ;3高电平记数
;HIGH_LEVEL_COUNT3 EQU HIGH_LEVEL_COUNT0+3 ;4高电平记数
;HIGH_LEVEL_COUNT4 EQU HIGH_LEVEL_COUNT0+4 ;5高电平记数
;HIGH_LEVEL_COUNT5 EQU HIGH_LEVEL_COUNT0+5 ;6高电平记数
;HIGH_LEVEL_COUNT6 EQU HIGH_LEVEL_COUNT0+6 ;7高电平记数
;HIGH_LEVEL_COUNT7 EQU HIGH_LEVEL_COUNT0+7 ;8高电平记数
;HIGH_LEVEL_COUNT8 EQU HIGH_LEVEL_COUNT0+8 ;9高电平记数
;HIGH_LEVEL_COUNT9 EQU HIGH_LEVEL_COUNT0+9 ;10高电平记数
;HIGH_LEVEL_COUNT10 EQU HIGH_LEVEL_COUNT0+10 ;11高电平记数
;HIGH_LEVEL_COUNT11 EQU HIGH_LEVEL_COUNT0+11 ;12高电平记数
;HIGH_LEVEL_COUNT12 EQU HIGH_LEVEL_COUNT0+12 ;13高电平记数
;HIGH_LEVEL_COUNT13 EQU HIGH_LEVEL_COUNT0+13 ;14高电平记数
;HIGH_LEVEL_COUNT14 EQU HIGH_LEVEL_COUNT0+14 ;15高电平记数
;HIGH_LEVEL_COUNT15 EQU HIGH_LEVEL_COUNT0+15 ;16高电平记数
;-------------------------------------------------------------------
LOW_LEVEL_COUNT0 EQU HIGH_LEVEL_COUNT0+16 ;低电平记数
;LOW_LEVEL_COUNT1 EQU LOW_LEVEL_COUNT0+1 ;低电平记数
;LOW_LEVEL_COUNT2 EQU LOW_LEVEL_COUNT0+2 ;低电平记数
;LOW_LEVEL_COUNT3 EQU LOW_LEVEL_COUNT0+3 ;低电平记数
;LOW_LEVEL_COUNT4 EQU LOW_LEVEL_COUNT0+4 ;低电平记数
;LOW_LEVEL_COUNT5 EQU LOW_LEVEL_COUNT0+5 ;低电平记数
;LOW_LEVEL_COUNT6 EQU LOW_LEVEL_COUNT0+6 ;低电平记数
;LOW_LEVEL_COUNT7 EQU LOW_LEVEL_COUNT0+7 ;低电平记数
;LOW_LEVEL_COUNT8 EQU LOW_LEVEL_COUNT0+8 ;低电平记数
;LOW_LEVEL_COUNT9 EQU LOW_LEVEL_COUNT0+9 ;低电平记数
;LOW_LEVEL_COUNT10 EQU LOW_LEVEL_COUNT0+10 ;低电平记数
;LOW_LEVEL_COUNT11 EQU LOW_LEVEL_COUNT0+11 ;低电平记数
;LOW_LEVEL_COUNT12 EQU LOW_LEVEL_COUNT0+12 ;低电平记数
;LOW_LEVEL_COUNT13 EQU LOW_LEVEL_COUNT0+13 ;低电平记数
;LOW_LEVEL_COUNT14 EQU LOW_LEVEL_COUNT0+14 ;低电平记数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -