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

正文內(nèi)容

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

2024-09-01 10:50本頁面
  

【正文】 [14] 田志良 .面向?qū)ο蟪绦蛟O(shè)計循序漸進 [J].北京學苑出版社, 1 9 9 4. [15] 侯俊杰 .深入淺出 MFC 第 2 版 [J].武漢 :華中科技大學出版社 , 2020. [16] 薩師煊 .數(shù)據(jù)庫系統(tǒng)概論(第三版) [J].高等教育出版社 . 2020. [17] Ori Gurewish Nathan Gure wish .精通 Visual C++[J].北京 :學苑出版社,1996. 39 [18] . Visual C++技術(shù)內(nèi)幕 [J].王國印 .北京 :清華大學出版社, 1996. [19] 吳國鳳,宣善立主編 .C/C++程序設(shè)計 [J].高等教育出版社 2020. [20] 王珊,陳紅 .數(shù)據(jù)庫系統(tǒng)原理教程 [J]. 清華大學出版社, 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 校驗及其軟件實現(xiàn) [J].電子技術(shù)應用, 1995( 6) . [26] 陳慧 .信息校驗技術(shù)及其性能比較 [J].電腦知識與技術(shù) ,2020. 。采用 消息方式處理串口與主程序間的通訊 [N]。 38 參 考 文 獻 [1] 陳傳波,杜娟,張智杰. W1N32 下基于 RS232 協(xié)議的串口通信方法及應用研究 [J].南昌人學學報, 2020. [2] 趙志岳.基于 NXP 5209Modem 的 AT 指令分析和擴展 [D].東南大學, 2020. [3] 金衛(wèi)民. VC 下利用串口進行數(shù)據(jù)通信的研究 [J].計算機工程和設(shè)計, 2020, 24(12):120123. [4] 孫曉云 .接口與通訊技術(shù)原理與應用 [M].北京:中國電力出版社, 2020 [5] 樊一支,姜文祥,陳梨園。 總之, RS232 標準一直都應用于通信領(lǐng)域中,串行通信以其成本低、結(jié)構(gòu)簡單等優(yōu)點被人們廣泛應用。所以對通信過程中數(shù)據(jù)交換準確度的驗證采用了比較準確的方法即 CRC 校驗, CRC 校驗全稱 CRC( Cyclic Redundancy Check)循環(huán)冗余校驗碼,它是數(shù)據(jù)通信領(lǐng)域中 最常用的一種差錯校驗碼,數(shù)據(jù)從發(fā)送端發(fā)送過來同時在其低位上是兩個 CRC 校驗碼,接收方對接收到的數(shù)據(jù)進行 CRC 解碼, 與發(fā)送來的數(shù)據(jù)進行比對,驗證是否相同,若相同 則接收到的數(shù)據(jù)是正確的,反之則證明數(shù)據(jù)在發(fā)送過程中受到了干擾等, 需重新發(fā)送此數(shù)據(jù)。最簡單的校驗是奇偶校驗, 通過統(tǒng)計接收數(shù)據(jù)中二進制數(shù) ?0?和 ?1?的個數(shù),來確認收到的數(shù)據(jù)是否正確。 ,被傳遞的數(shù)據(jù)有可能受到各種因素的影響,造成數(shù)據(jù)丟失,更改等,影響發(fā)送接收數(shù)據(jù)的準確性。 ,綜合考慮了多種能實現(xiàn)通信的方式后,最終選擇了Windows 編程下的 MFC 應用程序 ,使用 C++語言實現(xiàn)串行通信,其中使用的是MSComm 控件。掌握了串行通信的基本概念。 主要功能有用戶名密碼驗證登錄、設(shè)置串口號、打開串口、 關(guān)閉串口、設(shè)置通信參數(shù)等 。并對此應用程序進行了運行測試。 35 圖 418 發(fā)送接收數(shù)據(jù) 發(fā)送數(shù)據(jù)結(jié)束后,關(guān)閉串口,點擊【退出】按鈕,程序提示 “謝謝使用!再見 ”。 34 圖 417 設(shè)置串口和參數(shù) 選擇串口號,并將此 串口 打開 ,設(shè)置通信參數(shù)完成后,在發(fā)送 區(qū)內(nèi)的 編輯框輸入要發(fā)送的內(nèi)容, 然后點擊【發(fā)送】按鈕, 發(fā)送 去編輯框里要發(fā)送的內(nèi)容會通過此串口發(fā)送到 另一個端口的接收區(qū) 的編輯框 內(nèi), 并 在接收區(qū) 的編輯 框內(nèi)顯示了發(fā)送的 內(nèi)容, 同理也可在另一個串口的發(fā)送區(qū)編輯框內(nèi)輸入數(shù)據(jù),此 數(shù)據(jù)也可發(fā)送到本串口的編輯框內(nèi),也會在 接收區(qū)的編輯框內(nèi)得到顯示, 如圖 418所示。 圖 416 用戶名密碼正確 2.串口和參數(shù)的設(shè)置 登陸成功后跳轉(zhuǎn)到主界面,通信之前要設(shè)置可用的串口號,設(shè)置串口號時若沒有選對串口號,應用程序會提示不可用的串口,直到設(shè)置了可用的串口號,然后需要打開串口,點 擊【打開串口】按鈕, 程序會提示串口打開成功,最后設(shè)置 通信參數(shù), 點擊【設(shè)置】按鈕,跳轉(zhuǎn)到設(shè)這界面,根據(jù)需要選擇通信參數(shù),如果保存設(shè)置就點擊【確定按鈕】否則點擊【退出】按鈕,之后又回到了主界面,現(xiàn)在即可進行數(shù)據(jù)的發(fā)送了。 //更新編輯框內(nèi)容 } 程序測試 首先,直接雙擊通信文件夾下的 debug 子文 件夾下的通信 .exe 運行文件;其次,按以下步驟進行測試: 1.登錄 輸入錯誤密碼,程序提示 “密碼、用戶名錯誤,請重試! ”如圖 415 所示。//發(fā)送數(shù)據(jù) ()。發(fā)送數(shù)據(jù)流程圖如圖 414 所示,代碼如下 : 圖 414 發(fā)送模塊流程圖 void CMyDlg::OnSendbtn() 開始 讀取編輯框 發(fā)送和清空 更新編輯框 結(jié)束 32 { // TODO: Add your control notification handler code here UpdateData(true)。 //設(shè)置波特率等參數(shù) if(!()) //打開串口 (TRUE)。break。break。break。break。break。break。break。break。break。break。break。break。break。 default:conf = 9600,。 case 2:conf = 9600,。 case 1:conf = 4800,。 switch(m_baund) // 設(shè)置波特率 { case 0:conf = 2400,。 開始 確定鍵是否按下 設(shè)置通信參數(shù) 打開串口 結(jié)束 Y N 30 if(()==IDOK) // 配置對話框是 “確定 ”按鈕按下,需要重新配置端口 { (FALSE)。 = m_jiaoyan。 = m_baund。 //更新編輯框內(nèi)容 } 對數(shù)據(jù)交換過程中的波特率、數(shù)據(jù)位、停止位、奇偶校驗位等通信參數(shù)進行設(shè)置, 點擊【確定】按鈕,設(shè)置成功;點擊【退出】按鈕,取消設(shè)置,返回主界面。 //顯示完成后要自動換行 m_receive+=temp。 //將字符送入臨時變量 strtemp存放 m_receive+=strtemp。k++) //將數(shù)組轉(zhuǎn)換為 CString型變量 { char bt=*(char*)(rxdata+k)。 for(k=0。k++) (amp。 //得到有效的數(shù)據(jù)長度 for(k=0。 //讀緩沖區(qū)消息 safearray_inp=variant_inp。 //設(shè)置 BYTE數(shù)組 CString strtemp。 long len,k。 實現(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。 MSComm 通信控件提供了一系列標準通信命令的接口,它允許建立串口連接,可以連接到其他通信設(shè)備(如 Modem).還可以發(fā)送命令、進行數(shù)據(jù)交換以及監(jiān)視和響應在通信過程中可能發(fā) 生的各種錯誤和事件,從而可以用它創(chuàng)建全雙工 、事件驅(qū)動的、高效實用的通信程序 ]9[ 。 } void CMyDlg::OnClose()//關(guān)閉串口 { // TODO: Add your control notification handler code here (FALSE)。 //設(shè)置當前緩沖區(qū)長度 ()。 //打開串口 (1)。//以二進制方式讀寫數(shù)據(jù) (1)。//發(fā)送緩沖區(qū) (0)。 //設(shè)置串口號 (1024)。 = m_n。 CMyDlg md1。 // return TRUE unless you set the focus to a control } 、打開和關(guān)閉串口功能 圖 411 設(shè)置、打開和關(guān)閉串口流程圖 串行通信是通過串口實現(xiàn)數(shù)據(jù)交換的,但是 PC 機上有不止一個串口,需要我們設(shè)置進行串行通信 端口號,并將串口打開,通信結(jié)束后將串口關(guān)閉 ]23[ 。 //設(shè)置輸出緩沖區(qū) (9600,n,8,1)。 //輸入方式為二進制方式 (1024)。 (4)。 ()。具體 程序代碼如下面所示: 24 圖 410 初始化流程圖 BOOL CMyDlg::OnInitDialog() { CDialog::OnInitDialog()。 } 序初始化 實現(xiàn)先顯示登陸界面后主界面,利用 MFC 中的模式對話框在初始化函數(shù)中來實現(xiàn), 若串口是打開的則關(guān)閉串口, 同時串口參 數(shù)的設(shè)置也是在初始化函數(shù)中設(shè)置實現(xiàn) 的。 } } catch(CDBException* e) { eReportError()。 AfxMessageBox(登錄成功,歡迎使用! )。 return。 if(())//密碼用戶名不一致 { ()。,m_username,m_userpwd)。anduserpwd=39。 (username=39。 //讀取編輯框內(nèi)容 開始 輸入獲取信息 是否登錄 密碼用戶名是否一致 登錄成功,轉(zhuǎn)到主界面 結(jié)束 點擊退出按鈕 Y N Y N 23 CUserRecordset m_user。 實現(xiàn)該功能的程序流程圖如圖 49 所示, 實現(xiàn)該功能的 程序 代碼如下: 22 圖 49 用戶名密碼登錄模塊流程圖 void CMylogin::OnBnClickedOk() { // TODO: Add your control notification handler code here OnOK()。 21 圖 48 設(shè)置界面 模塊分析 在登錄界面下,在編輯框中輸入用戶名和密碼,單擊 界面中的【登錄】按鈕,可以驗證用戶名密碼輸入是否正確, 若正確登錄 ,程序提示 “登陸成功,歡迎使用! ”,然后登陸界面關(guān)閉顯示 主界面,若輸入錯誤則 程序提示 “密碼用戶名錯誤,請重新輸入! ”。 相應的 通信 參數(shù)設(shè)置完成后,點擊 【 確定 】按鈕 ,應用程序 則會再次跳轉(zhuǎn)到主界面(數(shù)據(jù)收發(fā)界面),若想取消設(shè)置則點擊取消按鈕,參數(shù)設(shè)置界面關(guān)閉,回到主界面。完整的主界面如圖47 所示。 圖 46 登錄界面 20 主界面是整個應用程序的主體, 大致可劃分為三部分,有接收區(qū)、發(fā)送區(qū)和設(shè)置區(qū)。若輸入用戶名和密碼正確,即與 Access 數(shù)據(jù)庫表 login 內(nèi)容相一致,點擊登錄按鈕,出現(xiàn)提示正確,點擊確定按鈕應用程序的界面會由登陸界面跳轉(zhuǎn)到主界面,開始進行數(shù)據(jù)交換。數(shù)據(jù)庫中用戶名和密碼如圖 45 所示。最后為 Access 數(shù)據(jù)庫 demo01 建立數(shù)據(jù)源,利用 ODBC 驅(qū)動。其中使用 DNS
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1