Visual Basic 串口通讯编程Word文档格式.docx
- 文档编号:21152523
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:8
- 大小:19.88KB
Visual Basic 串口通讯编程Word文档格式.docx
《Visual Basic 串口通讯编程Word文档格式.docx》由会员分享,可在线阅读,更多相关《Visual Basic 串口通讯编程Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
在计算机后边,您最少会看到一个串行口(笔记本电脑通常为一个,台式计算机通常为二个),采用的是梯型DB-9或DB-25插座,即采用9根线或25根线的插座,这是因为有的外设需要像数据准备、载波检测、请求发送等联络信号(对这些信号线感兴趣的先生/女士,可以查阅有关串行口的资料)。
作为VB爱好者,您只要了解其中的三根线就可以了。
这三根线分别是发送数据TXD、接收数据RXD和信号地SG,对于DB-9既九芯串行口插口来说,它们对应于3、2、5;
对于25芯串行口插口,则对应于2、3、7。
千万别搞错呀!
因为串行口通讯,往往是一个发送,一个接收,所以在制作联接线时,一头的发送必须与另一头的接收相连,地线与地线相连。
对于硬件知识较少的朋友,可以直接到电脑配套市场采购,不方便的话也可以请有一定电子电路基础的亲朋好友帮忙。
我们经常听到有关波特率的词,以“猫”为例,有14400bps、28800bps、36600bps、56000bps,等等。
波特率代表了串行口的数据传输速度。
例如:
9600代表每秒传输约9600个数据位,它代表约1000个(1k)英文字符(每个字符占8位,1个开始位,1个停止位)。
要传输100k的文件,就需要100秒。
二、编程要求
相信许多网友都在网上聊过天,当您在一个输入框中键入一些话时,这些话会传到聊天室的每一个人,同样,其他人的话您也会看到。
我们试着编制一段程序,实现这种功能。
为适应不同速率设备之间的连接,应当可以设定其连接速度;
为避免设备冲突,应当允许进行通讯端口的选择。
另外,为拓宽用途,该程序对于接收的数据,最好还能提供ASCII码显示。
这样,当有两台用串口相连的设备相连接时,您若想知道它们在发送或接收写什么的话,只要将拥有该程序的计算机串口的接收数据线与通讯者的线相连,就可以监看其过程。
例如,您可以使用该程序监测计算机与调制解调器之间的通讯。
在我们调试程序时,很难做到一个人同时占用两台计算机。
为此,我们可以使用在计算机中随处可见的跳线,直接短接串口的2、3两个脚,即将串行口的2、3脚连接在一起,从而使发送的数据直接被本机接收。
这样,就我们就可以在一台计算机上调试程序了。
在该种状态下,本程序还有另外一个用途,即您可以将之用于查找任何字符的ASCII码。
其实很多情况都是如此,软件或硬件本身提供的功能或许有限,关键的问题是如何开动脑筋、灵活运用。
三、预备知识和技巧
1、串行通讯控件Mscomm
调入Mscomm控件:
在“项目”菜单中打开“部件”子菜单,在部件选择对话框中选择
“Microsoft
comm
Control
5.0”,Mscomm控件即加入到您的控件箱中.
常用属性:
Commport-通讯端口号,如串口1、串口2。
Setting-返回或设置串口参数。
InputLen-从接收缓冲区读出的字符数。
InBufferSize、OutBufferSize-输入、输出缓冲区尺寸。
InBufferCount-输入缓冲区内的字符数。
常用方法:
Output、Input-将发送数据发送出去和将接收数据读出。
常用事件:
OnComm-无论串行口发生什么事,都会触发该事件。
2、字符处理函数
Left:
取字符串的左边n个字符。
s=Left(s,2)
即为取s的左边两个字符再放回s。
Right:
与Left类似,取字符右边n个字符。
Mid:
从第m个数开始,取n个数。
s=Mid(s,2,3)即为从s的第二个数开始,取三个数放回s。
Asc:
返回第一个字符(包括汉字)的Ascii码。
Str:
将一个数字变为字符形式
Hex:
返回Ascii码的16进制数
3、错误处理的应用
我们在程序中加入这样一条语句:
On
Error
Resume
Next。
当程序运行出现错误,比如当打开串行口1时,该串口已被其它程序占用,程序就会出现错误,如果开始时执行过上述语句,程序将跳过错误语句,接着往下执行。
同时,VB置Err标志有效。
利用Err的值,我们可以判断一些与硬件相关的操作是否正确和有效,以改变程序的进程。
四、界面
画出界面,控件上的字符是它们的名称。
需要提请大家注意的是,串口控件(即那个电话控件)在VB默认的控件栏中不存在,需要以下述方式添加,在工程菜单->
部件->
控件选项卡中选中Microsoft
Comm
5.0复选框,其它备用控件的添加也采用相同的方式,希望大家记住,以后将不再重复。
当不再需要该控件而欲从控件栏中将其删除时,只需依上述步骤进入到控件选项卡,然后取消对该控件的选中即可。
除Text1在设计时将多行显示使能属性Multiline设为True,以使Text1能显示多行文字外,其它各控件属性将在窗口调入时进行设置。
五、程序源代码
Private
Sub
Form_Load()
Me.Show
'
初始化,为各控件的相关属性赋值
Label1.Caption
=
"
串口接收"
Label2.Caption
串口发送"
Label3.Caption
串口设置‘波特率,奇偶校验,数据位,停止位’"
Text3.Text
9600,n,8,1"
Text1.Text
Text2.Text
Text2.SetFocus
Frame1.Caption
串口选择"
Option1.Caption
COM1"
Option2.Caption
COM2"
Frame2.Caption
显示方式"
Option3.Caption
文本"
Option3.value
True
Option4.Caption
ASCii"
Command1.Caption
清除接收"
Command2.Caption
退出"
OldSet
Text3.Text
打开串口
MSComm1.CommPort
1
‘将通讯口设为COM1
Next
‘错误监视
MSComm1.PortOpen
‘打开串口
‘如果没有错误,串口1将被确认打开,否则打开串口2
If
Not
Err
Then
MsgBox
COM1口工作"
Option1.value
Else
2
‘打开串口2,如果仍然有错误,则两个口都不能打开,这时应退出程序。
Then
COM1、COM2都不能打开,程序终止"
:
End
COM2口工作"
Option2.value
End
If
‘接收数据
Dim
aaa,
i%,
s$,
s1$,
s2$
aaa
False
‘下面的循环是死循环,程序不断的检测输入缓冲区内是否有接收到的字符,如果有,即进行处理。
Do
While
DoEvents
‘该语句使程序可以在此处响应其它事件。
如果没有该语句,程序就真成了死循环,一个运行的程序无法让其停止,是很可怕的。
这是所有程序编制人员时刻注意的问题,也可以算编程的规律之一。
MSComm1.InBufferCount
>
0
Timer1.Enabled
‘关闭定时器
s
MSComm1.Input
‘取串行口数据
s1
s2
Option3
‘如果显示方式为文本,则将接收到的字符串累加到JSStr
变量中
JSStr
+
s
‘如果显示方式为ASCii,则对每个字符进行转换
For
i
1
To
Len(s)
Right("
0000"
Hex(Asc(Mid(s,
i,
1))),
4)
‘取出第i个字符,转换成ASCii码,再转换成16进制,并整理成四位字符。
例如数字1的ASCii码为31,则转换成0031,汉字“科”的转换结果为“BFC6”
Left(s2,
2)
00"
Right(s2,
2)
Space
(1)
‘字符取两位字符,汉字取两个两位字符
Space
(1)
Next
i
s1
‘定时器开始工作
Loop
Sub
‘发送数据:
当在发送文本框进行回车操作时,将文本内容送出。
Text2_KeyPress(KeyAscii
As
Integer)
KeyAscii
13
‘13为回车符
‘清按键,使本次按键失效
MSComm1.Output
Text2.Text
‘发送数据
Text2
‘修改参数,通过修改Text3的内容,可以修改波特率等参数
Text3_KeyPress(KeyAscii
<
Exit
MSComm1.Settings
OldSet
Text3
GoTo
‘滚动显示
Timer1_Timer()
Static
js%
s$
js
8
ss(i)
ss(i
1)
ss(9)
Chr(13)
Chr(10)
Trim(Str(js))
\"
JSStr
9
ss(i)
Right(s,
Len(s)
-
六、执行程序
两个计算机连接完毕(或短接2、3脚),均执行该程序,显示初始界面,提示目前默认工作的端口号。
单击确定按钮,然后对波特率、奇偶校验、数据位、停止位进行必要的设置,如果您使用过Modem,这当然是小菜一碟,如果您不太熟悉也没有关系,只需简单地将波特率修改一下即可。
然后选择欲使用的端口,默认值为COM1,如果不巧该端口正在被其它设备所占用,可选择COM2进行通讯。
如果欲在接收方显示您键入的字符,则选中“文本”选项按钮,若欲显示其ASCII码,则必须选中“ASCII”选项按钮。
然后,在“串口发送”文本框中键入字符,即可分段显示在“串口接收”栏中,并进行计数。
每次回车均另起一段、计数一次,并将其段落号加在每一段的开头。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Visual Basic 串口通讯编程 串口 通讯 编程