VB编写的简单的上位机.pdf

上传人:wj 文档编号:14658194 上传时间:2023-06-25 格式:PDF 页数:7 大小:194.15KB
下载 相关 举报
VB编写的简单的上位机.pdf_第1页
第1页 / 共7页
VB编写的简单的上位机.pdf_第2页
第2页 / 共7页
VB编写的简单的上位机.pdf_第3页
第3页 / 共7页
VB编写的简单的上位机.pdf_第4页
第4页 / 共7页
VB编写的简单的上位机.pdf_第5页
第5页 / 共7页
VB编写的简单的上位机.pdf_第6页
第6页 / 共7页
VB编写的简单的上位机.pdf_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VB编写的简单的上位机.pdf

《VB编写的简单的上位机.pdf》由会员分享,可在线阅读,更多相关《VB编写的简单的上位机.pdf(7页珍藏版)》请在冰点文库上搜索。

VB编写的简单的上位机.pdf

一个简单的用VB编写的上位机程序自己想做一个简单上位机自己想做一个简单上位机,却发现相关的资料很少却发现相关的资料很少,于是在做出来之后把自于是在做出来之后把自己的这样一个简单程序上传,给新入门的朋友一个借鉴学习的资料。

己的这样一个简单程序上传,给新入门的朋友一个借鉴学习的资料。

窗口布局窗口布局用到的用到的MSComm控件的基本属性(必用)控件的基本属性(必用)CommPort:

设置或返回串口通信的串口号(COM口)设置格式是:

object.CommPort=value,其中object为控件名,如MSComm1;value的合法值是整形的数据,例如1,2比如MSComm1.CommPort=1(默认值),表示我们将用COM1口进行通信COM口可以通过鼠标右击“我的电脑(计算机)”图标,在弹出的快捷菜单中选择“管理”,弹出如下图左边的对话框左键点击“设备管理器”可以看到上图右边对话框左键点击设备管理器可以看到如上图右边视图其中的就是当前连接到计算机的可用串口了Settings:

以字符串的形式设置或返回串口通信参数。

设置格式:

object.CommPort=value其中object为控件名,如MSComm1;Value需为一字符串,由四个设置值组成其格式为:

“波特率,奇偶校验,数据位,停止位”Portopen:

设置或返回串口状态,若其已经打开,则返回TRUE,否则返回FALSE设置格式:

object.Portopen=value其中object为控件名,如MSComm1;value为一逻辑值,若为TRUE,则打开,否则关闭注意:

