上位机制作过程单片机51vb上位机超简单[一类资料]

合集下载

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编制的上位机(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默认为一组。

上位机界面编程

上位机界面编程

首先,我们来大概的回忆一下单片机的串口通信。

8051单片机的串行接口由数据缓冲寄存器SBUF、移位寄存器、串行控制寄存器SCON组成。

8051单片机的串行接口是一个可编程的全双工通信接口,通过软件编程可以作为通用异步接收和发送器使用,也可作为同步移位寄存器,还可实现多机通信。

其帖格式有8位、10位和11位,通过T1或T2设置各种波特率。

1.1 串行口工作原理在发送和接收数据前,先对串行口进行初始化设置,要明确串行口的工作方式、波特率等。

1.发送数据发送数据,由累加器A送入发送缓冲寄存器SBUF,在发送控制器控制下组成帧结构,并自动以串行方式从TXD输出,每发送完一帧TI置位,可以通过中断方式或查询方式来了解数据的发送情况。

值得注意的是TI只能用软件复位。

2.接收数据单片机每接收完一帧数据,RI置位,通过中断或查询方式来了解数据的接收情况,然后用MOV A,SBUF指令,将接收缓冲寄存器(SBUF)的值送累加器A。

RI与TI一样,也只能用软件复位。

1.2串行口工作方式8051单片机通过编程可选择4种串行通信工作方式。

1.方式0在方式0下,串行口用作同步移位寄存器,以8位数据为1帧,先发送或接收最低位,每个机器周期发送或接收1位,其波特率为fosc/12。

串行数据由RXD端输入或输出,同步移位脉冲由TXD端送出。

方式0数据发送与接收是无起始位和停止位,先发送或接收最低位,数据格式为:—D0 D1 D2 D3 D4 D5 D6 D72.方式1在方式1下,串行口为10位通用异步接口,数据格式为:——0 D0 D1 D2 D3 D4 D5 D6 D 7 1 ——发送数据:当执行MOV SBUF,A指令,CPU将1字节的数据写入发送缓冲寄存器SBUF,数据从引脚TXD端输出,当发送完1帧数据后,TI标志置1,可用中断或查询方式来了解数据发送情况,TI只有通过软件复位。

接收数据:接收时,先使REN置1,使串行口处于允许接收状态,RI标志为0,串行口采样到RXD由1到0时,确认是起始位0,就开始接收1帧数据。

上位机快速开发教程

上位机快速开发教程

上位机快速开发教程上位机是指与下位机(如PLC、单片机等)通信的上层应用软件,通常用于监控、控制和管理下位机的运行状态和数据。

上位机的快速开发对于工业自动化和物联网应用非常重要。

下面是一个上位机快速开发的教程,帮助你初步了解并掌握上位机的开发过程。

首先,你需要选择一个适合的上位机开发平台。

常见的上位机开发平台有LabVIEW、C++、Java、Python等,选择适合自己的开发平台可以提高开发效率和开发体验。

这里以Python为例,因其简洁、易用和广泛应用。

第二步是编写上位机的通信代码。

上位机需要与下位机进行通信,通常通过串口、网络或者其他通信协议实现。

在Python中,你可以使用PySerial库进行串口通信,使用Socket库进行网络通信。

根据你的具体需求,选择合适的通信方法,并编写相应的通信代码。

第三步是设计上位机的用户界面。

上位机的用户界面直接影响用户的交互体验和工作效率。

你可以使用Python的GUI编程库,如Tkinter、PyQt等,设计一个直观、易用、美观的用户界面。

在设计用户界面时,要根据实际需求考虑布局、按钮、文本框、图表等元素的摆放和使用。

第四步是处理和显示下位机数据。

上位机通常需要处理和显示从下位机传来的数据。

在Python中,你可以使用Numpy和Matplotlib等库来进行数据处理和绘图。

根据你的需求,编写相应的数据处理代码,并将数据显示在用户界面上。

第五步是进行测试和调试。

测试和调试是开发过程中不可忽视的重要环节,可以确保上位机的稳定性和可靠性。

你可以编写一些测试用例,模拟不同的场景进行测试,并根据测试结果进行调试和优化。

最后,进行上位机的部署和发布。

你可以将上位机的代码打包成可执行文件,方便用户安装和使用。

你还可以编写用户文档,介绍上位机的使用方法和注意事项。

通过以上快速开发教程,你可以初步了解和掌握上位机的开发过程。

当然,上位机的开发还有很多细节和技巧需要进一步学习和掌握。

从零编写上位机

从零编写上位机

好了既然安装好了,也知道labview是用来干什么,下面就给几个基础教程吧!这都是入门级的。

LabVIEW从入门到频率测量系统的开发.pdf《LabVIEW 8.20程序设计从入门到精通》课件.rar再介绍一个labview学习的论坛吧,我上面介绍的两个资料在这里都可以找到。

/bbs/index.php既然是上位机,当然离不开串口通信,不了解串口是不行的,下面再发一个资料串口通信.pdf前面的你大概只用花一天时间就可以解决。

在具备计算机软件环境和基础知识后就可以动手编写程序了。

先把我做的串口接收例子发布出来,大家看看吧,很简单的。

还有就是单片机里的串口驱动和printp函数,这个在论坛里有下载,自己找吧,我不想发重复的东西。

串口接收示例.rar串口收发示例.rar到现在为止,假设你已经成功安装了软件,包括驱动和破解,而且看完了labview的基础知识和串口的基础知识。

手头上也有我给你们的串口例子,相当简单。

还有就是DG128上的printp。

于是就可以在上位机上显示单片机发来的数据了。

下一篇再详细讲述吧!串口程序初步详解在第一篇中,我已经给大家介绍了labview的用途,主要是用于虚拟仪器,数据采集和控制。

labview的安装,破解以及其驱动的安装,其中大家可能会遇到点麻烦,如果电脑技术可以的话,很轻松的就能解决,不过在网上也能搜到解决办法。

还有就是介绍两个资料,这是基础,如果不知道的话,下面很难进行。

建议你们把那个PPT里面的小练习做一下,可以很快的熟悉labview。

同时labview目录下的帮助文档也写得非常好,在\National Instruments\LabVIEW 8.5\manuals里面,尤其是LV_Getting_Started.pdf这个,按照它的步骤做个示波器,然后你就对G编程有个大概的了解的。

有了串口的基本知识,和G编程基本了解,下面就详细讲解一下我在上一篇文章中发给大家的串口示例。

VB写上位机

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的上位机程序设计说明

基于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的程序组和程序项。

C51LCD1602VB上位机实现简单通信.

C51LCD1602VB上位机实现简单通信.

设计基本原理主要功能:上位机和下位机连接好后握手,如果成功,上位机就可以发字符串让下位机的LCD显示出来,如果没有握手就不显示上位机发来的内容.下位机设计:主程序首先初始化串口和LCD,然后进入一个死循环,这个循环往LCD写dataArray这个数组中的数据,因此只要改变了这个数组中的第0-31位的内容就相当于改变了屏幕上显示的内容. 当串口发来消息的时候,执行中断号为4(串口中断)的服务子程序.这时候还不能让上位机往下位机传字符串,因此需要判断是否已经握手,判断的标志就是dispEn (display enable),如果等于0说明还没有握手,就把用户发来的数据当成是控制字control,如果是等于1说明之前已经握过手了,就把用户发来的数据放到dataArray中.最后判断控制字是否是握手,如果control等于0x00是就握手信号,然后回复0x01.然后把dispEn=1,最后把控制字control改掉(因为下一次中断可能已经不是握手信号了)上位机设计:由于已经把端口号写在vb程序中了,所以要改端口号的话要进vb的代码中把mPort = 4 中的4 改为自己需要的串行端口号.然后运行程序,打开端口,此时没有和下位机握手,所以输入数据后单击发送是没有反应的,所以需要先单击握手按钮,向传哭发送0x00,然后延时800毫秒等待回复,然后接收数据,如果回复的是0x01那就表明握手成功,如果没有回复那就是握手失败.用户点击发送信息,上位机把字符串拆分成字符来发送一次发送一个字符,每个字符发送延时30毫秒避免因为连续发送而造成的乱码.a)原理框图b)硬件电路原理图AT89C521~8:I/OP1口(P1.0~P1.7);9:复位脚(RST/Vpd);10~17:I/OP3口(P3.0=RXD,P3.1=TXD,P3.2=-INT0,P3.3=-INT1,P3.4=T0,P3.5=T1,P3.6=-WR,P3.7=-RD)主要是此引脚;18、19:晶振(18=XTAL2,19=XTAL1);20:地(Vss);21~28:I/OP2口(P2.0~P2.7);29:-PSEN;30:ALE/-PROG;31:-EA/Vpp32~39:I/OP0口(P0.7~P0.0);40:+5V电源。

51CTO下载-VB开发上位机软件入门教程

51CTO下载-VB开发上位机软件入门教程

内容:西安科技大学科技创新实验班 VB开发上位机软件入门教程作者:苗瑞日期:2009-12-13网站:/bbs在我们平时做东西时,经常要将系统采集的数据交给计算机来处理,这样可以更方便的分对数据进行分析和管理,比如将数据绘制成各种图表和曲线可直观显示现场的情况,还可以将它存储起来,方便以后的查询。

VB是Windows下简单、易学、高效的应用软件开发工具,它里面有一个串口控件MSComm,可以很方便的与我们的微处理器的串口进行连接通信。

这个技能也应该是创新班的同学必须学会的,下面我就先教大家如何先把单片机串口发送上来的数据接收到,下一步再考虑分析数据的问题。

在这里首先要介绍一下MSComm控件的主要属性和事件。

●Commport:设置或返回串口号。

●Settings:以字符串的形式设置或返回串口通信参数,比如波特率等。

●Portopen:设置或返回串口状态,True为打开。

●InputMode:设置或返回接收数据的类型,0表示文本,1表示二进制。

●Inputlen:设置或返回一次从接收缓冲区中读取字节数,0表示所有。

●InBufferSize:设置或返回接收缓冲区的大小,缺省值为1024字节。

●InBufferCount:设置或返回接收缓冲区中等待计算机接收的字符数。

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

●OutBufferSize:设置或返回发送缓冲区的大小,缺省值为512字节。

●OutBufferCount:设置或返回发送缓冲区中等待计算机发送的字符数。

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

●DSRHolding:传回DSR脚位状态。

高为True,低为False。

●CTSHolding:传回通信端口的CTS脚位状态●CDHolding:传回通信端口的DCD脚位状态。

●Rthreshold:该属性为一阀值。

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

单片机上位机编程语言 -回复

单片机上位机编程语言 -回复

单片机上位机编程语言-回复"单片机上位机编程语言"是指在单片机与上位机之间进行数据传输和控制的编程语言。

它是一种用于编写上位机程序的语言,可以实现单片机与上位机之间的通信和数据交互。

以下将详细介绍单片机上位机编程语言的基本概念、常用语言及其编写步骤。

首先,我们来了解一下单片机和上位机的概念。

单片机是一种集成了处理器、存储器和各种外设接口的微型计算机系统,它通常用于控制和监控各种电子设备。

而上位机是指具备较高计算性能的电脑,负责对单片机进行程序编写、数据交互和结果展示等任务。

在单片机与上位机之间进行数据传输和控制时,我们需要使用一种编程语言来实现二者之间的通信。

常见的单片机上位机编程语言有C/C++、Python、LabVIEW等。

本文将以C语言为例,详细介绍单片机上位机编程语言的编写步骤。

步骤一:准备开发环境与工具首先,我们需要在电脑上安装单片机编程环境和软件开发工具。

常用的开发环境有Keil、IAR等。

同时,我们还需要准备好单片机的开发板、仿真器和下载线等硬件设备。

步骤二:编写上位机程序在编写上位机程序前,我们需要先明确程序的功能以及与单片机之间的数据交互方式。

通常,上位机程序主要包括与单片机进行通信、发送控制指令、接收传感器数据、显示结果等功能。

在C语言中,我们可以使用串口通信来实现单片机与上位机之间的数据传输。

例如,我们可以使用`printf`函数向串口发送控制指令,使用`scanf`函数接收传感器数据。

同时,我们还可以使用图形界面库或者网络通信库来实现结果的可视化展示。

步骤三:编写单片机程序在编写单片机程序前,我们需要了解单片机的硬件资源和外设接口的使用,以及单片机与上位机之间的通信方式。

通常,单片机程序主要包括初始化外设、配置通信接口、接收控制指令、发送传感器数据等功能。

在C语言中,我们可以使用单片机的IO口、定时器、串口等外设接口来实现与上位机的通信。

例如,我们可以使用串口接口来接收上位机发送的指令,使用IO口来控制外设的开关状态,使用定时器来定时采集传感器数据等。

上位机(vb)单片机与PC通讯程序(自己编的)

上位机(vb)单片机与PC通讯程序(自己编的)

