日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

PC機與單片機之間的串口通信程序的設計與實現(xiàn)

出處:電子技術網(wǎng) 發(fā)布于:2014-02-26 10:50:05

  摘要:本文主要利用MSComm控件實現(xiàn)單片機與PC機的串口通信,重點是軟件部分的設計。采用VC++ 6.0軟件開發(fā)平臺,利用MFC編程的思想方法,建立友好的人機交互界面。PC機向單片機發(fā)送信號,將單片機接收到信號后向PC機返回的數(shù)據(jù)在界面中實現(xiàn)動態(tài)顯示、保存等。該系統(tǒng)具有操作簡單,實用性強,可視化程度高等優(yōu)點,為以后的軟件設計打下了一定的基礎。

  1.引言

  在眾多集成可視化開發(fā)環(huán)境中,VisualC++是編程環(huán)境的選擇,VC++應用程序的開發(fā)主要有兩種模式,一種是WIN API方式,另一種是MFC方式,傳統(tǒng)的WIN API方式比較繁瑣,而MFC是對WIN API再次封裝,MFC相對于WIN API開發(fā)更具備效率優(yōu)勢,開發(fā)者只要在局部做簡單地修改,即可處理大部分窗口事物。MFC封裝了200多個類并且提供了友好的界面環(huán)境,具有類管理靈活方便、代碼編寫和界面設計集成交互操作、可移植性強等優(yōu)點,與各種數(shù)學手段和數(shù)據(jù)處理、分析算法相結合還可以實現(xiàn)海量數(shù)據(jù)分析,智能、快速、靈活數(shù)據(jù)處理,使便攜現(xiàn)場檢測儀器功能強,靈活度高,速度快,擴展性好。

  串口通信具有連續(xù)簡單、使用靈活方便、數(shù)據(jù)傳遞可靠等優(yōu)點,在數(shù)據(jù)采集系統(tǒng)、監(jiān)控系統(tǒng)和通信系統(tǒng)中,得到廣泛的應用。在Win32下,用來實現(xiàn)串口通信的編程方式有兩種:其一可以調用Windows的API函數(shù),其二可以使用ActiveX控件。調用Windows提供的API函數(shù),可以實現(xiàn)用戶自定義功能,自由度高,缺點是這種方法編寫復雜,需要清楚地掌握串口通信機制;使用ActiveX控件可以屏蔽底層的通信協(xié)議,只需對控件的屬性進行設置并添加響應的響應處理函數(shù)即可實現(xiàn)串口通信中的數(shù)據(jù)收發(fā),缺點是不支持用戶對屬性的修改,只能使用控件提供的功能,在使用時有一定限制本文要實現(xiàn)RS232協(xié)議的串口通信,采用ActiveX控件即可滿足需求。

  2.通信原理

  PC機給單片機發(fā)送一個55(發(fā)其他的數(shù)據(jù)單片機不響應),單片機通過串口將返回三個數(shù)據(jù)傳給PC:個是AA(作為數(shù)據(jù)包開包的用的);第二個數(shù)據(jù)是一個隨機數(shù),第三個數(shù)據(jù)時EE(作為數(shù)據(jù)包結束的標志)。

  點擊接收數(shù)據(jù)就會在PC機上以16進制、ASCII碼、10進制方式顯示出來。指示燈LED:紅色的是電源燈,單片機處于待機狀態(tài)時:綠燈亮,黃燈不亮;到單片機收到55數(shù)據(jù)時,單片機要返回數(shù)據(jù)的過程中:綠燈亮,黃燈會一閃(指示在發(fā)送數(shù)據(jù))。

  3.硬件

  單片機和PC機的波特率都設置為9600kbps.上位機的串口是COMl,其電平是RS232電平,而下位機的電平是T T L電平,所以需要電平轉換芯片MAX3232進行電平轉換,實現(xiàn)PC機和單片機的通信。在MAX3232芯片上,選用其中一路發(fā)送/接收,R20UT接PIC16f877的RX,T2IN接PIC16f877的TX,T20UT接PC機的RD,R2IN接PC機的TD,這樣就能實現(xiàn)單片機與計算機互聯(lián)通信。圖1為單片機與PC的連接示意圖。

  

  4.軟件

  MSComm通信控件是常用的ActiveX串口控件之一,它提供了一系列標準協(xié)議的通信接口,可以連接到其他通信設備(如單片機,以及本系統(tǒng)使用的FPGA),而且在VC++、VB等語言中使用[8].通過建立串行通信,完成命令發(fā)送、數(shù)據(jù)發(fā)送/接收、監(jiān)視和響應在通信過程中可能發(fā)生的各種事件和錯誤。本文選用MSComm控件采用事件驅動機制。一般情況下,事件發(fā)生時將產(chǎn)生通知,MSComm控件提供的OnComm事件可以用來捕獲并處理這些通信事件??梢酝ㄟ^在OnComm事件處理函數(shù)中加入讀取串口程序代碼和處理數(shù)據(jù)代碼來提高程序響應度及可靠性。圖2為本文設計的軟件界面。

  

 ?。?)建立應用工程

  啟動VC++6.0,新建工程名為“TEST”

  的對話框應用程序,這時在Resource View的Dialog樹狀文件夾中會自動生成IDD_TEST_DIALOG對話框。

 ?。?)在當前的Workspace中插入MSComm控件

  選擇Project菜單下Add to Project子菜單中的Components and Controls選項,在彈出的對話框中雙擊R e g i s t e r e dA c t i v e X C o n t r o l s項,選擇M i c r o s o f tCommunications Control version 6.0,單擊insert按鈕即可將通信控件插入該工程,這時添加了類CMSComm及相應文件:MSComm.h和MSComm.cpp.

  (3)添加MSComm控件

  在I D D _ T E S T _ D I A L O G對話框內添加MSComm控件,通過class wizard添加成員變量m_Com.

  (4)串口初始化

  在初始化對話框進行串口初始化,包括端口號、波特率、輸入方式等。

  (5)捕捉串口事件

  雙擊I D D _ T E S T _ D I A L O G對話框內的MSComm控件,這時在TESTDlg.h中,添加了TESTDlg類消息響應、在TESTDlg.cpp中映射了MSComm控件事件。

 ?。?)串口讀寫

  當用戶輸入“55”后,使用函數(shù)Set-Output()向串口寫入數(shù)據(jù),點擊“手動發(fā)送”按鈕,點擊發(fā)送。點擊“自動發(fā)送”按鈕,則設置一個Timer定時,1s發(fā)送。

  

  在進行讀操作時,當接收緩沖區(qū)有數(shù)據(jù)時,使用GetInput()將緩沖區(qū)的數(shù)據(jù)保存到COleSafeArray類型的變量里,以便后續(xù)的數(shù)據(jù)處理。

 ?。?)存儲數(shù)據(jù)

  使用MFC提供的文件操作,將數(shù)據(jù)保存在TestData.txt文本文件中。CStdioFile是CFile的派生類,適用于文本文件的讀寫,可以按行讀取寫入。同時在文件寫入數(shù)據(jù)之前寫入本次保存數(shù)據(jù)的時間,為數(shù)據(jù)的正確保存提供保障。如圖3所示。

  

  5.程序測試及結果

  程序測試過程中,首先利用串口調試助手進行演示,確保單片機能正常工作,串口可以自由接收和發(fā)送。然后使用本文設計的軟件實現(xiàn)數(shù)據(jù)的發(fā)送顯示,結果如圖2所示。

  6.結論

  本文利用VC++6.0中的MSComm控件便捷地實現(xiàn)了PC機與單片機之間的串口通信,顯示了ActiveX技術充分的靈活性和易用性。

  在Windows環(huán)境下開發(fā)上位機的串口通信程序,軟件界面友好,操作簡單,軟件設計簡單可靠,降低了工作量,準確、有效地實現(xiàn)了數(shù)據(jù)的采集顯示保存。(作者:任曉敏,馬龍)

關鍵詞:PC機與單片機之間的串口通信程序的設計與實現(xiàn)MSComm控件單片機PC機串口通信

版權與免責聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關法律責任。

本網(wǎng)轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。

如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網(wǎng)聯(lián)系,否則視為放棄相關權利。

我司代理分銷MOS管,單片機,電源IC,驅動IC,PD協(xié)議IC等,專業(yè)提供各種電子元器件!
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網(wǎng)站技術支持

13606545031

客服在線時間周一至周五
9:00-17:30

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!