




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
VB(12)第五章串口通信控件方法與實現(xiàn)串口通信控件主要屬性小結(jié)◆CommPort屬性MSComm1.CommPort=2◆Settings屬性MSComm1.Settings=“1200,e,8,1“◆PortOpen屬性MSComm1.PortOpen=True◆OutPut屬性MSComm1.OutPut=Text1.text◆Input屬性Text1=MSComm1.Input◆InBufferCount屬性◆RThreshold屬性串口通信的基本步驟
◆在工程中添加MSComm控件;◆設(shè)置CommPort屬性選擇通信串口;◆設(shè)置Settings屬性選擇通信參數(shù);◆設(shè)置PortOpen=True打開通信串口;◆使用Output屬性發(fā)送數(shù)據(jù);◆使用Input屬性接收數(shù)據(jù);◆設(shè)置PortOpen屬性=False關(guān)閉串口。1.3.2自動接收數(shù)據(jù)自動接收數(shù)據(jù)的方法通常有兩種:1.查詢方式MSComm1控件的InBnfferCount屬性用來返回接收緩沖區(qū)中已收到但還未取走的字符個數(shù),可以通過查詢InBnfferCount屬性值是否大于0來判斷是否有數(shù)據(jù)接收進來。查詢的方法可以借助定時器(Timer1)控件。(1)窗體設(shè)計:在簡單串口通信窗體設(shè)計中,將“接收”按鈕及相應(yīng)的代碼去掉,并在窗體中添加一個定時器控件。(2)屬性設(shè)置:定時器控件的Enabled屬性設(shè)置為Ture,Interval屬性取值為100。查詢方式下串口通信窗體設(shè)計(3)編寫代碼用鼠標(biāo)雙擊定時器控件在Timer1_Timer事件中加入以下代碼:PrivateSubTimer1_Timer()IfMSComm1.InBufferCount>0Thentimel=TimerWhileTimer-timel<0.1DoEventsWendText2.Text=MSComm1.InputEndIfEndSub運行程序,在發(fā)送文本框中輸入字符或漢字,點擊“發(fā)送”按鈕,在“接收”文本框中就會自動顯示接收到的數(shù)據(jù)。2.事件驅(qū)動方式事件驅(qū)動方式使用串口控件的OnComm事件。由于事件驅(qū)動方式會產(chǎn)生類似于硬件中斷的效果,所以也稱為軟中斷接收方式。OnComm事件
MSComm1控件只有一個OnComm事件,在這個事件中包含了十七個通信過程中的事件處理過程并用事件用屬性CommEvent
的十七個值來區(qū)分不同的觸發(fā)事件。無論何時當(dāng)CommEvent
屬性值變化時,就產(chǎn)生OnComm事件。(1)CommEvent屬性取值及含義◆通信錯誤常數(shù)(共計10個)
符號常數(shù)值含義comEventBreak1001接收到中斷信號comEventCTSTO1002CTS超時comEventDSRTO1003DSR超時comEventFrame1004幀錯誤comEventOverrun1006數(shù)據(jù)丟失(端口超速)comEventCDTO1007CD超時comEventRxOver1008接收緩沖區(qū)溢出comEventRxParity1009極性錯誤comEventTxFull1010發(fā)送緩沖區(qū)滿comEventDCB1011檢索端口設(shè)備控制塊(DCB)時的意外錯誤
◆管腳狀態(tài)及接收/發(fā)送緩沖區(qū)狀態(tài)等常數(shù)(共計7個)。
符號常數(shù)值含義comEvSend1發(fā)送緩沖區(qū)有Sthreshold屬性設(shè)置的字符數(shù)comEvReceive2接收緩沖區(qū)有RThreshold屬性設(shè)置的字符數(shù)comEvCTS3CTS線狀態(tài)發(fā)生變化comEvDSR4DSR線狀態(tài)發(fā)生變化comEvCD5CD線狀態(tài)發(fā)生變化comEvRing6RI(振鈴)線狀態(tài)變化comEvEOF7輸入數(shù)據(jù)流中發(fā)現(xiàn)文件結(jié)束標(biāo)志(EOF)(2)OnComm事件示例框架代碼PrivateSubMSComm1_OnComm()SelectCaseMSComm1.CommEventCasecomEventBreak‘十個錯誤
CasecomEventCDTOCasecomEventCTSTOCasecomEventDSRTOCasecomEventFrameCasecomEventOverrunCasecomEventRxOverCasecomEventRxParityCasecomEventTxFullCasecomEventDCBCasecomEvCD’七個事件CasecomEvCTSCasecomEvDSRCasecomEvRingCasecomEvReceive‘接收緩沖區(qū)有Rthreshold屬性設(shè)置的字符數(shù)(2),此處放接收數(shù)據(jù)代碼。CasecomEvSendCasecomEvEOFEndSelectEndSub
(3)編寫事件驅(qū)動方式的通信程序
◆窗體設(shè)計:在查詢方式通信窗體中,將定時器控件及相關(guān)的代碼去掉。
◆編寫代碼
PrivateSubMSComm1_OnComm()SelectCaseMSComm1.CommEventCasecomEvReceiveMSComm1.RThreshold=0IfMSComm1.InBufferCount>0Thentimel=TimerWhileTimer-timel<0.1DoEventsWendText2.Text=MSComm1.InputEndIfMSComm1.RThreshold=1EndSelectEndSubPrivateSubForm_Load()MSComm1.RThreshold=1MSComm1.PortOpen=TrueEndSub◆運行程序:在發(fā)送文本框中輸入數(shù)據(jù)后,點擊發(fā)送按鈕,在接收文本框中就會自動顯示接收到的數(shù)據(jù)。1.3.3用Modem進行遠(yuǎn)程通信1.AT指令簡介PC機串口通信中,計算機一端稱為數(shù)據(jù)終端設(shè)備(DTE),調(diào)制解調(diào)器一端稱為數(shù)據(jù)通信設(shè)備(DCE),PC機串行通信的硬件連接方式分為零Modem連接和Modem連接。◆零Modem連接:直接用電纜將兩臺PC機連接起來的方式。◆Modem連接:通過Modem及網(wǎng)將兩臺PC機連接起來的方式。
Modem工作有命令和在線兩種狀態(tài)◆命令狀態(tài)是指通信線路上的兩個Modem還沒有建立起連接的狀態(tài)。處于命令狀態(tài)下的Modem會把PC機發(fā)往串口的信息當(dāng)成指令來執(zhí)行。因此,在命令狀態(tài)下,PC機可通過串口向調(diào)制解調(diào)器發(fā)送指令對其進行初始化、設(shè)置和操作。◆在線狀態(tài)是指通信線路上的兩個Modem建立起連接后的狀態(tài)。使用AT指令要遵循的規(guī)則◆每個AT指令字符串的最后必須加上回車符Chr(13),否則調(diào)制解調(diào)器將不執(zhí)行傳送過來的指令。◆除了“A/
”和“+++”兩個指令外,其他的指令都必須加上“AT”前導(dǎo)符。◆AT指令可以一個一個地發(fā)送,也可以合成一個字符串后再發(fā)送。用字符串發(fā)送時,總長度不能超過40個字符。◆所有的AT指令字符必須一律是大寫或小寫。AT指令應(yīng)用舉例◆對Modem初始化:MSComm1.Output=“ATE0Q1M0S0=5”&Chr(13),表示不回應(yīng)指令、不返回結(jié)果碼、關(guān)閉揚聲器、振鈴響5次后摘機。◆撥號:MSComm1.Output="ATDT"&Text1.Text&Chr(13)◆摘機:MSComm1.Output="ATH1"&Chr(13)◆掛機:MSComm1.Output="+++,ATH0"&Chr(13)2.遠(yuǎn)程通信編程舉例(1)硬件連接:用Modem進行兩臺計算機間的遠(yuǎn)程通信,需要兩個Modem和兩條不同號碼的線。可以使用一臺計算機模擬遠(yuǎn)程通信,方法是將接有線的兩個Modem分別接在計算機的兩個串口上,通信時只要對兩個串口進行讀寫操作即可。如果Modem具有專線功能可以用一條兩端帶有RJ-11插頭的兩芯線將兩個調(diào)制解調(diào)器直接連接起來進行通信。(2)設(shè)計窗體:在事件驅(qū)動方式串口通信窗體上添加一個標(biāo)簽(Label3)和文本框(Text3)。標(biāo)簽的Caption屬性設(shè)置為“號碼”,文本框用來輸入號碼。(3)編寫代碼用Modem實現(xiàn)遠(yuǎn)程通信完整代碼如下:DimtimelPrivateSubCommand1_Click()MSComm1.Output=_"ATDT"&Text3.Text&Chr(13)timel=TimerDoWhileTimer-timel<30DoEventsIfMSComm1.CDHoldingThen_GoToCD_TureLoopMsgBox“未檢測到載波信號”MSComm1.Output=_"+++,ATH0"&Chr(13)ExitSubCD_Ture:MSComm1.Output=Text1.TextEndSubPrivateSubForm_Load()MSComm1.RThreshold=1MSComm1.PortOpen=TrueMSComm1.DTREnable=TrueMSComm1.Output=_"ATE0Q1M2S0=1"&Chr(13)EndSubPrivateSubMSComm1_OnComm()SelectCaseMSComm1.CommEventCasecomEvReceiveMSComm1.RThreshold=0I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆維吾爾哈密地區(qū)巴里坤哈薩克自治縣2025屆五下數(shù)學(xué)期末考試模擬試題含答案
- 2025-2030家私行業(yè)市場深度分析及供需形勢與投資價值研究報告
- 新疆職業(yè)大學(xué)《數(shù)據(jù)挖掘與統(tǒng)計應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 邢臺市新河縣2024-2025學(xué)年三下數(shù)學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測模擬試題含解析
- 2025至2031年中國秸稈氣化機行業(yè)投資前景及策略咨詢研究報告
- 2025-2030年中國CNG纏繞瓶行業(yè)市場投資商機與風(fēng)險評估報告
- 2025-2030寵物玩具行業(yè)競爭格局及“”企業(yè)投資戰(zhàn)略研究報告
- 2024-2025企業(yè)安全培訓(xùn)考試試題附完整答案(考點梳理)
- 2025年職工安全培訓(xùn)考試試題帶解析答案
- 2025工廠職工安全培訓(xùn)考試試題【奪冠】
- 2025護坡護岸施工及驗收規(guī)范
- 2025加壓水洗法沼氣制備生物天然氣技術(shù)規(guī)范
- 《糖尿病酮癥酸中毒》課件
- 2024年03月湖南湖南岳陽農(nóng)商行招考10人筆試歷年參考題庫附帶答案詳解
- 湖北武漢武昌區(qū)武漢大學(xué)附屬中學(xué)2025屆高三第四次模擬考試數(shù)學(xué)試卷含解析
- 泄漏管理培訓(xùn)課件
- 《ICT測試設(shè)備簡介》課件
- 護理臨床思維訓(xùn)練手冊
- 2024福建高考政治真題(解析版)
- PE管道井房首部工程施工方案
- 2024年廣西區(qū)公務(wù)員錄用考試《行測》真題及答案解析
評論
0/150
提交評論