關(guān)鍵詞:通訊屬性事件前言在采用以PC機(jī)為控制中心的數(shù)據(jù)采集自動化控制系統(tǒng)中,通常需要單片機(jī)采集數(shù)據(jù),然后用異步串行通訊方式傳給PC機(jī),PC對單片機(jī)進(jìn)行定時控制,需要多個單片機(jī)協(xié)同工作。">
利用vb實現(xiàn)pc機(jī)與多單片機(jī)通訊

利用vb實現(xiàn)pc機(jī)與多單片機(jī)通訊

ID:20754271

大小:59.00 KB

頁數(shù):5頁

時間:2018-10-15

利用vb實現(xiàn)pc機(jī)與多單片機(jī)通訊_第1頁
利用vb實現(xiàn)pc機(jī)與多單片機(jī)通訊_第2頁
利用vb實現(xiàn)pc機(jī)與多單片機(jī)通訊_第3頁
利用vb實現(xiàn)pc機(jī)與多單片機(jī)通訊_第4頁
利用vb實現(xiàn)pc機(jī)與多單片機(jī)通訊_第5頁
資源描述:

《利用vb實現(xiàn)pc機(jī)與多單片機(jī)通訊》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、利用VB實現(xiàn)PC機(jī)與多單片機(jī)通訊

2、第1...lunal>關(guān)鍵詞:通訊屬性事件前言在采用以PC機(jī)為控制中心的數(shù)據(jù)采集自動化控制系統(tǒng)中,通常需要單片機(jī)采集數(shù)據(jù),然后用異步串行通訊方式傳給PC機(jī),PC對單片機(jī)進(jìn)行定時控制,需要多個單片機(jī)協(xié)同工作。如果系統(tǒng)不很復(fù)雜,可通過定時器控件控制收發(fā)過程,在必要的地方自動接收裝置,使定時控制和通訊過程完美地結(jié)合起來。這樣,可以免去“握手”協(xié)議的繁瑣過程,簡化編程,提高速度。VB具有面向?qū)ο蟮脑O(shè)計方法,友好的用戶界面,簡單方便的串行通訊和實用性強(qiáng)等優(yōu)點,無論借用其他語言就可以開發(fā)出優(yōu)

3、秀的控制系統(tǒng)通訊軟件。本文介紹在sm控件的屬性和事件,結(jié)合Timer控件即可完成對串行口的初始化和數(shù)據(jù)的輸入輸出工作。Msm控件的主要屬性如下:(1)mport設(shè)置并返回通訊端口號。端口號可以設(shè)置為1~16的任何數(shù),如Msm.mport=2表示設(shè)置當(dāng)前通訊端口為2。(2)Setting設(shè)置并返回波特率、奇偶校驗、數(shù)據(jù)位、停止位。格式為Msm.Setting=String。String是一個包含四部分的字符串:第一部分為波特率;第二部分為奇偶校驗,N表示不校驗,M表示符號校驗,E表示偶校驗,O表示奇校驗,S表示空格

4、校驗;第三部分為數(shù)據(jù)位數(shù),其可選值為4,5,6,7,8;第四部分為停止位位數(shù),其可選值為1,1.5,2。Setting屬性的缺省值為“9600,N,8,1”。(3)Portopen設(shè)置并返回通訊端口的狀態(tài),也可以打開和關(guān)閉端口。(4)Input從接收緩沖區(qū)返回和刪除字符。該屬性在運行時為只讀。(5)InputLen設(shè)置并返回每次Input屬性從接收緩沖區(qū)中讀取的字符數(shù)。InputLen屬性的缺省值為0。設(shè)置InputLen為0時,Input將讀取接收緩沖區(qū)的全部字符。(6)Output向傳送緩沖區(qū)寫數(shù)據(jù)。要傳送的

5、數(shù)據(jù)可是文本數(shù)據(jù)或二進(jìn)制數(shù)據(jù)。(7)mEvent返回最近的通訊事件或錯誤。只要有通訊錯誤或事件發(fā)生錯誤時就會產(chǎn)生Onm事件。mEvent屬性中存有該錯誤或事件的數(shù)值代碼。Timer控件的主要屬性如下:(1)Enabled返回或設(shè)置一個值,該值用來確定一個窗體或控件否能夠?qū)τ脩舢a(chǎn)生的事件作出反應(yīng)。通過把Enabled設(shè)置為“Galse”來使Timer控件成為無效,將取消由控件的Interval屬性所建立的倒計時數(shù)。(2)Interval返回或設(shè)置對Timer控件的計時事件調(diào)用間的毫秒數(shù)。Timer控件的Enable

6、d屬性決定該控件是否對時間的推移作出響應(yīng)。將Enabled設(shè)置為“False”會關(guān)閉Timer控件,設(shè)置為“True”則打開Timer控件。當(dāng)Timer控件置為有效時,倒計時總是從其Interval屬性設(shè)置值開始。創(chuàng)建Timer事件程序。可通知VB在每次Interval到時該做什么。Timer控件和Enabled屬性設(shè)置為“True”時,VB將在Interval時間到后自動訪問Timer_Timer過程。為實現(xiàn)通訊程序,須在VB開發(fā)環(huán)境下設(shè)置一個用做控制通訊的窗體。窗體上主要有一個通訊控件Msml和兩個Timer

7、控件。VB的特點是事件驅(qū)動,定時器控件會定時觸發(fā)相應(yīng)事件的驅(qū)動程序。1.發(fā)送單片機(jī)命令為了使主機(jī)能夠?qū)φ麄€檢測過程進(jìn)行實時控制,須要在發(fā)送命令以后設(shè)定等待的時間,也可以通過條件判斷下一步是發(fā)達(dá)還是接收命令。對發(fā)送的命令,可能是文本方式或二進(jìn)制代碼。在發(fā)送二進(jìn)制代碼時,應(yīng)特別注意發(fā)送的格式。發(fā)送命令過程是一個帶參過程,這樣可使發(fā)送命令簡便易行。具體程序如下:Sub發(fā)送單片機(jī)命令過程(mandAsByte)Dim輸出命令(1To1)AsByteDoEvents輸出命令(1)=mandMSm1.OutBufferCou

8、nt=0MSm1.Output=輸出命令MSm1.InBufferCount=0EndSub2.接收數(shù)據(jù)接收數(shù)據(jù)是一個被動的過程,可以通過函數(shù)來實現(xiàn),由定時器開啟。在接收過程中,多數(shù)用特征字符,如“OK”、“#”等。這些需要在通訊協(xié)議中約定。Function接收數(shù)據(jù)()DoDoEventsIn_buffer$=In_buffer$MSm2.InputLoopUntilInStr(_buffer$,“OK”)'從串行端口讀“OK”響應(yīng)'In_buffer=Left(In_buffer,len(In_buffer)-

9、2)接收數(shù)據(jù)=In_buffer$EndFunction3.Timer控件控制通過Timer控件來控制通訊中的發(fā)送命令和接收數(shù)據(jù)過程,在通訊程序中設(shè)置兩個Timer控件分別控制發(fā)送單片機(jī)命令和接收單片機(jī)數(shù)據(jù)。為了實現(xiàn)一臺PC機(jī)和多單片機(jī)之間的通訊,可在一個Timer控件的過程中,在發(fā)送命令之前設(shè)定命令參數(shù)和要接收數(shù)據(jù)的單片機(jī)號,然后發(fā)送單片機(jī)命令;在另一個Timer控件的

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。