專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

51單片機(jī)串行通信

作者:huqin   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年05月03日   【字體:
單片機(jī)1P1口的狀態(tài),通過(guò)串行通信方式傳遞到單片機(jī)2P2口輸出
 /*******************************************
發(fā)送信息
***************************************/
#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;//設(shè)置計(jì)數(shù)器T1為計(jì)數(shù)方式2(自動(dòng)重裝初值)
 PCON=0x00;//設(shè)置波特率倍增
 TH1=0xFD;
 TL1=0xFD;
 TI=0;
 TR1=1;
}
void main()
{
 SCON_init();
while(1)
 send(P1);

}

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

             接收機(jī)接收信息

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

#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()//接受設(shè)置函數(shù)

{

 SCON=0X50;//選擇串口通信方式1,允許接受

 TMOD=0x20;//設(shè)置計(jì)數(shù)器T1為計(jì)數(shù)方式2(自動(dòng)重裝初值)

 PCON=0x00;//設(shè)置波特率倍增

 TH1=0xFD; //計(jì)數(shù)器工作與方式2,高位存放初值,計(jì)數(shù)溢出后自動(dòng)裝入TL0

 TL1=0xFD; //計(jì)數(shù)單元,從FD開(kāi)始計(jì)數(shù)

 RI=0;

 TR1=1;

}

void main()

{

 SCON_init();

while(1)   //等待接受

 {

  receive();

  P2=state;

 }

}

 

關(guān)閉窗口

相關(guān)文章