<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單片機與PC通信總結

51單片機與PC通信總結

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

的串口,是個(gè)全雙工的串口,發(fā)送數據的同時(shí),還可以接收數據。
當串行發(fā)送完畢后,將在標志位 TI 置 1,同樣,當收到了數據后,也會(huì )在 RI 置 1。
無(wú)論 RI 或 TI 出現了 1,只要串口中斷處于開(kāi)放狀態(tài),單片機都會(huì )進(jìn)入串口中斷處理程序。
在中斷程序中,要區分出來(lái)究竟是發(fā)送引起的中斷,還是接收引起的中斷,然后分別進(jìn)行處理。

常用的方法有:
接收數據時(shí),使用“中斷方式”,清除 RI 后,用一個(gè)變量通知主函數,收到新數據。
發(fā)送數據時(shí),也用“中斷方式”,清除 TI 后,用另一個(gè)變量通知主函數,數據發(fā)送完畢。
這樣一來(lái),收、發(fā)兩者基本一致,編寫(xiě)程序也很規范、易懂。
更重要的是,主函數中,不用在那兒死等發(fā)送完畢,可以有更多的時(shí)間查看其它的標志。
與單片機串口通信的程序,要求如下:
1、如果在電腦上發(fā)送以$開(kāi)始的字符串,則將整個(gè)字符串原樣返回(字符串長(cháng)度不是固定的)。
2、如果接收到1,則將P00置高電平,接收到0,P10置低電平。(用來(lái)控制一個(gè)LED)
單片機是STC89C52RC/晶振11.0592/波特率要求是9600或4800。

注意:調試軟件我選擇“串口獵人”,串口獵人中選擇“字符格式發(fā)送” 。當然STC-ISP也是可以的
********************************************************/
#include reg52.h>

sbit LED=P0^0;
unsigned char UART_buff;
bit New_rec = 0, Send_ed = 1, Money = 0;

void main ()
{
SCON = 0x50; //串口方式1, 10位UART(一個(gè)起始位“0”八個(gè)數據位一個(gè)停止位“1”), 允許接收.
TMOD = 0x20; //T1方式2
TH1 = 0xFD; //裝入自動(dòng)重加載的處置,9600bps@11.0592MHz
TL1 = 0xFD; //裝入初值
TR1 = 1; //啟動(dòng)定時(shí)器T1
ES = 1; //開(kāi)串口中斷,但不開(kāi)定時(shí)器中斷,不允許定時(shí)器中斷
EA = 1;

while(Money == 0); //等著(zhù)交費,呵呵,等著(zhù)接收$.

while(1)
{
if ((New_rec == 1) (Send_ed == 1))
{ //如果收到新數據及發(fā)送完畢
SBUF = UART_buff; //那就發(fā)送.
New_rec = 0;
Send_ed = 0;
}
}
}
//----------------------------------------------
void ser_int (void) interrupt 4
{
if(RI == 1) //如果收到.
{
RI = 0; //清除標志.
New_rec = 1;
UART_buff = SBUF; //接收.
if(UART_buff == '1') LED = 1;
if(UART_buff == '0') LED = 0;
if(UART_buff == '$') Money = 1;
}
else //如果送畢.
{
TI = 0; //清除標志.
Send_ed = 1;
}
}

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


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


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


單片機相關(guān)文章:單片機工作原理


數字通信相關(guān)文章:數字通信原理


通信相關(guān)文章:通信原理




關(guān)鍵詞: 51單片機 PC 通信總結

評論


相關(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>