📄 zhu1126.h
字号:
#include"ctype.h"
#include"at89x55.h"
#include"intrins.h"
#include"absacc.h"
#include"string.h"
#define OpenEn
//#define TestClock
//#define TestDO
//#define TestSendEn
#define uchar unsigned char
#define uint unsigned int
bit KuaiShFlag=0; //快闪标志位
bit ManShFlag=0; //慢闪标志位
uchar data led3Kuai=0; //快闪计数器
uchar data led3Man=0; //慢闪计数器
sbit TBUS_EN =P1^3; //底层485发送使能位
sbit TX1_EN =P1^4; //Modem发送使能位
sbit TX2_EN =P1^5; //上层485发送使能位
sbit RamIO_Convert =P1^6; //端口与EEPROM互换标志位
sbit RamRom_Convert =P1^7; //RAM与ROM切换
sbit FeedDogFlag =P3^5; //喂狗标志位
uchar bdata SendEn; //扩展串口1,2发送使能
sbit SendEn0Flag=SendEn^1; //扩展串口1中断使能
sbit SendEn1Flag=SendEn^2; //扩展串口1关闭模拟开关(物理上给高阻)
sbit SendEn2Flag=SendEn^3; //扩展串口2关闭继电器(环路通)
sbit SendEn3Flag=SendEn^5; //扩展串口2中断使能
#define MaxSend 800
#define MaxRece 500
#define MaxSend0 60
#define MaxRece0 500
#define MaxSend1 800
#define MaxRece1 60
#define MaxSend2 800
#define MaxRece2 60
xdata uchar ledled _at_ 0xC000;
uchar bdata AddLed; //高四位地址,三盏灯,一峰鸣器
sbit led1Flag=AddLed^7; //第一盏灯(运行灯)
sbit led2Flag=AddLed^5; //第二盏灯(通信灯)
sbit led3Flag=AddLed^4; //第三盏灯(控制灯)
xdata uchar RealTimeData[AIDIsum] _at_ 0x1CB0; //实时数据缓冲区
xdata uchar SendSbuf0[MaxSend0] _at_ 0x1C00;
xdata uchar ReceSbuf0[MaxRece0] _at_ 0x1A00;
data uchar SendCount0; //发送指针0
data uint ReceCount0; //接收指针0
bit ReceEndFlag0;
xdata uchar SendSbuf1[MaxSend1] _at_ 0x1680;
xdata uchar ReceSbuf1[MaxRece1] _at_ 0x1600; //接收缓冲区1
data uint SendCount1; //发送指针1
data uchar ReceCount1;
bit SendingFlag1;
bit ReceEndFlag1;
bit bNeedSend1; //需要发送标志位1
xdata uchar SendSbuf2[MaxSend2] _at_ 0x1280; //发送缓冲区2
xdata uchar ReceSbuf2[MaxRece2] _at_ 0x1200;//接收缓冲区2
data uint SendCount2; //发送指针2
data uchar ReceCount2; //接收指针2
bit SendingFlag2;
bit ReceEndFlag2;
bit bNeedSend2; //需要发送标志位2
extern uint CrcCheck(uchar * pData,uint nDataLength);//Crc校验
//DS1302时钟操作函数
extern void clock_write(uchar * pp);
extern void setup_write();
extern void clock_read(uchar * pp);
#define DelayNms 20 //延时n个50ms,1秒为超时
#define DuanKaiRongL 256 //断开历史记录容量为256条S
#define ZhengChRongL 768 //正常历史记录容量为768条
#define ZhengChJianGe 6 //正常历史记录时间间隔6分钟,3天记录
#define DuanKaiJianGe 18 //断开历史记录时间间隔18分钟,3天记录
bit lockFlagDn; //向下上锁标志位
bit controlFlag; //要发控制标志位
bit ReceConFlag; //收到控制标志位(闪灯用)
uchar data DelayCount; //延时计数器
bit ResetAnsFlag; //复位响应标志位
bit BaudAnsFlag; //波特率设置响应标志位
bit NoReceFlag; //收到字符标志位(1:收到)
bit ReBaudFlag; //重新设置波特率标志位
uint data ReBaudCount=0; //重新设置波特率计数器
uint data ZhengChCount=0; //正常历史记录定时计数器
uchar data FalseTime0; //向从模块0要实时数据错误次数
uchar data FalseTime1; //向从模块1要实时数据错误次数
uchar data FalseTime2; //向从模块2要实时数据错误次数
uchar data FalseTime3; //向从模块3要实时数据错误次数
xdata uint DuanKaiTiao _at_ 0x1FF8; //断开历史记录条数
xdata uint DuanKaiZhi _at_ 0x1FFA; //断开历史记录当前地址
xdata uint ZhengChTiao _at_ 0x1FFC; //正常历史记录条数
xdata uint ZhengChZhi _at_ 0x1FFE; //正常历史记录当前地址
xdata uchar KaiJiRZh[8] _at_ 0x1FF0; //开机认证
bit ZhengChFlag; //保存曲线历史记录定时时间到标志位
bit DuanKaiFlag; //保存断开历史记录定时时间到标志位
bit JiaoTiFlag = 0; //实时历史记录交替发送标志位(断开后连接上先发实时)
bit KaiJiShZhFlag=1; //开机时钟校正标志位
uchar DuanKaiCount=0; //断开计数器
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -