freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

[計算機軟件及應用]基于vc和單片機的上下位機串口通訊系統(tǒng)設計(已修改)

2025-01-30 12:54 本頁面
 

【正文】 基于VC和單片機的上下位機串口通訊系統(tǒng)設計 摘要論文詳細介紹了單片機做下位機與VC設計的上位機進行通信的軟硬件實現(xiàn)。在硬件設計中,下位機采用AT89C52單片機系統(tǒng)與上位機系統(tǒng)通過RS232串行通信端口進行互連,采用MAX232電平轉換器完成雙向電平轉換功能。單片機系統(tǒng)接收由上位機傳輸過來的PID參數(shù)并在LED數(shù)碼管上顯示,同時可通過按鍵分別對參數(shù)進行加減操作,把修改后的PID參數(shù)再傳給上位機。在軟件設計中,上位機采用Visual Studio 2008中的MFC編寫上位機的界面程序。上位機可以顯示測量數(shù)據(jù),調節(jié)閥門開度,設定PID參數(shù)并可將參數(shù)傳給下位機,也可接收下位機發(fā)送的PID參數(shù)。關鍵詞:單片機;VC;串口通信;PID參數(shù)。目錄第1章 前言 3第2章 總體設計方案 4 上位機程序設計 4 面向對象的程序設計 4 Windows應用程序 5 Windows消息機制 5 6 7 7 7 8 8 10第3章 硬件設計 12 單片機的選擇 12 電平轉換器MAX232 12 74LS164LED驅動芯片 12 LED顯示器 13 LED顯示器工作原理 13 LED顯示器接口 14第4章 軟件設計 14 14 14 16 下位機編程方案選擇 22 22 24第5章 總結 34參考文獻 35附錄A 36附錄B 38第1章 前言隨著計算機技術尤其是單片微型機技術的發(fā)展,單片機被廣泛應用在工業(yè)控制系統(tǒng)中。單片機具有體積小、價格低廉、開發(fā)應用方便、可應用于惡劣工業(yè)環(huán)境的特點,在分布式控制系統(tǒng)中多采用單片機進行數(shù)據(jù)采集和現(xiàn)場控制。由于單片機的計算能力有限,難以進行復雜的數(shù)據(jù)處理,因此在功能復雜的控制系統(tǒng)中常采上位機下位機系統(tǒng),單片機用作下位機進行數(shù)據(jù)采集和設備控制,而PC機用做上位機進行復雜的數(shù)據(jù)處理和對單片機的控制?,F(xiàn)代信息網(wǎng)絡技術的一個突出特點,就是使工業(yè)控制系統(tǒng)中的所有設備連接成網(wǎng),從而在一個核心軟件管理下工作,形成一個有機的整體。這種整體網(wǎng)絡方式在現(xiàn)代工業(yè)控制系統(tǒng)具有傳統(tǒng)獨立控制系統(tǒng)所無法比擬的先進性,不僅能極大地提高工業(yè)設備的生產(chǎn)效率,還可以大大提高系統(tǒng)的安全性和可靠性。在單片機的輸入輸出控制中,除直接接上小鍵盤和LCD顯示屏等方法外,一般都通過串口和上位機PC進行通信。這樣不僅能夠實現(xiàn)遠程控制,而且能夠利用PC機強大的數(shù)據(jù)處理功能以及友好的控制界面。在一般的利用PC機對單片機進行控制的場合,都是采用Windows作為上位機的平臺,其優(yōu)點是界面友好,編程和操作都比較容易。因此研究PC機與單片機串行通信具有重要的現(xiàn)實及工業(yè)意義。第2章 總體設計方案 本課程設計中,開發(fā)上位機程序使用的開發(fā)環(huán)境是WIN7系統(tǒng)下用微軟的VS2008集成開發(fā)環(huán)境,所用語言為C++。主要任務是界面設計和串口通信的實現(xiàn),以及由下位機上傳的水位數(shù)據(jù)的圖形顯示。 下位機部分,開發(fā)所使用的集成環(huán)境為keil4,使用編程語言為C語言。下位機主要實現(xiàn)的功能是收發(fā)數(shù)據(jù),即與上位機進行通信。通信的內容有PID參數(shù)的下傳與顯示,閥門開度的下傳,以及水位數(shù)據(jù)上傳給上位機。 其中上下位機通信采用的是異步串行通信。通過RS—232和modbus協(xié)議完成數(shù)據(jù)通信的過程。 上位機程序設計 面向對象的程序設計 這次開發(fā)所使用C++就是一種面向對象的編程語言,VisualStudio2008就是開發(fā)Windows程序最主要的集成開發(fā)環(huán)境之一,它不僅是C++語言的集成開發(fā)環(huán)境,還與Win32緊密相連,因此,VisualStudio2008可以完成各種應用程序開發(fā),從底層的軟件到頂層面向用戶的軟件。使用VisualStudio2008環(huán)境開發(fā)應用程序縮短了開發(fā)時間,且界面友好,易于操作。 在開發(fā)Windows應用程序時,主要使用Windows提供的Windows API 即應用程序接口函數(shù),或者是Microsoft提供的MFC 即微軟基礎類庫。其中使用API開發(fā)Windows應用程序,我們需要大量的調用系統(tǒng)的API函數(shù),而使用MFC實現(xiàn)同樣的功能,系統(tǒng)會通過封裝的方式提供給我們現(xiàn)成的功能模塊調用,甚至大量的代碼將由編譯器自己生成。省去了程序員大量的編寫代碼的時間,提高了編寫Windows應用程序的效率。是程序員專注于手中將要實現(xiàn)的任務,而非相對底層的實現(xiàn)機制。這樣更有利于開發(fā)出大型的,面向對象的應用程序。 Windows應用程序 由于要開發(fā)的上位機需要與有良好的人機界面,這樣就需要開發(fā)一個具有圖形窗口的應用程序。 在Windows圖形操作系統(tǒng)下,窗口程序是基于事件驅動的,也就是說用戶可能隨時發(fā)出各種消息,而每當一個操作完成,窗口程序也要完成相應的處理功能。這與DOS下順序執(zhí)行的操作方式有很大的不同。 Windows消息機制 Windows程序啟動后,執(zhí)行特定的任務,其中最重要的是創(chuàng)建應用程序的主窗口,這個主窗口需要自己的代碼來處理Windows發(fā)送給它的信息,所以Windows程序是通過來自操作系統(tǒng)的消息來處理用戶的輸入。Windows中的大部分消息是嚴格定義的,而且適用于所有的程序。例如,當創(chuàng)建一個窗口時,發(fā)送一個 WM_CREAT消息。當用戶按下鼠標左鍵時,會發(fā)送一個 WM_LBUTTONDWON消息。Windows還對選定的窗口發(fā)送 WM_COMMAND消息,以響應用戶菜單的選擇、對話框按鈕的單擊等操作,用戶也可以定義自己的消息,并且能夠由程序發(fā)送到桌面的任何窗口,接收響應。 Windows對消息的處理過程為:Windows在系統(tǒng)內部有一個消息隊列,當輸入設備有所動作的時候,Windows都會產(chǎn)生響應的記錄放在系統(tǒng)的消息隊列里,而每個記錄中包含了消息的類型、發(fā)生的位置和發(fā)生的時間。同時,Windows為每個程序維護一個消息隊列,Windows檢查系統(tǒng)消息隊列里的應用程序消息發(fā)生的位置,進而送到相應的窗口中去。 MFC中的類的名稱都是以C為開頭的,如果需要定義自己的類或者根據(jù)MFC庫的基類派生新類時要使用相同的約定。這樣更有助于程序的理解。而變量的命名需要使用匈牙利命名法。這樣可以是代碼更加容易閱讀。MFC中如果要得到完整的應用程序,只需要從MFC中派生兩個類即可:應用程序類和窗口類。 CWinApp類對任何使用MFC編寫的Windows程序來說都很重要,該類包括的對象包括啟動、初始化、運行和關閉應用程序所需的一切代碼。MFC應用程序與用戶交互的界面被稱作框架窗口,因此,需要為應用程序從MFC類CFrameWnd中派生一個窗口類,而此類提供了創(chuàng)建和管理應用程序窗口所需的一切。 MFC程序的結構包括兩個面向應用的實體——文檔和視圖。文檔是給予應用程序中與用戶交互的數(shù)據(jù)集合的名稱。文檔類是從MFC的庫中的CDocument類派生的,需要添加數(shù)據(jù)成員來存儲應用程序需要的數(shù)據(jù),還要添加成員函數(shù)來支持對數(shù)據(jù)的處理。 視圖總是與特定的文檔對象相關。視圖對象可以提供一種機制來顯示文檔中存儲的部分或全部數(shù)據(jù)。視圖定義了在窗口中顯示的數(shù)據(jù)的方式以及與用戶交互的方式。與定義的文檔方式類似,自己的視圖類是通過CView類派生出來的。顯示視圖的窗口框架被稱為框架窗口。視圖實際上是在自己的、完全充滿框架窗口的客戶區(qū)窗口中顯示的。 文檔對象可以擁有任意多個與其相關的視圖對象。各個視圖對象可以提供文檔數(shù)據(jù)或文檔子集的不同表示方法。 MFC提供了使文檔與其視圖相結合,以及使各個框架窗口與當前的活動視圖相結合的機制。文檔對象自動維護著指向相關視圖的指針列表,而視圖對象擁有存儲相關文檔對象的指針的數(shù)據(jù)成員。各個框架窗口都存儲著一個指向當前活動視圖對象的指針。文檔、視圖和框架窗口之間的協(xié)作,是由另一個名為文檔模版的MFC類的對象安排的。這些指針使一種類對象的函數(shù)成員可以訪問另一種類對象的公有數(shù)據(jù)或接口中的函數(shù)成員。應用MFC編程時使用的到的功能組件:(l)應用程序向導(Appwizard)。Appwizard是一個標準的C++源代碼生成器。它通過一系列的對話框來提示用戶輸入所需創(chuàng)建的程序的信息。然后APPWizard生成一些文件,這些文件構成程序的框架。由APPwizard生成的程序是一個基本的Windows程序,它生成的是基本代碼,用戶應在此基礎上完善自己內容。(2)類向導(Classwizard)。Classwizard是一個交互式工具,主要進行類代碼的維護。用來建立新的類,定制類,把消息映射為類成員函數(shù),或者把控制框映射為類變量成員。在開發(fā)程序時,可用Classwizard建立程序所需要的類,包括消息處理和消息映射例程(用于定位處理消息的代碼)。(3)資源視圖(ResourceView)。ResourceView包含了項目中所有的層次列表,用于編輯和管理應用程序中用到的各種可視元素,包括快捷鍵、對話框、圖標、菜單、字符串、工具欄等。 (4)類視圖(ClassView)。ClassView用于顯示項目中所有的類信息,主要是定制現(xiàn)有的類和建立新的類,并在每個類中,顯示了成員函數(shù)和成員變量,還可以完成添加、刪除、定位的功能。 (5)文件視圖(FileView)。FileView視圖同ClassView非常相似,將項目中的所有文件(C++源文件、頭文件、資源文件、Help文件等)以視圖的形式分類顯示。在視圖中可以顯示和編輯源文件和頭文件。經(jīng)過多年的發(fā)展,現(xiàn)今已經(jīng)形成了許多串行通信接口的標準。其中本次課程設計用到的RS232標準是美國EIA(電子工業(yè)聯(lián)合會)與BELL公司一起開發(fā)的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在0—20000bit/s的范圍內通信。目前比較常用的串口有9針串口(DB9)和25針串口(DB25),近距離通信可以直接將通信接口用相應的線纜直接相連。在win32環(huán)境中,實現(xiàn)串口編程一般可以通過兩種方法實現(xiàn):一是使用Windows提供的API函數(shù)。另一種是使用MSComm ActiveX 串口通信控件來實現(xiàn)。API函數(shù)的使用為編程提供了最大的靈活性,可以直接的組織自己需要的串口模式。而使用MSComm Active控件則更為方便簡潔。通信的方法主要有兩種:事件驅動的方法和查詢法。串口控件的主要屬性、事件及方法:CommPort:表示通信的端口名。Setting :設置波特率、校驗位、數(shù)據(jù)位、停止位。PortOpen:用于打開和關閉串口。OutBufferSize:設置并返回緩沖區(qū)的大小。InBufferSize:設置并返回接收緩沖區(qū)的大小。Rthreshold:設置并返回接收時產(chǎn)生OnComm事件數(shù)。CommEvent:只要由通信錯誤或事件發(fā)生時都會產(chǎn)生Onm事件。 下位機是用單片機實現(xiàn)的PID水位調節(jié)器。下位機的主要職責是接收上位機下傳的命令設置相應的PID參數(shù),并且實時將水位信息反饋給上位機,以實現(xiàn)水位信息的記錄。下位機除了完成PID,水位數(shù)據(jù)的傳輸與處理,同時還應該具有對PID參數(shù)的設置功能。在下位機以單片機為核心的系統(tǒng)里,本設計所要實現(xiàn)的數(shù)據(jù)傳輸功能同時也利用了MAX232芯片。單片自身的RX與TX引腳直接與MX232相連,再通過線纜與上位機連接。單片機的串口是以全雙工異步通信模式通信的。 所謂的串行通信方式主要有兩種:即異步通信和同步通信。異步通信是起止式傳輸,它是利用起止方法來保持收發(fā)雙方同步的。a)每次只能傳輸一個編碼字符,可以連續(xù)發(fā)送多個字符,可以隨即進行單獨發(fā)送。b)起始位表示字符傳輸?shù)拈_始,長度為1bit;停止位表示字符傳輸?shù)慕Y束,長度1bit,2bit。c):其中空閑位可有可無。有空閑位時,若空閑位為“1”,線路處于等待狀態(tài)。存在空閑位正是異步通信的特征之一。 在幀格式中,一個字符由4個部分組成:起始位、數(shù)據(jù)位、奇偶校驗位和停止位。首先是一個起始位“0”,然后是5~8位的數(shù)據(jù)(規(guī)定低位在前,高位在后),接下來的奇偶校驗位(可省略),最后是停止位“1”。起始位“0”信號只占用一位,用來通知接收設備一個待接收的字符開始到來,線路上在不傳送字符時應保持為“1”。接收端不斷檢測線路的狀態(tài),若連續(xù)為“1”以后又側到一個“0”,就知道發(fā)來一個新字符,應馬上準備接收。字符的起始位還被用作同步接收端的時鐘,以保證以后的接收能正確進行。 起始位后面緊接著就是數(shù)據(jù)位,它可以是5~8位。奇偶校驗只占一位,但在字符中也可以規(guī)定不同奇偶校驗位,則這時這一位就可省去。也可用這一位(1/0)來確定這一幀中的字符所代表信息的性質(地址、數(shù)據(jù)等)。 停止位用來表征字符的技術,它一定是高電位(邏輯“1”)。停止位可以是1位。接收端收到停止位后,知道上一字符已傳送完畢,同時,也為接收下一個字符做好準備——只要再收到“0”就是新的字符的起始位。若停止位以后不是緊接著傳送下一個字符,則讓線路上保持為“1”。d)接收端:通過檢測起始位和停止位來判斷新近到達的字符,保持收發(fā)雙方每傳輸一個字符就重新校驗一次同步關系,不易造成時鐘誤差。e)應用:低速傳輸系統(tǒng),因為其傳輸效率較低,如傳輸一個ASCⅡ碼,數(shù)據(jù)代碼7位,1位起止位,2位停止位,1位校驗位,其效率7/(7+1+1+2)≈64%且字符之間還可能有空隙。異步傳輸是字符內的同步,字符間的異步。 ASCII碼模式同步傳輸不是以字符而是以數(shù)據(jù)塊為傳輸單位,其傳輸速率較高。同步通信中,在數(shù)據(jù)開始傳送前用同步字符來指示(常約定1~2個),并由時鐘來實現(xiàn)發(fā)送端和接收端同步,即檢測到規(guī)定的同步字符后,下面就連續(xù)按順序傳送數(shù)據(jù),直到通信告一段落。a)每次傳輸多個字符(數(shù)據(jù)塊)且它們之間沒間隙以及起始位,停止位。
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1