📄 fun.h
字号:
//fun.h
//定义端口寄存器
sfr P0M0 = 0X93;
sfr P0M1 = 0X94;
sfr P1M0 = 0X91;
sfr P1M1 = 0X92;
sfr P2M0 = 0X95;
sfr P2M1 = 0X96;
sfr P3M0 = 0Xb1;
sfr P3M1 = 0Xb2;
//定义串口2寄存器
sfr AUXR = 0x8e;
sfr S2CON = 0x9a;
sfr S2BUF = 0x9b;
sfr BRT = 0x9c;
sfr IE2 = 0xaf;
#define fosc 11059200L
sbit dir1 = P3^0; //串口1,485方向控制
sbit dir2 = P1^0; //串口2,485方向控制
char reciev1[10], rec_num1; //保存接收到的数据
char reciev2[10], rec_num2; //保存接收到的数据
//正在接收标志
bit r1tag,r2tag;
void init_usart()
{
SM0 = 0;
SM1 = 1;
REN = 1;
ES = 1;
}
void init_usart2()
{
S2CON = 0x50; //S2M0 = 0,S2M1=1,S2REN=1;
AUXR = 0x14; //BRTR=1,S2SMOD=0,BRTx12=1;
//11.0592MHz,9600
BRT = 256 - (fosc/32/9600); //BRT = 0xdc
IE2 = 0x01; //ES2 = 1
}
void init_timer()
{
TMOD |= 0X20; //定时器1模式2,8bit自动重装
TH0 = 0xfd; //对应波特率9600
TL0 = 0xfd;
ET1 = 1; //允许T1中断
TR1 = 1;
}
//定义延时函数
void ms_delay(unsigned int t)
{
unsigned int i;
for (t; t > 0; t--) //外层循环t次
for (i = 1320;i > 0; i--) //内层循环110*12次
;
}
void send1(char c)
{
dir1 = 1; //485发送数据
SBUF = c;
while(!TI);//等待发完
dir1 = 0; //485接收数据
}
void send2(char c)
{
dir2 = 1; //485发送数据
S2BUF = c;
while(!(S2CON & 0x02));//等待发完
dir2 = 0; //485接收数据
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -