<menuitem id="t17lb"><menuitem id="t17lb"><ruby id="t17lb"></ruby></menuitem></menuitem><ins id="t17lb"></ins>
<ins id="t17lb"><i id="t17lb"><progress id="t17lb"></progress></i></ins>
<cite id="t17lb"><i id="t17lb"></i></cite>
<ins id="t17lb"></ins>
<address id="t17lb"><i id="t17lb"></i></address>
<address id="t17lb"><i id="t17lb"></i></address>
<ins id="t17lb"></ins>
<ins id="t17lb"></ins><var id="t17lb"><i id="t17lb"><th id="t17lb"></th></i></var><listing id="t17lb"><i id="t17lb"></i></listing>
<th id="t17lb"><i id="t17lb"><th id="t17lb"></th></i></th>
<del id="t17lb"><i id="t17lb"><listing id="t17lb"></listing></i></del>
<var id="t17lb"><span id="t17lb"><th id="t17lb"></th></span></var><th id="t17lb"><del id="t17lb"></del></th>
(玩電子) 電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機串口通信源碼

作者:佚名   來源:本站原創   點擊數:x  更新時間:2012年11月18日   【字體:

      本測試程序選擇STC12C4052AD單片機,采用內部晶振6M起振,傳輸波特率為2400bps,測試于2012年11月17日通過。使用STC-ISP,V488版本刷機,用其自帶串口助手程序測試。源代碼如下:

#include <reg51.h>
#include <intrins.h>


unsigned char tmp;
void send_int(void);
void send_char(unsigned char txd);

main()
{
    send_int();
               
 while(1)
 {
  if(RI)      // 是否有數據到來
  {
   tmp = SBUF;                   // 暫存接收到的數據     
       send_char(tmp);     //數據傳回
         RI = 0;                       //RI清零
  }
 
 }
}
void send_int(void)
{ 
    TMOD =0x20;//T1工作為方式2
    SCON =0x50;//方式1:10位異步同通訊,串口允許接收
    PCON =0x80;//波特率倍增,SMOD='1'
    TH1=TL1=0xf3;  // 波特率2400
    TR1=1;// 啟動定時器1
    ES=1;
    EA=1;//總中斷允許
}

void send_char(unsigned char txd)
// 傳送一個字符
{
                   SBUF = txd;
                   while(!TI);
                   TI=0;
}
 

 

 


void send_string(char *s)
//傳送字符串時使用
{
        while(*s)
    {
      send_char(*s++);
    }
 

}
發表評論】【告訴好友】【收藏此文】【關閉窗口

文章評論

jijzzizz中国版