PC機(jī)與單片機(jī)之間的串口通信程序的設(shè)計(jì)與實(shí)現(xiàn)-設(shè)計(jì)應(yīng)用_第1頁
PC機(jī)與單片機(jī)之間的串口通信程序的設(shè)計(jì)與實(shí)現(xiàn)-設(shè)計(jì)應(yīng)用_第2頁
PC機(jī)與單片機(jī)之間的串口通信程序的設(shè)計(jì)與實(shí)現(xiàn)-設(shè)計(jì)應(yīng)用_第3頁
PC機(jī)與單片機(jī)之間的串口通信程序的設(shè)計(jì)與實(shí)現(xiàn)-設(shè)計(jì)應(yīng)用_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

1.引言

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

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

2.通信原理

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

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

3.硬件

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

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

(7)存儲(chǔ)數(shù)據(jù)

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

5.程序測試及結(jié)果

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

6.結(jié)論

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論