你叙述的简单,我也能准确认定是什么原因,但我个人认为,只要你按照接线标准,那电路是没问题的,我担心的是通讯程序上的错误,所以我写了个单片机通讯通讯基本设置,希望你对照一下,可能对你有帮助
#include
//使用晶振11.0592
unsigned
int
k=0;
main()
{
EA=1;
SCON=0x90;
//串口方式为2,SM0=1,REN=1允许接受
PCON=0x80;
//SMOD=1
TMOD=0x20;
//定时器T1方式为2
TH1=0xfa;
//波特率设定为9600
TL1=0xfa;
ES=1;
TR1=1;
while(1);
{
if(k==1)
//等待你需要执行的语句,你可以自己编写
k=0;//接受错误,k复位
}
}
void
counter4(void)
interrupt
4
{
while(RI==0);
RI
=
0;
k=
SBUF;
}
PS:你是PC按一个按键,开始发送,但发送的是什么,你要特别注意,单片机串口通讯接受的是8位数据,不是bit(BOOL)型,这需要你转化为个char型的数据进行发送,上面例子中,我使用的
if(k==1),其中就是判断char
k是否等于1