查询法串口通信
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void init()
{
TMOD=0x20;//定时器 1 方式 2 作为波特率发生器
TH1=0XF3; //装初值 波特率为 4800bps 的初值
TL1=0XF3;
TR1=1; //启动定时器 1
SCON=0X50; //设置串口工作方式为方式 1
PCON=0X80; //加倍波特率后为 4800
TI=0;//清发送中断标志位
RI=0;//清接收中断标志位
}
void main()
{
uchar temp;
init();
while(1)
{
for(;RI==0;); //或者 while(!RI);RI 为 0 数据没接收完,一直循环等待
RI=0;
temp=SBUF;//CPU 读入数据,并非 SUBF 接收数据,接收数据由接收 SBUF 接
收缓存器自动执行
P0=temp;
SBUF=temp;//CPU 发送数据给发送 SBUF,发送缓存器 SBUF 处理并负则向外
发送