请教单片机串口通信的问题
程序要实现的是 接受计算机发送的数据 接收到1时蜂鸣器以400ms频率发声,为2时以200ms频率发声,为3 时以频率100ms频率发声,其他的情况关闭蜂鸣器。 我试了 接收不到数据啊 程序如下 请问各位高手这是何解啊?
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar bb,flag,dat;
uint z;
sbit bee=P2^3;
void init();
uchar recieve(void);
void delay(uint z);
void main()
{
init();
while(1)
{
if(flag==1)
{
bb=recieve();
if(bb==1) //接收到1 蜂鸣器以400ms频率发声
{
bee=~bee;
delay(200);
bee=~bee;
delay(200);
}
if(bb==2) //接收到2 蜂鸣器以200ms频率发声
{
bee=~bee;
delay(100);
bee=~bee;
delay(100);
}
if(bb==3) //接收到 3蜂鸣器以100ms频率发声
{
bee=~bee;
delay(50);
bee=~bee;
delay(50);
}
bee=1; //接收到其他的蜂鸣器关闭
}
}
}
void init() //初始化函数
{
TMOD=0X20;
EA=1;
ET1=1;
TH1=0XFD;
TL1=0XFD;
TR1=1;
SCON=0X50;
PCON=0X00;
REN=1;
}
uchar recieve() //接收函数
{
uchar dat;
while(RI==0);
RI=0;
flag=1;
dat=SBUF;
return dat;
}
void delay(uint z) //延迟函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}