#include "PL3200.h"
#define uchar unsigned char
#define uint unsigned int
#define WR_24_COM 0xA0
#define RD_24_COM 0xA1
// 载波接收序列门限
#define ZB_LIMIT_3105 0x42 //3105模式,500bps载波序列捕获门限
#define ZB_LIMIT_3200 0x70 //3200模式,500bps载波序列捕获门限
#define ERR_CNT 0x14 // 删除表号错误计数次数
/********************************************************************
IIC地址分配
********************************************************************/
#define ADD00_FM24 0x20
#define ADD01_FM24 0x24
#define ADD02_FM24 0x28
#define ADD03_FM24 0x2c
#define ADD04_FM24 0x30
#define ADD05_FM24 0x34
#define ADD06_FM24 0x38
#define ADD07_FM24 0x3c
#define ADD08_FM24 0x40
#define ADD09_FM24 0x44
#define ADD10_FM24 0x48
#define ADD11_FM24 0x4c
#define ADD12_FM24 0x50
#define ADD13_FM24 0x54
#define ADD14_FM24 0x58
#define ADD15_FM24 0x5c
/********************************************************************
管脚定义
********************************************************************
PL3100 100脚封装
/*******************************************************************/
/*
sbit UP_LED = P3^5 ; //上行指示灯控制脚,低点亮
sbit DOWN_LED = P3^6 ; //下行指示灯控制脚,低点亮
sbit ERR_LED = P3^4 ; //异常指示灯控制脚,低点亮
sbit POWER_LED = P2^0 ; //电源指示灯控制脚,低点亮
sbit S_Clk = P0^4 ; // FM24C04的时钟口
sbit S_Dat = P0^3 ; // FM24C04的数据口
sbit WP_24 = P0^2 ; // FM24C04的WP
sbit RE_485 = P0^5 ; // 485接收允许位。0允许接收;1允许发送
sbit TXD485 = P2^2 ; // 485发送管脚
sbit RS485 = P2^1 ; // 485接收管脚
*/
/********************************************************************
PL3100 64脚封装
********************************************************************/
///*
sbit UP_LED = P0^5 ; //上行指示灯控制脚,低点亮
sbit DOWN_LED = P1^4 ; //下行指示灯控制脚,低点亮
sbit ERR_LED = P1^3 ; //异常指示灯控制脚,低点亮
sbit POWER_LED = P1^2 ; //电源指示灯控制脚,低点亮
sbit S_Clk = P0^4 ; // FM24C04的时钟口
sbit S_Dat = P0^3 ; // FM24C04的数据口
sbit WP_24 = P0^2 ; // FM24C04的WP
sbit RE_485 = P3^3 ; // 485接收允许位。0允许接收;1允许发送
sbit TXD485 = P2^2 ; // 485发送管脚
sbit RS485 = P2^1 ; // 485接收管脚
//*/
/********************************************************************
标志位定义
********************************************************************/
uchar bdata flag0 ;
sbit MIN_FLAG =flag0^0 ; // 分钟标志
sbit ADD_FLAG =flag0^1 ; // 增加表号标志
sbit SUB_FLAG =flag0^2 ; // 删除表号标志
sbit BUSY_FLAG =flag0^3 ; // 系统忙标志
sbit HAVE_FLAG =flag0^4 ; // 新表号是否存在标志
sbit UP_FLAG =flag0^5 ; // 上行指示灯标志
sbit DOWN_FLAG =flag0^6 ; // 下行指示灯标志
sbit ERR_FLAG =flag0^7 ; // 异常指示灯标志
uchar bdata flag1 ;
sbit FM24_Bit =flag1^0 ; // FM24C04 的数据位(SDA)
sbit LOOP_FLAG =flag1^1 ; // 485循环发送控制标志
/********************************************************************
RAM内部变量定义
********************************************************************/
uchar data relay_flag; // 载波设置继电器标志
uchar data Watchdog_Reset; // 复位看门狗标志:为0x9A时,可以复位看门狗,否则复位。
uchar data time_sec ; // 1秒定时器
uchar data time_min ; // 1分钟定时器
uchar data timer_led_up ; // 指示灯显示时间寄存器
uchar data timer_led_down ; // 指示灯显示时间寄存器
uchar data timer_led_err ; // 指示灯显示时间寄存器
uchar data FNCT_NOW; // 载波通讯方式选择:‘Y’为3105;‘E’为3201
uchar data ZB_RS485_SEL ; // 载波转化后的数据和485数据选择 "C"为载波,"S"为485
uchar data SEND_LONG ;
uint data Timer_RS_Answer; // RS485应答时间
uchar data RS485_NO_Answer; // RS485应答标志: 'N'没有应答 ; 'A'已经应答
uchar data Timer_ZB; // 载波发射/接收定时器
uint data Timer_RS; // 485发射/接收定时器
uchar data ZJ_SEND; // 中继下发标志
uchar data ZB_Set_Time; // 载波校对时钟标志
uchar data ZB_TIME; // 终端收到中继命令后等待应答的时间
uchar data ZB_Re_OK;
uchar data RS_Re_OK;
uchar data HW_ZB;
uchar data RS485_Txd_OK;
uchar data ZB_State; // 载波接收过程标志:
uchar data RS485_State; // RS485接收过程标志:
uchar data ZB_Read_Time;
uchar data ZB_Read_Time_Success;
uchar data ZB_Read_C010;
uchar data RS485_Send_Sign;
uchar data RS485_Pointer; // RE_485 BUF数据指针
uchar data RS485_Add_Len; // RE_485 规约中地址部分的长度
uchar data RS485_Data_Len; // RE_485 规约中数据部分的长度
uchar data RS485_Data_CRC; // RE_485 规约中的校验和
uchar data ZB_Pointer; // 载波BUF数据指针
uchar data ZB_Data_Len; // 载波规约中数据部分的长度
uchar data ZB_Data_CRC_H; // 载波规约中的校验和高字节
uchar data ZB_Data_CRC_L; // 载波规约中的校验和低字节
uint data ZB_Data_CRC; // 载波规约中的校验和
uint data ZB_COUT_CRC; // 载波完毕后根据(crsl+crch×256)算出的校验和
uchar data ZB_Txd_Len; // 载波发送数据长度
uchar data ZB_Glob_Len; // 载波全局发送数据长度
/********************************************************************
RAM外部变量定义
********************************************************************/
uchar xdata Carrier_buf[60]; // 载波中断所接收的数据(载波数据)
uchar xdata RS485_buf[60]; // Com1中断所接收的数据(RS485数据)
uchar xdata Carrier_buf_bak[60]; // 载波中断所接收的数据(载波数据)备份
uchar xdata RS485_buf_bak[60]; // Com1中断所接收的数据(RS485数据)备份
uchar xdata Send_Carrier_buf[60]; // 载波中断所发射的数据(载波数据)
uchar xdata Send_RS485_buf[60]; // Com1中断所发射的数据(RS485数据)
uchar xdata ZJ_Add_buf[7]; // 中继上传地址
uchar xdata Add_buf[7]; // 当前电表地址(通讯用)
uchar xdata Read_buf[5]; // 读取FM24时用的中间缓冲区
uchar xdata Write_buf[5]; // 写入FM24时用的中间缓冲区
uchar xdata NEW_ADD_METER[4] ; // 新增电表表号
uchar xdata MD_ADD_buf[3]; // 读485表的目的地址
uchar xdata Son_Add_buf[17][8]; // 子表号的电表地址
uchar xdata ID_CNT[16] ; // 16块表的错误计数器
uchar xdata ID_SEL ; // 表的指针
uchar xdata RELAY_STATE[16] ; // 16块表的继电器状态标志
/********************************************************************
子程序定义
********************************************************************/
void common();
void ZB_Design_Prog();
void RS485_Design_Prog();
void Do_Err_Cnt() ;
void RS485_Data_Send();
void Read_FM24_4Byte( uchar Add_FM24);
void Write_FM24_4Byte( uchar Add_FM24);
void Delay_10ms() ;
bit ZERO_CHK(uchar i) ;
uchar Check_HW_RS_ADD( );
uchar Check_ZB_ADD();
uchar Check_ZB_ZJ_ADD( uchar Pos);
/********************************************************************
定时器T0定时中断程序
********************************************************************/
void Delay_10ms()
{
uchar i,j ;
for(i=0;i<0x0a;i++)
{
for(j=0;j<0xff;j++)
{
WDT_RST =0XA1 ;
}
}
}
void timeint0(void) interrupt 1
{
TH0=0xF8;
没有合适的资源?快使用搜索试试~ 我知道了~
载波采集终端程序1拖16
共11个文件
lnp:1个
c:1个
m51:1个
需积分: 10 5 下载量 55 浏览量
2008-12-22
12:36:18
上传
评论
收藏 113KB RAR 举报
温馨提示
北京福星晓程的1拖16载波采集终端程序。C语言
资源推荐
资源详情
资源评论
收起资源包目录
FX1T16.rar (11个子文件)
FX1T16
fz3201-485 31KB
fz3201.c 117KB
fz3201.LST 179KB
Pl3200.h 4KB
fz3201.OBJ 58KB
fz3201-485.mpj 2KB
fz3201-485.hex 34KB
fz3201-485.M51 131KB
fz3201-485.cfg 272B
fz3201.c.bak 81KB
fz3201-485.lnp 48B
共 11 条
- 1
资源评论
qujunsong
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功