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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

評論

0/150

提交評論