註意波特率是9600
功能:電腦通過串口給單片機發壹個字節,單片機收到後又給電腦發回去
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint temp;
bit flag;
void init_ser1();
main()
{
init_ser1();
while(1)
{
if(RI==1)
{
P1=SBUF;
RI=0;
}
if(flag==1)
{
ES=0;//暫時關閉接收
flag=0;
SBUF=temp;
while(!TI);//等待發送完畢
TI=0;
ES=1;
}
}
}
/****************************************
中斷
****************************************/
void sel() interrupt 4
{
RI=0;
P1=SBUF;
temp=SBUF;
flag=1;
}
/****************************************
初始化
****************************************/
void init_ser1()
{
REN=1;
SM0=0;
SM1=1;
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
EA=1;
TR1=1;
ES=1;
}