
本程序必须由串口到数据,也就是sbuf得到数据才能启动发送和接收。
本人查表发现11.0592和12 mhz通信时,只有2400波特率,t1的时间设置才没误差。
89s51接晶振 12 mhz
89s52 接adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=17&is_app=0&jk=f17e7b18880150fb&k=����&k0=����&kdi0=0&luki=1&n=10&p=baidu&q=98059059_cpr&rb=0&rs=1&seller_id=1&sid=fb500188187b7ef1&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1831118&u=http://www.51hei.com/mcu/2178.html&urlid=0" id="0_nwl" mpid="0" target="_blank">晶振11.0592 mhz
89s51作为接收端代码:
#include
#define led p1 //led显示
void main()
{
tmod=0x20;
th1=0xf3;
tl0=0xf3;
tr1=1;
scon=0x50;
while(1)
{
while(ri==0);//确定收到成功判断
led=sbuf;
ri=0;
sbuf=led;
while(ti==0);//确定发送成功判断
ti=0;
}
}
89s52作为发送端代码:
#include
#define led p1 //led显示
void main()
{
tmod=0x20;
th1=0xf4;
tl0=0xf4;
tr1=1;
scon=0x50;
while(1)
{
while(ri==0); //接收成功判断
led=sbuf;
ri=0;
sbuf=led;
while(ti==0);//发送成功判断
ti=0;
}
}