专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

89s51和89s52不同晶振之间通信实验

作者:佚名   来源:本站原创   点击数:  更新时间:2013年11月02日   【字体:


本程序必须由串口到数据,也就是SBUF得到数据才能启动发送和接收。

本人查表发现11.0592和12 MHZ通信时,只有2400波特率,T1的时间设置才没误差。



89s51接晶振 12 mhz

89s52 接晶振 11.0592 mhz

89s51作为接收端代码:

#include <reg51.h>
#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 <reg52.h>
#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;
 
 }
}

关闭窗口

相关文章