新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用VB 編程語言實現PC機與AVR 單片機的通信

        用VB 編程語言實現PC機與AVR 單片機的通信

        作者: 時間:2013-12-09 來源:網絡 收藏
        0  引 言
        在當今,網絡技術越來越多地應用在各個領域,微機技術及單片機也不斷發展,因此,目前大多數小型計算機監控系統都采用以PC 機和單片機構成的串行通信網絡來完成監控任務。其中,單片機主要進行對數據的實時采集、處理,再通過串口將數據送入PC 機的緩沖區,然后由PC 機對數據進行進一步處理,以便得到所需的圖形、圖像及實驗結果。采用VB 語言中的通信控件能夠很好地完成二者之間的通信功能。
        1  系統簡介
        本系統是一個小型的人體心電監測系統,將心電信號采出后經過A/ D 轉換,由PC 機繪制出心電圖形,進行實時顯示,便于醫護人員觀察和診斷,系統原理如圖1 所示。系統的下位機即單片機系統,將現場采集的信號經A/ D 轉換送入系統上位機。系統上位機由一臺PC 機構成,采用Vi2sual Basic 編程,做出友好的界面風格,可實時觀察心電信號。用VB 編程語言實現PC機與AVR 單片機的通信
        圖1  系統原理圖
        2  MSCOMM 控件功能介紹
        VB 提供了一個基本通信控件MSCOMM32.OCX ,它具備串行通信的能力,可以通過串口接收
        和傳輸數據。
        CommPort :端口號,用于選擇通過哪個端口進行通信。
        InBufferCount :返回接收緩沖區中等待的字符數,可以通過置0 來清空緩沖區。
        InBufferSize :設置并返回接收緩沖區的字節數。
        Settings :設置并返回波特率、奇偶校驗、數位、停止位參數。通常設置為:“9 600 , n ,8 ,1”。
        PortOpen :設置并返回通訊端口的狀態(開或關) 。端口打開后,可以直接讀寫數據流。
        Input :返回并刪除接收緩沖區中的數據流。
        InputLen :設置并返回Input 屬性從接收緩沖區讀取的字符數。
        InputMode :設置或返回Input 屬性取回的數據的類型。
        Output :往傳輸緩沖區寫數據流。
        3  通信協議
        1) 上位機與下位機通信的數據格式均為起始位,命令碼,幀長,信息段,校驗和,停止位。
        起始位與停止位標定一次發送,起始位以前和停止位以后的數據均視為干擾信號。
        幀長記錄了信息段和校驗和總共的字節數。
        2) 所有的數據均按ASCII 碼(十六進制) 操作。
        3) 具體定義如下
        信息中的每8 位(1 字節) 作為2 個字符發送。每8 位表示成16 進制數,高4 位、低4 位分
        別對應一個ASCII 字符0~9 、A~F。
        本協議以“:”(ASCII 值為0X3A) 開始,其次為命令碼:8 位、信息段:長度由待發數據而定、校驗和:8 位,最后以“回車”或“換行”(ASCII值分別為0X0D、0X0A) 結束。其中,校驗和的計算方法為256 - [命令碼+信息段長度] mod 256 (mod 表示求余) 。
        根據功能不同設置了2 個命令碼10 (ASCII值分別為0X31 、0X30) 和11 (ASCII 值分別為0X31 、0X31) 。在起始符后即為命令碼,判斷該值,以便轉向相應的處理程序。
        4  軟件實現
        MSCOMM 控件的使用使得用戶不需要對通信底層進行操作,簡便而有效。它有事件驅動和查詢2 種通信方式,由于本系統只是一個小型的監測系統,因此,采用查詢方式即可滿足要求。放置一個定時器,參數設定為500 ms ,即每0. 5 s 檢測一次緩沖區,將數據讀入。

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


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


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


        數字通信相關文章:數字通信原理


        通信相關文章:通信原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 格尔木市| 禄丰县| 大悟县| 上虞市| 漯河市| 维西| 政和县| 尼勒克县| 普陀区| 泌阳县| 海南省| 延安市| 阿荣旗| 黄骅市| 农安县| 拜泉县| 锡林郭勒盟| 浮梁县| 郸城县| 珲春市| 阿拉善右旗| 唐河县| 绥滨县| 焉耆| 丰宁| 金沙县| 日照市| 玛纳斯县| 临澧县| 读书| 永兴县| 肥乡县| 双峰县| 舟曲县| 安徽省| 沾化县| 渭源县| 房产| 盖州市| 宜昌市| 重庆市|