亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VC++6.0的數(shù)據(jù)可視化串口通信

        2012-01-15 03:51:40葉艷艷陳西曲
        武漢輕工大學學報 2012年1期
        關鍵詞:PC機流程圖控件

        葉艷艷,樊 峰,陳西曲

        (武漢工業(yè)學院電氣與電子工程學院,湖北武漢430023

        隨著計算機網(wǎng)絡及應用的發(fā)展,通信功能即計算機與外界設備或計算機和計算機之間的數(shù)據(jù)傳輸顯得越來越重要。串口通信技術因其實現(xiàn)簡單、使用靈活方便及傳輸數(shù)據(jù)穩(wěn)定可靠等優(yōu)點,作為一種重要的數(shù)據(jù)傳送手段得到越來越廣泛的應用[1-5]。因此,針對串口通信在計算機等上位機中的開發(fā),在項目開發(fā)過程中有著重要地位。本文講解了在Windows平臺下的串口通信,在VC++6.0開發(fā)環(huán)境下,單片機與PC機之間的數(shù)據(jù)通信及實時描點的實現(xiàn)過程。

        1 串行通信基本原理及波形顯示實現(xiàn)

        1.1 串行通信的基本原理

        作為CPU和串行設備間的編碼轉換器,串口將從CPU發(fā)送出去的字節(jié)數(shù)據(jù)轉換為串行的位,在接收數(shù)據(jù)時,又將串行的位轉換為字節(jié)數(shù)據(jù)[2]。

        在Windows環(huán)境下,串口是系統(tǒng)資源的一部分。串口在Win32中是作為文件來進行處理的,并不直接對端口進行操作。Win32提供了相應的文件I/O函數(shù)與通信函數(shù),通過了解這些函數(shù)的使用,就可以編制出符合不同需要的通信程序[3]。應用程序要使用串口進行通信,必須在使用之前向操作系統(tǒng)提出資源申請要求即打開串口,通信完成后必須釋放資源即關閉串口[1-3]。

        在VC++6.0開發(fā)環(huán)境下,實現(xiàn)串口通信的方法有多種,但是通過添加串行通信控件MSComm(Microsoft Communication Control)控件來實現(xiàn)串行通信是比較常用的一種方法。因為MSComm控件是微軟公司開發(fā)的新技術,封裝了串口通信的全部API函數(shù),這樣使用者就不必花費大量時間去了解復雜的API函數(shù)及硬件電路原理,只需添加少量的代碼就能實現(xiàn)想要的功能,編程容易實現(xiàn)。

        另外,還可通過使用Windows系統(tǒng)提供的應用程序接口API(Application Programming Interface)函數(shù)和多線程編程來實現(xiàn)串口編程[4]。

        本文通過對MSComm控件和NTGraph控件的操作來實現(xiàn)PC機與單片機之間的數(shù)據(jù)傳送和波形顯示。

        1.2 利用MSComm控件和NTGraph控件實現(xiàn)串口通信及波形顯示

        1.2.1 在VC++開發(fā)環(huán)境下用MSComm控件實現(xiàn)串口通信

        因MSComm控件內部封裝了串口通信的全部API函數(shù),采用MSComm控件實現(xiàn)串行通信具有不可替代的優(yōu)勢,故本文通過使用MSComm控件來實現(xiàn)串行通信。

        應用MSComm控件實現(xiàn)串口通信工作流程圖如圖1所示。

        圖1 MSComm控件工作流程圖

        (1)MSComm控件的加載。菜單欄Project→Add to project→Components and Controls Gallery→打開Registered ActiveX Controls文件夾→選擇Microsoft Communications Control,version 6.0,單擊 Insert。完成MSComm類及相應文件的添加,生成mscomm.h和mscomm.cpp的文件。

        (2)在基于對話框的程序中使用控件創(chuàng)建數(shù)據(jù)收發(fā)窗口界面。插入MSComm控件完成后,工具箱中會出現(xiàn)一個MSComm控件的圖標,將圖標拖到對話框中→編輯屬性修改ID→點擊右鍵,建立控件的類向導→添加控件的一個對象m_Comm→建立控件響應代碼框架→雙擊控件進入代碼框架添加代碼程序,一個控件即添加完成,對需要的各控件按照同樣方法逐一添加并設置。設置完參數(shù)的控件即可實現(xiàn)其相應的功能,比如發(fā)送窗口就能實現(xiàn)數(shù)據(jù)發(fā)送、接收窗口能實現(xiàn)數(shù)據(jù)接收等。設置完成后其對話框界面如圖2所示。

        圖2 MSComm控件添加及參數(shù)設置后界面

        (3)部分關鍵代碼實現(xiàn)步驟與分析。分析如下。

        第一步,打開串口。

        在OpenCOM()函數(shù)中設置打開串口,并以二進制方式讀取數(shù)據(jù)及清除緩沖區(qū)殘留數(shù)據(jù)。

        第二步,將變量和串口分別進行初始化。

        首先,我們在_Dlg::_Dlg(CWnd*pParent/*=NULL*/)

        :CDialog(_Dlg::IDD,pParent)函數(shù)中將變量初始化。本例中約定使用PC機的COM3,波特率為2400b/s,數(shù)據(jù)格式為8個數(shù)據(jù)位,1個停止位,無奇偶校驗位。

        其次,在OnInitDialog()中添加初始化語句,用于設置串口通信的屬性和打開串口。

        ((CComboBox*)GetDlgItem(IDC_COMBO_COM))->SetCurSel(m_nCom);//設置默認打開串口

        UpdateData(FALSE);

        第三步:串口讀寫。

        雙擊MSComm控件,創(chuàng)建OnComm()函數(shù),實現(xiàn)數(shù)據(jù)讀寫。使用VARIANT數(shù)據(jù)結構即VARIANT GetInput() 和 void SetOutput(const Variant&new Value)函數(shù)原型來完成串口的讀寫,其中GetInput()讀取接收緩沖區(qū)的字符,SetOutput()向發(fā)送緩沖區(qū)寫數(shù)據(jù)流。

        第四步,雙擊發(fā)送按鈕,創(chuàng)建發(fā)送函數(shù)OnButtonSend(),設置字符數(shù)據(jù)發(fā)送方式及位數(shù)。

        利用MSComm控件順利實現(xiàn)了PC機與單片機之間的串口通信,實現(xiàn)了數(shù)據(jù)穩(wěn)定可靠的傳輸。

        1.2.2 利用NTGraph控件實現(xiàn)波形顯示及實時描點

        NTGraph控件因其接口函數(shù)簡單,只需要調用少數(shù)函數(shù)就能實現(xiàn)我們想要的功能,故是用來繪圖的很好的控件。本文就是利用NTGraph控件來實現(xiàn)波形顯示及實時描點的。應用NTGraph控件顯示波形的工作流程圖如圖3所示。

        圖3 NTGraph控件工作流程圖

        (1)NTGraph控件的插入。因為NTGraph控件不是Windows自帶的控件,故需注冊以后才可使用。點擊開始→運行→輸入regsvr32/X NTGraph.ocx(/X是控件路徑)→確定,完成注冊。然后在之前添加的MSComm控件RS232對話框上點擊右鍵→選擇Insert ActiveX Control→選擇 NTGraph Control,點擊OK,NTGraph控件即添加完成。右鍵點擊NTgraphCtrl1選擇屬性,即可根據(jù)需要選擇修改一些屬性,或者在程序里修改也行。修改完屬性的完整界面如圖4所示。

        圖4 NTGraph控件添加完成后對話框界面

        控件添加完成后,再給控件添加一個對象,這樣對象就可以訪問NTGraph類中的成員函數(shù)了。點擊菜單欄上的View→Classwizard→Member Variables→選擇IDC_NTGRAPHCTRL→點擊Add Variable添加變量m_Graph→點擊OK,即完成了對象的添加,添加完對象后,寫程序控制NTGraph控件,使其實現(xiàn)實時描點和顯示波形。

        (2)部分關鍵代碼實現(xiàn)步驟與分析。首先,在OnInitDialog()的末尾添加NTGraph控件的初始化設置語句m_Graph.Set,用于設置X軸、Y軸及線條顯示的屬性等。然后,在OnComm()函數(shù)中加入自定義str_change_int(Cstring)函數(shù),用來數(shù)據(jù)類型的轉換,并利用一個for循環(huán)來實現(xiàn)實時描點及顯示波形。

        1.3 使用51單片機的RS232串口收發(fā)程序,用以實現(xiàn)與PC機之間的通訊

        8051單片機上有UART(通用異步發(fā)送接收器)用于串口通信,由TXD端發(fā)送數(shù)據(jù),RXD端接收數(shù)據(jù),并有2個緩沖器,一個用作發(fā)送緩沖器,一個用作接收緩沖器。8051采用C語言進行的程序設計。51單片機的RS232串口數(shù)據(jù)收發(fā)流程圖如圖5所示。

        圖5 51單片機的工作流程圖

        2 結果與分析

        本文講解了在基于VC++6.0的開發(fā)環(huán)境下,通過利用MSComm控件及NTGraph控件,成功完成了十六進制數(shù)據(jù)的收發(fā)及波形顯示:從PC機輸入十六進制數(shù),PC機通過串口將數(shù)據(jù)發(fā)送到單片機上,單片機RXD端接收完成并產生響應后,再將數(shù)據(jù)從TXD端發(fā)送到PC機,PC機接收數(shù)據(jù)并以方波的形式顯示,成功實現(xiàn)了51單片機與PC機之間的串口通信與方波的產生。圖6是從PC機輸入兩位十六進制數(shù),其接收情況及波形顯示情況(延時100 ms)。由此可見用MSComm控件實現(xiàn)串口通信軟件的開發(fā)是穩(wěn)定、可靠的。系統(tǒng)整體工作流程圖如圖7所示。

        圖6 結果展示圖

        圖7 系統(tǒng)整體工作流程圖

        3 總結

        本文利用ActiveX控件MSComm實現(xiàn)對串口的訪問及對數(shù)據(jù)的采集,編程簡單,可移植性強,穩(wěn)定性好,可靠性高。和NTGraph控件聯(lián)合使用,順利實現(xiàn)了對串口數(shù)據(jù)的實時描點及波形顯示。

        [1] 劉書智.VC++實踐與提高—串口通信與工程應用篇(第二版)[M].北京:中國鐵道出版社,2009.

        [2] 陳細軍,譚民.VC編程中的串口通信技術[J].計算機應用,2001(9):94-95.

        [3] 趙軍.利用VC++下MSComm開發(fā)的串口通信軟件[J].中國測試技術,2006(6):97-99.

        [4] 岳志高.MSComm控件在VC++6.0串口通信中的應用[J].長春工程學院學報,2009(1):72-73.

        [5] 韓中合.用ActiveX控件實現(xiàn)串口通信編程[J].山東電力技術,2003(2):15-17.

        [6] 邱建華,彭志豪.串口通信技術在Visual C++中的實現(xiàn)[J].技術,2005(5):94-95.

        猜你喜歡
        PC機流程圖控件
        關于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        基于PC機與單片機的多機通信技術及抗干擾方法
        基于三菱FXPLC的感應淬火機床與PC機的串行通信實現(xiàn)
        VC.NET下實現(xiàn)dsPIC單片機與PC機的通信
        電子制作(2017年23期)2017-02-02 07:16:47
        專利申請審批流程圖
        河南科技(2016年8期)2016-09-03 08:08:22
        專利申請審批流程圖
        河南科技(2016年6期)2016-08-13 08:18:29
        寧??h村級權力清單36條
        《天津醫(yī)藥》稿件處理流程圖
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        在PowerBuUder中利用WinSock控件制作簡單的Web服務器
        久久免费看黄a级毛片| 欧美精品无码一区二区三区| 午夜精品久久久久久久久| 国产精品免费观看久久 | 亚洲AV综合久久九九| 人妻少妇无乱码中文字幕| 一区二区三区日韩亚洲中文视频| 女局长白白嫩嫩大屁股| 中文区中文字幕免费看| 女邻居的大乳中文字幕| 午夜高清福利| 日本黑人人妻一区二区水多多| 亚洲综合偷自成人网第页色| 国产精品∧v在线观看| 福利一区视频| 青青草视频在线你懂的| 国产最新女主播福利在线观看| 免费1级做爰片1000部视频| 亚洲国产精品sss在线观看av| 爽妇网国产精品| 素人系列免费在线观看| 亚洲美女自拍偷拍视频| 丁字裤少妇露黑毛| 日中文字幕在线| 人妖系列在线免费观看| 黑人大群体交免费视频| 日本不卡在线视频二区三区| 中文字幕av无码一区二区三区电影 | 中文字幕久热精品视频免费| 97中文乱码字幕在线| 4hu四虎永久免费地址ww416| 中文字幕人妻丝袜美腿乱| 青榴社区国产精品| 日本久久精品视频免费| 人妻 色综合网站| 日韩二三区| 日本老熟女一区二区三区| 色婷婷五月综合激情中文字幕| 亚洲精品国偷拍自产在线观看蜜臀| 手机在线中文字幕国产| 一本色道久久亚洲加勒比|