求一个最简单的串口收发程序,要求在串口调试上可以显示收发的数据 5
求大神指导#include"STC_NEW_8051.h"unsignedcharflag,temp;voiddelay(ucharc)unsignedchara,b;f...
求大神指导
#include "STC_NEW_8051.h"
unsigned char flag,temp;
void delay(uchar c)
unsigned char a,b;
for(;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
void init_com(void)
{
TMOD=0x20; //开定时器1 工作方式2
TH1=0xFD; //波特率为9600
TL1=0xFD;
TR1=1; //开定时器1;
REN=1; //允许接收
SM0=0; //串口的工作方式为1
SM1=1;
PCON=0;
EA=1; //开总中断
ES=1; //开串口中断
while(1)
{
if(flag==1)
{
ES=0;
flag=0;
SBUF=temp; //到接收的缓冲器
while(!TI); //等待发送 发送完后硬件将 TI 为1
TI=0; //将置TI软件0
ES=1;
}
}
}
void Uart1() interrupt 4 using 2
{
RI=0;
flag=1;
temp=SBUF;
} 展开
#include "STC_NEW_8051.h"
unsigned char flag,temp;
void delay(uchar c)
unsigned char a,b;
for(;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
void init_com(void)
{
TMOD=0x20; //开定时器1 工作方式2
TH1=0xFD; //波特率为9600
TL1=0xFD;
TR1=1; //开定时器1;
REN=1; //允许接收
SM0=0; //串口的工作方式为1
SM1=1;
PCON=0;
EA=1; //开总中断
ES=1; //开串口中断
while(1)
{
if(flag==1)
{
ES=0;
flag=0;
SBUF=temp; //到接收的缓冲器
while(!TI); //等待发送 发送完后硬件将 TI 为1
TI=0; //将置TI软件0
ES=1;
}
}
}
void Uart1() interrupt 4 using 2
{
RI=0;
flag=1;
temp=SBUF;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询