基于VB的上位机程序设计说明
VB编写的简单的上位机
一个简单的用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事件。
自己用VB编制的上位机(MSComm控件)
自己用VB编制的上位机(MSComm控件)本人初学者,许多地方显得粗糙笨拙,但总算是成功了,不过自我感受VB真的很简单,我大致学了两三个星期就可以了。
本文只同向我一样的初学者分享一下经验,毕竟咱不是专业的。
下面开始。
上位机可方便地实现与单片机之间进行信息传递交互,能够更加容易对机械手臂进行控制,实现操作可视化,更加直观,保存重要数据等功能。
我们利用Visual Basic 6.0(以下简称VB)来编制上位机,VB 是一种功能强大、简单易学的程序设计语言。
它不但保留了原先Basic 语言的全部功能,而且还增加了面向对象程序设计功能。
它不仅可以方便快捷地编制适用于数据处理、多媒体等方面的程序,而且利用ActiveX控件MSComm还能十分方便地开发出使用计算机串口的计算机通信程序。
本实验涉及控制六路舵机,所以需要编制上位机实现一次向下位机传输含有六个数据的数组,同时接受来自下位机的数组,并显示。
整个过程可分为如下几个过程:一:VB是面向对象的语言,首先需要绘制程序界面该上位机大致分为左边的功能部分与右边的可视化调节部分。
功能部分有端口选择,用以选择合适的端口进行串口通信,波特率选择,打开与关闭端口,动作设置等。
为了便于布局,应用frame控件建立区域,再将控件拖到frame 区域中,对于功能相同的控件来说,建立控件组的方式会使编程避免重复繁琐,例如HScrollbar控件,先向frame区域内拖入一个HScrollbar控件,再复制,粘贴到frame区域内部,则提示是否建立控件组,点击确定即可。
这样便为后续编程带来很大的方便。
调节部分运用Hscrollbar控件来粗略调节度数,设定按钮与文本框配合来精确调节输出度数。
用右列文本框实时读取舵机当前角度。
用optionbutton控件来选择hscrollbar的步进精度,这里分为0.1度与1度两个不同的选项。
由于一组optionbutton中在程序运行中只能有一个处于选中状态,根据本程序要求,每一横列的两个optionbutton为一组,这样就需要frame控件,在同一个frame区域里的optionbutton默认为一组。
基于VB的多路数据采集系统上位机软件设计(精)
图1烘炉温度多路数据采集系统上位机软件界面基于VB 的多路数据采集系统上位机软件设计张瑜,韩玉杰,闵昆龙(东北林业大学机电工程学院,黑龙江哈尔滨150040摘要:采用Visual Basic 6.0设计多路数据采集系统的上位机软件,实现对由单片机组成的测量系统数据的采集、传输、保存、分析、绘制曲线图以及数据和曲线图的打印。
文中以烘炉内多点温度数据采集系统设计为例说明用于串口通信上、下位机的软件设计,以及VB 中mscomm ,msflexgrid 等控件的用法。
关键词:多路数据采集;上位机;mscomm 控件;msflexgrid 控件中图分类号:TP311文献标识码:A文章编号:1001-4462(200701-0029-02Software Design in Host Computer of Multi-data AcquisitionSystem Based on VBZHANG Yu,HAN Yu-jie,MIN Kun-long(College of Machinery and Electricity of Northeast ForestryUniversity ,Heilongjiang Harbin 150040,ChinaAbstract :This article mainly explained how to design software for host computer of multi-data acquisition system based on visual basic 6.0.Also it displaied that the whole single-chip system how to acquire,communicate,save and analyze the data,how to draw graph,and how to print data and graph.The test taked the oven ’s multi-temperature data acquisition system for example,expounded the design of software of host and slave computer that using for serial communication,and also explained the mscomm control and msflexgrid control of visual basic.Key words :multi-data acquisition;host computer;mscomm control;msflexgrid control微软公司的visual basic 6.0是windows 应用程序开发工具,是目前应用最为广泛、易学易用的面向对象的开发工具,并且为用户提供了大量的控件。
用VB编写上位机实例
标签:无标签VB编写上位机实例用VB编写上位机实例16:14:22 UTC+0800Sun Apr 1 2007用VB6.0编写第一个串口通信上位机程序Visual Basic6.0是一个可视化窗口环境的编程软件,目前使用Visual Basic6.0可以快速简单编写单片机中的串口通信上位机程序。
下面我们以一个完整的通信试验为例子完成如何用Visual Basic6.0编写单片机串口通信程序。
打开安装好后的Visual Basic6.0主程序界面。
选择“标准EXE”。
如图1显示,建立Visual Basic的编程环境。
图1在菜单的[工程]选项中选择[部件],如图2。
把Visual Basic的串口通信控件Microsoft Comm control 6.0调入工作菜单。
图2在打开[部件]对话框中,选择Microsoft Comm control 6.0的选项框,点击[确定]。
图3图3可以在图示3中可以看通信控件Microsoft Comm control 6.0的文件是在C:\WINNT\system32\MSCOMM32.OCX文件。
如果大家在首次调用通信控件Microsoft Comm control 6.0控件时无法在控件对话框中找到,请直接在系统目录中搜索名为MSCOMM32.OCX文件。
然后通过浏览加入VB的工作界面中。
添加完控件回到编程界面。
如下图4。
图4通过右边的菜单把一些必要的控件放在窗体中。
然后点击窗体中的Timer控件按F4弹出属性窗口进行设置。
其具体设置如下:Timer定时器控件设置属性,(通过按F4键可弹出此窗口)Mscomm通信控件参数属性设置(通过单击控件的右键属性可弹出此窗口)本文用到的其他控件:CommandButton控件和TextBox控件按默认属性设置不变。
以上设置完成,回到编程窗体区中,任意双击。
会显示Visual Basic的程序窗体的Load事件程序。
基于VB的多路数据采集系统上位机软件设计
Absr c : h sa t l i l x lie o t e in s f r r s o ue fmut- aaa q ii o y tm a e ta t T i ri emanye p an dh w od sg ot ef t mp tro l d t c ust n s se b s d c wa o ho c i i o iu l sc60. s ip ae h t h o esn l- hp s se h w oa q ie c mmu iae s v n n lz e nvs a i . Aloid s lidt a ewh l i ge c i y tm o t c u r , o ba t t n c t , a ea d a ay et h d t, o t rw rp , n o t rn a n a h T ets k dt eo e smu t t mp r tr a c u st n s se aa h w d a g a h a d h w p t t a dg p . o o i da r h e t e v n’ l - e eau ed t a q iii y tm a t h i a o o x mpe e p u d dt ede i o f fre a l, x o n e h sg f ot r f o t n lv o u e t sn rs ra o n s wa eo s d sa ec mp trt igf e l c mmu iain a d as h a ha u o i nc t , o n o l e p an dt em s o x lie c mm o to n f x rdc nr l f iu a i. h c nrla d ms e g i o to s a b c l ov l s K e r s: li a c u st n o t o ue ; ms o y wo d mu t -d t a q iii ;h s mp tr a o c c mm o t l c nr ;ms e gi o to o l f x rdc nr l
基于VB6.0的太阳能发电基站电源的上位机软件设计
() 1报文帧头地址码为 0 3 H, x A 占一字节。
() 2 数据 数量 为 数据 域 所有 字 节 的长 度 。
电流数据进行存储、 显示 。 由于本设计的太阳能发电 装置用于通信基站的电源,其应用的环境一般位于
() R 3 C C校验 : 从地址码开始计算, 一直到数据 域 的最后一个字节, 生成多项式为:
件 软
计 设
t C. h y t m c iv sr a - me d t o l c i n so a ea d wo k t si g a o t C o rc n r l c i e oP T es se a h e e l i a ac l t , t rg n r t b u t p we o to e t e o e n P o ma h n a d s se f n t ns t n . n y t m ci et g u o i
()数 据域 每个 数 据 均 占 2个 字节 ,6进 制表 5 l
i i 1 = + En f dI Lo p o
示, 高字节在前, 低字节在后 。
2 上位机软件功能码分类 . 2
O O x1
O 0 x2
O 0 x3
Ii m ( +5 hn ’ f =e p2 e 接收数据总长度 ) T
的分析处理能力较强,有友好的人机界面和大容量 的多种存储方式,故上位机一般采用微机对采集数 据进行 图形显示、 分析以及管理 。 上位机与下位机通
过 串行 接 口实 现 通信 , 本 系统 采 用 了 Vi aBai 在 s l s u c
需使用窗体和控件等可视化界面设计程序, 从而降
低 了程序设计的难度。本文就采用 了 V B来设计上 位机软件, 以实现太阳能发电监测的功能 。 21 .数据传输帧格式
VB写上位机
一.打开Visual Basic6.0并设置上位机大小打开Visual Basic6.0,在出现的界面中用鼠标单击,然后点击打开,出现图1-1,图 1-1单击最大化后,在“属性窗口”中找到“Height”、“ScaleHeight”、“ScaleWidth”、“top”、“Width”,并分别填入“9690”“8910”“9390”“360”“9480”。
二.代码编辑器的基本代码输入在界面内找到“视图”,单击,在下拉选项中选择“代码窗口”,单击后出现图1-2,此图就是代码编辑器,在这里填写上位机的代码。
接下来在图1-2中填入如下代码:Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByV al hwnd As Long, ByV al lpOperation As String, ByV al lpFile As String, ByV al lpParameters As String, ByV al lpDirectory As String, ByV al nShowCmd As Long) As LongPublic data As SinglePublic temp As SinglePublic flag As BytePrivate Sub Form_Load()Form.WindowState = 0If MSComm1.PortOpen = True Then MSComm1.PortOpen = FalseCombo1.AddItem "COM1"Combo1.AddItem "COM2"Combo1.AddItem "COM3"Combo1.AddItem "COM4"MSComm1.InBufferSize = 8MSComm1.OutBufferSize = 2MSComm1.RThreshold = 4MSComm1.SThreshold = 1MSComm1.InputLen = 0MSComm1.InputMode = comInputModeTextMSComm1.InBufferCount = 0End Sub图1-2三.建立菜单项在“工具”菜单中选择“菜单编辑器”选项,出现图1-3.1.在图1-3中的“标题框”和“名称框”分别填入“文件”、“File”,然后单击“下一个”。
基于VB的上位机程序设计说明
3 基于VB6.0的上位机程序设计内部培训资料(不得转载)随着嵌入式系统在电子领域应用的不断深入,可视化的单片机控制与检测系统越来越成为单片机技术的应用热点。
广泛应用到工业自动化生产、交通、医疗、教育和各种自动控制等领域,如心电监护、全方位视频跟踪监视。
在这些复杂的数字系统中,计算机被称为上位机,通过上位机和相关的软件实现传感信号的检测和对外部设备的控制。
利用计算机实现可视化的控制系统包括上位机程序设计、接口设计和单片机系统设计。
单片机相比较计算机而言又叫下位机,是直接对检测对象测量和控制的系统,有时也把接口与下位机设计在在一个系统中统称接口电路。
基于计算机基础的上位机程序可以提高复杂的单片机控制系统的人机交互功能。
本项目设计的内容是一个简单的温度检测系统,上位机程序用来检测和显示单片机系统发送的数据,下位机是一个简单的温度检测系统,通过USB接口虚拟一个串口传输数据,上位机程序实时显示温度,并通过曲线的形式描绘出温度的变化过程。
上位机程序VB6.0设计,程序执行后,上位机程序要定时向下位机即单片机系统发送指令,下位机在接到命令后就开始发送温度信息。
上位机显示的温度曲线要能准确的表示当时的温度,误差不能超过5%,能过显示的温度范围在20摄氏度到80摄氏度之间。
上位机程序两次接收的温度数据间隔控制在在1秒钟左右,能够显示的温度曲线的总时间在2分钟左右。
3.1 VB简单认识VB是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows 环境下的各类应用程序。
今天我们以VB6.0为基础,简单的认识VB,然后我们就可以利用VB这个强大的开发工具去开发我们需要的各类程序。
3.1.1 VB6.0基本操作在Visual Basic安装成功之后,安装程序自动在【开始】菜单中建立Visual Basic 6.0的程序组和程序项。
基于VB的PLC与上位机通信软件的设计
《自动化技术与应用》2007年第26卷第09期Techniques of Automation & Applications | 79 PLC 与 DCSPLC and DCS基于VB 的PLC 与上位机通信软件的设计陆 嘉,孟 文,李常辉,刘银锁(西南交通大学智能机电技术研究所,四川 成都 610031)摘 要:本文针对控制系统中S7-200系列PLC与上位机通信的实际问题,利用S7-200中的Modbus从站协议指令块,用VB编写了S7-200系列与上位机的通信程序,界面友好,操作方便。
上位机可以读写预先已经配置好的S7-200系列PLC中的V存储区,这就意味着上位机可以对PLC读写任何类型的数据,能够很好的满足实际控制系统的要求。
关键词:PLC;监控系统;Modbus协议;通信中图分类号:TM571.61 文献标识号:B 文章编号:1003-7241(2007)09-0079-03The Design of Communication Software of PLC with theHost Computer Based On VBLU Jia, MENG Wen, LI Chang-hui, LIU Yin-suo(School of Mechanical Engineering, Southwest Jiaotong University, Chengdu 610031, China)Abstract: The communication program of the PLC with the host computer is based on the instruction block of Modbus protocolin S7-200 by using VB. The host computer can read and write the V memorizers in the S7 - 200 series PLC, so it can operate any kinds of data in PLC to meet the requirement of the control system.Key words: PLC; monitoring system; Modbus protocol; communicati收稿日期:2007-04-251 引言在大多数监控系统中,仅仅实现控制是不够的,在许多情况下也需要组态监控界面对系统进行监控,通过监控可以增加人机交互的能力,使操作人员实时地监控系统工作情况并使系统操作变得方便。
基于VB6.0的可编程控制器(PLC)上位机控制软件开发方法
通 用 串 口 RS 2 2与 P C 的 RS 4 5 讯 接 口连 接 . C 机 端 一3 L 一8 通 P 需 配 RS 2 2 RS 4 5转 换 器 。 上 位 机 软 件 利 用 V 6 的 一 3/ 一 8 B: 0 MS o C mm 控 件 得 以 实 现 ,L P C端 软 件 采 用特 定 梯 形 图 语 言 编 写 . 讯 时 较 多 地 使 用 自定 义 协 议 与 上 位 机 通 讯 , 这 种 通 讯 通 在 方 式 中 , 要 编 程 者 首 先 定 义 自己 的 自 由通 讯 格 式 , 梯 形 图 需 在
参 考 书 目
( ) 过 检 查 C mmE e t 性 的 值 来轮 询 ( o i g 事 件 2通 o vn属 Pl ) l n 和 错误 。如 果 应 用程 序 不 大 , 种 方 法 比较 好 。 这
1 田淑 珍 主 编 . 编 程控 制 器原 理 及 应 用 [] 北 京 : 械 工 业 . 可 M. 机
2上 、 位 通 讯 的 实现 下
21利用 自由通讯 协议 .
在 现 场 应 用 中 ,采 用 P 机 主 控 与 P C分 布 的 联 网 控 制 C L
模 式 时 , 要 P C 与 上 位 机 通 讯 , 讯 过 程 中硬 件 采 用 P 机 需 L 通 C
定稿 日期 : 0 9 0 - 2 2 0 - 3 1
部 固化 P I 讯 协 议 , 上位 机 遵 循 P I 议 来 读 写 P C 内 部 P通 P协 L
相 应 的存 贮 单 元 , 可 实 现 数 据 和 控 制 指令 的 交 换 , 以 不 必 即 可 编 写 自 由通 讯 代 码 , 大 节 省编 写 P C 通 讯 代 码 的 繁 重 工 作 。 大 L
基于 VB 实现上位机与 FPGA 的串口通讯程序设计
基于 V B实现上位机与 F P G A的串口通讯程序设计
De s i g n o f P C S e r i a l P o r t Co mmu n i c a t i o n P r o g r a m wi t h F P GA B a s e d o n VB
语 法 分 析 阶段 就 可 以被 发 现 , 抽象层次 叫 V e r i l o g HD L略 高 , 但 由于 V e r i l o g HD L和 C 语 言 很 像 ,对 于 初 学 者 来 说 更 容 易 掌 握, 因此 , 这 里 采用 V e r i l o g HD L来 编 写 硬 件语 言 。 如 图 1所 示 为 串 口通 讯 硬 件接 收总 体 框 图 。
2 F P G A 硬 件 接 口 程序
F P G A 模 块 是 本 设 计 的 核 心 ,世 界 主 流 的 硬 件 描 述 语 言 主
要是 V HD L和 V e r i l o g HD L , 虽然V HD L语 法 严 格 , 某些 错 误 在
1 . 1 关 于 MS C0 mm 控件 MS C o mm 是 Mi c r o s o f t 公 司提 供 的主 要用 于 串行 通 讯 编 程 的控 件 , 它 提供 了一 系 列 标 准 通 讯 属 性 和 方 法 , 使 用 它可 以轻 松 简单 地 实 现 两 种 设 备 的 连接 通 讯 。 传 统 的通 讯 程 序 大 都 采用 C、
摘 要
介 绍 上 位机 与 F P GA 之 间 的 串 口通 讯 。设 计 了一 个 串 口数 据 采 集 和 处理 程 序 。详 细 介 绍 了怎样 使 用 V B 6 . 0设 计 一 个 简单 的上 位 机 来传 递 数 据 给 F P GA, 并 给 出 了在 Qu a r t u s I I 1 1 . 0下接 收 处理 串 口数 据 的 详 细 V e r i l o g硬 件 接 口程 序 , 对 于
用VB开发PC与单片机通信的上位机程序
串口通信是MCU跟PC通信经常用到的一种通信方式,做界面、写上位机程序的编程语言、编译环境有不少,诸如VB、VC++,Delphi、LABVIEW等等,不过无论黑猫还是白猫,能够抓到老鼠的就是好猫,用VB无疑是最快速最简便的,实现的功能也足够强大,足以满足我们的基本需要了。
我最近用VB写出了一个用于数据采集的串口上位机程序,实现数据的接收和实时绘图,这里和大家分享一下,让大家也体验一下单片机和PC通信的乐趣。
整个程序只需要不到30行程序,我将会给这30行程序加上最为详备的注释,这样即使你从未使用VB制作过上位机程序,也能照猫画虎的编写出属于自己的上位机程序。
一,制定设计思路首先,我们要制定一下自己的串口通讯协议,为了方便设计,通讯协议中将采用字符型数据(遵循ASCII字符集)进行传输,一共5个字节数据,下位机按照从第一字节到第五字节的顺序以1 符号位2 百位3 十位4 个位注释:1,符号符,+(2B)或—(2D),表示数据的正负2,3,4,百位,十位,和个位数字5,结束符,用大写字母A(41)表示接着,我们就要明确设计思路了,这个程序的设计将采用Microsoft Visual Basic 6.0(以下简称VB6.0)作为m,通过编译环境,运用串口通讯控件MSCom计时器控件实现以查询方式编写的串口数据的接收和实时绘图。
二,程序界面设计(1)创建一个标准EXE工程:启动VB6.0,在自动弹出的“新建工程”窗口中单击“标准EXE”图标,然后单击“打开”按钮即可创建一个标准EXE工程。
将弹出的窗体的Caption属性设置为串口通讯与实时绘图程序。
[attachment=1364699](1)添加串口通信控件MSComm:VB的串口通信控件MSComm并不会主动出现在工具箱中,当我们需要MSComm控件时,首先要把它加入工具箱中,选择“工程”菜单下的“部件...”子菜单,在弹出的“部件”对话框中,在“控件”选项卡属性中选中“Microsoft Comm Control 6.0”,单击“确定”按钮后,在工具箱中就出现了一个形似电话的图标,这就是MSComm控件,选择MSComm控件的图标,将它添加到适当位置,采用默认名称MSComm1。
基于VB的低压配电监控上位机系统毕业设计
基于WEB人才招聘管理信息系统的设计与实现毕业设计目录1绪论 (1)1.1我国控制自动化的发展趋势 (1)1.2计算机监控系统的功能、应用以及特点 (2)1.3低压配电监控系统实现的主要功能 (4)1.4低压配电监控系统组成部分 (4)1.4.1通讯设备 (4)1.4.2通讯接口通讯接口 (5)1.4.3系统软件 (5)1.5数据采集系统 (5)1.6数据库系统 (5)1.7图形及监控界面系统 (6)2上位机监控系统的简介 (7)2.1上下位机的概念 (7)2.2什么是上位机监控系统 (7)2.3上位机监控系统的应用 (7)3VB的使用及控件说明 (9)3.1VB的简介 (9)3.2VB的用途 (9)3.3窗体 (10)3.3.1窗体的主要属性 (10)3.3.2窗体常用事件与方法 (11)3.4标签控件 (11)3.5文本框 (12)3.5.1文本框的属性 (12)3.5.2文本框常用事件与方法 (13)3.6命令按钮 (14)3.6.1命令按钮的主要属性 (14)3.6.2命令按钮的常用事件 (14)3.7D ata控件 (14)3.7.1D ata控件的常用属性 (15)3.7.2D ata控件常用方法 (15)3.7.3数据绑定控件 (16)3.8A do控件 (17)3.8.1A do控件的特点 (17)3.8.2A do控件的属性 (17)3.9M s C hart控件 (18)3.9.1MSC hart控件 (18)3.9.2MSC hart的C hart D ata属性 (19)3.9.3MSC hart的图表类型 (19)3.9.4MSC hart控件的其他常用属性 (19)3.9.5设置行列标题和图表图例 (20)3.9.6添加图表标题和注脚 (20)4.0MSC omm控件 (21)4.0.1MSC omm控件通信方法 (21)4.0.2MSC omm控件的常用属性 (21)4监控系统的程序设计 (24)4.1登陆界面界面 (24)4.2登录对话框的使用 (25)4.3监控程序的设计 (26)4.4数据修改 (28)4.5数据传输 (30)结束语............................................. 错误!未定义书签。
VB编写的上位机程序
VB编写的上位机程序Dim state As Integer '电机状态Dim addr As Integer '从机地址变量Dim speed As Integer '速度变量'Dim num1 As StringPublic wholechar As StringDim RTUcrc As StringDim Inbyte() As BytePublic Buffer As String 'Private Sub Combo1_Click()'Dim temp1 As Single'temp1 = Val(Combo1.Text) '取角度值'num1 = Str(temp1 / 0.9)End SubPrivate Sub Combo2_Click()num2 = Val(Combo2.Text)num2 = num2 * 2End SubPrivate Sub Combo3_Click()speed = Val(Combo3.Text)End SubPrivate Sub Combo4_Click()addr = V al(Combo4.Text)End SubPrivate Sub Command1_Click()MSComm1.Settings = "9600,n,8,1"MSComm1.InBufferSize = 12 '设置MSComm1接收缓冲区为4字节MSComm1.OutBufferSize = 20 '设置MSComm1发送缓冲区为2字节MSComm1.InputMode = comInputModeBinary '设置接收数据模式为二进制形式MSComm1.InputLen = 6 '设置Input 一次从接收缓冲读取字节数为6 MSComm1.RThreshold = 1MSComm1.SThreshold = 0MSComm1.InBufferCount = 0 '清除接收缓冲区MSComm1.OutBufferCount = 0 '清除发送缓冲区If MSComm1.PortOpen = False ThenMSComm1.PortOpen = TrueCommand1.Enabled = FalseCommand2.Enabled = FalseCommand3.Enabled = TrueIf Err ThenMsgBox "串口通信无效"End IfEnd IfEnd SubPrivate Sub Command2_Click()Dim hexchrlen%, Hexchr As String, hexcyc As Integer, hexmid As Byte, hexmiddle As String Dim hexchrgroup() As Byte, i As IntegerShape1(0).FillStyle = 1Shape1(1).FillStyle = 1Shape1(2).FillStyle = 1Shape1(3).FillStyle = 1hexchrlen = Len(wholechar)For hexcyc = 1 To hexchrlen '检查Text1文本框内数值是否合适Hexchr = Mid(wholechar, hexcyc, 1)If InStr("0123456789ABCDEFabcdef", Hexchr) = 0 ThenMsgBox "无效的数值,请重新输入", , "错误信息"Exit SubEnd IfNextReDim hexchrgroup(1 To hexchrlen) As ByteFor hexcyc = 1 T o hexchrlen Step 2 '将文本框内数值分成两个、两个i = i + 1Hexchr = Mid(wholechar, hexcyc, 2)hexmid = Val("&H" & CStr(Hexchr))hexchrgroup(i) = hexmid'MSComm1.Output = CStr(hexmid)NextMSComm1.Output = hexchrgroupTimer1.Enabled = TrueEnd SubPrivate Sub Command3_Click()MSComm1.PortOpen = FalseEndEnd SubPrivate Sub Form_Load()For i% = 0 To 20Combo2.AddItem Str(i)Next iCombo2.T ext = "0"For j# = 0.9 To 180.9 Step 0.9Combo1.AddItem Left(CStr(j), 5)Next jCombo1.T ext = "0"For k% = 80 To 255Combo3.AddItem Str(k)Next kCombo3.T ext = "0"Combo4.AddItem "00"Combo4.AddItem "01"Combo4.AddItem "02"Combo4.AddItem "03"Combo4.AddItem "04"Combo4.AddItem "05"Combo4.AddItem "06"Combo4.AddItem "07"Combo4.AddItem "08"Text1.Text = Space(5) + "欢迎使用该控制软件" + Chr(13) + Chr(10) _ + Space(9) + "请打开串口!" + Chr(13) + Chr(10) + Space(9) + _"作者:戚金毅" + Chr(13) + Chr(10) + Space(9) + "班级:电子301班"Option1(0).Value = FalseOption1(1).Value = FalseOption1(2).Value = FalseOption1(3).Value = FalseOption2(0).Value = TrueOption2(1).Value = FalseFor i% = 0 To 3Shape1(i).FillStyle = 1Shape1(i).FillColor = QBColor(4)Next iCommand1.Enabled = TrueCommand2.Enabled = FalseCommand3.Enabled = True/doc/fe10044893.html,mPort = 1Timer1.Enabled = FalseTimer1.Interval = 40 '25End SubPrivate Sub MSComm1_OnComm()Dim Hexchr As String, i As IntegerDim j As Integer, string2 As StringDim k As IntegerDim e(6) As Byte, string3 As StringInbyte = MSComm1.Input '十六进制显示For k = LBound(Inbyte) T o UBound(Inbyte)e(k) = Val(Hex(Inbyte(k)))Next kIf Val(e(1)) = 6 ThenText1.Text = " 成功发送!"Select Case stateCase 1Shape1(0).FillStyle = 0Shape1(1).FillStyle = 1Shape1(2).FillStyle = 1Shape1(3).FillStyle = 1Case 2Shape1(0).FillStyle = 1Shape1(1).FillStyle = 0Shape1(2).FillStyle = 1Shape1(3).FillStyle = 1Case 4Shape1(0).FillStyle = 1Shape1(1).FillStyle = 1Shape1(2).FillStyle = 0Shape1(3).FillStyle = 1Case 8Shape1(0).FillStyle = 1Shape1(1).FillStyle = 1Shape1(2).FillStyle = 1Shape1(3).FillStyle = 0End SelectFor j = 1 To 4If e(j) < 16 ThenText2.Text = Text2.Text & "0" & e(j) & " " ElseText2.Text = Text2.Text & e(j) & " "End IfNext jTimer1.Enabled = FalseElseFor m% = 0 To 3Shape1(m).FillStyle = 1Next mText1.Text = "未成功发送,请再次发送!" Command2.Enabled = TrueEnd IfEnd SubPrivate Sub Option1_Click(Index As Integer) Select Case IndexCase 0state = 1Call incorporateCall checkCommand2.Enabled = TrueCase 1state = 2Call incorporateCall checkCommand2.Enabled = TrueCase 2state = 4Call incorporateCall checkCommand2.Enabled = TrueCase 3state = 8Call incorporateCall checkCommand2.Enabled = TrueEnd SelectEnd SubPrivate Sub Option2_Click(Index As Integer) Select Case IndexCase 0/doc/fe10044893.html,mPort = 1Case 1/doc/fe10044893.html,mPort = 2End SelectEnd SubPrivate Sub incorporate()Dim fcode As String, datalen As StringDim raddr As String, state1 As StringDim speed1 As String, addr1 As StringDim num1 As String '角度变量Dim num2 As String '圈数变量Dim anglenum1%, anglenum2%temp! = Val(Combo1.Text)temp2% = temp / 0.9anglenum1 = Len(CStr(Hex(Val(temp2))))'anglenum1 = Len(num1)Select Case anglenum1Case 0Exit SubCase 1num1 = "0" & CStr(Hex(Val(temp2)))Case 2num1 = CStr(Hex(Val(temp2)))End Selectanglenum2 = Len(CStr(Hex(Val(Combo2.Text)))) Select Case anglenum2Case 0Exit SubCase 1num2 = "0" & CStr(Hex(Val(Combo2.T ext))) Case 2num2 = CStr(Hex(Val(Combo2.Text)))End Selectfcode = "0" & Hex(6)datalen = "0" & Hex(5)raddr = Hex(48)state1 = "0" & Hex(state)speed1 = Hex(speed)addr1 = "0" & Hex(addr)Text1.Text = addr1 & fcode & datalen _& raddr & state1 & speed1 & num1 & num2wholechar = Text1.TextEnd SubPrivate Sub check()Dim CRC() As ByteDim d(9) As ByteDim string1 As StringDim j As Integer, chrlength As Integer, temp As Stringstring1 = wholecharchrlength = Len(string1)For j = 0 To chrlength / 2temp = Mid(string1, j * 2 + 1, 2)d(j) = Val("&H" & temp)Next jRTUcrc = CRC16(d) '调用CRC16计算函数,CRC(0)为高位,CRC(1)为低位wholechar = wholechar & RTUcrcEnd SubPrivate Function CRC16(data() As Byte) As StringDim CRC16Lo As Byte, CRC16Hi As ByteDim CL As Byte, CH As ByteDim CRCLo As String, CRCHi As StringDim SaveHi As Byte, SaveLo As ByteDim i As IntegerDim Flag As IntegerCRC16Lo = &HFFCRC16Hi = &HFFCL = &H1CH = &HA0For i = 0 To UBound(data)CRC16Lo = CRC16Lo Xor data(i)For Flag = 0 To 7SaveHi = CRC16HiSaveLo = CRC16LoCRC16Hi = CRC16Hi \ 2CRC16Lo = CRC16Lo \ 2If ((SaveHi And &H1) = &H1) Then CRC16Lo = CRC16Lo Or &H80End IfIf ((SaveLo And &H1) = &H1) Then CRC16Hi = CRC16Hi Xor CHCRC16Lo = CRC16Lo Xor CLEnd IfNext FlagNext iIf Len(Hex(CRC16Hi)) = 1 Then CRCHi = "0" + Hex(CRC16Hi) Else CRCHi = Hex(CRC16Hi)End IfIf Len(Hex(CRC16Lo)) = 1 Then CRCLo = "0" + Hex(CRC16Lo) Else CRCLo = Hex(CRC16Lo)End IfCRC16 = CRCLo + CRCHi End Function Private Sub Timer1_Timer()Text1.Text = "该从机不存在!"For j% = 0 To 3Shape1(j).FillStyle = 1Next jTimer1.Enabled = FalseEnd Sub。
上位机制作过程单片机vb上位机超简单
比如上位机控制在工厂中的应用
首先打开vb软件
? 弹出新建工程对话框,点击标准exe
? 出现如下
设置属性窗口
? caption:标题 ? font:字体大小和风格
? 新建两个按钮,改一下caption:打开串口 和发送数据如下图所示
点击左边按钮框新建一个 text1,如下图所示
添加串口控件,在工程-部件中找到Microsoft comm control 6.0,如下图所示,点击打钩,并2控制
上位机用途
? 上位机是一台可以发出特定操控命令的计 算机,通过操作预先设定好的命令,将命 令传递给下位机,通过下位机来控制设备 完成各项操作(应用最多的地方如:工业、 水利、供电部门、交通等方面)。上位机 都有特定的编程,有专门的开发系统,或 以上是已经规定好任务,只能按特定的任 务进行操作。简单说上位机就是命令的下 达者,而下位机则是命令的执行者。
在右边控件框出现一个电话的控件,并把下图箭头所示的控 件添加到窗口中。
对代码进行编写
? 首先,双击窗口进入代码编辑框,如下图 所示:
? Private Sub Form_Load() ? 这个函数是窗口运行时初始化一些控件。
? Private Sub Command1_Click() ? 这个是点击按钮1所触发的事件代码函数入
口。
? Private Sub Command2_Click() ? 这个是点击按钮2所触发的事件代码函数入
口。
代码如下
成功和下位机通讯
基于VB的上位机的设计
无线传感器网络下位机设计主要分为硬件设计和软件设计,硬件方面是以CC2530为主要器件,
CC2530 是用于2.4-GHzIEEE 802.15.4、ZigBee 和RF4CE 应用的一个真正的片上系统(SoC)解决方案。它能够以非常低的总的材料成本建立强大的网络节点。CC2530 结合了领先的RF 收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其它强大的功能。CC2530 有四种不同的闪存版本:CC2530F32/64/128/256,分别具有32/64/128/256KB 的闪存。CC2530 具有不同的运行模式,使得它尤其适应超低功耗要求的系统。运行模式之间的转换时间短进一步确保了低能源消耗。
1.4.1
首先打开Office Access 2003,点击新建,这时右边会出现你所要新建的对象,如图1.3。
图1.3数据库窗创建界面
进入之后如图1.4。此时你可以选择使用设计器创建表,使用向导创建表,通过输入数据创建表。此时选择使用设计器创建表。
图1.4 数据库创建向导界面
选择使用设计器进入数据表设计,设置字段名称以及字段存储类型。定义主键,数据表设计界面如图1.5。
表1.1统功能描述
1
无线传感器网络监测系统
Main.frm
高
串行口设置,和温度的图形显示
2
节点管理
Net_creat.frm
中
新建节点,删除节点
3
节点信息设置
Net_setup.frm
中
节点报警温度设置,更新时间设置
4
报警管理
Alarm_m.frm
高
显示报警节点,报警屏蔽等
1.3
用VB编写上位机实例
标签:无标签VB编写上位机实例用VB编写上位机实例16:14:22 UTC+0800Sun Apr 1 2007用编写第一个串口通信上位机程序Visual 是一个可视化窗口环境的编程软件,目前使用Visual 可以快速简单编写单片机中的串口通信上位机程序。
下面我们以一个完整的通信试验为例子完成如何用Visual 编写单片机串口通信程序。
打开安装好后的Visual 主程序界面。
选择“标准EXE”。
如图1显示,建立Visual Basic的编程环境。
图1在菜单的[工程]选项中选择[部件],如图2。
把Visual Basic的串口通信控件Microsoft Comm control 调入工作菜单。
图2在打开[部件]对话框中,选择Microsoft Comm control 的选项框,点击[确定]。
图3图3可以在图示3中可以看通信控件Microsoft Comm control 的文件是在C:\WINNT\system32\文件。
如果大家在首次调用通信控件Microsoft Comm control 控件时无法在控件对话框中找到,请直接在系统目录中搜索名为文件。
然后通过浏览加入VB的工作界面中。
添加完控件回到编程界面。
如下图4。
图4通过右边的菜单把一些必要的控件放在窗体中。
然后点击窗体中的Timer控件按F4弹出属性窗口进行设置。
其具体设置如下:Timer定时器控件设置属性,(通过按F4键可弹出此窗口)Mscomm通信控件参数属性设置(通过单击控件的右键属性可弹出此窗口)本文用到的其他控件:CommandButton控件和TextBox控件按默认属性设置不变。
以上设置完成,回到编程窗体区中,任意双击。
会显示Visual Basic的程序窗体的Load事件程序。
在代码窗口中输入:Private Sub Form_Load()= True'窗体的加载时,就打开通信端口,通信端口的参数也可以在此指定='窗体的加载时,同时定时器控件事件End Sub这样设置目的是当程序在打开是,首先打开通信控件MSComm,注意这里的串口通信参数中的波特率设置是默认参数的。
步进电机的上位机控制-VB
附录1 PC机控制界面设计程序Public zhuanxiang As StringPrivate Sub Combo1_Change()Combo1.ListIndex = 0End SubPrivate Sub Command1_Click()If Command1.Caption = "启动" ThenMSComm1.Settings = "2400,n,8,1"mPort = Combo1.ListIndex + 1MSComm1.PortOpen = TrueCommand1.Caption = "停止"MSComm1.Output = "F" '停机MSComm1.InputMode = comInputModeBinaryMSComm1.InputLen = 0ElseCommand1.Caption = "启动"MSComm1.Output = "E" '开机MSComm1.PortOpen = FalseEnd IfEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub DOWN_Click()MSComm1.Output = "D" '减速End SubPrivate Sub LEFT_Click()MSComm1.Output = "B" '左转,leftzhuanxiang = "正转"Text3.Text = zhuanxiangEnd SubPrivate Sub RIGHT_Click()MSComm1.Output = "A" '右转,rightzhuanxiang = "反转"Text3.Text = zhuanxiangEnd SubPrivate Sub Timer1_Timer()Dim speed As VariantDim indate As ByteIf MSComm1.InBufferCount > 0 Thenspeed = MSComm1.Inputindate = AscB(speed)Text1.Text = indateEnd IfEnd SubPrivate Sub UP_Click()MSComm1.Output = "C" '加速End Sub附录2 下位机控制程序#ifndef __INIT2_H__#define __INIT2_H__#include <c8051f340.h>#include "design4.h"void delayms(uchar k);void delayus(uchar k);void DateIN595(uchar date);void init_btlv();#endif#include <c8051f340.h>#include "design4.h"#include "init.h"extern uint HZ;//延时程序约为0.5msvoid delayms(uchar k){uchar i,j;for(i=k;i>0;i--)for(j=110;j>0;j--);}//延时程序约为4usvoid delayus(uchar k){while (k--){NOP;NOP;NOP;}}//配置c8051寄存器,p.5为推挽输出//p2.4. 6 7为推挽出//初始化波特率发生器:定时器1,工作在//模式2,波特率为9600void init_btlv(){//初始化系统时钟//内部高频振荡器使能,系统时钟为内部高频振荡器输出(不分频)REG0CN=0X00;OSCICN |= 0x83; //不分频,实用内部12M晶振,系统时钟为12MOSCICL=0X00; //内部晶振工作在最高频OSCXCN=0X00; //禁止内部L-F振荡OSCXCN=0X00; //关闭外部振荡器SCON0=0X50;//配置UART0控制寄存器,8位数据,允许接收TMOD=0X21; //定时器1工作在方式2TH1= 256-(12000000/2400/24); //定时器1为12MHZ,12分频,TI0=0;// CKCON=0X00; //定时器1用系统时钟12分频作为它的时基// REN=1;TH0=(65536-HZ)/256; //定时1000um产生一次中断TL0=(65536-HZ)%256;// TR0 =1;ET0=1;TR1=1;EA=1;ES0=1;//初始化交叉开关,配置I/O口P0MDOUT=0X10;//将P0.4(TX0)为推挽,P0.5(RX0)为开漏XBR0=0X01;//将TX0,RX0连接到端口引脚XBR1=0X40;//开交叉开关PCA0MD&=0XBF; //关看门狗P1MDOUT=0X34; //推挽方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3 基于VB6.0的上位机程序设计内部培训资料(不得转载)随着嵌入式系统在电子领域应用的不断深入,可视化的单片机控制与检测系统越来越成为单片机技术的应用热点。
广泛应用到工业自动化生产、交通、医疗、教育和各种自动控制等领域,如心电监护、全方位视频跟踪监视。
在这些复杂的数字系统中,计算机被称为上位机,通过上位机和相关的软件实现传感信号的检测和对外部设备的控制。
利用计算机实现可视化的控制系统包括上位机程序设计、接口设计和单片机系统设计。
单片机相比较计算机而言又叫下位机,是直接对检测对象测量和控制的系统,有时也把接口与下位机设计在在一个系统中统称接口电路。
基于计算机基础的上位机程序可以提高复杂的单片机控制系统的人机交互功能。
本项目设计的内容是一个简单的温度检测系统,上位机程序用来检测和显示单片机系统发送的数据,下位机是一个简单的温度检测系统,通过USB接口虚拟一个串口传输数据,上位机程序实时显示温度,并通过曲线的形式描绘出温度的变化过程。
上位机程序VB6.0设计,程序执行后,上位机程序要定时向下位机即单片机系统发送指令,下位机在接到命令后就开始发送温度信息。
上位机显示的温度曲线要能准确的表示当时的温度,误差不能超过5%,能过显示的温度范围在20摄氏度到80摄氏度之间。
上位机程序两次接收的温度数据间隔控制在在1秒钟左右,能够显示的温度曲线的总时间在2分钟左右。
3.1 VB简单认识VB是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows 环境下的各类应用程序。
今天我们以VB6.0为基础,简单的认识VB,然后我们就可以利用VB这个强大的开发工具去开发我们需要的各类程序。
3.1.1 VB6.0基本操作在Visual Basic安装成功之后,安装程序自动在【开始】菜单中建立Visual Basic 6.0的程序组和程序项。
单击【开始】按扭,指向【所有程序】选项,再指向【Microsoft Visual Basic 6.0中文版】程序组,单击【Microsoft Visual Basic 6.0中文版】选项即可启动Visual Basic6.0中文版。
在VB6.0启动后,屏幕上将出现如图3-1所示的启动界面,在启动界面中会出现一个【新建工程】对话框。
图3-1 VB6.0启动界面一、创建工程在VB6.0启动界面中的【新建工程】对话框中选择一个合适的工程类型,然后单击【打开】按钮,就可以新建一个工程,新工程打开后的用户界面如图3-2所示。
图3-2 VB6.0的用户界面二、放置控件和设置控件属性在用户界面的左侧是VB6.0的【工具箱】,在【工具箱】中有我们常用的各类控件,在设计窗体时我们可以直接从工具箱中选择控件,然后在中间的【对象窗口】中按住鼠标左键拖出一个矩形后,相应的控件就放置到了用户的编辑窗口中,对于控件的各个属性,我们可以通过VB界面右面的【属性窗口】设置各个控件的各种属性,放置并调整好控件的各个属性的【对象窗口】如图3-3所示。
图3-3 添加控件后的对象窗口三、添加代码双击【对象窗口】的空白处或者某个控件,就会出现【代码窗口】,代码窗口如图3-4所示。
图3-4 代码窗口在代码窗口中为各个事件添加相应的代码,在程序运行的时候一旦某个事件发生,就会执行相应的代码段,这里以Form_Load()事件为例,简单的设计一个实例程序。
Form_Load()事件是在程序启动时调用的,这里我们添加如下代码:Private Sub Form_Load()Form1.Caption = "示例程序" '设置窗体的标题为“示例程序”Text1.Text = "文本框" '设置文本框的文本为“文本框”Command1.Caption = "按钮" '设置按钮的标题为“按钮”Combo1.Text = "下拉列表框" '设置下拉列表框的文本为“下拉列表框”End Sub五、程序运行添加好代码后,我们可以通过单击工具栏上的【启动】按钮,或者单击菜单栏的【运行启动】菜单项,也可以直接按F5键运行程序,程序运行时的界面如图3-5所示。
图3-5 程序运行界面3.2 上位机程序设计上位机程序设计不但要求界面简单,而且操作人性化,本项目上位机程序运行后的界面如图6-1-6所示。
界面包括串口设置选择窗口,串口控制按键、温度显示窗口等。
图3-6 上位机程序运行界面3.2.1新建工程并添加控件根据前面介绍,先建立一个【标准EXE】工程。
然后添加MSComm控件。
过程如下:(1)单击【工程→部件】菜单项,打开部件对话框,如图3-7所示,选中【控件】选项卡里面的【Microsoft Comm Control 6.0】控件列表项,单击【确定】按钮。
图3-7 添加MSComm控件3-8 添加控件后的工具箱添加过MSComm控件后,就可以看到在工具箱中增加了一个像电话的图标,如图3-8右下角的电话图标就是VB串口通信所用的标准控件(MSComm控件)。
(2)单击【MSComm】控件,并在窗体Form1上拖出一个矩形,如图3-9所示,这时MSComm控件就被添加到了该工程中。
图3-9 添加MSComm控件3.2.2 添加其他控件并设置属性在VB的编辑窗口中依次添加下列控件:一个下拉列表框,一个按钮,一个定时器,一个图片框和30个静态文本框,所有的属性设置如表3-1所示。
添加完控件后的VB编辑界面如图3-9所示。
表3-1 控件属性表控件类别控件名称控件属性Caption Top Left Height WidthMSComm MSComm_Temp 120 97003.2.3 添加代码为各个事件处理函数添加代码如下:Dim flag_com_open As Boolean '定义COM端口的打开标识Dim time_temp As Integer '定义记录时间的变量Dim temp_bufx, temp_bufy As Integer '定义两个存放坐标的变量Private Sub Combo_Com_Click()On Error Resume Nextx = Combo_Com.Text '获取选择的列表项的文本m = Len(x) '获取列表项的长度n = Val(Right$(x, m - 3)) '获取列表项里的端口号MSComm_mPort = n '设置MScomm控件的端口号为选择的端口号End SubPrivate Sub Comm_open_Click()If (flag_com_open = False) ThenComm_open.Caption = "关闭端口" '根据flag_com_open的值设置按钮Comm_open的Caption的值flag_com_open = TrueIf MSComm_Temp.PortOpen = False ThenMSComm_Temp.PortOpen = TrueEnd IfTimer1.Enabled = True '打开端口后使Timer1有效并开始计时ElseComm_open.Caption = "打开端口"MSComm_Temp.PortOpen = Falseflag_com_open = FalseTimer1.Enabled = False '关闭端口后使Timer1无效End IfEnd SubPrivate Sub Form_Load()Dim i As IntegerTimer1.Enabled = False '设置定时器Timer1无效Timer1.Interval = 1000 '设定定时器的触发时间是1000mstemp_bufx = 0temp_bufy = 5500Templine.AutoRedraw = TrueTempline.DrawStyle = 2 '将划线的格式改为虚线格式For i = 250 To 6250 Step 500 '依次画出温度的各条基准线Templine.Line (0, i)-(9250, i)Next iTempline.DrawStyle = 0 '将划线的格式改为实线格式For i = 1 To 16 '依次为下拉列表框添加列表项Combo_Com.AddItem "COM" & iNext iMSComm_Temp.Settings = "9600,N,8,1" '波特率是9600,无校验,8为数据位,1位停止位MSComm_Temp.OutBufferSize = 0 '设置发送缓冲区的大小,以字符为单位MSComm_Temp.InBufferSize = 0 '设置接收缓冲区的大小,以字符为单位MSComm_Temp.InputMode = comInputModeText '以文本方式接收MSComm_Temp.RThreshold = 4 '设置产生oncomm事件的字符数,以字符为单位MSComm_Temp.SThreshold = 1MSComm_Temp.InputLen = 0 '设置从接收缓冲区读取的字符数,为0表示全部读取MSComm_Temp.InBufferCount = 0 '清空接收缓冲区End SubPrivate Sub MSComm_Temp_OnComm()Dim a As StringDim temp As IntegerIf MSComm_mEvent = comEvReceive Thena = MSComm_Temp.Input '读取缓冲区内的数据For i = 1 To 4temp = temp * 10 + Val(Mid(a, i, 1)) '分析数据,得到传输的数据值Next iTempline.Line (temp_bufx, temp_bufy)-(time_temp * 50, 8250 - temp), vbRed '根据得到的数据值和当前的时间以及原有的数据画出一条直线temp_bufx = time_temp * 50 '存储当前数据,以方便下次使用temp_bufy = 8250 - temptime_temp = time_temp + 1 '时间值增加1End IfEnd SubPrivate Sub Timer1_Timer() 'Timer1中断处理函数MSComm_Temp.Output = Chr(&H30) '向下位机发送一个数据,用于和下位机通信End Sub3.3 单片机电路下位机电路中数码管和DS18B20与单片机的连接图,如图3-10所示。