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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于VC6.0的多單片機(jī)和PC機(jī)串口通訊實(shí)現(xiàn)方案

          基于VC6.0的多單片機(jī)和PC機(jī)串口通訊實(shí)現(xiàn)方案

          作者: 時(shí)間:2013-09-29 來源:網(wǎng)絡(luò) 收藏


          軟件設(shè)計(jì)

          下位機(jī)程序設(shè)計(jì)

            主要由數(shù)據(jù)發(fā)送和數(shù)據(jù)接收子程序組成。設(shè)計(jì)單片機(jī)通信程序時(shí),必須充分發(fā)揮單片機(jī)的效率。由于單片機(jī)多應(yīng)用于實(shí)時(shí)性較強(qiáng)的控制場合,因此, 應(yīng)將及時(shí)響應(yīng)和控制對象的動作放在優(yōu)先考慮的位置,以盡量減少通信等輔助性操作所占用的CPU時(shí)間?;谏鲜隹紤],在設(shè)計(jì)單片機(jī)通信程序時(shí),將通信程序分為接收中斷處理程序和發(fā)送中斷處理程序2部分。

          主程序首先完成串行口的初始化、設(shè)置串口的工作方式、串口波特率,數(shù)據(jù)位、校驗(yàn)位等。

          (1) 接收子程序

            在接收到上位機(jī)發(fā)送的地址后, 下位機(jī)響應(yīng)中斷信號進(jìn)入接收子程序。首先讀取上位機(jī)發(fā)送的地址數(shù)據(jù), 檢查地址是否匹配,如果匹配, 準(zhǔn)備接收其余的數(shù)據(jù)幀。在接收完上位機(jī)發(fā)送的數(shù)據(jù)后,判斷下位機(jī)是否發(fā)出中斷申請,如果有,則清除中斷申請信號。
            (2) 發(fā)送子程序只有當(dāng)發(fā)送緩沖區(qū)內(nèi)有數(shù)據(jù)要發(fā)送并且置位發(fā)送中斷允許位時(shí)才調(diào)用。發(fā)送的數(shù)據(jù)遵守通訊協(xié)議的數(shù)據(jù)幀格式:首先發(fā)送起始標(biāo)志, 然后發(fā)送需要傳輸?shù)臄?shù)據(jù),最后發(fā)送校驗(yàn)和以及結(jié)束標(biāo)志位。

          上位機(jī)通訊

            上位機(jī)程序設(shè)計(jì)采用VC ++ 6.0開發(fā)平臺來實(shí)現(xiàn)。應(yīng)用MSComm控件,可以非常方便地創(chuàng)建串行通信應(yīng)用程序,但其程序執(zhí)行效率不夠高,并且無法應(yīng)用串行通信的一些底層功能。CSerialPort類支持線連接的串口編程操作,編寫的程序在Windows98/2000/XP下可以很好的運(yùn)行CSerialPort類是基于多線程的。

            1)設(shè)置通信對象、通信端口號以及配置通信格式(如起始位個(gè)數(shù)、數(shù)據(jù)位長度、校驗(yàn)方式、停止位個(gè)數(shù)等) 和其他相關(guān)屬性;

            2)設(shè)定通信協(xié)議;

            3)打開通信端口,進(jìn)行數(shù)據(jù)的傳輸;

          m_Port.StartMonitoring();//開啟監(jiān)視線程;

          m_Port.WriteToPort((LPCTSTR)temp);//發(fā)送數(shù)據(jù);

            4)關(guān)閉通信端口,釋放系統(tǒng)資源。在完成串行通信操作后,應(yīng)該將串行通信端口的資源歸還給操作系統(tǒng);

          m_Port.ClosePort();//關(guān)閉串口
            上位機(jī)程序工作流程如下:首先設(shè)置好串口參數(shù),再開啟串口監(jiān)測工作線程,串口監(jiān)測工作線程監(jiān)測到串口接收到的數(shù)據(jù)、流控制事件或其他串口事件后,就以消息方式通知主程序,激發(fā)消息處理函數(shù)來進(jìn)行數(shù)據(jù)處理,這是對接收數(shù)據(jù)而言;發(fā)送數(shù)據(jù)可以直接發(fā)送。


          結(jié)束語

            串 口通訊方式在計(jì)算機(jī)控制系統(tǒng)中有著廣泛的應(yīng)用,本文設(shè)計(jì)的通訊協(xié)議經(jīng)實(shí)踐證明穩(wěn)定可靠,保證了單片機(jī)與PC之間數(shù)據(jù)傳輸?shù)臏?zhǔn)確率,CSerialPort類簡化封裝了大部分通訊用API函數(shù),同時(shí)簡化了編程操作在實(shí)際中有著廣泛的應(yīng)用 。

          參考文獻(xiàn):

          [1].PC datasheethttp://www.dzsc.com/datasheet/PC+_2043275.html.
          [2].MSP430F169datasheethttp://www.dzsc.com/datasheet/MSP430F169_98.h.
          [3].MSP430 datasheethttp://www.dzsc.com/datasheet/MSP430+_490166.html.
          [4].MAX3232datasheethttp://www.dzsc.com/datasheet/MAX3232_1107769.html.
          [5].RISCdatasheethttp://www.dzsc.com/datasheet/RISC_1189725.html.

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


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


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


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


          分頻器相關(guān)文章:分頻器原理
          晶振相關(guān)文章:晶振原理

          上一頁 1 2 下一頁

          評論


          相關(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); })();