Option Explicit Dim count1 As String 'Dim count11 As String Dim flag As Integer 'Dim flag_1 As Integer Dim jinji_flag As Integer Dim jinji_flag1 As Integer Dim dxbian As Integer Dim nbbian As Integer Dim count_sheding As Integer Dim count_shedingnb As Integer Dim strData As String '串口变量 'Dim flag As Integer Dim sj(0 To 4 As Integer Dim sj1(0 To 4 As Integer Dim sj2(0 To 4 As Integer Dim sj3(0 To 4 As Integer Private Sub Command2_Click( MSComm1.PortOpen = False Unload Me End Sub Private Sub Form_Load( count1 = count_sheding count_sheding = 60 dxbian =count_sheding count_shedingnb = 60 nbbian = count_shedingnb Text1.Text = ""Text5.Text = "" ' flag = 0 ' jinji_flag = 1 Text9 = "" '串口初始化 mPort = 1 MSComm1.InputMode = comInputModeBinary '数据通过 Input 属性以文本形式取回。

用VB开发PC与单片机通信的上位机程序

用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编写的上位机程序

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。

VC上位机For51

VC上位机For51

VC上位机For51济南职业学院电子工程系朱志强2010年8月17日概述:此文章作为学习上位机的复习资料和总结性资料。

是《VC++MSComm串口接收程序制做》的后继制作,在前文的基础上添加了部分新的功能,可以实现接收十六进制单个字符。

但是还是没有完成上位机对下位机的发送。

对于图片的应用和静态文本的更换,这此也没有解决。

第一步制作上位机程序,参考《VC++MSComm串口接收程序制做》。

步骤如下:新建一个基于对话框的程序,全部选择默认选项。

得到如下的对话框。

图1 新创建的对话框我们去掉上面的所有的控件,向工程中添加入MSCOMM控件,添加变量为m_ctrlComm。

再添加一个编辑框,作为接收框,使用类向导添加变量为m_strRXData。

同时,我们也给对话框添加上最小化按钮(方法:右键对话框,属性,样式里勾选上最小化按钮)。

双击MSCOMM控件,添加入如下的代码:void CFor51Dlg::OnOnCommMscomm1(){// TODO: Add your control notification handler code hereV ARIANT variant_inp;COleSafeArray safearray_inp;LONG len,k;BYTE rxdata[2048]; //设置BYTE数组An 8-bit integerthat is not signed.CString strtemp;if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符{////////以下你可以根据自己的通信协议加入处理代码variant_inp=m_ctrlComm.GetInput(); //读缓冲区safearray_inp=variant_inp; //V ARIANT型变量转换为ColeSafeArray型变量len=safearray_inp.GetOneDimSize(); //得到有效数据长度for(k=0;k<len;k++)safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组for(k=0;k<len;k++) //将数组转换为Cstring型变量{BYTE bt=*(char*)(rxdata+k); //字符型strtemp.Format("%02X",bt); //将字符送入临时变量strtemp存放strtemp=" 按下的按钮编号是"+strtemp+"\r\n";m_strRXData+=strtemp; //加入接收编辑框对应字符串}}UpdateData(FALSE); //更新编辑框内容}编译可以通过。

用VB编写上位机

用VB编写上位机

VB编写上位机实例用VB编写上位机实例16:14:22 UTC+0800Sun Apr 1 2007用VB6.0编写第一个串口通信上位机程序Visual Basic6.0是一个可视化窗口环境的编程软件,目前使用Visual Basic6.0可以快速简单编写单片机中的串口通信上位机程序。

电子制作HPOO下面我们以一个完整的通信试验为例子完成如何用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控件按默认属性设置不变。

单片机编程器HPOO以上设置完成,回到编程窗体区中,任意双击。

会显示Visual Basic的程序窗体的Load事件程序。

VB上位机程序编写

VB上位机程序编写

控件一、控件地主要属性、事件、地属性:设置或返回串口号. 如设成(默认值),表示对进行操作.:以字符串地形式设置或返回串口通信参数.包括串口通讯地比特率,奇偶校验,数据位长度、停止位等.其默认值是“”,表示串口比特率是,不作奇偶校验,位数据位,个停止位.:设置或返回串口状态.值为时打开串口,值为时关闭串口.:设置或返回接收数据地类型.若值为,则表示以文本形式读取;值为,则表示以二进制形式读取.:设置或返回一次从接收缓冲区中读取字节数.:设置或返回接收缓冲区地大小,缺省值为字节.:设置或返回接收缓冲区中等待计算机接收地字符数. 当将其值设为时,则输入寄存器将被清空.:从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读.:设置或返回发送缓冲区地大小,缺省值为字节.:设置或返回发送缓冲区中等待计算机发送地字符数.当将其值设为时,则输出寄存器将被清空.:向发送缓冲区发送数据,该属性设计时无效,运行时只读.:该属性为一阀值.当接收缓冲区中字符数达到该值时,控件设置属性为,并产生事件.用户可在事件处理程序中进行相应处理.若属性设置为,则不产生事件.例如用户希望接收缓冲区中达到一个字符就接收一个字符,可将设置为.这样接收缓冲区中接收到一个字符,就产生一次事件.:该属性亦为一阀值.当发送缓冲区中字符数小于该值时,控件设置属性为,并产生事件.若属性设置为,则不产生事件.要特别注意地是仅当发送缓冲区中字符数小于该值地瞬间才产生事件,其后就不再产生事件.例如设置为,仅当发送缓冲区中字符数从降为时,控件设置属性为,同时产生事件,如发送缓冲区中字符始终为,则不会再产生事件.这就避免了发送缓冲区中数据未发送完就反复发生事件.:这是一个非常重要地属性.该属性设计时无效,运行时只读.一旦串口发生通信事件或产生错误,依据产生地事件和错误,控件为属性赋不同地代码,同时产生事件.用户程序就可在事件处理程序中针对不同地代码,进行相应地处理.属性地代码、常数及含义参见后文、地事件除了公共事件之外,只有一个事件.当属性值变化时将发生事件,指示发生一个通讯事件或错误.当我们设置属性值为时,将使得捕获事件无效.电子桌牌优势智能液晶电子桌牌:是一款新颖地显示、会徽会标、与会者姓名和职务以及可实现多种会议服务功能地会议桌面终端设备.它外形美观大方,完全取代了传统塑料、纸质或铜制桌牌,是会议桌面显示设备地一大创新,同时也是集多种会议功能一体地新型产品终端.本产品与传统桌牌相比,具有信息化程度高、可反复使用地特点.它外型美观时尚、稳重中彰显尊贵、人名显示清晰明亮,是现代信息化会议地理想工具. 文档来自于网络搜索席媒无线智能液晶电子桌牌在供电方面:内置高容量聚合物锂电池(毫安时)供电、确保会议时间达到个小时以上,从而摒弃了电源线、通讯线等一切连接线缆,最终脱离了常规会议类产品必须集成化地束缚,完全没有了布局及手拉手使用地限制. 文档来自于网络搜索席媒无线智能液晶电子桌牌在通讯方面:采用全新地无线设计理念无线联网方式,电子桌牌通过无线基站与控制服务器进行网络通讯,完全实现了后台一人集中操控信息编辑及收发,免去了通过盘或刷卡一个一个桌牌信息导入地苦恼,真正做到了产品任意摆放,内容随意更换,并且即摆即用地要求. 文档来自于网络搜索席媒无线智能液晶电子桌牌在显示方面精心选材:采用高亮度(流明)、高分辨率(*)数字真彩屏,显示文字图形清晰亮丽,背景模板可自定义更换,整个无线桌牌系统还可以与自动化办公系统对接. 文档来自于网络搜索席媒无线智能液晶电子桌牌在终端操作方面:采用正面彩屏为触控屏式,这样便于操作会议功能(人员签到、呼叫服务、投票表决、计时服务、同声传译等)及查看相关会议信息.后台软件系统一人便可轻松完成会场布局安排,人名及会标和背景选择等信息发送. 文档来自于网络搜索席媒无线智能液晶电子桌牌在互动方面:短消息收发、呼叫服务、信息发布通知等充分体现产品地互动性,增添了会议地娱乐性和人性化. 文档来自于网络搜索席媒无线智能液晶电子桌牌在集控方面:利用有线或无线网络,后台一人便可集中控制和管理整个系统运行,操作简单,易学. 文档来自于网络搜索考虑到有些高档机密会议室必须具备信号干扰器,屏蔽系统地因素,杭州席媒也开发了有线型智能液晶电子桌牌,通过有线控制主机集中供电和通讯,依托高智能化地系统软件实现人性化多样会议系统服务功能.从而克服了无法使用等特点. 文档来自于网络搜索编辑本段产品功能文档来自于网络搜索人名显示参会人员姓名、职称、会徽会标、会议主题显示会议签到触摸点击按键,后台自动记录签到者和签到时间会议内容会议查询服务(会议日程安排表、会议布置安排、会议主题、会议用餐安排、会议社会调查、会议内容网上发布等)文档来自于网络搜索呼叫服务呼叫茶水、音响设备、麦克、笔、纸、紧急情况等投票服务对事件满意度进行表决或对候选人进行选举计时服务发言计时及提醒功能日期和时间即时显示日期和时间.概述多功能电子桌牌需要和上位机通信,才能实现桌牌地下载更新和广播信息地接收显示等功能,上位机软件由高级编程语言()编写. 继承了语言简单易学地优点,又增加了许多新地功能,它采用面向对象与事件驱动地程序设计思想,使编程变得更加方便、快捷,使用既可以开发个人或小组使用地小型工具,又可以开发多媒体软件,数据库应用程序,网络应用程序等大型软件,是国内外最流行地程序设计语言之一.地推出标志着可视化编程时代地到来,具有划时代地意义.文档来自于网络搜索其特点有以下几点:()可视化地设计平台在中,需要什么样地界面或工具,放置相应地对象(控件)即可,所见即所得,特别方便.文档来自于网络搜索()面向对象地设计方法按钮、文本框、图片框、列表框、窗口、屏幕、打印机等都是程序中地对象.在中编程者将这些对象采用搭积木地方式就可以构建出程序,这就使程序设计变得轻松有趣.文档来自于网络搜索()事件驱动地编程机制中程序地执行是由事件来驱动.程序员不必设计程序执行地过程顺序,只要设计出当某一事件发生时要执行地代码即可.这样,就大大提高了编程地效率.文档来自于网络搜索()易学易用由于发源于,所有地简单易用地特性被很好地保留下来,不需要有较多地计算机专业知识即可轻松上手.文档来自于网络搜索()使用方便,功能完备地编程工作轻松有趣,中提供了很宽松地编程环境.上位机软件设计中要实现和桌牌地数据通信,控件是必不可少地.该控件易学易用,只有约个属性和事件,可以从地联机帮助中找到它地全部资料.控件为应用程序提供串行通讯功能,其处理通讯地方式为事件查询方式和驱动方式两种.这里仅简述它地主要属性及事件,下面以表示在窗体上设置地控件地名称为例进行说明.文档来自于网络搜索上位机软件设计地一些总结收藏文档来自于网络搜索很多时候,我们需要把硬件设备测量地数据输入计算机,以能够有一个更好地数据表示和一个更好地人机界面,比如说对于一个测井系统,井下测量设备通过各种各样地传感器测得地下地各种信号,通过电缆传输给地面地测量装置.地面测量装置地功能主要是对传感器测来地各种信号进行转换,比如对模拟信号进行采样、对脉冲信号进行计数等.但地面测量装置对数据地表现往往有很大地局限性,比如只能在很小地液晶品上显示实时地曲线,事后无法进行回放分析等.这些时候,往往借助价格相对低廉地来更丰富、更直观地表达数据!文档来自于网络搜索这类系统地需求往往是固定地,但系统开发出来后地维护,和大多数地软件一样,如果设计编码做地不好,维护起来也不是一件令人开心地事情,对于未从事开发地维护人员更是如此!以下根据个人地经验总结一些在设计开发过程中地一些原则!文档来自于网络搜索、设计此类系统往往分为数据输入输出和转换(从下位机取得数据、设置下位机运行状态、原始值和工程值之间地转换)、数据处理(往往和行业有关地转换)、数据表示(为了让专业人员或操作工更直观地对系统状态进行判断).文档来自于网络搜索设计时可以将这三部分独立开来,通过参数定义交互地方式.三个部分地设计和编码可以独立开来,只要遵从事先约定地数据交换协议即可.这样做可以使开发过程分阶段或在不同地组员之间进行分工而不互相依赖,可以方便地编写测试而不等待其他模块提供数据.比如对于数据输入输出模块,它只需保证能正确地和下位机交换数据并转化为事先约定地格式即可;对于中间数据处理模块,它只负责对于这对于事先约定地数据格式进行正确地处理即可,这部分往往和行业背景有关、所用地软件只涉及语言本身而没有其他复杂地软件方法,很多行业相关地人员往往足以担任;数据表现部分,往往包含数据地存取、绘图、打印等操作,它只依赖于事先定一地数据格式,并不依赖于其他两部分(当然这只是对于开发而言、系统运行时当然依赖于前两者提供地数据).文档来自于网络搜索、数据地定义数据是整个软件工作地基础,一切地软件活动都是围绕数据而展开,因此定义数据时一定要不厌其烦对其进行说明,对它们代表地实际意义、将对其进行何种处理、确定地以及能够预料到地说明均应当进行记录.文档来自于网络搜索、对于方法最起码地,要说明该方法操作何种数据、函数功能是什么.、对于此类软件,不可避免地要使用一些全局地变量,可以借用组态软件中有关数据字典地概念,对这些全局变量进行统一管理,对其何处初始化、何处修改等尽量进行说明!文档来自于网络搜索、牢记两点:以后要维护;封装.、建议在每个文件创建时进行规范,注明该模块创建人、时间、模块功能等,对于版权信息,那是项目以外地问题,虽个人情况决定!文档来自于网络搜索上位机上位机是指人可以直接发出操控命令地计算机,一般是,屏幕上显示各种信号变化(液压,水位,温度等).下位机是直接控制设备获取设备状况地计算机,一般是单片机之类地.上位机发出地命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备.下位机不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机.简言之如此,实际情况千差万别,但万变不离其宗:上下位机都需要编程,都有专门地开发系统. 文档来自于网络搜索在概念上控制者和提供服务者是上位机被控制者和被服务者是下位机也可以理解为主机和从机地关系但上位机和下位机是可以转换地两机如何通讯,一般取决于下位机.一般是支持地.但是下位机一般具有更可靠地独有通讯协议,购买下位机时,会带一大堆手册光盘,告诉你如何使用特有协议通讯,里面会举大量例子,一般对编程人员而言一看也就那么回事,使用一些新地罢了.多语言支持功能模块,一般同时支持数种高级语言为上位机编程. 文档来自于网络搜索通常上位机和下位机通讯可以采用不同地通讯协议,可以有地串口通讯,或者采用串行通讯,当用计算机和通讯地时候不但可以采用传统地形式地串行通讯,还可以采用更适合工业控制地双线地通讯,采用封装好地程序开发工具就可以实现和上位机地通讯.当然可以自己编写驱动类地接口协议控制上位机和下位机地通讯. 文档来自于网络搜索。

基于VB的上位机的设计

基于VB的上位机的设计
图1 系统总体结构图
无线传感器网络下位机设计主要分为硬件设计和软件设计,硬件方面是以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上位机控制系统

姓名:赵远新编号:000121 2009年04月10日摘要随着pc 及其外部设备的普及和降价,越来越多的自动控制系统已经开始与PC 联机进行监控。

监控就是要做到可以随时监视并控制负载运作情况,与传统的现场控制不同,本系统可以在控制室(与现场距离上百甚至上千米)下令改变现场负载的运作情况。

而这所有的过程只需要使用PC 的一个COM 口,即RS232串口与单片机进行双向数据通讯,并且系统使用简单易上手的vb 语言编程,所需硬件简单易行,在标准的D 型接口如DB-9或DB-25接头中只需其中三条线即可,如下图所示。

本控制系统的基本作功能为通过上位机的监控窗口可以随时监视并控制下位机负载运作状态,窗口中可实时显示负载状态信息。

同时下位机也实时的对上位机指令执行相应的动作,1602液晶显示作为现场的人机对话装置作为现场控制,实现和PC 上位机控制相同的功能。

温度控制系统作为从属系统也受上位机控制,能完成温度自动调节,实时报警显示功能,将现场温度控制在一个可以任意设置的范围内.并且该设计具有欢迎界面、音乐播放和管理员密码窗口,更实际的模拟了工业实际应用中的情况。

更重要的是,该系统易于扩展和嫁接,经过稳定性和抗干扰性测试之后便可用于工业实际中去。

关键字:上下位机 串口通讯 液晶显示 工业控制 温度控制示意图:摘要译文With the popularity and the following price of Pc and it’s peripherals, more and more automatic control system has already started working with the PC ,monitoring and controling online. Monitoring can be done is to monitor and control the operation of the loads, which is different with the traditional control ways, we can ordered the change in the operation of the load in the control room of the system (the distance which away from it can be even hundreds of kilometers far). At the scene All the process which only need to use the PC's COM port or RS232 serial port with the 51 single-chip two-way data communications.System uses a simple programming language VB as the main programming language,the hardware of the system is simple,too. Standard interface, such as the D-type DB-9 or DB-25 connector in only three lines of which can, as illustrated below. The control system for the basic functions of the PC monitor through the window at any time to monitor and control the operation of the state of load-bit machine, the window can be displayed real-time load status information. At the same time are also lower on the PC real-time implementation of the action command, 1602 LCM and keyboard at the scene is the man-machine dialogue scene control devices, and PC host computer to achieve the same function as the control. Temperature control system as a slave system also controlled by the host computer can automatically adjust the temperature to complete。

上位机-单片机-飞行器

上位机-单片机-飞行器

题目:飞行器高度定位系统队员:劳锦富自动化08级2班张润初自动化08级2班张润丰自动化08级2班队名:flyfly目录一、设计任务要求 (3)基本要求: (3)扩展要求: (3)二、方案选择 (3)方案1: (3)方案2: (3)三、上位机编程及方案 (4)1、窗体初始化 (4)2、串口部分的程序: (6)3、实时曲线部分的程序: (7)4、坐标系统初始化部分: (8)5、设定高度值部分 (8)6、通过滚动条回看历史曲线部分 (9)7、以下部分为上位机发送数据指令给单片机进行相应的操作 (9)8、保存曲线图部分, (10)9、主界面 (10)四、单片机编程及方案 (10)1.单片机型号选择 (10)2.超声波测距 (11)3.收发数据 (12)4.声光提示 (14)5.定时停机 (15)6.PID控制 (16)7.主程序 (18)五、硬件设计及电路图 (24)1.硬件主芯片:ATMEGAL16(贴片) (25)2.ISP下载口 (25)3.RESET复位电路 (26)4.电源电路 (27)5.蓝牙与超声波模块 (27)6.蜂鸣器模块 (28)7.电机控制 (28)六、测试数据及测试结果 (29)七、总结 (31)一、设计任务要求基本要求:1)可以设定长杆底部距地面高度,精度控制在1cm以内;2)飞行器位置达到设定高度时,进行声光提示,飞行器设定高度稳定停留10秒钟以上(上下波动幅度不超过1cm);扩展要求:1)能够实时显示长杆底部距地面高度;2)描绘出高度变化历史曲线;a)飞行器高度控制精度达到5mm以上;3)其他。

二、方案选择方案1:利用键盘或触摸屏输入等设定高度,用液晶屏、12864等显示实时曲线。

此方案可以说是用模块的拼接,程序的编写来完成。

在一般的设计中有一定的普及性。

但是发现在显示曲线方面不够好,人机交流方面不足。

方案2:利用上位机完成设定高度,显示曲线,声音提示等。

此方案人机交流能做得更加完善,通过电脑上位机控制单片机,控制外界的输出,不失为一个好方案。

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

精制荟萃
3
比如上位机控制在工厂中的应用
精制荟萃
4
首先打开vb软件
• 弹出新建工程对话框,点击标准exe
精制荟萃
5
• 出现如下
精制荟萃
6
设置属性窗口
• caption:标题 • font:字体大小和风格
精制荟萃
7
• 新建两个按钮,改一下caption:打开串口 和发送数据如下图所示
精制荟萃
8
口。
精制荟萃
13
精制荟萃
14
代码如下
ห้องสมุดไป่ตู้
精制荟萃
15
成功和下位机通讯
精制荟萃
16
点击左边按钮框新建一个text1,如下图所示
精制荟萃
9
添加串口控件,在工程-部件中找到Microsoft comm control 6.0,如下图所示,点击打钩,并确定。
精制荟萃
10
在右边控件框出现一个电话的控件,并把下图箭头所示的控 件添加到窗口中。
精制荟萃
11
对代码进行编写
• 首先,双击窗口进入代码编辑框,如下图 所示:
精制荟萃
12
• Private Sub Form_Load() • 这个函数是窗口运行时初始化一些控件。
• Private Sub Command1_Click() • 这个是点击按钮1所触发的事件代码函数入
口。
• Private Sub Command2_Click() • 这个是点击按钮2所触发的事件代码函数入
上位机控制例程
• 点阵控制
精制荟萃
1
• 1602控制
精制荟萃
2
上位机用途
• 上位机是一台可以发出特定操控命令的计 算机,通过操作预先设定好的命令,将命 令传递给下位机,通过下位机来控制设备 完成各项操作(应用最多的地方如:工业、 水利、供电部门、交通等方面)。上位机 都有特定的编程,有专门的开发系统,或 以上是已经规定好任务,只能按特定的任 务进行操作。简单说上位机就是命令的下 达者,而下位机则是命令的执行者。
相关文档
最新文档