📄 main.c
字号:
#include<reg51.h>
unsigned char i,n,j;
unsigned char indata,OutData;
unsigned char tosin[96];
unsigned char flag;
void ComOutChar(unsigned char OutData) ;
void main(void)
{
n=0;
j=0;
flag=0;
SCON=0x50; //通讯方式一
TMOD=0X21; //定时器0方式一 定时器1方式二,用于产生波物率
PCON=0X80; //SMOD=1
RI=0;
TI=0;
TH0=0xFE;
TL0=0x5A;
TH1=0xf3;
TL1=0xf3; //波特率9600 24HZ
ES=1; //串行中断使能
TR1=1; //定时器开启
EA=1;
while(1)
{
if(flag==1) //每接收完一组新数据,将收到的数据发送一遍给上位机
{
if(j==95)
{
j=0;
flag=0;
}
else
{
ComOutChar(tosin[j]);
j++;
}
}
}
}
void ComOutChar(unsigned char OutData)
{
SBUF = OutData;
while(!TI);
TI = 0;
}
void timer0(void) interrupt 1
{
TR0=0;
if(i==95)
i=0;
P1= tosin[i];
i++;
TH0=0xFE;
TL0=0x5A;
TR0=1;
}
void ComInINT(void) interrupt 4 using 2
{
if (RI) /*判断是不是收完字符 */
{
RI=0;
n++;
if(n==95)
{
ET0=1; //开定时器0中断
TR0=1;
n=0;
flag=1;
}
tosin[n]=SBUF;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -