<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機學(xué)習(xí)筆記(五)_C51實現(xiàn)單片機串口通信仿真

          51單片機學(xué)習(xí)筆記(五)_C51實現(xiàn)單片機串口通信仿真

          作者: 時間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
          1、效果圖

          本文引用地址:http://www.ex-cimer.com/article/201611/318619.htm

          2、虛擬串口

          通過VSPD虛擬串口工具虛擬出兩個串口用于通信

          VSPD虛擬串口工具下載:http://download.csdn.net/detail/leytton/7565589


          3、串口調(diào)試

          打開兩份串口調(diào)試工具,第一個打開com1,第二個打開com2,這時在任一串口調(diào)試工具發(fā)送信息,另一個串口調(diào)試工具中能接收到信息

          串口調(diào)試工具下載:http://download.csdn.net/detail/leytton/7565561


          4、Proteus電路設(shè)計圖

          P1串口:屬性原件值COMPIM,Physical port為com2,Physical Baud rate為9600

          虛擬終端(Virtual Terminal):接RXD接口的虛擬終端顯示單片機通過com2接收到的信息,接TXD接口的虛擬終端顯示單片機傳出的信息。


          5、51單片機程序代碼

          #include void init();void main(){unsigned char temp=0xff;init();while(1){if(RI){     //RI=1,判定為串口接收到了數(shù)據(jù),RI要清零,RI=0;   temp=SBUF;  }else{P1=temp; }}}void init(){TMOD=0x20;   //設(shè)置T1工作方式為方式2TH1=0xfd; //給定時器高位裝初值TL1=0xfd; //給定時器低位裝初值TR1=1;  //開定時器//以上是設(shè)置波特率SM0=0;  //設(shè)置串口通訊方式為方式1SM1=1;  REN=1;  //串口是否接收數(shù)據(jù)的開關(guān)}

          6、運行

          串口調(diào)試工具接com1口發(fā)送的數(shù)據(jù),可在接RXD的虛擬終端顯示;
          但是單片機基本沒反應(yīng),因為我寫的代碼是通過信息來控制燈亮滅,而信息格式不合法。
          改進:在串口調(diào)試工具勾選“按十六進制發(fā)送”,虛擬終端勾選“Hex Display Mode”,發(fā)送“0”則燈全亮,發(fā)送“fe”則燈P1.0亮。

          參考文章

          1.Win7下虛擬串口http://blog.sina.com.cn/s/blog_6163bdeb0102e8iy.html

          2.利用Proteus,Serialnull,VB模擬串口通信的簡單例子http://hi.baidu.com/puda2007/item/2b2a53f33eb38e2f753c4c60

          3.Proteus通過虛擬串口程序仿真51單片機串口的實現(xiàn)http://blog.sina.com.cn/s/blog_574d08530100hk8s.html



          關(guān)鍵詞: 51單片機串口通信仿

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();