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

正文內(nèi)容

畢業(yè)論文基于c++的rs232通信協(xié)議模擬終端(文件)

2025-09-18 10:50 上一頁面

下一頁面
 

【正文】 數(shù)據(jù)交換過程中,要對(duì)幾個(gè)重要的 通信 參數(shù)進(jìn)行設(shè)置,其中包括波特率、數(shù)據(jù)位、停止位、奇偶校驗(yàn)位等。串行接口電路的接收波特率和發(fā)送的波特率可以設(shè)置,要求接收 方的接收波特率必須與發(fā)送方的發(fā)送波特率是一致的。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包,實(shí)際的數(shù)據(jù)不會(huì)是 8 位的,標(biāo)準(zhǔn)的值是 7 和 8 位。 數(shù)據(jù)位的 位數(shù)可以有硬件或軟件設(shè)備進(jìn)行設(shè)置,以滿足設(shè)備間數(shù)據(jù)交換的需要。 (4)奇偶校驗(yàn)位 在串行通信中奇偶校驗(yàn) 是一種簡單的檢錯(cuò)方式,奇偶校驗(yàn)位僅占一位,用于進(jìn)行奇校驗(yàn)和偶校驗(yàn),同時(shí)也可以無校驗(yàn)位。這樣使得接收設(shè)備能夠知道一個(gè)位的狀態(tài),有機(jī)會(huì)判斷是否有噪聲干擾了通信或者傳輸和接收數(shù)據(jù)是否發(fā)生了不同步。它是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳送一幀信息。 異步通信數(shù)據(jù)通常以字符或者字節(jié)為單位組成字符幀傳送,字符幀由發(fā)送端逐幀發(fā)送,通過傳輸線被接收設(shè)備逐幀接收。 當(dāng)然它也具有自己獨(dú)特的優(yōu)點(diǎn), 其優(yōu) 點(diǎn)就是它的通信設(shè)備簡單、便宜。 圖 23 9 芯管腳圖 表 21 9 針管腳各引腳名稱功能圖 九針串口 針號(hào) 縮寫 功能說明 信號(hào)來源 1 DCD 功能說明 調(diào)制解調(diào)器 2 RXD 接收數(shù)據(jù) 調(diào)制解調(diào)器 3 TXD 發(fā)送數(shù)據(jù) PC 4 DTR 數(shù)據(jù)終端準(zhǔn)備 PC 5 GND 信號(hào)地 6 DSR 數(shù)據(jù)設(shè)備準(zhǔn)備好 調(diào)制解調(diào)器 7 RTS 請(qǐng)求發(fā)送 PC 8 CTS 請(qǐng)求發(fā) 送 調(diào)制解調(diào)器 9 DELL 振鈴指示 調(diào)制解調(diào)器 9 目前,市場(chǎng)上使用的串口有 9 針管腳的還有 25 針管腳的。 由表 21 可知要想實(shí)現(xiàn)兩臺(tái) 個(gè)人計(jì)算機(jī)間的數(shù)據(jù)交換,可以將兩個(gè) USB 轉(zhuǎn)RS232 線的接口頭的 3 引腳交叉對(duì)接,兩個(gè) 5 腳相接即可,具體接法如 圖24 所示,然后再講兩個(gè) USB 接頭與兩臺(tái)電腦相連。打開設(shè)備管理器,看一下所插入的轉(zhuǎn)換線占的是哪個(gè)串口,因?yàn)樵诮酉聛碚{(diào)試串口要用到。 為下文編寫 Windows 應(yīng)用程序?qū)崿F(xiàn)兩臺(tái) PC 機(jī)進(jìn)行數(shù)據(jù)交換提供了基礎(chǔ)。接收方為了檢查所接收的數(shù)據(jù)是否有誤碼,可采用多種檢測(cè)方法。例如:代碼 101011 對(duì)應(yīng)的多項(xiàng)式為135 ??? XXX ,而多項(xiàng)式為 1256 ??? XXX 對(duì)應(yīng)的代碼 1100101。接收方使用相同的生成碼進(jìn)行校驗(yàn),若接收到的字段或生成碼(二進(jìn)制除法)如果能夠除盡,則說明在通信過程中,數(shù)據(jù)交換期間未受到其他因素的干擾,消息收發(fā)成功。當(dāng)所有數(shù)據(jù)位都這樣操作后,計(jì)算結(jié)束。還有一種是按照字節(jié)計(jì)算 CRC 校驗(yàn)碼,按字節(jié)校驗(yàn)是每次計(jì)算 8 位數(shù)據(jù),多是基于查表的算法,首先要準(zhǔn)備一 個(gè)表,一共 256 項(xiàng)。分析了 CRC 校驗(yàn)原理、算法形式和算法的實(shí)現(xiàn)。 本次軟件程序設(shè)計(jì)功能的實(shí)現(xiàn)主要利用 Windows 編程中 MFC(利用 C++語言)。平大家所見到的大多數(shù)Windows應(yīng)用程序均屬于這兩種框架。啟用 MFC編碼可以使 Windows程序員能夠利用 C++面向?qū)ο蟮乃枷脒M(jìn)行編程,用好的類作為標(biāo)準(zhǔn),減少代碼的編寫量。 Windows 平臺(tái)先進(jìn)的 ActiveX 技術(shù)利用已有 的 MSComm ActiveX 控件,只需要編寫少量的代碼,就可以輕松高效地完成任務(wù), 使得對(duì)串口編程不再需要處理煩瑣的細(xì)節(jié)。主要功能框圖如圖 41 所示。通信結(jié)束后,關(guān)閉打開的串口。 程序運(yùn)行平臺(tái) 在程序設(shè)計(jì)時(shí),原計(jì)劃使用 VS2020 軟 件,但是由于電腦、操作系統(tǒng)等各種原因,就改用 VC++ 這個(gè)軟件。然后在將基于對(duì)話框選中 (如圖 43) ,直接下一步即可,最后直到完成。 Access 數(shù)據(jù)庫是一個(gè)小型的數(shù)據(jù)庫,使用起來非常的靈活、方便 。最后為 Access 數(shù)據(jù)庫 demo01 建立數(shù)據(jù)源,利用 ODBC 驅(qū)動(dòng)。若輸入用戶名和密碼正確,即與 Access 數(shù)據(jù)庫表 login 內(nèi)容相一致,點(diǎn)擊登錄按鈕,出現(xiàn)提示正確,點(diǎn)擊確定按鈕應(yīng)用程序的界面會(huì)由登陸界面跳轉(zhuǎn)到主界面,開始進(jìn)行數(shù)據(jù)交換。完整的主界面如圖47 所示。 21 圖 48 設(shè)置界面 模塊分析 在登錄界面下,在編輯框中輸入用戶名和密碼,單擊 界面中的【登錄】按鈕,可以驗(yàn)證用戶名密碼輸入是否正確, 若正確登錄 ,程序提示 “登陸成功,歡迎使用! ”,然后登陸界面關(guān)閉顯示 主界面,若輸入錯(cuò)誤則 程序提示 “密碼用戶名錯(cuò)誤,請(qǐng)重新輸入! ”。 //讀取編輯框內(nèi)容 開始 輸入獲取信息 是否登錄 密碼用戶名是否一致 登錄成功,轉(zhuǎn)到主界面 結(jié)束 點(diǎn)擊退出按鈕 Y N Y N 23 CUserRecordset m_user。anduserpwd=39。 if(())//密碼用戶名不一致 { ()。 AfxMessageBox(登錄成功,歡迎使用! )。 } 序初始化 實(shí)現(xiàn)先顯示登陸界面后主界面,利用 MFC 中的模式對(duì)話框在初始化函數(shù)中來實(shí)現(xiàn), 若串口是打開的則關(guān)閉串口, 同時(shí)串口參 數(shù)的設(shè)置也是在初始化函數(shù)中設(shè)置實(shí)現(xiàn) 的。 ()。 //輸入方式為二進(jìn)制方式 (1024)。 // return TRUE unless you set the focus to a control } 、打開和關(guān)閉串口功能 圖 411 設(shè)置、打開和關(guān)閉串口流程圖 串行通信是通過串口實(shí)現(xiàn)數(shù)據(jù)交換的,但是 PC 機(jī)上有不止一個(gè)串口,需要我們?cè)O(shè)置進(jìn)行串行通信 端口號(hào),并將串口打開,通信結(jié)束后將串口關(guān)閉 ]23[ 。 = m_n。//發(fā)送緩沖區(qū) (0)。 //打開串口 (1)。 } void CMyDlg::OnClose()//關(guān)閉串口 { // TODO: Add your control notification handler code here (FALSE)。 實(shí)現(xiàn)此模塊的程序流程圖如圖 412 所示, 其 功能代碼如下: 圖 412 數(shù)據(jù)交換模塊流程圖 代碼如下: void CMyDlg::OnOnComm() { // TODO: Add your control notification handler code here 開始 接收緩沖區(qū)內(nèi)是否有字符 將緩沖 區(qū)內(nèi)容給接收變量 結(jié)束 Y N 28 VARIANT variant_inp。 //設(shè)置 BYTE數(shù)組 CString strtemp。 //得到有效的數(shù)據(jù)長度 for(k=0。 for(k=0。 //將字符送入臨時(shí)變量 strtemp存放 m_receive+=strtemp。 //更新編輯框內(nèi)容 } 對(duì)數(shù)據(jù)交換過程中的波特率、數(shù)據(jù)位、停止位、奇偶校驗(yàn)位等通信參數(shù)進(jìn)行設(shè)置, 點(diǎn)擊【確定】按鈕,設(shè)置成功;點(diǎn)擊【退出】按鈕,取消設(shè)置,返回主界面。 = m_jiaoyan。 switch(m_baund) // 設(shè)置波特率 { case 0:conf = 2400,。 case 2:conf = 9600,。break。break。break。break。break。break。break。發(fā)送數(shù)據(jù)流程圖如圖 414 所示,代碼如下 : 圖 414 發(fā)送模塊流程圖 void CMyDlg::OnSendbtn() 開始 讀取編輯框 發(fā)送和清空 更新編輯框 結(jié)束 32 { // TODO: Add your control notification handler code here UpdateData(true)。 //更新編輯框內(nèi)容 } 程序測(cè)試 首先,直接雙擊通信文件夾下的 debug 子文 件夾下的通信 .exe 運(yùn)行文件;其次,按以下步驟進(jìn)行測(cè)試: 1.登錄 輸入錯(cuò)誤密碼,程序提示 “密碼、用戶名錯(cuò)誤,請(qǐng)重試! ”如圖 415 所示。 34 圖 417 設(shè)置串口和參數(shù) 選擇串口號(hào),并將此 串口 打開 ,設(shè)置通信參數(shù)完成后,在發(fā)送 區(qū)內(nèi)的 編輯框輸入要發(fā)送的內(nèi)容, 然后點(diǎn)擊【發(fā)送】按鈕, 發(fā)送 去編輯框里要發(fā)送的內(nèi)容會(huì)通過此串口發(fā)送到 另一個(gè)端口的接收區(qū) 的編輯框 內(nèi), 并 在接收區(qū) 的編輯 框內(nèi)顯示了發(fā)送的 內(nèi)容, 同理也可在另一個(gè)串口的發(fā)送區(qū)編輯框內(nèi)輸入數(shù)據(jù),此 數(shù)據(jù)也可發(fā)送到本串口的編輯框內(nèi),也會(huì)在 接收區(qū)的編輯框內(nèi)得到顯示, 如圖 418所示。并對(duì)此應(yīng)用程序進(jìn)行了運(yùn)行測(cè)試。掌握了串行通信的基本概念。 ,被傳遞的數(shù)據(jù)有可能受到各種因素的影響,造成數(shù)據(jù)丟失,更改等,影響發(fā)送接收數(shù)據(jù)的準(zhǔn)確性。所以對(duì)通信過程中數(shù)據(jù)交換準(zhǔn)確度的驗(yàn)證采用了比較準(zhǔn)確的方法即 CRC 校驗(yàn), CRC 校驗(yàn)全稱 CRC( Cyclic Redundancy Check)循環(huán)冗余校驗(yàn)碼,它是數(shù)據(jù)通信領(lǐng)域中 最常用的一種差錯(cuò)校驗(yàn)碼,數(shù)據(jù)從發(fā)送端發(fā)送過來同時(shí)在其低位上是兩個(gè) CRC 校驗(yàn)碼,接收方對(duì)接收到的數(shù)據(jù)進(jìn)行 CRC 解碼, 與發(fā)送來的數(shù)據(jù)進(jìn)行比對(duì),驗(yàn)證是否相同,若相同 則接收到的數(shù)據(jù)是正確的,反之則證明數(shù)據(jù)在發(fā)送過程中受到了干擾等, 需重新發(fā)送此數(shù)據(jù)。 38 參 考 文 獻(xiàn) [1] 陳傳波,杜娟,張智杰. W1N32 下基于 RS232 協(xié)議的串口通信方法及應(yīng)用研究 [J].南昌人學(xué)學(xué)報(bào), 2020. [2] 趙志岳.基于 NXP 5209Modem 的 AT 指令分析和擴(kuò)展 [D].東南大學(xué), 2020. [3] 金衛(wèi)民. VC 下利用串口進(jìn)行數(shù)據(jù)通信的研究 [J].計(jì)算機(jī)工程和設(shè)計(jì), 2020, 24(12):120123. [4] 孫曉云 .接口與通訊技術(shù)原理與應(yīng)用 [M].北京:中國電力出版社, 2020 [5] 樊一支,姜文祥,陳梨園。 [14] 田志良 .面向?qū)ο蟪绦蛟O(shè)計(jì)循序漸進(jìn) [J].北京學(xué)苑出版社, 1 9 9 4. [15] 侯俊杰 .深入淺出 MFC 第 2 版 [J].武漢 :華中科技大學(xué)出版社 , 2020. [16] 薩師煊 .數(shù)據(jù)庫系統(tǒng)概論(第三版) [J].高等教育出版社 . 2020. [17] Ori Gurewish Nathan Gure wish .精通 Visual C++[J].北京 :學(xué)苑出版社,1996. 39 [18] . Visual C++技術(shù)內(nèi)幕 [J].王國印 .北京 :清華大學(xué)出版社, 1996. [19] 吳國鳳,宣善立主編 .C/C++程序設(shè)計(jì) [J].高等教育出版社 2020. [20] 王珊,陳紅 .數(shù)據(jù)庫系統(tǒng)原理教程 [J]. 清華大學(xué)出版社, 2020. [21] Adam Structures and Algorithms in C++ Third Edition[J].Thomson . [22] 茍?zhí)K艾 .C++ 的程序員指南 [J].北京:北京希望電子出版社, 2020 年,第 16. [23] Stanley ,Josee LaJoie,Barbara . C++ Primer[J]. Addison Wesley/Pearson ,2020. [24] David ,Scot Wingo,Gee Shepherd. Programming Visual C++[J]. 2020. [25] 常曉明,潘衛(wèi)華 .CRC 校驗(yàn)及其軟件實(shí)現(xiàn) [J].電子技術(shù)應(yīng)用, 1995( 6) . [26] 陳慧 .信息校驗(yàn)技術(shù)及其性能比較 [J].電腦知識(shí)與技術(shù) ,2020. 。采用 消息方式處理串口與主程序間的通訊 [N]。 總之, RS232 標(biāo)準(zhǔn)一直都應(yīng)用于通信領(lǐng)域中,串行通信以其成本低、結(jié)構(gòu)簡單等優(yōu)點(diǎn)被人們廣泛應(yīng)用。最簡單的校驗(yàn)是奇偶校驗(yàn), 通過統(tǒng)計(jì)接收數(shù)據(jù)中二進(jìn)制數(shù) ?0?和 ?1?的個(gè)數(shù),來確認(rèn)收到的數(shù)據(jù)是否正確。 ,綜合考慮了多種能實(shí)現(xiàn)通信的方式后,最終選擇了Windows 編程下的 MFC 應(yīng)用程序 ,使用 C++語言實(shí)現(xiàn)串行通信,其中使用的是MSComm 控件。 主要功能有用戶名密碼驗(yàn)證登錄、設(shè)置串口號(hào)、打開串口、 關(guān)閉串口、設(shè)置通信參數(shù)等 。 35 圖 418 發(fā)送接收數(shù)據(jù) 發(fā)送數(shù)據(jù)結(jié)束后,關(guān)閉串口,點(diǎn)擊【退出】按鈕,程序提示 “謝謝使用!再見 ”。 圖 416 用戶名密碼正確
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1