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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)和Matlab串口通信的計(jì)時(shí)器系統(tǒng)

          AVR單片機(jī)和Matlab串口通信的計(jì)時(shí)器系統(tǒng)

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

          AVR單片機(jī)和Matlab串口通信的計(jì)時(shí)器系統(tǒng)

          圖3 單片機(jī)主程序流程圖

          3 下位機(jī)和上位機(jī)的

            本系統(tǒng)下位機(jī)為單片機(jī),信號(hào)電壓是TTL電平0~+5 V,而上位機(jī)為PC機(jī),串口電平是RS232電平-10~+10 V。為了實(shí)現(xiàn),需要經(jīng)過MAX232電平轉(zhuǎn)換,才能匹配。考慮到應(yīng)用的靈活性、方便性,以及多個(gè)下位機(jī)與一個(gè)上位機(jī)進(jìn)行的通信,本設(shè)計(jì)在單片機(jī)和上位機(jī)之間接入ZigBee無線通信模塊,使用的是SZ05-ZigBee無線通信模塊。SZ05ZigBee無線通信模塊接線圖如圖4所示。

          AVR單片機(jī)和Matlab串口通信的計(jì)時(shí)器系統(tǒng)

          圖4 SZ05ZigBee無線通信模塊接線圖

            該模塊數(shù)據(jù)接口包括TTL電平接收發(fā)送接口、RS232發(fā)送接收接口,還可以按照廣播方式發(fā)送數(shù)據(jù)和按照目標(biāo)地址發(fā)送數(shù)據(jù),除可實(shí)現(xiàn)一般的點(diǎn)對(duì)點(diǎn)數(shù)據(jù)通信功能外,還可實(shí)現(xiàn)多點(diǎn)之間的數(shù)據(jù)通信。使用方法簡(jiǎn)單、便利,可以大大縮短模塊的嵌入匹配時(shí)間進(jìn)程。它具有通信距離遠(yuǎn)、抗干擾能力強(qiáng)、組網(wǎng)靈活、性能可靠穩(wěn)定等優(yōu)點(diǎn)。[4]

            將SZ05ZigBee無線通信模塊CONFIG跳線短接,系統(tǒng)進(jìn)入配置狀態(tài)。打開計(jì)算機(jī)的超級(jí)終端,超級(jí)終端的設(shè)置為:波特率38 400、數(shù)據(jù)位8、校驗(yàn)NONE、停止位1、流控?zé)o。主要參數(shù)配置如下:網(wǎng)絡(luò)類型網(wǎng)——星型網(wǎng);發(fā)送模式——主從模式;數(shù)據(jù)類型——HEX;數(shù)據(jù)位——8+0+1;波特率——38 400;單片機(jī)端連接的設(shè)備類型——終端設(shè)備(DEVICE跳線短接);上位機(jī)端連接的設(shè)備類型——中心節(jié)點(diǎn)(CENTER端口與地短接)。每個(gè)終端設(shè)備需設(shè)置自己不同的MAC_ADDR設(shè)備地址,范圍為0000~0xFFFE。主從模式下,終端設(shè)備發(fā)送數(shù)據(jù)無需目標(biāo)地址,數(shù)據(jù)默認(rèn)給中心節(jié)點(diǎn),而中心節(jié)點(diǎn)發(fā)送數(shù)據(jù)則必須加上終端設(shè)備的目標(biāo)地址。

            無線通信模塊在測(cè)試上電時(shí),會(huì)自動(dòng)發(fā)送一串隨機(jī)數(shù)據(jù)。為了防止干擾,自定義了一項(xiàng)通信協(xié)議,定義3字節(jié)數(shù)據(jù)為一幀,數(shù)據(jù)包格式為0xAABB××,在檢測(cè)到數(shù)據(jù)頭AA BB時(shí),才接收數(shù)據(jù),保證接收到數(shù)據(jù)的準(zhǔn)確性。

          4 基于 GUI的串口通信和計(jì)時(shí)器的實(shí)現(xiàn)

          4.1 對(duì)串口RS232的編程

            從6.0版本開始,軟件中增加了設(shè)備控制箱功能,提供了對(duì)RS232/RS485通信標(biāo)準(zhǔn)的串口通信的正式支持。利用該工具箱的串口類及fopen、fread等函數(shù),能可靠地進(jìn)行實(shí)時(shí)串行通信。[5]

            從建立串口通信到結(jié)束串口通信的完整流程包括以下幾個(gè)步驟[6]:

          ① 為應(yīng)用程序創(chuàng)建串口對(duì)象。實(shí)現(xiàn)該功能的函數(shù)為obj=serial(“port”,“PropertyName”, PropertyValue,…)。其中,參數(shù)port為完整的串口名稱,如COMl;PropertyName為串口通信參數(shù),如baudrate、startbits等。

          ② 連接打開串口。其函數(shù)為fopen(obj)。

          ③ 設(shè)置或者修改串口通信參數(shù)。在能夠有效地進(jìn)行串口通信前,必須設(shè)置正確的串口通信參數(shù)。實(shí)現(xiàn)該功能的函數(shù)為props=set(obj,“PropertyName”,PropertyValue,…)。

          ④ 關(guān)閉串口以及釋放串口對(duì)象占用的存儲(chǔ)空間。關(guān)閉串口函數(shù)為:fclose(obj)。釋放串口對(duì)象占用的內(nèi)存空間,函數(shù)為delete(obj)。釋放串口對(duì)象在Matlab工作區(qū)中占用的存儲(chǔ)空間函數(shù)為clear obj。

            要實(shí)現(xiàn)自動(dòng)收發(fā)數(shù)據(jù),還需要定義串口中斷處理函數(shù)以及觸發(fā)串口中斷的方式如下:

          ① 觸發(fā)串口中斷的方式。涉及到串口讀寫的事件包括:Bytes available、Output empty。其中,Bytes available事件有兩種:一種是接收到的字符數(shù)達(dá)到人工設(shè)定的數(shù)目時(shí),系統(tǒng)產(chǎn)生該事件;另一種是當(dāng)接收到指定字符時(shí),系統(tǒng)產(chǎn)生該事件。本文采用前一種,當(dāng)接收字節(jié)數(shù)達(dá)到3時(shí),觸發(fā)中斷。

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


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


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


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


          光電開關(guān)相關(guān)文章:光電開關(guān)原理


          評(píng)論


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