本程序必须由串口到数据,也便是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=%BE%A7%D5%F1&k0=%BE%A7%D5%F1&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%3A%2F%2Fwww%2E51hei%2Ecom%2Fmcu%2F2178%2Ehtml&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;
}
}