欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
VB6.0環(huán)境下利用Mscomm控件實(shí)現串行通信

VB6.0環(huán)境下利用Mscomm控件實(shí)現串行通信

: 本文簡(jiǎn)要介紹了VB6.0Mscomm通信控件的屬性和使用方法,并結合具體實(shí)例給出了基本的通信程序。
主題詞:串行通信Visual Basic Mscomm .vbx控件

Abstract: This paper briefly introduces the principle andmethod of Mscomm object of Visual basic 6.0, and with a real examplebasic program codes are given.
Key WordsSerial Communication; Visual Basic; Mscomm .vbxcontrol component

隨著(zhù)計算機技術(shù)的飛速發(fā)展及其廣泛應用,遠程控制以及數據采集系統多采用上位機和下位機的主從工作方式,由于串行通信具有高效可靠、價(jià)格便宜,遵循統一的標準等特點(diǎn),因而成為主要的通信手段。微機的分析處理能力較強,有很好的人機界面和大容量的多種存儲方式,所以上位機一般采用微機。而單片機具有價(jià)格低,功能強,抗干擾能力好,溫限寬和面向控制等特點(diǎn),所以下位機采用單片機來(lái)構成主從式多機工作模式。在需要對采集的數據進(jìn)行分析處理或在遠程需要對控制對象的控制過(guò)程進(jìn)行統計或有條件控制時(shí),采用數據庫訪(fǎng)問(wèn)技術(shù)能有效地解決這類(lèi)問(wèn)題。
VisualBasic 6.0
以其強大的功能、使用簡(jiǎn)單、能在短時(shí)間內開(kāi)發(fā)出高效的通信程序而成為Windows系統開(kāi)發(fā)的主要編程語(yǔ)言。首先表現在VB可直接使用戶(hù)自定義控件VBXOCX文件;其次表現在VB可通過(guò)調用動(dòng)態(tài)鏈接庫(DLL,dynamic linklibrary)來(lái)加快應用程序關(guān)鍵部分的執行速度。利用VB提供的這些功能可方便地完成程序設計,如串行編程等,本文將介紹VB6.0通信控件Mscomm.vbx及其編程方法,并結合實(shí)例給出計算機與單片機進(jìn)行數據通信的基本程序。
1 VB6.0
實(shí)現串行通信方法
VB
提供的通信控件Mscomm32.ocx,使用前只需從Project菜單下的Components中選擇Microsoft Comm Control6.0Mscomm32.ocx控件調入工具框中即可使用。利用該控件可對串行通信的數據發(fā)送和接收進(jìn)行設置,還可對串口狀態(tài)及串行通信的信息格式和協(xié)議進(jìn)行設置。在通信過(guò)程中可以通過(guò)觸發(fā)OnComm事件來(lái)追蹤、處理通信和錯誤事件的發(fā)生。由于每個(gè)通信控件對應一個(gè)串口,如果要訪(fǎng)問(wèn)多個(gè)通信口,則要設計多個(gè)通信控件。
1通信方式
(1) 事件驅動(dòng)方式 它是一種功能很強的處理串行通信問(wèn)題的方法,在實(shí)際工作中,往往要處理許多通信中的相關(guān)事件,可通過(guò)對OnComm屬性值進(jìn)行編程來(lái)處理,它也包括檢測和處理通信錯誤等方面的問(wèn)題,CommEvent值返回最近的通信事件或錯誤的數字代碼。
(2) 查詢(xún)方式 在每個(gè)重要的程序功能之后檢查CommEvent屬性值來(lái)檢測事件和通信錯誤。這種方式常用于應用程序較簡(jiǎn)單和相對獨立的應用程序設計中。
通信控件的基本屬性
為支持串行通信的實(shí)現,VB6.0Mscomm控件提供了眾多的串行通信屬性,主要有:
CommPort
:設置和返回PC機串行端口號;
Settings
:初始化傳輸波特率、奇偶校驗位、數據位寬度和停止位寬度;
Input
:從輸入緩沖區中讀取數據;
InputLen
:輸入緩沖區數據長(cháng)度;
InputMode
:輸入模式,ASCII字符或二進(jìn)制數據;
Output
:將數據寫(xiě)入輸出緩沖區;
InBufferSize
:設置并返回接收緩沖區的字節數;
OutBufferSize
:設置并返回輸出緩沖區的字節數;
PortOpen
:布爾型,用于打開(kāi)或關(guān)閉串行通信端口;
OnComm
:在發(fā)生通訊事件或錯誤時(shí),將觸發(fā)OnComm事件,CommEvent屬性值將被改變;
Rthreshold
:引發(fā)接收事件的字節數,為0時(shí)不引發(fā)接收事件;
Sthreshold
:引發(fā)發(fā)送事件的字節數,為0時(shí)不引發(fā)發(fā)送事件;
…… ……
2
實(shí)例
本例主要介紹以MCS-51系列單片機為基礎的智能化儀表與微機的數據通信軟件的設計方法。系統主站為一臺微機,子站為16個(gè)以單片機為主并利用串口可收發(fā)數據的智能儀器組成,采用RS-232通信標準的半雙工通信模式。主站與子站之間為總線(xiàn)型網(wǎng)絡(luò )結構,以主站輪詢(xún)子站的方式進(jìn)行數據通信。由于16個(gè)子站與主站的同一串口連接,為了避免爭奪通信權現象,通信時(shí),由上位機首先發(fā)一地址幀(1),建立連接,接著(zhù)發(fā)出數據幀(0),下位機在接收到上位機發(fā)來(lái)的數據后,進(jìn)行糾錯后,回發(fā)數據(0),如果在規定的時(shí)間內上位機收不到應答數據,即認為本次通信失敗。
在系統軟件窗體(Form)中加入一個(gè)通信控件(Mscomm)和二個(gè)定時(shí)器控件(Timer)。通信控件用于發(fā)送和接收數據,定時(shí)器控件(Timer1)用于控制主站定時(shí)向每個(gè)子站發(fā)送下行命令,定時(shí)器控件(Timer2)用于主站接收子站數據超時(shí)控制。
1
控件的初始化
在窗體事件中對Mscomm的一些屬性進(jìn)行設置
Mscomm.Commport=2 '
利用串口COM2進(jìn)行通訊
Mscomm.InputLen=0 '
讀取接收緩沖區的所有字符
Mscomm.OutBuffersize=1024 '
設置發(fā)送緩沖區為512字節
Mscomm.InBufferSize=1024 '
設置接收緩沖區為2048字節
Mscomm.OutBufferCount=0 '
清除發(fā)送緩沖區
Mscomm.InBufferCount=0 '
清除接收緩沖區
Mscomm.InputMode=comInputModeBinary '
數據傳輸設置為二進(jìn)制格式
Mscomm.Rthreshold=Receive_byte '
設置為主站每次接收Receive_Byte字節,
'
可觸發(fā)On_Comm
Mscomm.PortOpen=True'
打開(kāi)通信口COM2
Timer1.Inteval=2000'
設置2秒發(fā)送定時(shí)時(shí)間間隔
Timer2.Enabled=False '
在發(fā)送下行命令后啟動(dòng)Timer2超時(shí)定時(shí)
'
數據發(fā)送尚未開(kāi)始
Mscomm_send=False'
下行命令傳輸尚未開(kāi)始
Mscomm_Receive=False'
接收數據尚未開(kāi)始
2
數據的發(fā)送和接收
MSComm
控件支持以文本和二進(jìn)制格式傳輸數據,由于下位機為單片機,處理二進(jìn)制數據方便快速,因此本例以二進(jìn)制格式發(fā)送和接收數據。為此,先定義三個(gè)用來(lái)存放發(fā)送和接收數據的Byte類(lèi)型數組OutAa(2),OutBb(n),InAa()n依所發(fā)數據長(cháng)度而定),還要定義三個(gè)用來(lái)發(fā)送和接收數據的Variant類(lèi)型變量OutA,OutB,InA。在接收數據時(shí)采用事件驅動(dòng)法,當接收緩沖區有RTHreshold個(gè)數據時(shí),CommEvent屬性被置為comEvReceive,并觸發(fā)OnComm事件,因此,RTHreshold的值即為要接收的數據。如果在規定時(shí)間內上位機得不到應答信息,將觸發(fā)時(shí)鐘控件的定時(shí)事件報錯。
1 數據發(fā)送程序
Mscomm.RTSEnable=False '
置為發(fā)送狀態(tài)
Mscomm .Setting="9600,m,8,1" '
設置波特率、校驗位(1)、數據位、停止位
Mscomm .OutBufferCount=0 '
清除發(fā)送緩沖區
OutA=OutAa '
Mscomm .Output=OutA '
發(fā)送地址幀數據
Do 
DoEAvents '
轉交控制權
Loop Until Mscomm .OutBufferCount=0 '
發(fā)送緩沖區清空
Mscomm .Setting="9600,s,8,1" '
設置校驗位(0
OutB=OutBb'
Mscomm .Output=OutB '
發(fā)送數據
Do
DoEvents '
轉交控制權
Loop Until Mscomm .OutBufferCount=0 '
Mscomm .InBufferCount=0 '
清除接收緩沖區 
Mscomm .RTHreshold=8 '
所要接收的數據長(cháng)度
Mscomm .RTSEnabled=True '
轉為接收狀態(tài)
Timer.Enabled=True '
啟動(dòng)定時(shí)器
2)數據接收程序
Sub Mscomm_OnComm()
Select Case Mscomm .CommEvent
CasecomEventBreak
Case comEventCDTO
Case comEventCTSTO
CasecomEventDSRTO
Case comEventFrame
Case comEventOverrun
CasecomEventRxOver
Case comEventRxParity
Case comEventTxFull
CasecomEventDCB
Case comEvCD
Case comEvCTS
Case comEvDSR
CasecomEvRing
Case comEvEOF
Case comEvReceive
InA=Mscomm.Input
InAa=InA
Mscomm.PortOpen=False
Timer.Enabled=False
Call process
CasecomEvSend
End Select
End Sub
Private Sub Timer.Timer()
Timer.Enabled=False
Mscomm.PortOpen=False
MsgBox "
超時(shí)!通信失??!"
End Sub
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
基于PC機的DNC傳輸軟件的開(kāi)發(fā)--中國自動(dòng)化網(wǎng)文庫中心
RS232接口與單片機串行通信程序設計
通訊串口:VB/C++/C#串口通信源代碼+詳細注釋用的是axMSComm控件,通信方式...
利用VB實(shí)現PC機與多單片機通訊
用VC 6.0實(shí)現串行通信的三種方法
VC++.NET和VC++6.0串行通信控件的使用區別(精華)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久