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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PC機與單片機間串行通信的實現(xiàn)

          PC機與單片機間串行通信的實現(xiàn)

          作者: 時間:2010-11-02 來源:網(wǎng)絡(luò) 收藏

          (1)電平轉(zhuǎn)換電路
          PC機的串行口采用的是標準的RS 232接口,單片機的串行口電平是FTL電平,而TTL電平特性與RS 232的電氣特性不匹配,因此為了使單片機的串行口能與RS 232接口通信,必須將串行口的輸入/輸出電平進行轉(zhuǎn)換。通常用MAX232芯片來完成電平轉(zhuǎn)換。
          (2)單片機部分
          單片機部分包括單片機、復(fù)位電路和時鐘電路。它將串口送過來的數(shù)據(jù)傳輸給CC1100,或者將CCll00傳送過來的數(shù)據(jù)通過串口給PC機。單片機的復(fù)位電路和時鐘電路是單片機工作所必需的。
          (3)無線收發(fā)部分
          無線收發(fā)部分由CC1100組成,它將接收到的數(shù)據(jù)通過天線發(fā)射出去或從天線接收發(fā)送過來的數(shù)據(jù)。
          (4)液晶顯示模塊
          此處選用LCDl602液晶模塊,其內(nèi)部的字符發(fā)生存儲器已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號和日文假名等,每一個字符都有一個固定的代碼。
          (5)鍵盤輸入模塊
          在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構(gòu)成4×4=16個按鍵,比之直接將端口用于鍵盤多出了一倍。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是比較好的。矩陣式鍵盤的按鍵識別方法為行掃描法。此處選用4×4的矩陣鍵盤來輸入O~9的數(shù)字和a~f的字母。

          3 軟件設(shè)計
          本系統(tǒng)的軟件設(shè)計方面包括上位機程序和單片機程序的設(shè)計。上位機程序要實現(xiàn)的功能是在電腦上顯示一個操作界面,它可代替串口調(diào)試工具。
          3.1 上位機程序
          上位機程序可以用VB,VC++等語言來編程,但本方案采用比較方便的C#來編程實現(xiàn),其流程圖如圖3所示。

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


          3.2 單片機程序
          單片機程序主要包括主程序、單片機發(fā)送子程序、單片機接收子程序、液晶顯示子程序、鍵盤輸入子程序五部分,均采用C語言進行模塊化編程。由于篇幅原因,下面只給出了單片機發(fā)送子程序和接收子程序,如圖4,圖5所示。



          關(guān)鍵詞: 收發(fā)器

          評論


          相關(guān)推薦

          技術(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); })();