第一篇:實現(xiàn)桌面地理信息系統(tǒng)ArcView和VB5應(yīng)用程序之間的通訊
摘要 本文簡要介紹桌面地理信息系統(tǒng)的概念,通過分析 桌面地理信息系統(tǒng)ArcView和VB5應(yīng)用程序之間的通訊關(guān)系,結(jié)合實例,論述了ArcView 和VB 5相互通訊在開發(fā)桌面地理信息系統(tǒng)中的應(yīng)用價值。關(guān)鍵詞 桌面地理信息系統(tǒng)、ArcView和VB5、應(yīng)用程序通訊1.桌面地理信息系統(tǒng)簡介地理信息系統(tǒng)是一種特定的空間信息系統(tǒng),它是采用現(xiàn)代化的方法來采集、存儲、分 析、管理、顯示、模擬與地理空間分布有關(guān)數(shù)據(jù)的空間信息系統(tǒng)。它是現(xiàn)代地球科學(xué)、信息 學(xué)、環(huán)境科學(xué)、測繪遙感學(xué)、計算機科學(xué)、管理科學(xué)、應(yīng)用數(shù)學(xué)以及各種應(yīng)用學(xué)科有機結(jié)合 的集成產(chǎn)物。自60年代加拿大測量學(xué)家R.T.Tomlinson 首先提出地理信息系統(tǒng)這一術(shù)語以來,在大型機、小型機、工作站和微機平臺上,相繼出現(xiàn)了GIS的應(yīng)用平臺。如美國ESRI的產(chǎn) 品,已遍布上述四種硬件平臺。由于80年代pC技術(shù)的迅速發(fā)展,以及近幾年來pC硬件價格的 急劇下跌和其性能日益提高,使得桌面地理信息系統(tǒng)(DeskTop GIS)得到了迅速的發(fā)展。其中在國內(nèi)用得較多的有美國ESRI公司的ArcView。2.ARCVIEW介紹現(xiàn)在常用的ArcView2.1以上英文版是直觀性較好的桌面地理信息系統(tǒng)。它集空間圖形、關(guān)系 數(shù)據(jù)庫、統(tǒng)計圖形、空間分析、網(wǎng)絡(luò)通訊、面向?qū)ο蟮某绦蛟O(shè)計于一體,圖形用戶界面直觀。而且它有自己的開發(fā)工具即Avenue,用于制作特定的ArcView 應(yīng)用程序。Avenue是一種WI NDOWS環(huán)境下的面向?qū)ο蟮某绦蛟O(shè)計語言,ArcView 的系統(tǒng)功能就是由它編程實現(xiàn)的。任何一個由Avenue語言開發(fā)的Windows應(yīng)用程序都有一個對應(yīng)的project,project由一些Doc ument和Script組成,而Document又由Document Window 和Document GUI 組成,所以Avenue 應(yīng)用程序的模型如圖1所示。圖1中Document是人機交流的唯一途徑,根據(jù)其功能又可分為 V iew, Table, Chart, Layout和 Script Editor五種,Document GUI 是對應(yīng)于某一Document 的圖形用戶界面,由 Menu bar,Button bar 和Tool bar組成,分別用來對應(yīng)不同的功能。圖1Avenue應(yīng)用程序模型我們在具體開發(fā)桌面地理信息系統(tǒng)ArcView 時,發(fā)現(xiàn)現(xiàn)有的ArcVie w 系統(tǒng)功能并不能完全滿足要求,必須對ArcView 系統(tǒng)重新改造,增加新的功能。由于ArcV iew 的開發(fā)語言是Avenue,它的開發(fā)效率低,所以在實際開發(fā)中既要充分利用ArcView 自身 強大的地圖管理功能,又要利用高級語言(如VB5)在快速開發(fā)應(yīng)用方面的長處,兩者相互 結(jié)合,將取得良好效果。3.ArcView和VB5應(yīng)用程序通訊方法最通用的IpC(interprocess communication,IpC)方法是DDE、OLE和對動態(tài)聯(lián)接庫的外部 函數(shù)調(diào)用、文件訪問以及WINDOWS剪貼板。上述方法都能使不同的WINDOWS應(yīng)用程序之間彼此 通信。其中DDE方法原先是作為一種基于消息的協(xié)議在WINDOWS(3.x之前)中實現(xiàn)的,用來在 不同的WINDOWS應(yīng)用程序之間交換信息。隨著WINDOWS3.0的發(fā)布,DDE在實際的應(yīng)用程序開發(fā) 中得到大量應(yīng)用,這是通過使DDE服務(wù)能夠利用應(yīng)用程序編程接口(ApI)調(diào)用DDE管理庫來 完成的。ArcView是通過DDE和DLL方法實現(xiàn)與外部應(yīng)用程序通信。本文通過一個實例來詳細(xì) 介紹DDE功能的使用。在實際應(yīng)用中,ArcView既可作Clint,又可作Server,來實現(xiàn)應(yīng)用程 序之間的通訊,包括發(fā)送或接受數(shù)據(jù),執(zhí)行請求,返回分析結(jié)果。通過使用DDE方法,可以 克服ArcView本身開發(fā)語言的落后性,達(dá)到充分發(fā)揮ArcView自身強大的地圖管理功能,又創(chuàng) 造出符合時代特色的桌面地理信息系統(tǒng)。實踐證明,采用ArcView和VB5應(yīng)用程序通訊進行系 統(tǒng)開發(fā)是一種有效的桌面地理信息系統(tǒng)開發(fā)方法。4.實例分析在本例中,VB5 應(yīng)用程序向ArcView 發(fā)出Avenue 請求以建立新的文檔如views 和layouts,而且應(yīng)用程序詢問ArcView 以得到當(dāng)前激活的文檔。此時VB5 應(yīng)用程序是目標(biāo),而ArcView 是源。如果已安裝VB5 和ArcView,按照下面步驟建立應(yīng)用程序:(1)啟動VB5,建立缺省窗體Form1。
(2)在Form1上根據(jù)下列屬性建立控件,然后放大窗體以便整齊地排列控件。Objectproperty Setting
Text BoxNametxtDDE
Command ButtonCaptionSend Request
NamecmdRequest
Combo BoxNamecboDocType
(3)在Form1的說明部分增加下面代碼:Const NONE=0, MANUAL=2
Sub Startup()
Dim t
Const DDE_NO_App=282
'this will start ArcView if it isn't running
On Error GoTo FireUp
txtDDE.LinkMode=NONE'清除DDE鏈接txtDDE.LinkTopic=“ArcView|System”'建立對話txtDDE.LinkMode=MANUAL'建立人工鏈接Exit Sub
FireUp:
If Err=DDENOApp Then
ChDir “C:\ARCVIEW2\BIN”t=Shell(“arcview”,1)
t=DoEvents()
Resume
Else
MsgBox “Unknown error.”
Stop
End If
End Sub
(4)在FormLoad 事件中增加下列代碼:Sub FormLoad()
cboDocType.text=“"
cboDocType.AddItem ”View“
cboDocType.AddItem ”Layout“
cboDocType.AddItem ”SEd“
Startup'調(diào)startup 程序End Sub
(5)在FormUnload 事件中增加下列代碼:Sub FormUnload(Cancel As Integer)
txtDDE.LinkMode = NONE'關(guān)閉DDE 對話End Sub
(6)在cboDocTypeClick事件中增加下列代碼:Sub cboDocTypeClick()
cmd=”av.Getproject.AddDoc(“&cboDocType&”.make)av.Getproject.GetActive.Get(0).Ge tWin.Open“
txtDDE.L
inkExecute cmdEnd Sub
(7)在cmdRequestClick事件中增加下列代碼:Sub cmdRequestClick()
'LinkItem是能夠返回值的Avenue scripttxtDDE.LinkItem = ”av.GetActiveDoc.GetName"
txtDDE.LinkRequest
End Sub
(8)存儲VB5工程并編譯成EXE 文件。現(xiàn)在即可運行Visual Basic應(yīng)用程序。如果ArcView 沒有運行,應(yīng)用程序就 會激活它。從dropdown combo box 選擇一個文檔名以便在ArcView中建立一個文檔。要訪問 當(dāng)前激活的文檔就敲擊Send Request button,在文本框里將會顯示文檔名。本例所有的DDE 通訊都是通過文本框?qū)崿F(xiàn)的。在VB5中, 任何text box, picture box和label在對話中都可 作為目標(biāo),同時任何窗體可看作源。以上實例的運行環(huán)境為:V
第二篇:實現(xiàn)桌面地理信息系統(tǒng)ArcView和VB5應(yīng)用程序之間的通訊
摘要 本文簡要介紹桌面地理信息系統(tǒng)的概念,通過分析 桌面地理信息系統(tǒng)ArcView和VB5應(yīng)用程序之間的通訊關(guān)系,結(jié)合實例,論述了ArcView 和VB 5相互通訊在開發(fā)桌面地理信息系統(tǒng)中的應(yīng)用價值。關(guān)鍵詞 桌面地理信息系統(tǒng)、ArcView和VB5、應(yīng)用程序通訊1.桌面地理信息系統(tǒng)簡介地理信息系統(tǒng)是一種特定的空間信息系統(tǒng),它是采用現(xiàn)代化的方法來采集、存儲、分 析、管理、顯示、模擬與地理空間分布有關(guān)數(shù)據(jù)的空間信息系統(tǒng)。它是現(xiàn)代地球科學(xué)、信息 學(xué)、環(huán)境科學(xué)、測繪遙感學(xué)、計算機科學(xué)、管理科學(xué)、應(yīng)用數(shù)學(xué)以及各種應(yīng)用學(xué)科有機結(jié)合 的集成產(chǎn)物。自60年代加拿大測量學(xué)家R.T.Tomlinson 首先提出地理信息系統(tǒng)這一術(shù)語以來,在大型機、小型機、工作站和微機平臺上,相繼出現(xiàn)了GIS的應(yīng)用平臺。如美國ESRI的產(chǎn) 品,已遍布上述四種硬件平臺。由于80年代pC技術(shù)的迅速發(fā)展,以及近幾年來pC硬件價格的 急劇下跌和其性能日益提高,使得桌面地理信息系統(tǒng)(DeskTop GIS)得到了迅速的發(fā)展。其中在國內(nèi)用得較多的有美國ESRI公司的ArcView。2.ARCVIEW介紹現(xiàn)在常用的ArcView2.1以上英文版是直觀性較好的桌面地理信息系統(tǒng)。它集空間圖形、關(guān)系 數(shù)據(jù)庫、統(tǒng)計圖形、空間分析、網(wǎng)絡(luò)通訊、面向?qū)ο蟮某绦蛟O(shè)計于一體,圖形用戶界面直觀。而且它有自己的開發(fā)工具即Avenue,用于制作特定的ArcView 應(yīng)用程序。Avenue是一種WI NDOWS環(huán)境下的面向?qū)ο蟮某绦蛟O(shè)計語言,ArcView 的系統(tǒng)功能就是由它編程實現(xiàn)的。任何一個由Avenue語言開發(fā)的Windows應(yīng)用程序都有一個對應(yīng)的project,project由一些Doc ument和Script組成,而Document又由Document Window 和Document GUI 組成,所以Avenue 應(yīng)用程序的模型如圖1所示。圖1中Document是人機交流的唯一途徑,根據(jù)其功能又可分為 V iew, Table, Chart, Layout和 Script Editor五種,Document GUI 是對應(yīng)于某一Document 的圖形用戶界面,由 Menu bar,Button bar 和Tool bar組成,分別用來對應(yīng)不同的功能。圖1Avenue應(yīng)用程序模型我們在具體開發(fā)桌面地理信息系統(tǒng)ArcView 時,發(fā)現(xiàn)現(xiàn)有的ArcVie w 系統(tǒng)功能并不能完全滿足要求,必須對ArcView 系統(tǒng)重新改造,增加新的功能。由于ArcV iew 的開發(fā)語言是Avenue,它的開發(fā)效率低,所以在實際開發(fā)中既要充分利用ArcView 自身 強大的地圖管理功能,又要利用高級語言(如VB5)在快速開發(fā)應(yīng)用方面的長處,兩者相互 結(jié)合,將取得良好效果。3.ArcView和VB5應(yīng)用程序通訊方法最通用的IpC(interprocess communication,IpC)方法是DDE、OLE和對動態(tài)聯(lián)接庫的外部 函數(shù)調(diào)用、文件訪問以及WINDOWS剪貼板。上述方法都能使不同的WINDOWS應(yīng)用程序之間彼此 通信。其中DDE方法原先是作為一種基于消息的協(xié)議在WINDOWS(3.x之前)中實現(xiàn)的,用來在 不同的WINDOWS應(yīng)用程序之間交換信息。隨著WINDOWS3.0的發(fā)布,DDE在實際的應(yīng)用程序開發(fā) 中得到大量應(yīng)用,這是通過使DDE服務(wù)能夠利用應(yīng)用程序編程接口(ApI)調(diào)用DDE管理庫來 完成的。ArcView是通過DDE和DLL方法實現(xiàn)與外部應(yīng)用程序通信。本文通過一個實例來詳細(xì) 介紹DDE功能的使用。在實際應(yīng)用中,ArcView既可作Clint,又可作Server,來實現(xiàn)應(yīng)用程 序之間的通訊,包括發(fā)送或接受數(shù)據(jù),執(zhí)行請求,返回分析結(jié)果。通過使用DDE方法,可以 克服ArcView本身開發(fā)語言的落后性,達(dá)到充分發(fā)揮ArcView自身強大的地圖管理功能,又創(chuàng) 造出符合時代特色的桌面地理信息系統(tǒng)。實踐證明,采用ArcView和VB5應(yīng)用程序通訊進行系 統(tǒng)開發(fā)是一種有效的桌面地理信息系統(tǒng)開發(fā)方法。4.實例分析在本例中,VB5 應(yīng)用程序向ArcView 發(fā)出Avenue 請求以建立新的文檔如views 和layouts,而且應(yīng)用程序詢問ArcView 以得到當(dāng)前激活的文檔。此時VB5 應(yīng)用程序是目標(biāo),而ArcView 是源。如果已安裝VB5 和ArcView,按照下面步驟建立應(yīng)用程序:(1)啟動VB5,建立缺省窗體Form1。(2)在Form1上根據(jù)下列屬性建立控件,然后放大窗體以便整齊地排列控件。Objectproperty SettingText BoxNametxtDDECommand ButtonCaptionSend RequestNamecmdRequestCombo BoxNamecboDocType(3)在Form1的說明部分增加下面代碼:Const NONE=0, MANUAL=2Sub Startup()Dim tConst DDE_NO_App=282'this will start ArcView if it isn't runningOn Error GoTo FireUptxtDDE.LinkMode=NONE'清除DDE鏈接txtDDE.LinkTopic=“ArcView|System”'建立對話txtDDE.LinkMode=MANUAL'建立人工鏈接Exit SubFireUp:If Err=DDENOApp ThenChDir “C:\ARCVIEW2\BIN”t=Shell(“arcview”,1)t=DoEvents()ResumeElseMsgBox “Unknown error.”StopEnd IfEnd Sub(4)在FormLoad 事件中增加下列代碼:Sub FormLoad()cboDocType.text=“"cboDocType.AddItem ”View“cboDocType.AddItem ”Layout“cboDocType.AddItem ”SEd“Startup'調(diào)startup 程序End Sub(5)在FormUnload 事件中增加下列代碼:Sub FormUnload(Cancel As Integer)txtDDE.LinkMode = NONE'關(guān)閉DDE 對話End Sub(6)在cboDocTypeClick事件中增加下列代碼:Sub cboDocTypeClick()cmd=”av.Getproject.AddDoc(“&cboDocType&”.make)av.Getproject.GetActive.Get(0).Ge tWin.Open“txtDDE.LinkExecute cmdEnd Sub(7)在cmdRequestClick事件中增加下列代碼:Sub cmdRequestClick()'LinkItem是能夠返回值的Avenue scripttxtDDE.LinkItem = ”av.GetActiveDoc.GetName"txtDDE.LinkRequestEnd Sub(8)存儲VB5工程并編譯成EXE 文件。現(xiàn)在即可運行Visual Basic應(yīng)用程序。如果ArcView 沒有運行,應(yīng)用程序就 會激活它。從dropdown combo box 選擇一個文檔名以便在ArcView中建立一個文檔。要訪問 當(dāng)前激活的文檔就敲擊Send Request button,在文本框里將會顯示文檔名。本例所有的DDE 通訊都是通過文本框?qū)崿F(xiàn)的。在VB5中, 任何text box, picture box和label在對話中都可 作為目標(biāo),同時任何窗體可看作源。以上實例的運行環(huán)境為:Visual Basic 4.0以上,ArcView2.1以上,Windows3.1以上。參考文獻(xiàn)
1、邊馥苓主編,《地理信息系統(tǒng)原理和方法》,北京:測繪出版社,1996 年8月。
2、郭達(dá)志、盛業(yè)華等編著,《地理信息系統(tǒng)基礎(chǔ)與應(yīng)用》,煤炭工業(yè)出版社,1997 年5月。
3、(美國)Mike McKelvy & Ronald Martinsen 著,《Visual Basic 5開發(fā)使用手 冊》,機械工業(yè)出版社,1998年4月。
第三篇:VB中串口通訊的實現(xiàn)
VB中串口通訊的實現(xiàn).txt VB中串口通訊的實現(xiàn)
------------------
一、概述
串口通訊作為一種古老而又靈活的通訊方式,被廣泛地應(yīng)用于PC間的通訊以及PC和單片機之間的通訊之中。提到串口通訊的編程,人們往往立刻想到C、匯編等對系統(tǒng)底層操作支持較好的編程語言以及大串繁瑣的代碼。
實際上,只要我們借助相關(guān)ActiveX控件的幫助,即使是在底層操作一向不被人看好的VB中,一樣能夠?qū)崿F(xiàn)串口通 訊,甚至其實現(xiàn)方法和C、匯編相比,要更加快捷方便。下面,筆者就介紹一下在VB中實現(xiàn)串口通訊的方法。
在Visual Basic中有一個名為Microsoft Communication Control(簡稱MSComm)的通訊控件。我們只要通 過對此控件的屬性和事件進行相應(yīng)編程操作,就可以輕松地實現(xiàn)串口通訊。下面,筆者就簡要地介紹一下
MSComm控件的使用方法。
二、MSComm控件的主要屬性、事件
1、MSComm的屬性
由于MSComm控件屬性很多,在此筆者僅介紹與實現(xiàn)串口通訊密切相關(guān)的核心屬性。
Commport:設(shè)置通訊所占用的串口號。如設(shè)成1(默認(rèn)值),表示對Com1進行操作。
Setting:對串口通訊的相關(guān)參數(shù)。包括串口通訊的比特率,奇偶校驗,數(shù)據(jù)位長度、停止位等。其默認(rèn)值 是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校驗,8位數(shù)據(jù)位,1個停止位。
Portopen:設(shè)置串口狀態(tài),值為True時打開串口,值為False時關(guān)閉串口。
Input:從輸入寄存器讀取數(shù)據(jù),返回值為從串口讀取的數(shù)據(jù)內(nèi)容,同時輸入寄存器將被清空。
Ouput:發(fā)送數(shù)據(jù)到輸出寄存器。
InBufferCount:設(shè)置輸入寄存器所存儲的字符數(shù),當(dāng)將其值設(shè)為0時,則輸入寄存器將被清空。
InputMode:設(shè)置從輸入寄存器中讀取數(shù)據(jù)的形式。若值為0,則表示以文本形式讀??;值為1,則表示以 二進制形式讀取。
OutBufferCount:設(shè)置輸出寄存器所存儲的字符數(shù),當(dāng)將其值設(shè)為0時,則輸出寄存器將被清空。
RThreshold:設(shè)置在MSComm控件設(shè)置CommEvent屬性為comEvReceive并產(chǎn)生OnComm事件之前要接受的字符 數(shù)。
CommEvent屬性:返回最近的通訊事件或錯誤。通過對它具體屬性值的查詢,我們就可以獲得通訊事件和通 訊錯誤的完整信息。當(dāng)其值是comEvReceive時表示接收到數(shù)據(jù)。
2、MSComm的事件
除了公共事件之外,MSComm只有一個OnComm事件。當(dāng)CommEvent屬性值變化時將發(fā)生OnComm事件,指示發(fā)生 一個通訊事件或錯誤。當(dāng)我們設(shè)置Rtheshold屬性值為0時,將使得捕獲comEvReceive事件無效。
三、串口通訊編程實例
在完成了對MSComm控件的簡要介紹之后,筆者就以實際程序為例,介紹一下串口通訊的具體實現(xiàn)方法。
1、PC機間的串口通訊
(1)、實現(xiàn)方法:
A、新建一個窗體,在上面放兩個Text控件、兩個CommandButton控件和兩個Label控件(如圖1.bmp所示)。
具體見下表:
控件類型 名稱 Caption屬性 作用
-----------------
Text Text1-------輸入所要發(fā)送的信息
Text Text2-------顯示接收到的信息
CommandButton Command1 發(fā) 送---------CommandButton Command2 退 出---------
Label Label1 發(fā)送的數(shù)據(jù) 提示
Label Label2 接收的數(shù)據(jù) 提示
B、在控件工具箱中的空白處點擊鼠標(biāo)右鍵,在彈出的菜單中選擇“部件”,在彈出的窗口中的控件列表中 找到“Microsoft Comm Control”,將其選中,在點擊“應(yīng)用”、“關(guān)閉”,在控件工具欄中就會出現(xiàn)一個電 話的小圖標(biāo)。
C、用串口線將兩臺電腦連接起來。您可以使用Com1對Com1的對應(yīng)連接,也可以使用Com1和Com2的交叉連接。
本程序使用的是Com1對Com1的連接。
D、輸入以下代碼:
Private Sub Command1_Click()
'...發(fā)送數(shù)據(jù)
MSComm1.OutBufferCount = 0 '...清空輸出寄存器
MSComm1.Output = Text1.Text '...發(fā)送數(shù)據(jù)
End Sub
Private Sub Command2_Click()
'...退出
Unload Me
End Sub
Private Sub Form_Load()
'...初始化
MSComm1.CommPort = 1 '...使用Com1口
MSComm1.Settings = “9600,n,8,1” '...設(shè)置通訊參數(shù)
MSComm1.PortOpen = True '...打開串口
End Sub
Private Sub Mscomm1_Oncomm()
'...通訊事件發(fā)生
Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件發(fā)生
Text2.Text = MSComm1.Input '...接受顯示數(shù)據(jù)
MSComm1.InBufferCount = 0 '...清空輸入寄存器
End Select
End Sub
2、PC機與單片機之間的通訊
PC機與單片機之間的通訊被廣泛的用于工業(yè)、醫(yī)療測控等領(lǐng)域之中。在應(yīng)用中,我們通常將單片機作為“感 受器”和“效應(yīng)器”,負(fù)責(zé)數(shù)據(jù)采集、響應(yīng)計算機發(fā)出的指令對電路進行控制,有時也進行一些簡單的運算,最后再將執(zhí)行數(shù)據(jù)反饋給計算機處理。本程序?qū)崿F(xiàn)在PC機上輸入一個0-255之間的整數(shù),將此數(shù)據(jù)發(fā)送到單片 機,單片機接收到數(shù)據(jù)后,將數(shù)據(jù)在顯示管上顯示,再將此數(shù)除以2,將得數(shù)返回給PC機。(運行效果如圖 3.BMP所示)其實現(xiàn)方法如下:
A、同PC機間通訊的實現(xiàn)方法A-B。
B、連接電腦和單片機。注意!由于PC機端的RS232電平與單片機端TTL的并不不匹配,故應(yīng)注意電平轉(zhuǎn)換。
C、在VB中輸入以下代碼:
Private Sub Mscomm1_Oncomm()
'...通訊事件發(fā)生
Dim indata As Variant
Dim bte(0)As Byte
Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件發(fā)生
indata = MSComm1.Input
'...注意!要通過MSComm控件發(fā)送或接收二進制數(shù)據(jù)必須用Variant類型的變量對二進
'...制Byte類型的變量進行轉(zhuǎn)換!
bte(0)= AscB(indata)
Text2.Text = bte(0)
MSComm1.InBufferCount = 0 '...清空輸入寄存器
End Select
End Sub
Private Sub Command1_Click()
'...發(fā)送數(shù)據(jù)
Dim Num As Integer
Dim outbte(0)As Byte
Num = Val(Text1.Text)
outbte(0)= CByte(Num)
MSComm1.OutBufferCount = 0 '...清空輸出寄存器
MSComm1.Output = outbte(0)'...發(fā)送數(shù)據(jù)
End Sub
Private Sub Command2_Click()
'...退出
Unload Me
End Sub
Private Sub Form_Load()
'...初始化
MSComm1.CommPort = 1 '...使用Com1口
MSComm1.Settings = “9600,n,8,1” '...設(shè)置通訊參數(shù)
MSComm1.PortOpen = True '...打開串口
End Sub
D、單片機工作方式置于1,比特率設(shè)為9600bit/s。在單片機上,我們只得使用匯編語言編寫,并且調(diào)用中 斷實現(xiàn)對串口數(shù)據(jù)的收發(fā)工作。源代碼如下:
PUSH PSW ;將程序狀態(tài)字壓入堆棧
PUSH ACC ;將累加器壓入堆棧
CLR EA ;關(guān)閉系統(tǒng)中斷
CLR RI ;清除中斷標(biāo)志位
MOV A,SBUF ;從接收寄存器中讀取數(shù)據(jù)
MOV 70H,A ;分解數(shù)據(jù)百、十、個位并顯示
MOV B,#100
DIV AB
MOV 52H,A ;分解百位,送入存儲器52H
MOV A,B
MOV B,#10
DIV AB
MOV 51H,A ;分解十位,送入存儲器51H
MOV 50H,B ;分解個位,送入存儲器50H MOV A,70H
MOV B,#2
DIV AB;將接受的數(shù)據(jù)除以2
MOV SBUF,A ;將得數(shù)發(fā)送到輸出寄存器
ACALL DL1 ;延時保證數(shù)據(jù)完整發(fā)送
ACALL DL1
CLR RI ;清除中斷標(biāo)志位
SETB EA ;打開系統(tǒng)中斷
POP ACC;累加器出棧
POP PSW ;程序狀態(tài)字出棧
RETI ;中斷程序返回
3、編程環(huán)境
以上程序在Windows 2000 Professional,Visual Basic 6.0企業(yè)版,AT89C52型單片機下調(diào)試通過。
四、總結(jié)
從以上程序可以看出,在VB中利用MSComm控件,可以快速開發(fā)出串口通訊程序,從而大大提高編程效率。
演講稿
尊敬的老師們,同學(xué)們下午好:
我是來自10級經(jīng)濟學(xué)(2)班的學(xué)習(xí)委,我叫張盼盼,很榮幸有這次機會和大家一起交流擔(dān)任學(xué)習(xí)委員這一職務(wù)的經(jīng)驗。
轉(zhuǎn)眼間大學(xué)生活已經(jīng)過了一年多,在這一年多的時間里,我一直擔(dān)任著學(xué)習(xí)委員這一職務(wù)?;赝@一年多,自己走過的路,留下的或深或淺的足跡,不僅充滿了歡愉,也充滿了淡淡的苦澀。一年多的工作,讓我學(xué)到了很多很多,下面將自己的工作經(jīng)驗和大家一起分享。
學(xué)習(xí)委員是班上的一個重要職位,在我當(dāng)初當(dāng)上它的時候,我就在想一定不要辜負(fù)老師及同學(xué)們我的信任和支持,一定要把工作做好。要認(rèn)真負(fù)責(zé),態(tài)度踏實,要有一定的組織,領(lǐng)導(dǎo),執(zhí)行能力,并且做事情要公平,公正,公開,積極落實學(xué)校學(xué)院的具體工作。作為一名合格的學(xué)習(xí)委員,要收集學(xué)生對老師的意見和老師的教學(xué)動態(tài)。在很多情況下,老師無法和那么多學(xué)生直接打交道,很多老師也無暇顧及那么多的學(xué)生,特別是大家剛進入大學(xué),很多人一時還不適應(yīng)老師的教學(xué)模式。學(xué)習(xí)委員是老師與學(xué)生之間溝通的一個橋梁,學(xué)習(xí)委員要及時地向老師提出同學(xué)們的建議和疑問,熟悉老師對學(xué)生的基本要求。再次,學(xué)習(xí)委員在學(xué)習(xí)上要做好模范帶頭作用,要有優(yōu)異的成績,當(dāng)同學(xué)們向我提出問題時,基本上給同學(xué)一個正確的回復(fù)。
總之,在一學(xué)年的工作之中,我懂得如何落實各項工作,如何和班委有效地分工合作,如何和同學(xué)溝通交流并且提高大家的學(xué)習(xí)積極性。當(dāng)然,我的工作還存在著很多不足之處。比日:有的時候得不到同學(xué)們的響應(yīng),同學(xué)們不積極主動支持我的工作;在收集同學(xué)們對自己工作意見方面做得不夠,有些事情做錯了,沒有周圍同學(xué)的提醒,自己也沒有發(fā)覺等等。最嚴(yán)重的一次是,我沒有把英語四六級報名的時間,地點通知到位,導(dǎo)致我們班有4名同學(xué)錯過報名的時間。這次事使我懂得了做事要腳踏實地,不能馬虎。
在這次的交流會中,我希望大家可以從中吸取一些好的經(jīng)驗,帶動本班級的學(xué)習(xí)風(fēng)氣,同時也相信大家在大學(xué)畢業(yè)后找到好的工作。謝謝大家!
第四篇:VB實現(xiàn)PC與歐姆龍PLC通訊的串口編程
Private Sub Form_Load()
Dim i As Integer'OPEN COM1
If ComTrue(1)= 0 Then
If ComOpen(1, 38400, 7, 1, 1, “sjh”)= 1 Then 'MsgBox(“已注冊”)'sjh為你的注冊賬號Call SetDelayNum(64)
End If
End If
jisu
jisu1
jisu2
End Sub