📄 main.h
字号:
#include <Reg52.h>
extern void _nop_ (void); //#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define true 1
#define false 0
#define ON 0
#define OFF 1
#define OverMs 20 //Uart0 Uart1 通讯收发超时长度(单位:5ms)
#define bRecieve 1
#define bSend 0
#define SETTIME1 TH1=0xe8; TL1=0xe8; //Uart0 22.1184 BAUD=2400
#define SETTIME2 RCAP2H=0xfd;RCAP2L=0x00;TH2=RCAP2H;TL2=RCAP2L; //Uart1 22.1184 BAUD=2400
#define SETTIME0 TH0=0xdc;TL0=0x00; //T0定时器设置 每5ms中断一次
sfr T2MOD = 0xC9;
sfr WDT_CONTR = 0xE1; //看门狗地址
sbit bUart0RecSnd = P3^5; //1为接数据 0为发送数据
sbit UART_RXD = P3^2;
//通讯指示灯
sbit Uart0Rx = P3^6;
sbit Uart0Tx = P3^7;
//地址修改控制
sbit LAddrDec = P3^6;
sbit LAddrInc = P3^7;
bit bdata rec_bHead0; //COM0 接收第一个字节
bit bdata byte_bFinish; //COM1 一个字节收完标志
bit bdata reclen0_bFlg; //COM0 接收数据长度标志
bit bdata reccmd0_bFlg; //Uart0接收命令标志
bit bdata isLAddr_bFlg; //是否本机地址
bit bdata recaddr0_bFlg; //Uart0 接收长度标志
bit bdata reclen1_bFlg; //COM1 接收数据长度标志
bit bdata com0_bAck; //Uart0应答标志位 1要应答 2没有应答
bit bdata com1_bAck; //Uart1应答标志位 1要应答 2没有应答
bit bdata RI2; //COM1 收数据
bit bdata SM; //COM1 第8八位bit
bit bdata bTaskUart0; //Uart0发送本身数据
bit bdata bUart1ToUart0; //Uart0发送Uart1请求数据
bit bdata bTaskUart1; //Uart1发送本身数据
bit bdata bUart0ToUart1; //Uart1发送Uart0请求数据
bit bdata bUart0ReSnd; //Uart0是否重发
bit bdata Uart0Nums; //重发次数
bit bdata bUart1ReSnd; //Uart1是否重发
bit bdata Uart1Nums; //重发资数
uchar data snd_len0 _at_ 0x09; //UART0 发送数据包长度
uchar data snd_len1; //Uart1发送数据包长度
uchar data snd0_start _at_ 0x08; //UART0 发送数据包头字节
uchar data NoUseBank2[2] _at_ 0x10; //UART0 使用
uchar data snd1_start _at_ 0x18; //UART1 发送包头字节
uchar data Sdatabit _at_ 0x19; //Uart1 发送位记数器
uchar data NoUse _at_ 0x1A; //R2在汇编中已使用
uchar data Rdatabit; //UART1 接收位记数器
uchar data SBUF1; //UART1 SBUF
uchar data AckAddr; //子门口机地址
uchar data uart0_status; //Uart0当前状态
uchar data uart1_status; //Uart1当前状态
uchar data snd_chk0; //Uart0 校验字
uchar data snd_chk1; //Uart1 校验字
uchar data rec_cmd0; //Uart0 收到的命令
uchar data rec_cmd1; //Uart1 收到的命令
uchar data rec_len1; //Uart1 接收到的长度
uchar data rec_chk1; //Uart1 接收校验字
uchar data rec_chk0; //Uart0 接收校验字
uchar data LAddr; //本机地址 地址范围为1到99
uchar idata AddrBak; //备份地址
uchar idata prevAddr; //前一个发送地址
uchar idata delay2ms = 0; //485延时
uchar idata Uart1ToUart0Len;//室内机Uart1请求Uart0向上发送数据的长度
uchar idata SndUart0[16] _at_ 0x80; //发送COM0 SBUF
uchar idata RecUart0[16] _at_ 0x90; //接收Uart0 SBUF
uchar idata SndUart1[16] _at_ 0xA0; //发送COM1 SBUF
uchar idata RecUart1[16] _at_ 0xB0; //接收COM1 SBUF
uchar idata Uart0_Over; //Com0 超时时间(单位毫秒)
uchar idata Uart1_Over; //Com1 超时时间(单位毫秒)
uchar idata CallTallOver; //呼叫或通话超时时间(单位时秒)
uchar idata TmpMs; //临时时间(单位毫秒)
uchar idata MsCount; //毫秒计数器
uchar idata tmpdata; //临时数据
uchar idata timebak = 0; //时间点计时器
uchar idata SendUserFail[8]={0,0,0,0,0,0,0,0};
uchar idata Uart0Data[6]; //Uart0本身数据 len+cmd+addr2+addr1+data+other
uchar idata Uart1ToUart0Data[6]; //Uart1请求数据 len+cmd+data+addr+data+ack
uchar idata Uart1Data[4]; //Uart1本身数据 len+cmd+addr+ack
uchar idata Uart0ToUart1Data[5]; //Uart1请求数据 len+cmd+addr+data+other
bit bdata bDelay =false; //数码管打量后,延时1秒才能改变地址
bit bdata Bit_5ms = 0; //5ms计时器
bit bdata Bit_20ms =0; //20ms计时器
bit bdata tmpBit1;
bit bdata bUart0Ask = true; //Uart0是否要应答 true 要应答 false 为要应答
void CommUart0(); //Uart0 处理程序
void CommUart1(); //Uart1 处理程序
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -