【畢業(yè)學(xué)位論文】(Word原稿)使用MSComm控件設(shè)計(jì)計(jì)算機(jī)與單片機(jī)進(jìn)行串行口通信的軟件平臺(tái),以及給出程序流程圖和部分程序源代碼-光信息科學(xué)與技術(shù)_第1頁(yè)
【畢業(yè)學(xué)位論文】(Word原稿)使用MSComm控件設(shè)計(jì)計(jì)算機(jī)與單片機(jī)進(jìn)行串行口通信的軟件平臺(tái),以及給出程序流程圖和部分程序源代碼-光信息科學(xué)與技術(shù)_第2頁(yè)
【畢業(yè)學(xué)位論文】(Word原稿)使用MSComm控件設(shè)計(jì)計(jì)算機(jī)與單片機(jī)進(jìn)行串行口通信的軟件平臺(tái),以及給出程序流程圖和部分程序源代碼-光信息科學(xué)與技術(shù)_第3頁(yè)
【畢業(yè)學(xué)位論文】(Word原稿)使用MSComm控件設(shè)計(jì)計(jì)算機(jī)與單片機(jī)進(jìn)行串行口通信的軟件平臺(tái),以及給出程序流程圖和部分程序源代碼-光信息科學(xué)與技術(shù)_第4頁(yè)
【畢業(yè)學(xué)位論文】(Word原稿)使用MSComm控件設(shè)計(jì)計(jì)算機(jī)與單片機(jī)進(jìn)行串行口通信的軟件平臺(tái),以及給出程序流程圖和部分程序源代碼-光信息科學(xué)與技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

摘 要 本文 概述了計(jì)算機(jī)與 單片機(jī) 進(jìn)行串行通信的基本原理和編程時(shí)所用到 的 并采用 發(fā)軟件,使用 件設(shè)計(jì) 了計(jì)算機(jī)與單片機(jī)進(jìn)行串行口通信 的軟件平臺(tái), 以及 給出 程序流程圖和部分程序源代碼 。 串行通信作為基礎(chǔ)而靈活的一種通信方式,被廣泛應(yīng)用于計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)通信。在 境下使用 件進(jìn)行串口應(yīng)用開發(fā)具有代碼短、運(yùn)行快、可移植性、簡(jiǎn)單快捷等特點(diǎn)。 使用 件進(jìn)行串行通信編程的步驟包括加載 件、初始化并打開串行端口、捕獲 串行端口時(shí)間、串行端口數(shù)據(jù)讀寫和關(guān)閉串行端口。 本 程序 使用 供的 用程序框架,采用基于對(duì)話框的結(jié)構(gòu),有主對(duì)話框界面和串口設(shè)置對(duì)話框界面兩個(gè)界面。其中主對(duì)話框?qū)崿F(xiàn)打開串口、顯示接收數(shù)據(jù)、輸入發(fā)送數(shù)據(jù)等功能,而串口設(shè)置對(duì)話框?qū)崿F(xiàn)包括端口、波特率、數(shù)據(jù)位、停止位、校驗(yàn)位等串口通信參數(shù)的設(shè)置。 使用本文設(shè)計(jì)的 單片機(jī)的通信軟件時(shí)需要先單擊主對(duì)話框的串口設(shè)置進(jìn)入串口設(shè)置對(duì)話框,設(shè)置約定的串口參數(shù),然后選擇發(fā)送數(shù)據(jù)或者文件, 動(dòng)將數(shù)據(jù)通過(guò)串口發(fā)送給單片機(jī),單片機(jī)收到數(shù)據(jù)后進(jìn)行相應(yīng)的操作或者返回?cái)?shù) 據(jù)并在顯示區(qū)顯示,從而地實(shí)現(xiàn)了 制單片機(jī)硬件的功能,并具有界面精致、美觀、簡(jiǎn)潔、方便使用等優(yōu)點(diǎn)。 關(guān)鍵詞 單片機(jī) 串行通信 目 錄 1 前言 . 1 串行通信原理 . 1 軟件開發(fā)工具 . 2 2 件串口編程 . 2 件簡(jiǎn)介 . 2 件描述 . 3 件處理通信的方式 . 3 件常用屬性 . 3 件的事件 . 5 件編程步驟 . 5 3 串行通信軟件的編程實(shí)現(xiàn) . 6 軟件功能和流程設(shè)計(jì) . 6 界面設(shè)計(jì) . 6 變量聲明 . 9 編程實(shí)現(xiàn) . 11 初始化 . 11 串口操作 . 12 接收數(shù)據(jù)處理 . 13 發(fā)送數(shù)據(jù)處理 . 13 文件操作處理 . 14 其它操作 . 15 4 結(jié)語(yǔ) . 15 致謝 . 17 參考文獻(xiàn) . 18 . 19 附錄 . 20 1 1 前言 隨著計(jì)算機(jī)在工業(yè)領(lǐng)域的廣泛應(yīng)用 , 局域控制網(wǎng)絡(luò)也深入應(yīng)用到各行各業(yè)中。目前 ,在很多分布式數(shù)據(jù)采集和控制系統(tǒng)中 , 都采用主從式結(jié)構(gòu)模式 , 即以 為主體 , 分布在現(xiàn)場(chǎng)的各個(gè)單片機(jī)系統(tǒng)為從機(jī)組成的系統(tǒng)結(jié)構(gòu)。 單片機(jī)用在控制過(guò) 程中 可使控制系統(tǒng)工作在最佳狀態(tài) , 提 高系統(tǒng)自動(dòng)化程度。 但是,由于單片機(jī)的數(shù)據(jù)存儲(chǔ)容量和數(shù)據(jù)處理能力都較低,所以一般情況下要通過(guò)通信手段使它與 相連,把所收集到的數(shù)據(jù)傳送到 上,再在 上進(jìn)行數(shù)據(jù)處理,充分發(fā)揮兩者各自的優(yōu)勢(shì)。 機(jī) 單片機(jī)系統(tǒng)是一種廣泛應(yīng)用的主從計(jì)算機(jī)控制系統(tǒng),其信號(hào)的交互往往采用串行通信 1。 串行通信原理 串 行通信 是計(jì)算機(jī)上一種非常通用設(shè)備通信的協(xié)議。大多數(shù)計(jì)算機(jī)包含兩個(gè)基于串 行接 口。 串行通信 的概念非常簡(jiǎn)單,串口按位( 送和接收字節(jié)。盡管比按字節(jié)( 并行通信慢,但是串 口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如 義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線總長(zhǎng)不得超過(guò) 20 米,并且任意兩個(gè)設(shè)備間的長(zhǎng)度不得超過(guò) 2 米;而對(duì)于串口而言,長(zhǎng)度可達(dá) 1200米。典型地,串口用于 字符的傳輸。通信使用 3 根線完成:( 1)地線,( 2)發(fā)送,( 3)接收。由于 串行通信 是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須的。 串行通信最重要的參數(shù)是波特率、 數(shù)據(jù)位、奇偶校驗(yàn)和停止位。對(duì)于兩個(gè)進(jìn)行通信的端口,這些 參數(shù)必須匹配: 1、 波特率:這是一個(gè)衡量通信速度的參數(shù)。它表示每秒鐘傳送的 位 的個(gè)數(shù)。例如 300波特表示每秒鐘發(fā)送 300 個(gè) 位,記著 300b/s。 2、 數(shù)據(jù)位:這是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包, 實(shí)際的數(shù)據(jù)不一定 是 8 位的,標(biāo)準(zhǔn)的值是 5、 7 和 8 位。如何設(shè)置取決于你想傳送的信息。每個(gè)包是指一個(gè)字節(jié),包括開始 /停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。 3、 奇偶校驗(yàn)位:在 串行通信 中一種簡(jiǎn)單的檢錯(cuò)方式。有四種檢錯(cuò)方式:偶、奇、高和低。當(dāng)然沒(méi)有校驗(yàn)位也是可以的。對(duì)于偶和奇校驗(yàn)的情況,串口會(huì)設(shè)置校驗(yàn)位(數(shù)據(jù)位后面的一 位),用一個(gè)值確保傳輸?shù)臄?shù)據(jù)有偶個(gè)或者奇?zhèn)€邏輯高位 。 4、 停止位:用于表示單個(gè)包的最后一位。典型的值為 1, 2 位。由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了 2 小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì) 2。 軟件開發(fā)工具 單片機(jī)通信的實(shí)現(xiàn)依賴于其硬件系統(tǒng)和軟件系統(tǒng)兩部分,而軟件系統(tǒng)又包括下位機(jī)(單片機(jī))軟件和上位機(jī)( 件。本文的任務(wù)是設(shè)計(jì)一個(gè)能夠?qū)崿F(xiàn) 單片機(jī)串行通信的上位機(jī)軟件。 在 境 下 , 編寫串行通信程序是一件相當(dāng)復(fù)雜的工作 , 程序員需要具備深厚的硬件知識(shí)、花費(fèi)大量的時(shí)間和精力與硬件打交道 , 而不是如何獲取與處理數(shù)據(jù) 。 它強(qiáng)大的面向?qū)ο蟮某绦蛟O(shè)計(jì)使一般的用戶能夠操作 。在 + + 、 發(fā)工具之間 , + + 功能強(qiáng)大 , 應(yīng)用靈活 , 同時(shí)也得到了 統(tǒng)的最好支持 。 本設(shè)計(jì)是在 + +環(huán)境下 , 利用 P 操作系統(tǒng)的多線程技術(shù)和控件 , 開發(fā)串行通信程序 。 在開發(fā)微機(jī)控制系統(tǒng)的過(guò) 程中 , 我們經(jīng)常需要通過(guò) 行接口與外部設(shè)備進(jìn)行通信 。 在 實(shí)現(xiàn)多級(jí)通信的方法多種多樣 , 比如 : 對(duì) I/O 口直接訪問(wèn)操作、基于通信控件來(lái)實(shí)現(xiàn)、基于動(dòng)態(tài)鏈接庫(kù)的方法、用 數(shù)等 , 但各有各的優(yōu)缺點(diǎn) 。 對(duì) I/O 口直接訪問(wèn)操作適用于 8 及以下操作系統(tǒng)中 ; 動(dòng)態(tài)鏈接庫(kù)有其自身的特點(diǎn) , 如節(jié)省內(nèi)存、支持多語(yǔ)種等功能 ,而且當(dāng) 的函數(shù)改變后 , 只要不是參數(shù)的改變調(diào)用的函數(shù)并不需要重新編譯 , 這在編程時(shí)十分有用 , 但掌握起來(lái)比較麻煩 ; 供了使用 文件及 I/O 函數(shù)進(jìn)行串行口操作的方法 , 但是在實(shí)現(xiàn)上仍然是相當(dāng)煩瑣的 ; 幸運(yùn)的是 ,在對(duì)串行口編程時(shí) , 臺(tái)先進(jìn)的 術(shù)使我們不必處理煩瑣的細(xì)節(jié) 。 利用已有的 件 , 只需要編寫少量的代碼 , 就可以輕松高效地完成任務(wù) 。 本文以P 下 使 用 + + 件開發(fā)串行通信軟件。 該控件的響應(yīng)文件是 以下簡(jiǎn)稱為 件 。 2 件串口編程 件簡(jiǎn)介 件 , 即 是 簡(jiǎn)化 件 。 它提供了一系列標(biāo)準(zhǔn)通信命令的使用接口 , 利用它可以建立起與串口的連接 , 并可以通過(guò)串口連接到其他通信設(shè)備 (如調(diào)制解調(diào)器 ), 從而實(shí)現(xiàn)發(fā)出命令、交換數(shù)據(jù)以及監(jiān)視和響應(yīng)串行連接中發(fā)生的事件和錯(cuò)誤等功能 。 3 件也可以用于創(chuàng)建電話撥號(hào)程序、串行口通信程序和功能完備的終端程序 。 件 描述 件處理通信的方式 件提供下列兩種處理通訊的方式:事件驅(qū)動(dòng)方式和查詢方式。 1、 事件驅(qū)動(dòng)方式 事件驅(qū)動(dòng)通訊是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時(shí)需要得到通知,例如,在串口接收緩沖區(qū)中有字符,或者 D)或 o 上一個(gè)字符到達(dá)或一個(gè)變化發(fā)生時(shí)。在這些情況下,可以利用件的 件捕獲并處理這些通訊事件。 件還可以檢查和處理通訊錯(cuò)誤。所有通訊事件和通訊錯(cuò)誤的列表,參閱 性。在編程 過(guò)程中,就可以在 件處理函數(shù)中加入自己的處理代碼。這種方法的優(yōu)點(diǎn)是程序響應(yīng)及時(shí),可靠性高。每個(gè) 件對(duì)應(yīng)著一個(gè)串行端口。如果應(yīng)用程序需要訪問(wèn)多個(gè)串行端口,必須使用多個(gè) 件。 2、 查詢方式 查詢方式實(shí)質(zhì)上還是事件驅(qū)動(dòng),但在有些情況下,這種方式顯得更為便捷。在程序的每個(gè)關(guān)鍵功能之后,可以通過(guò)檢查 性的值來(lái)查詢事件和錯(cuò)誤。如果應(yīng)用程序較小,并且是自保持的,這種方法可能是更可取的。例如,如果寫一個(gè)簡(jiǎn)單的電話撥號(hào)程序,則沒(méi)有必要對(duì)每接收一個(gè)字符都產(chǎn)生事件,因?yàn)槲ㄒ坏?待接收的字符是調(diào)制解調(diào)器的“確定”響應(yīng)。 件常用屬性 件 利用 件實(shí)現(xiàn)計(jì)算機(jī)通信的關(guān)鍵是理解并正確設(shè)置件眾多屬性。以下是 件的常用屬性 3: 設(shè)置或返回串口號(hào)。 以字符串的形式設(shè)置或返回 串行通信 參數(shù)。 設(shè)置或返回串口狀態(tài)。 設(shè)置或返回接收數(shù)據(jù)的類型。 設(shè)置或返回 1 次從接收緩沖區(qū)中讀取字節(jié)數(shù)。 設(shè)置或返回接收緩沖區(qū) 的大小 , 缺省值為 1024 字節(jié)。 設(shè)置或返回接收緩沖區(qū)中等待計(jì)算機(jī)接收的字符數(shù)。 從接收緩沖區(qū)中讀取數(shù)據(jù)并清空該緩沖區(qū) , 該屬性設(shè)計(jì)時(shí)無(wú)效 , 運(yùn)行時(shí)只讀。 4 設(shè)置或返回發(fā)送緩沖區(qū)的大小 , 缺省值為 512 字節(jié)。 設(shè)置或返回發(fā)送緩沖區(qū)中等待計(jì)算機(jī)發(fā)送的字符數(shù)。 向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù) , 該屬性設(shè)計(jì)時(shí)無(wú)效 , 運(yùn)行時(shí)只讀。 該屬性為一閥值。當(dāng)接收緩沖區(qū)中字符數(shù)達(dá)到該值時(shí) , 件設(shè)置 性為 并產(chǎn)生 件。用戶可在 件處理程序中進(jìn)行相應(yīng)處理。若 性設(shè)置為 0, 則不產(chǎn)生 件。例如用戶希望接收緩沖區(qū)中達(dá)到 1 個(gè)字符就接收 1 個(gè)字符 , 可將 置為 1。這樣接收緩沖區(qū)中接收到 1 個(gè)字符 , 就產(chǎn)生 1 次 件。 該屬性亦為一閥值。當(dāng)發(fā)送緩沖區(qū)中字符數(shù)小于該值時(shí) , 件設(shè)置 性為 并產(chǎn)生 件。若 性設(shè) 置為 0,則不產(chǎn)生 件。要特別注意的是僅當(dāng)發(fā)送緩沖區(qū)中字符數(shù)小于該值的瞬間才產(chǎn)生 件 , 其后就不再產(chǎn)生 件。例如 置為 3, 僅當(dāng)發(fā)送緩沖區(qū)中字符數(shù)從 3 降為 2 時(shí) , 件設(shè)置 性為 同時(shí)產(chǎn)生 件 , 如發(fā)送緩沖區(qū)中字符始終為 2, 則不會(huì)再產(chǎn)生 件。這就避免了發(fā)送緩沖區(qū)中數(shù)據(jù)未發(fā)送完就反復(fù)發(fā)生 件。 這是一個(gè)非常重要的屬性。該屬性設(shè)計(jì)時(shí)無(wú)效 , 運(yùn)行時(shí)只讀。一旦串口發(fā)生通信 事件或產(chǎn)生錯(cuò)誤 , 依據(jù)產(chǎn)生的事件和錯(cuò)誤 , 件為 性賦不同的代碼 , 同時(shí)產(chǎn)生 件。用戶程序就可在 件處理程序中針對(duì)不同的代碼 , 進(jìn)行相應(yīng)的處理。 性的代碼、常數(shù)及含義見(jiàn)表 1、表 2。 表 1 信事件 代碼 常數(shù) 含義 1 送緩沖區(qū)中數(shù)據(jù)少于 , 說(shuō)明串口已經(jīng)發(fā)送了一些數(shù)據(jù) , 程序可以用 性繼續(xù)發(fā)送數(shù)據(jù)。 2 接受到 字符 。該事件將持續(xù)產(chǎn)生 , 直到用 性從接受緩沖區(qū)中讀取并刪除字符。 3 號(hào)線狀態(tài)發(fā)生變化。 4 號(hào)線狀態(tài)從 1 變到 0。 5 5 號(hào)線狀態(tài)發(fā)生變化 6 測(cè)到振鈴信號(hào)。 7 受到文件結(jié)束符。 表 2 信錯(cuò)誤 代碼 常數(shù) 含義 1001 受到一個(gè)中斷信號(hào)。 1002 號(hào)超時(shí)。 1003 號(hào)超時(shí)。 1004 錯(cuò)誤。 1006 串口超速。 1007 載波檢測(cè)超時(shí)。 1008 接受緩沖區(qū)溢出 , 緩沖區(qū)中已沒(méi)有空間。 1009 偶校驗(yàn)錯(cuò)。 1010 送緩沖區(qū)溢出 , 緩沖區(qū)中已沒(méi)有空間。 1011 索串口的設(shè)備控制塊時(shí)發(fā)生錯(cuò)誤。 件的事件 件只有一個(gè)事件,即 件。 件運(yùn)行觸發(fā)事件或者發(fā)生錯(cuò)誤時(shí),都會(huì)觸發(fā) 件,同時(shí)改變 性值。根據(jù) 以判斷 件當(dāng)前觸發(fā)事件或發(fā)生錯(cuò)誤的具體類型,在 件響應(yīng)代碼段中,編寫對(duì)應(yīng)各種 性值的處理代碼。 件編程步驟 在 + 成開發(fā)環(huán)境中,使用 件進(jìn)行串行通信編程的步驟包括加載 件、初始化并打開串行端口、捕獲串行端口時(shí)間、串行端口數(shù)據(jù)讀寫和關(guān)閉串行端口。 6 1、加載 件。 + 默認(rèn)情況下,不會(huì)包含 件,所以使用控件編程必須將 件加載到 + 成開發(fā)環(huán)境中。 2、初始化并打開串行端口。初始化主要完成設(shè)置程序使用的串口編號(hào)、設(shè)置串口的通信參數(shù),然后打開端口。 3、捕獲串行端口事件。 件運(yùn)行觸發(fā)事件或者都會(huì)觸發(fā) 件,同時(shí)改變 性值。 由此可 判斷控件當(dāng)前觸發(fā)事件或發(fā)生錯(cuò)誤的具體類型。 4、串行端口數(shù)據(jù)讀寫。創(chuàng)建 中 數(shù)和 實(shí)現(xiàn)串行端口數(shù)據(jù)讀寫操作。 5、關(guān)閉串行端口。當(dāng)使用完控件后,應(yīng)該及時(shí)關(guān)閉串口,以釋放串口資源。 3 串行 通信軟件的編程實(shí)現(xiàn) 軟件功能和流程設(shè)計(jì) 1、本軟件要完成以下功能: a)支持各種串口設(shè)置,如波特率、校驗(yàn)位、數(shù)據(jù)位和停止位等。 b)發(fā)送和接受的數(shù)據(jù)可以在十六進(jìn)制和 之間任意轉(zhuǎn)換。 c)可以自動(dòng)在發(fā)送的數(shù)據(jù)尾部增 加校驗(yàn)位,支持多種校驗(yàn)格式。 d)可以從外部文件導(dǎo)入 發(fā)送 數(shù)據(jù) ,也可以導(dǎo)出接收到的數(shù)據(jù) 。 2、根據(jù)要實(shí)現(xiàn)的功能要求,編程流程圖如圖 1 所示。 圖 1 串行通信軟件概念設(shè)計(jì)流程圖 界面設(shè)計(jì) 本 程序 使用 供的 用程序框架,采用基于對(duì)話框的結(jié)構(gòu),具有開發(fā)易、運(yùn)行速度快、界面精致等特點(diǎn) 4,程序有主對(duì)話框界面和串口設(shè)置對(duì)話框界面兩個(gè)界面。 7 其中主對(duì)話框?qū)崿F(xiàn)打開串口、顯示接收數(shù)據(jù)、輸入發(fā)送數(shù)據(jù)等功能,而串口設(shè)置對(duì)話框?qū)崿F(xiàn)串口通信參數(shù)的設(shè)置。 1、主對(duì)話框界面如圖 2 所示,界面中使用了 4 個(gè)組框 、 3 個(gè)編輯框、 8 個(gè)按鈕盒 2個(gè)復(fù)選框。 圖 2 主對(duì)話框界面 主對(duì)話框的資源及其作用如表 3 所示。 表 3 主對(duì)話框的資源及其功能 名稱 能 接收數(shù)據(jù)編輯框 示接收數(shù)據(jù) 串口設(shè)置按鈕 置串口的通信參數(shù) 打開串口按鈕 開 /關(guān)閉串口 打開文件按鈕 開要發(fā)送的文件 發(fā)送文件按鈕 送文件 保存文件按鈕 存文件 8 文件操作編輯框 示要發(fā)送的文件 發(fā)送數(shù)據(jù)按鈕 送數(shù)據(jù) 清除按鈕 除已輸入的數(shù)據(jù) 發(fā)送數(shù)據(jù)編輯框 入要發(fā)送的數(shù)據(jù) 清屏按鈕 除接收數(shù)據(jù)框 選框 用 據(jù)格式 換行復(fù)選框 行 件 口通信 2、 設(shè)置對(duì)話框界面如圖 3 所示,包括端口、波特率、數(shù)據(jù)位、停止位、校驗(yàn)位等通信參數(shù)的設(shè)置。界面中的兩個(gè)按鈕是自動(dòng)創(chuàng)建的,界面中使用了 6 個(gè)靜態(tài)文本控件作為文本標(biāo)簽。 圖 3 設(shè)置對(duì)話框界面 串口設(shè)置對(duì)話框的主要資源是 5 個(gè)組合列表控制。其參數(shù)設(shè)置如表 4 所示。 表 4 組合列表框的參數(shù)設(shè)置 名稱 據(jù)項(xiàng)目 功能 9 端口組合框 擇通信串口 波特率組合框 10 300 600 1200 2400 4800 9600 14400 19200 28800 38400 56000 57600 115200 設(shè)置波特率 數(shù)據(jù)位組合框 6 7 8 設(shè)置數(shù)據(jù)位位數(shù) 停止位組合框 2 設(shè)置停止位位數(shù) 校驗(yàn)位組合框 校驗(yàn) 奇校驗(yàn) 空格校驗(yàn) 標(biāo)號(hào)校驗(yàn) 無(wú)校驗(yàn) 設(shè)置校驗(yàn)方式 變量聲明 變量包括主對(duì)話框的成員變量和設(shè)置對(duì)話框的成員變量。 10 1、主對(duì)話框的的成員變量 在主對(duì)話框的頭文件中聲明這些變量。首先應(yīng)該在 件增加串口設(shè)置對(duì)話框類多文件 在 文件的首部增加包含 件類頭文件和 頭文件。然后手動(dòng)在 文件的類構(gòu)造中聲明成員變量: / ; ; /校驗(yàn)位 /數(shù)據(jù)位 /端口號(hào) /停止位 / 打開的文件 / 打開標(biāo)志 / 系統(tǒng)圖標(biāo)標(biāo)志 ; / 系統(tǒng)圖標(biāo) 同時(shí),使用類向?qū)ё詣?dòng)聲明靜態(tài)文本、按鈕、復(fù)選框和編輯框的關(guān)聯(lián)成員變量。 表 5 關(guān)聯(lián)變量聲明 11 2、串口設(shè)置對(duì)話框的成員變量 使用 +的類向?qū)ё詣?dòng)創(chuàng)建串口對(duì)話框的成員變量,如圖 4 所示。 表 6 對(duì)話框的成員變量聲明 編程實(shí)現(xiàn) 初始化 程序運(yùn)行時(shí)需要給定一個(gè)初始化條件,主要內(nèi)容有三大方面:( 1)串口設(shè)置初始化即串口對(duì)話框的參數(shù)的初始化,本文的設(shè)置是端口選擇 特率為 115200,數(shù)據(jù)位為 8,停止位為 1,校驗(yàn)位無(wú)未校驗(yàn);( 2)創(chuàng)建串口對(duì)象,即創(chuàng)建控件的實(shí)例;( 3)串口 12 初始化,設(shè)置輸入緩沖區(qū)的大小,輸出緩沖區(qū)的大小,輸入模式為二進(jìn)制并初始化串口等等。 串口操作 1、單擊主對(duì)話框的“串口設(shè)置”按鈕,將彈出“串口設(shè)置”對(duì)話框,可以再該對(duì)話框中設(shè)置通信參數(shù)。流程圖如下: 圖 5 串口 設(shè)置流程圖 2、主對(duì)話框的“打開串口”按鈕實(shí)現(xiàn)打開或者關(guān)閉指定串口的功能。流程圖如圖 6所示。 13 圖 6 打開串口流程圖 接收數(shù)據(jù)處理 程序在 件的 件中接收數(shù)據(jù) ,并在接收數(shù)據(jù)區(qū)實(shí)時(shí)顯示數(shù)據(jù) 。流程圖如圖 7 所示。 圖 7 接收數(shù)據(jù)流程圖 發(fā)送數(shù)據(jù)處理 發(fā)送數(shù)據(jù)處理包括發(fā)送數(shù)據(jù)按鈕和清除按鈕兩部分。 1.、單擊“發(fā)送數(shù)據(jù)”按鈕,輸入的字符串將通過(guò)串口發(fā)送出去。流程圖如圖 8 所示。 14 圖 8 發(fā)送數(shù)據(jù)流程圖 2、單擊“清除按鈕”,發(fā)送數(shù)據(jù)編輯框的字符串將清零。 文件操作處理 文件操作處理包括打開文件按鈕、發(fā)送文件和保存文件。 1、單擊“打開文件”按鈕,將彈出打開文件對(duì)話框,以便選擇要發(fā)送的文件,只支持 件。流程圖如圖 9 所示。 圖 9 打開文件流程圖 2、單擊“發(fā)送文件”按鈕,選中的 件會(huì)通過(guò)串口發(fā)送。流程圖如圖 10 所示。 15 圖 10 發(fā)送文件流程圖 3、單擊“保存文件”按鈕,即可以 檔格式保存已接受的數(shù)據(jù)。流程圖如圖11 所示。 圖 11 保存文件流程圖 其它操作 1、清屏。單擊“清屏”按鈕,將清空接收數(shù)據(jù)。 2、 式。選上 選框,將會(huì)使用 式顯示接收到的數(shù)據(jù)。 4 結(jié)語(yǔ) 16 本文首先介紹了串行通信的基本原理,然后介紹了使用 件精心串行通信的方法,最后在 +使用 設(shè)計(jì)了基于對(duì)話框的 單片機(jī)的通信軟件。使用時(shí)需要先單擊主對(duì)話框的串口設(shè)置進(jìn)入串口設(shè)置對(duì)話框,設(shè)置約定的串口參數(shù),然后即可發(fā)送數(shù)據(jù)或者文件, 動(dòng)將數(shù)據(jù)通過(guò)串口發(fā)送給單片機(jī),單片機(jī)收到數(shù)據(jù)后進(jìn)行相應(yīng)的操作或者返回?cái)?shù)據(jù)并在顯示區(qū)顯 示,從而實(shí)現(xiàn)了 制單片機(jī)硬件的功能。所設(shè)計(jì)的軟件界面精致、美觀、簡(jiǎn)潔,并且操作簡(jiǎn)單、方便掌握。 17 致 謝 本課題在選題及進(jìn)行過(guò)程中得到劉丹 老師的悉心指導(dǎo)。軟件設(shè)計(jì)過(guò)程中,劉 老師多次幫助我分析思路,開拓視角,在我遇到困難想放棄的時(shí)候給予我最大的支持和鼓勵(lì)。劉老師嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度,踏實(shí)堅(jiān)韌的工作精神,將使我終生受益。再多華麗的言語(yǔ)也顯蒼白。在此,謹(jǐn)向劉老師致以誠(chéng)摯的謝意和崇高的敬意。 感謝大學(xué)四年來(lái),理學(xué)院所有老師對(duì)我學(xué)習(xí)上的幫助和生活上的關(guān)懷,正是您們的辛勤工作,才使我得以順利地完成學(xué)業(yè) ,取得學(xué)位。濃濃師恩,終生不忘。 大學(xué)四年的生活即將隨著論文的完成劃上句號(hào)。最后,我感謝大學(xué)四年以來(lái)給過(guò)我?guī)椭完P(guān)注的所有人,更加感謝給過(guò)我挫折的所有人。你們用不同的方式給了我成長(zhǎng),也是你們促使我在走過(guò)的大學(xué)時(shí)光里一直努力,終可以在畢業(yè)的那一天無(wú)愧的說(shuō)一聲:青春無(wú)悔。 18 參 考 文 獻(xiàn) 1 龔建偉 , 熊光明 . +/ 串口通信編程實(shí)踐 M . 北京 : 電子出版社 , 2004 . 2182 李朝青 . 單片機(jī)原理及接口技術(shù) M . 第三版 . 北京 : 北京航空航天大學(xué)出版社 , 2006 . 1513 韓利凱 . 用 實(shí)現(xiàn) 單片機(jī)串行通信方法的研究 J . 西安文理學(xué)院學(xué)報(bào) , 2005 , 8(2) : 734 . + . 5th U. S : 1998 . 1719 C 10642, of of C CM is of is As a of is in is so

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論