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

查詢法串口通信

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2012年02月12日   【字體:
#include<reg52.h>
#define uint  unsigned int
#define uchar unsigned char 
void init()
{
 TMOD=0x20;//定時(shí)器1方式2作為波特率發(fā)生器
 TH1=0XF3; //裝初值 波特率為4800bps的初值
 TL1=0XF3;
 TR1=1;    //啟動(dòng)定時(shí)器1
 SCON=0X50; //設(shè)置串口工作方式為方式1
 PCON=0X80; //加倍波特率后為4800
    TI=0;//清發(fā)送中斷標(biāo)志位
 RI=0;//清接收中斷標(biāo)志位
}
void main()
{  
 uchar temp;
 init();
 while(1)
 {   
    for(;RI==0;); //或者while(!RI);RI為0數(shù)據(jù)沒接收完,一直循環(huán)等待
    RI=0;
    temp=SBUF;//CPU讀入數(shù)據(jù),并非SUBF接收數(shù)據(jù),接收數(shù)據(jù)由接收SBUF接收緩存器自動(dòng)執(zhí)行
    P0=temp;
    SBUF=temp;//CPU發(fā)送數(shù)據(jù)給發(fā)送SBUF,發(fā)送緩存器SBUF處理并負(fù)則向外發(fā)送
    while(TI==0); // 或者while(!TI) TI為0數(shù)據(jù)沒發(fā)送完,一直循環(huán)等待
    TI=0;
 }
  
}
關(guān)閉窗口

相關(guān)文章