新聞中心

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

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

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

Bytes available事件需要事先設(shè)置??梢允褂煤瘮?shù)set(obj,“By tesAvailableFcnMode”,“byte”)和set(obj,“BytesAvailableFcnCount”,3)。以上兩個(gè)函數(shù)設(shè)置為當(dāng)串口檢測(cè)到輸入緩存中達(dá)到了3個(gè)字符的數(shù)據(jù)時(shí),則觸發(fā)串口中斷。

② 串口中斷處理函數(shù)。串口中斷處理函數(shù)可以根據(jù)用戶(hù)需要自行定義。如串口讀中斷處理函數(shù)可以這樣定義:obj.BytesAvailableFcn=@receiveData。receiveData即為串口讀中斷處理函數(shù)。在讀中斷處理函數(shù)中可以進(jìn)行串口讀操作,即將輸入緩存區(qū)中的數(shù)據(jù)讀到用戶(hù)自定義的存儲(chǔ)變量中,以備后續(xù)的數(shù)據(jù)處理與分析。[7]

4.2 基于GUI界面的計(jì)時(shí)器實(shí)現(xiàn)

  利用的GUI設(shè)計(jì)出整體的控制界面,界面功能包括:可以設(shè)置串口參數(shù)如端口號(hào)、波特率、數(shù)據(jù)位、校驗(yàn)位和停止位;計(jì)時(shí)器顯示窗口,能實(shí)時(shí)顯示計(jì)時(shí)器的時(shí)間;還具有實(shí)現(xiàn)打開(kāi)串口、開(kāi)始計(jì)時(shí)、停止、重置等功能的按鈕。設(shè)計(jì)的GUI控制界面如圖5所示。

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

圖5 GUI控制界面

  單片機(jī)發(fā)過(guò)來(lái)的信號(hào),觸發(fā)上的串口中斷,標(biāo)志FLAGA/FLAGB置位,進(jìn)而可以使計(jì)時(shí)器停止計(jì)時(shí)。同時(shí),在GUI界面上,也可以通過(guò)手動(dòng)按鍵使標(biāo)志FLAGA/FLAGB置位,停止計(jì)時(shí)。計(jì)時(shí)部分的程序流程圖如圖6所示。

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

圖6 計(jì)時(shí)部分的程序流程圖

  Matlab文件編譯完畢后,生成的可執(zhí)行程序還需要Matlab環(huán)境的支持。為了使本設(shè)計(jì)更廣泛地應(yīng)用到一般用戶(hù),需要發(fā)布到?jīng)]有安裝Matlab的機(jī)器上運(yùn)行,還要進(jìn)行最后一項(xiàng)工作,即打包Matlab組件運(yùn)行環(huán)境(Matlab Component Runtime,MCR)。將MCR與可執(zhí)行程序一起打包,拷貝到其他沒(méi)有安裝Matlab的機(jī)器上,在該機(jī)器上安裝MCR,安裝完畢即可直接在該機(jī)器上運(yùn)行編譯的Matlab可執(zhí)行程序。[8]

5 系統(tǒng)設(shè)計(jì)及應(yīng)用中需注意的問(wèn)題

實(shí)際測(cè)試時(shí),光電開(kāi)關(guān)在環(huán)境照度較高時(shí),一般都能穩(wěn)定工作。但應(yīng)回避將傳感器光軸正對(duì)太陽(yáng)光、白熾燈等強(qiáng)光源。在不能改變傳感器(受光器)光軸與強(qiáng)光源的角度時(shí),可在傳感器上方四周加裝遮光板或套上遮光長(zhǎng)筒,以確保光電開(kāi)關(guān)可靠工作。

  另外,在ZigBee無(wú)線(xiàn)通信模塊配置時(shí),應(yīng)注意選擇合適的通信信道,以避免WiFi的干擾。在同一個(gè)網(wǎng)絡(luò)中,無(wú)論是終端設(shè)備還是中心節(jié)點(diǎn),ID設(shè)置必須相同,模塊間才能正常通信。同一個(gè)網(wǎng)絡(luò)中,所有模塊的串口超時(shí)時(shí)間設(shè)置必須相同,否則不能同步,通信也會(huì)失敗。

結(jié)語(yǔ)

  在本設(shè)計(jì)中,主要以ATmega16單片機(jī)作為信號(hào)采集系統(tǒng),通過(guò)串口和上位機(jī)的Matlab進(jìn)行信號(hào)通信,通信采用ZigBee無(wú)線(xiàn)通信模塊實(shí)現(xiàn),使系統(tǒng)靈活性、可擴(kuò)展性大大增強(qiáng)。本文利用Matlab GUI進(jìn)行了包含一般界面元素的界面開(kāi)發(fā),在此基礎(chǔ)上,加入功能和計(jì)時(shí)器計(jì)時(shí)功能。GUI設(shè)計(jì)出的人機(jī)友好界面,使得系統(tǒng)簡(jiǎn)單易懂,操作起來(lái)更加方便。

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


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


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


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


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

上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: AVR單片機(jī) Matlab 串口通信 計(jì)時(shí)器系統(tǒng)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