新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR單片機和Matlab串口通信的計時器系統

        AVR單片機和Matlab串口通信的計時器系統

        作者: 時間:2013-11-12 來源:網絡 收藏

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

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

        4.2 基于GUI界面的計時器實現

          利用的GUI設計出整體的控制界面,界面功能包括:可以設置串口參數如端口號、波特率、數據位、校驗位和停止位;計時器顯示窗口,能實時顯示計時器的時間;還具有實現打開串口、開始計時、停止、重置等功能的按鈕。設計的GUI控制界面如圖5所示。

        AVR單片機和Matlab串口通信的計時器系統

        圖5 GUI控制界面

          單片機發過來的信號,觸發上的串口中斷,標志FLAGA/FLAGB置位,進而可以使計時器停止計時。同時,在GUI界面上,也可以通過手動按鍵使標志FLAGA/FLAGB置位,停止計時。計時部分的程序流程圖如圖6所示。

        AVR單片機和Matlab串口通信的計時器系統

        圖6 計時部分的程序流程圖

          Matlab文件編譯完畢后,生成的可執行程序還需要Matlab環境的支持。為了使本設計更廣泛地應用到一般用戶,需要發布到沒有安裝Matlab的機器上運行,還要進行最后一項工作,即打包Matlab組件運行環境(Matlab Component Runtime,MCR)。將MCR與可執行程序一起打包,拷貝到其他沒有安裝Matlab的機器上,在該機器上安裝MCR,安裝完畢即可直接在該機器上運行編譯的Matlab可執行程序。[8]

        5 系統設計及應用中需注意的問題

        實際測試時,光電開關在環境照度較高時,一般都能穩定工作。但應回避將傳感器光軸正對太陽光、白熾燈等強光源。在不能改變傳感器(受光器)光軸與強光源的角度時,可在傳感器上方四周加裝遮光板或套上遮光長筒,以確保光電開關可靠工作。

          另外,在ZigBee無線通信模塊配置時,應注意選擇合適的通信信道,以避免WiFi的干擾。在同一個網絡中,無論是終端設備還是中心節點,ID設置必須相同,模塊間才能正常通信。同一個網絡中,所有模塊的串口超時時間設置必須相同,否則不能同步,通信也會失敗。

        結語

          在本設計中,主要以ATmega16單片機作為信號采集系統,通過串口和上位機的Matlab進行信號通信,通信采用ZigBee無線通信模塊實現,使系統靈活性、可擴展性大大增強。本文利用Matlab GUI進行了包含一般界面元素的界面開發,在此基礎上,加入功能和計時器計時功能。GUI設計出的人機友好界面,使得系統簡單易懂,操作起來更加方便。

        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        通信相關文章:通信原理


        光電開關相關文章:光電開關原理

        上一頁 1 2 3 下一頁

        關鍵詞: AVR單片機 Matlab 串口通信 計時器系統

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 师宗县| 武隆县| 浮梁县| 墨竹工卡县| 杭锦旗| 宁强县| 行唐县| 亳州市| 惠州市| 青龙| 斗六市| 呼图壁县| 柏乡县| 奇台县| 布尔津县| 金沙县| 安龙县| 安阳市| 牙克石市| 天镇县| 陈巴尔虎旗| 扎鲁特旗| 大石桥市| 新田县| 乌拉特中旗| 哈巴河县| 政和县| 拉萨市| 开原市| 南漳县| 游戏| 黄浦区| 乃东县| 固安县| 仙游县| 黑水县| 洛川县| 荥经县| 班戈县| 临武县| 旺苍县|