1单个字符的发送与接收
在中断函数中,如果接收到数据则RI由硬件置1,这时候把SBUF缓冲区的数据赋值给Buffer,并将RI置0,等待下次接收。同时,将接收到的数据再放入缓冲区,发送给PC机。当发送完毕的时候TI会被硬件置1,这时候需要将TI置0,以待下次发送。
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
//定义接收 字符
uchar Buffer;
/********************************************************************
功能:串口初始化,波特率9600,方式1
*********************************************************************/
void URATinit( )
{
TMOD=0x20;
SCON=0x50;
EA=1;
ES=1;
TR1=1;
TH1=0xfd;
TL1=0xfd;
}
/********************************************************************
功能:中断函数
*********************************************************************/
void receive() interrupt 4
{
if(RI)
{
Buffer=123;
RI=0;
}
SBUF=Buffer;
while(!TI);
TI=0;
}
//主函数
void main()
{
URATinit( );
}