51单片机串口通讯程序,为什么发送了没反应呢?

#include <STC15F2K60S2.H>
#define uchar unsigned char
#define uint unsigned int
uchar flag,a,i;
uchar code table[]="I get";
void init()
{
TMOD=0x20;
TH1=0Xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
void main()
{
init();
while(1)
{
if(flag==1)
{
ES=0;
for(i=0;i<6;i++)
{
SBUF=table[i];//发送寄存器给值
while(!TI);
TI=0;
}
SBUF=a;//发送寄存器给值
while(!TI);
TI=0;
ES=1;
flag=0;
}
}
}
void ser()interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}

第1个回答  2014-07-28
void ser()interrupt 4
{
if(RI)
{
RI=0;
a=SBUF;
flag=1;
}
}追问

还是不行啊

我烧录别人的程序也没反应,是不是我Win8的问题

追答

可能是驱动问题,或串口问题

追问

但是我用下载器能烧进去程序。。

追答

你的串口可能有问题,串口COM4都是灰色的。

追问

打开串口后就会变灰啊。。反复打开关闭时,几乎每一次打开都会收到00,有时收不到

追答

单片机端是不是有问题,测试过串口发送是否正常?程序是否正常运行了?

追问

我昨晚用两个蓝牙模块连接电脑后,电脑通过数据线给第一个蓝牙模块数据,第一个蓝牙模块无线发送数据到了第二个蓝牙,且第二个蓝牙模块成功由数据线返回到了电脑。。

本回答被提问者和网友采纳
第2个回答  2014-07-28
最后要有end啊追问

什么意思 。小白刚学,麻烦详细给说一下好吗

相似回答