<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機模擬串口的三種方法

51單片機模擬串口的三種方法

作者: 時(shí)間:2013-02-26 來(lái)源:網(wǎng)絡(luò ) 收藏

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

方法三:

分 析:中斷的方法和計數器的方法差不多,只是當計算器溢出時(shí)便產(chǎn)生一次中斷,用戶(hù)可以在中斷程序中置標志,程序不斷的查詢(xún)該標志來(lái)決定是否發(fā)送或接收下一位,當然程序中需對中斷進(jìn)行初始化,同時(shí)編寫(xiě)中斷程序。本程序使用Timer0中斷。也是我推薦的方法,和計數法大同小異。發(fā)送程序參考計數法,相信是件很容易的事。另外還需注明的是本文所說(shuō)的串口就是通常的三線(xiàn)制異步通信串口(UART),只用

RXD、TXD、GND。

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

#define TM0_FLAG P1_2 //設傳輸標志位

//計數器及中斷初始化

void S2INI(void)

{

TMOD |=0x02; //計數器0,方式2

TH0=0xA0; //預值為256-96=140,十六進(jìn)制A0

TL0=TH0;

TR0=0; //在發(fā)送或接收才開(kāi)始使用

TF0=0;

ET0=1; //允許定時(shí)器0中斷

EA=1; //中斷允許總開(kāi)關(guān)

}

//接收一個(gè)字符

uchar RByte()

{

uchar Output=0;

uchar i=8;

TR0=1; //啟動(dòng)Timer0

TL0=TH0;

WaitTF0(); //等過(guò)起始位

//接收8位數據位

while(i--)

{

Output >>=1;

if(RXD) Output |=0x80; //先收低位

WaitTF0(); //位間延時(shí)

}

while(!TM0_FLAG) if(RXD) break;

TR0=0; //停止Timer0

return Output;

}

//中斷1處理程序

void IntTimer0() interrupt 1

{

TM0_FLAG=1; //設置標志位。

}

//查詢(xún)傳輸標志位

void WaitTF0( void )

{

while(!TM0_FLAG) ;

TM0_FLAG=0; //清標志位

}

51單片機相關(guān)文章:51單片機教程



上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 51單片機 模擬串口 中斷法

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>