最近在做关于AT89C2051与PC机的串口通信,但总是不成功,使用的是串口高度助手。程序是这样的:#include<reg51.h>
void main(void)
{
SCON=0x50;
PCON=0x00;
TMOD=0x20;
TH1=0XFD;
TL1=0xfd;
TR1=1;
EA=1;
ES=1;
while(1);
}
void UART_SER(void) interrupt 4
{
unsigned char Temp;
if(RI)
{RI=0;
Temp=SBUF;
SBUF=Temp;
}
if(TI)
TI=0;
}
和另一个查询方式的程序:
#include <reg51.h>
unsigned char sbuf;
void send(unsigned char receive);
main(){
PCON=0x00;
SCON=0x50;
TMOD=0x20;
TH1=0xfc;
TL1=0xfd;
EA=1;
ES=1;
TR1=1;
while(1){
if(RI){
RI=0;
sbuf=SBUF;
send(sbuf);
}
}
}
void send(unsigned char receive){
SBUF=receive;
while(!TI);
TI=0;
}
不知道是什么原因,在串口调试助手里发送数据总是不能接收到数据。用的是MAX232转换芯片。请高人指点!
分不多了,全给了~
1.波特率正确
2.串口是好的
3.单片机工作
应该怎么办..