满意答案
、硬件:
1、51单片机波特率设置9600比较合适再高容易问题
2、晶振选用选用11.0592MHz频率
二、软件:
1、计算波特率要准确
TH1=0xfa; //定器T1式2定自重装入
TL1=TH1; //设置波特率9600晶振11.0592MHZ.
PCON=0x80;
2、串口程序
/*****************************************
*串口1断
*****************************************/
void RXD_Int_Service() interrupt 4
{
uint8 ch;
if(RI)
{
RI=0;
Usart1.RxdDly=6; //超0.3S清空计数
Usart1.RxdBuf[Usart1.RxdCnt]=ch;
Usart1.RxdCnt++;
if(Usart1.RxdCnt>=10)
{
Usart1.RxdTrue=1; //接收确
Usart1.RxdNum=Usart1.RxdCnt;
Usart1.RxdCnt=0;
}
}
if(TI)//防止发送断
{
TI=0;
}
}
void Timer0_InSevice() interrupt 1
{
TH0=0xdc; //定义50ms 值0xfe 0x0c ,修值:0xfe 0x16;
TL0=0x00; //11.0592MHz晶振
if(Usart1.RxdDly)
{
Usart1.RxdDly--; //0.3S没接收数据清0计数
if(Usart1.RxdDly==0)
{
Usart1.RxdCnt =0; //记数清0.
}
}
}
00分享举报