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

51单片机串行通信

作者:huqin   来源:本站原创   点击数:  更新时间:2014年05月03日   【字体:
单片机1P1口的状态,通过串行通信方式传递到单片机2P2口输出
 /*******************************************
发送信息
***************************************/
#include<reg51.h>
#define uchar unsigned char
#define uint  unsigned int
void send(uchar state)
{
  SBUF=state;
  while(TI==0);
   TI=0;
}
void SCON_init()
{
 SCON=0X40;//选择串口通信方式1
 TMOD=0x20;//设置计数器T1为计数方式2(自动重装初值)
 PCON=0x00;//设置波特率倍增
 TH1=0xFD;
 TL1=0xFD;
 TI=0;
 TR1=1;
}
void main()
{
 SCON_init();
while(1)
 send(P1);

}

/*******************************************

             接收机接收信息

***************************************/

#include<reg51.h>

#define uchar unsigned char

#define uint  unsigned int

uchar state;

void receive()

{

   while(RI==0);

   state=SBUF;

   RI=0;

}

void SCON_init()//接受设置函数

{

 SCON=0X50;//选择串口通信方式1,允许接受

 TMOD=0x20;//设置计数器T1为计数方式2(自动重装初值)

 PCON=0x00;//设置波特率倍增

 TH1=0xFD; //计数器工作与方式2,高位存放初值,计数溢出后自动装入TL0

 TL1=0xFD; //计数单元,从FD开始计数

 RI=0;

 TR1=1;

}

void main()

{

 SCON_init();

while(1)   //等待接受

 {

  receive();

  P2=state;

 }

}

 

关闭窗口

相关文章