VB编写的简单的上位机

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一个简单的用VB编写的上位机程序

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

窗口布局

用到的MSComm控件的基本属性(必用)

CommPort:设置或返回串口通信的串口号(COM口)

设置格式是:mPort[=value],其中object为控件名,

如MSComm1;value的合法值是整形的数据,例如1,2……

比如mPort=1(默认值),表示我们将用COM1口进

行通信

COM口可以通过鼠标右击“我的电脑(计算机)”图标,在弹出的快捷菜单中选择“管理”,弹出如下图左边的对话框

左键点击“设备管理器”可以看到上图右边对话框

左键点击设备管理器可以看到如上图右边视图

其中的就是当前连接到计算机的可用串口了Settings:以字符串的形式设置或返回串口通信参数。

设置格式:mPort[=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属性从接受缓冲区中读取并删除字符。

其它的属性,需要时可以在网上查找相关资料(下面附几个网址)/view/84fb2949336c1eb91a375d91.html

这个里面讲的很详细的

程序代码

Private Sub Combo2_Click()

MSComm1.Settings=Combo2.Text+",n,8,1"

End Sub

Private Sub Command6_Click()

On Error GoTo uerror:

If Command6.Caption="打开串口"Then

MSComm1.PortOpen=True

Command6.Caption="关闭串口"

Shape1.FillColor=RGB(0,255,0)

Else

MSComm1.PortOpen=False

Command6.Caption="打开串口"

Shape1.FillColor=RGB(128,128,128)

End If

Exit Sub

uerror:

msg$="无效端口号"

Title$="串口调试"

X=MsgBox(msg$,48,Title$)

End Sub

Private Sub Form_Load()

Text1=""

Text3=""

Combo2.ListIndex=0

Combo1.ListIndex=0

Timer1.Interval=Val(Text2)

mPort=Combo1.ListIndex+1

MSComm1.RThreshold=1

MSComm1.InputLen=0

If Option3Then MSComm1.InputMode=comInputModeBinary End Sub

Private Sub Form_Unload(Cancel As Integer)

If MSComm1.PortOpen Then MSComm1.PortOpen=False End Sub

相关文档
最新文档