欢迎来到天天文库
浏览记录
ID:59145666
大小:17.98 KB
页数:5页
时间:2020-09-11
《用VB开发PC与单片机通信的上位机程序.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、串口通信是MCU跟PC通信经常用到的一种通信方式,做界面、写上位机程序的编程语言、编译环境有不少,诸如VB、VC++,Delphi、LABVIEW等等,不过无论黑猫还是白猫,能够抓到老鼠的就是好猫,用VB无疑是最快速最简便的,实现的功能也足够强大,足以满足我们的基本需要了。我最近用VB写出了一个用于数据采集的串口上位机程序,实现数据的接收和实时绘图,这里和大家分享一下,让大家也体验一下单片机和PC通信的乐趣。整个程序只需要不到30行程序,我将会给这30行程序加上最为详备的注释,这样即使你从未使用VB制作过上位机程序,也能照猫画虎的编写出属于自己的上位机程序。一,制定设计思路首先,我们要
2、制定一下自己的串口通讯协议,为了方便设计,通讯协议中将采用字符型数据(遵循ASCII字符集)进行传输,一共5个字节数据,下位机按照从第一字节到第五字节的顺序以字符型形式发送数据,第一个字节是符号符,第二,三,四字节分别是百位,十位,和个位数字,第五个字节是结束符。通讯协议:1 符号位 2 百位 3 十位4 个位 5 结束符 注释: 1,符号符,+(2B)或—(2D),表示数据的正负 2,3,4,百位,十位,和个位数字 5,结束符,用大写字母A(41)表示 接着,我们就要明确设计思路了,这个程序的设计将采
3、用MicrosoftVisualBasic6.0(以下简称VB6.0)作为m,通过编译环境,运用串口通讯控件MSCom计时器控件实现以查询方式编写的串口数据的接收和实时绘图。二,程序界面设计(1)创建一个标准EXE工程:启动VB6.0,在自动弹出的“新建工程”窗口中单击“标准 EXE”图标,然后单击“打开”按钮即可创建一个标准EXE工程。将弹出的窗体的Caption属性设置为串口通讯与实时绘图程序。[attachment=](1)添加串口通信控件MSComm:VB的串口通信控件MSComm并不会主动出现在工具箱中,当我们需要MSComm控件时,首先要把它加入工具箱中,选择“工程”菜单下
4、的“部件...”子菜单,在弹出的“部件”对话框中,在“控件”选项卡属性中选中“MicrosoftCommControl6.0”,单击“确定”按钮后,在工具箱中就出现了一个形似电话的图标,这就是MSComm控件,选择MSComm控件的图标,将它添加到适当位置,采用默认名称MSComm1。[attachment=][attachment=](1)添加一个Timer控件用于自动接收字符:选择Timer控件的图标,将它添加到适当位置,采用默认名称Timer1,Interval属性为1,Enabled属性为False。(2)添加两个文本框控件用于显示数据:选择TexrBox控件的图标,将它添加到
5、适当位置,采用默认名称Text1与Text2,Text属性均设置为空,设置Text2的属性MultiLine=True, ScrollBars=2-Vertical。Text1用于显示最新的一组数据,Text2用于储存之前的所有数据。(3)添加一个图形控件PictureBox用于实时绘图:选择PictureBox控件的图标,将它添加到适当位置,拉伸成适当大小,采用默认名称Picture1,设置BackColor属性为白色。(4)添加一个按钮控件CommandButton用于打开串口:选择CommandButton控件的图标,将它添加到适当位置,采用默认名称Command1,设置Capt
6、ion属性为打开串口。(5)添加一个Shape控件用于显示串口状态:选择Shape控件的图标,将它添加到适当位置,采用默认名称Shape1,设置FillStyle=0-Solid,Shape=3-Circle,FillColor设置为红色。(8)设置完成的程序窗体界面:[attachment=]三,程序代码编写(1)双击程序中的按钮控件,在弹出的代码窗口中键入以下程序DimxAsInteger'定义变量x用于记录数据个数Dimy0AsInteger'定义变量y0用于记录上一次数据DimyAsInteger'定义变量y用于记录当前数据PrivateSubCommand1_Click()'
7、下面的程序是在点击打开串口按钮后时要运行的 MSComm1.CommPort=4 '设置通信端口号为COM4,这个要根据自己所使用的串口而定 MSComm1.Settings="4800,n,8,1" '设置串口参数,表示传输速率为4800bit/s,没有奇偶校验位,8位数据位,1位停止位'这里串口上位机的设置一定要和下位机一致MSComm1.InputMode=0 '接收文本型数据,如果
此文档下载收益归作者所有