如果串口不是打开(关闭注意:

如果串口不是打开(关闭),而对它进行关闭(打开)将会出错,而对它进行关闭(打开)将会出错RThreshold:

该属性为一阀值。

当接收缓冲区中字符数达到该值时,MSComm控件设置Commevent属性为ComEvReceive,并产生OnComm事件。

用户可在OnComm事件处理程序中进行相应处理。

若Rthreshold属性设置为0,则不产生OnComm事件。

例如用户希望接收缓冲区中达到一个字符就接收一个字符,可将Rthreshold设置为1。

这样接收缓冲区中接收到一个字符,就产生一次OnComm事件。

InputMode:

设置或返回接收数据的类型。

设置格式:

object.InputMode=value,其中value的值有两个;comInputModeBinary表示以二进制方式接收数据,Input属性返回值属性返回值为一字符串为一字符串comInputModeText表示以字符方式接收数据,Input属性返回值属性返回值为一字数组为一字数组InputLen:

设置或返回一次从接收缓冲区中读取字节数。

设置格式:

object.InputLen=value,value为一个整形数据;当其设置为0时,表示一次读取接收缓冲区中的全部内容。

这个属性在定字在定字节读取中非常有用节读取中非常有用Input:

从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。

使用格式:

str=object.Input,str为一字符串型变量或对象Output:

向发送缓冲区发送数据,该属性设计时无效,运行时只读。

使用格式:

object.Output=value,value为一字符串型变量或任意类型的数组CommEvent:

这是一个非常重要的属性。

该属性设计时无效,运行时只读。

一:

这是一个非常重要的属性。

该属性设计时无效,运行时只读。

一旦串口发生通信事件或产生错误旦串口发生通信事件或产生错误,依据产生的事件和错误依据产生的事件和错误,MSComm控件为控件为CommEvent属性赋不同的代码,同时产生属性赋不同的代码,同时产生OnComm事件事件。

用户程序就可在用户程序就可在OnComm事件处理程序中针对不同的代码事件处理程序中针对不同的代码,进行相进行相应的处理。

应的处理。

ComEvReceive接受到接受到Rthreshold个字符。

该事件将持续产生,直个字符。

该事件将持续产生,直到用到用Input属性从接受缓冲区中读取并删除字符。

属性从接受缓冲区中读取并删除字符。

其它的属性其它的属性,需要时可以在网上查找相关资料需要时可以在网上查找相关资料(下面附几个网址下面附几个网址)http:

/SubCombo2_Click()MSComm1.Settings=Combo2.Text+,n,8,1EndSubPrivateSubCommand6_Click()OnErrorGoTouerror:

IfCommand6.Caption=打开串口ThenMSComm1.PortOpen=TrueCommand6.Caption=关闭串口Shape1.FillColor=RGB(0,255,0)ElseMSComm1.PortOpen=FalseCommand6.Caption=打开串口Shape1.FillColor=RGB(128,128,128)EndIfExitSubuerror:

msg$=无效端口号Title$=串口调试X=MsgBox(msg$,48,Title$)EndSubPrivateSubForm_Load()Text1=Text3=Combo2.ListIndex=0Combo1.ListIndex=0Timer1.Interval=Val(Text2)MSComm1.CommPort=Combo1.ListIndex+1MSComm1.RThreshold=1MSComm1.InputLen=0IfOption3ThenMSComm1.InputMode=comInputModeBinaryEndSubPrivateSubForm_Unload(CancelAsInteger)IfMSComm1.PortOpenThenMSComm1.PortOpen=FalseEndSubPrivateSubMSComm1_OnComm()DimBytReceived()AsByteDimstrBuffAsStringSelectCaseMSComm1.CommEventCasecomEvReceiveIfOption4ThenText3=Text3&MSComm1.InputElsestrBuff=MSComm1.InputBytReceived()=strBuffstrBuff=DimiAsIntegerFori=0ToUBound(BytReceived)IfLen(Hex(BytReceived(i)=1ThenstrBuff=strBuff&0&Hex(BytReceived(i)&ElsestrBuff=strBuff&Hex(BytReceived(i)&EndIfNextText3=Text3&strBuffEndIfEndSelectEndSubPrivateSubOption3_Click()MSComm1.InputMode=comInputModeBinaryEndSubPrivateSubOption4_Click()MSComm1.InputMode=comInputModeTextEndSubPrivateSubTimer1_Timer()DimSendBuff()AsByteDimBytflagAsStringDimstrBuffAsStringDimiAsIntegerDimflagAsBooleanIfOption2ThenMSComm1.Output=Text1.TextElseFori=1ToLen(LTrim(Text1)Bytflag=Mid(Text1,i,1)IfBytflag=0AndBytflag=aAndBytflag=AAndBytflag=FThenflag=TrueElseflag=FalseExitForEndIfNextIfflagThenIfLen(LTrim(Text1)Mod20ThenstrBuff=0<rim(Text1)ElsestrBuff=Text1EndIfReDimSendBuff(Len(strBuff)/2-1)Fori=0ToUBound(SendBuff)SendBuff(i)=Val(&h&Mid(strBuff,2*i+1,2)NextMSComm1.Output=SendBuffElsemsg$=请输入HEX格式数据:

a-f、A-F、0-9Title$=串口调试助手X=MsgBox(msg$,48,Title$)Timer1.Enabled=FalseCommand3.Caption=自动发送EndIfEndIfEndSubPrivateSubCombo1_Click()MSComm1.CommPort=Combo1.ListIndex+1EndSubPrivateSubCommand1_Click()Text1=EndSubPrivateSubCommand2_Click()DimSendBuff()AsByteDimBytflagAsStringDimstrBuffAsStringDimiAsIntegerDimflagAsBooleanTimer1.Enabled=FalseIfMSComm1.PortOpenThenIfOption2ThenMSComm1.Output=Text1.TextElseFori=1ToLen(LTrim(Text1)Bytflag=Mid(Text1,i,1)IfBytflag=0AndBytflag=aAndBytflag=AAndBytflag=FThenflag=TrueElseflag=FalseExitForEndIfNextIfflagThenIfLen(LTrim(Text1)Mod20ThenstrBuff=0<rim(Text1)ElsestrBuff=Text1EndIfReDimSendBuff(Len(strBuff)/2-1)Fori=0ToUBound(SendBuff)SendBuff(i)=Val(&h&Mid(strBuff,2*i+1,2)NextMSComm1.Output=SendBuffElsemsg$=请输入HEX格式数据:

a-f、A-F、0-9Title$=串口调试助手X=MsgBox(msg$,48,Title$)EndIfEndIfElsemsg$=请打开串口Title$=串口调试助手X=MsgBox(msg$,48,Title$)EndIfEndSubPrivateSubCommand3_Click()IfMSComm1.PortOpenThenIfCommand3.Caption=自动发送ThenTimer1.Enabled=TrueTimer1.Interval=Val(Text2)Command3.Caption=关闭自动ElseTimer1.Enabled=FalseCommand3.Caption=自动发送EndIfElsemsg$=请打开串口Title$=串口调试助手X=MsgBox(msg$,48,Title$)EndIfEndSubPrivateSubCommand4_Click()Text3=EndSubPrivateSubCommand5_Click()UnloadMeEndSub

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2