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

正文內(nèi)容

[計(jì)算機(jī)軟件及應(yīng)用]基于vc和單片機(jī)的上下位機(jī)串口通訊系統(tǒng)設(shè)計(jì)-展示頁

2025-01-27 12:54本頁面
  

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