多路温度采集与处理_第1页
多路温度采集与处理_第2页
多路温度采集与处理_第3页
多路温度采集与处理_第4页
多路温度采集与处理_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录第一章 绪论21.1选题的意义21.2 方案确定21.3 系统工作原理3第二章 上位机应用软件设计52.1 VB6.0概述52.2 VB的基本应用62.2.1 数据类型与语句62.2.2 控件82.3数据库及SQL语言的基本应用112.3.1 ACCESS数据库112.3.2 SQL语言132.4 软件设计172.4.1 系统进入界面172.4.2 实时显示界面192.4.3 历史数据界面21第三章 下位机的硬件设计233.1 AT89C51单片机233.2 A/D转换器263.2.1 A/D转换器的主要技术指标273.2.2 ADC0809引脚功能273.2.3 ADC0809工作过程

2、283.2.4 MCS51与ADC0809的接口283.3 ZLG7289A30第四章 通信系统设计334.1 串行通信概述334.1.1并行数据传送与串行数据传送334.1.2单工方式、半双工、全双工方式344.1.3异步传输和同步传输354.1.4波特率354.2 RS232总线354.2.1 RS-232-C364.2.2 RS-232收发器374.3 单片机与PC机的串行通信394.3.1波特率及串行口的设置404.3.2 上位机通信设置424.4 串行通信软件编程43第五章 结论47致 谢48参考文献49摘 要计算机技术的发展和普及提升了数据采集系统的技术水平。在生产过程中,应用数据

3、采集系统可对生产现场的工艺参数进行采集、监视和记录,以方便人们对数据结果做出分析判断。基于VB编程语言的多路温度采集与处理系统,可以实现上下位机的通信与系统管理界面设计,可以更直观的观察数据、更便捷对系统进行控制。设计主要完成多路温度采集与处理系统的硬件电路及软件编程调试。数据采集与处理系统硬件部分包括:上位机计算机、下位机单片机系统。单片机外扩A/D转换芯片ADC0809和键盘显示管理芯片HD7289实现对现场数据的采集和显示。利用MAX232电平转换芯片实现单片机与上位机的数据通信。上位机基于VB编程语言编程可以实时监测到温度的变化,同时将采样数据与采样时间存入数据库中,便于对数据的查询和

4、分析。下位机采用汇编语言编程实现数据采集及上位机的数据通信。经过对硬件电路的连接、上下位机的程序编程以及对整个系统的功能仿真调试结果表明,该系统能够完成多路温度采集与处理系统的设计任务和要求。关键词:VB6.0;单片机;串行通信;数据采集 Abstract Computer technology development and diffusion of improved data collection system of technical levels. In the production process, and data acquisition system can be applied

5、 to the production site of the parameters of the collection, monitoring and recording, to facilitate people to make the results of data analysis and judgement. VB programming language based on the multi-channel data acquisition and processing system that can realize from top to bottom crew communica

6、tions and systems management interface design, a more intuitive observation data, more easily control the system. The entire hardware including: microprocessor, A/D converter, keyboard display. SCM is the entire crew of the core modules, application of the 8-way analog switch with the A/D converter

7、chip ADC0809 realization of data collection. Use of the MAX232 realized from top to bottom-of-level conversion, PC real-time monitoring to the change in temperature, at the same time, and sampling time sampling data in the database, for later in the data query and analysis. After hardware circuit co

8、nnections, from top to bottom in preparation for the procedure and the whole system of functional simulation debugging, basically achieved the desired results, to the task of formulating the mandate and design requirements. Key words: VB; communication; data collection第一章 绪论1.1选题的意义随着计算机技术的发展和成熟,计算机

9、的应用也越来越广泛。在自动化领域,计算机已经成为控制系统的首选平台,应用计算机对生产和试验进行实时、远程监控是现代自动化发展的主要方向。将计算机应用于工业实时控制的前提是现场数据的实时获取。在生产和科学实验中,常常要测控很多参数,诸如温度、压力、转速等,通常的方法是使用专用的仪表人为观测、记录处理数据、做出判断,这就会带来人为的误差。如何将计算机与各种设施、设备结合,简化人工操作并实现自动控制,满足社会的需求,成为一个很重要的问题。数据采集是各行业广泛采用的一种现场控制手段,它可以实现实时控制、现场监测,辅助数据分析、问题处理,以其结构简单、使用手法便捷、精确的测量和友好的人机界面,博得用户的

10、青睐。其中,温度采集与处理系统就是被广泛用于工业现场的数据采集系统,主要是对多点温度进行实时监测。温度检测是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。本设计主要是用于实验室的进行实验的仿真系统,实现了远距离的对系统的实时监测。如在生产过程中,可以实现对人类难以或无法到达的工作现场的监测,应用这一系统可对生产现场的工艺参数进行采集、监视和记录,为提高产品质量、降低成本提供了信息和手段。1.2 方案确定在多点测温系统中,用温度敏感元件通过电路的调整可以把温度信号转换为一模拟电压信号,在将模拟电压信号远距离传输进行采集并通过 A/D 转换得到相应的数字信号,

11、通过程序进行处理得到实时的温度值。为了获得较高的测温精度,在测温系统中就必须采取措施解决远距离的温度信号的传输,而保证高强度的抗干扰能力,从而得到准确的精确高的环境温度值。 该设计是基于VB的多路温度采集与处理系统,是用于实验室进行实验模拟仿真的系统。此系统有上下位机两部分,上位机主要是利用VB进行软件编程实现将温度数据进行实时的跟踪显示,绘制出温度变化曲线,并将数据存储到数据库中的系统软件。利用该软件可以控制下位机的工作,还可以通过输入时间参数对历史温度数据的查询。 下位机是采用AT89C51作为主控单元,利用ZLG7289实现对键盘和LED的显示。本系统采用电位器模拟温度的变化,经过AD转

12、换后单片机会对数据进行数据转换。在键盘按下某一按键时,LED会显示对应通道的温度数据。本系统是利用RS232实现上下位机的通信,主要是采用单片机和VB的软件编程实现对数据的发送和接收的控制。1.3 系统工作原理本系统大致可分为五部分,计算机对数据的显示与存储、MAX232电平转换、单片机控制部分、A/D转换部分和键盘显示部分,如图1.1所示。计算机部分是对温度数据进行实时监测与存储,历史数据的查询。其中较为重要的是实现对现场温度的实时采集与传输,利用RS232 进行与下位机的通信。单片机部分是进行数据采集的核心部分,在收到上位机的命令后,首先它将选择某一通道模拟量数据再将其进行A/D转换,在得

13、到A/D转换的结果后进行数据转换,进而将数据送至上位机。A/D转换部分采用了ADC0809逐次逼近式转换器,为低分辨率的A/D转换器,片内带有锁存功能的8路选1的模拟开关,又C、B、A的编码来决定所选的通道。ADC0809完成一次转换大概需100左右。键盘显示部分是采用了可驱动8位共阴式数码管的驱动芯片,在本系统中该芯片还接入了4个按键,每个按键对应一个通道。单片机在对A/D转换结果进行数据转换后,如果按下按键则会在LED显示器上显示对应通道的温度示数。 图1.1 系统结构框图第二章 上位机应用软件设计采用VB 6.0作为该系统的上位机编程语言,同时利用RS232实现与单片机间的通讯,从而对下

14、位机采集得到的数据进行动态跟踪的显示、分析、绘制曲线及数据的存储。其组成大概有两部分,一个是实时数据显示界面,即当下位机将数据到达的同时要绘制出曲线。另一个是历史数据界面,即在输入所要查询的时间与通道后,绘制出相应的曲线、方块图及数据列表等。2.1 VB6.0概述Microsoft VB提供了开发Microsoft Windows应用程序的最迅速、最简捷的方法。不论是Microsoft Windows应用程序的资深专业开发人员还是初学者,VB都为我们提供了整套工具,以便开发应用程序。VB,“Visual”在计算机程序设计中意思是“可视化程序设计”,指的是开发图形界面的方法。使用这种方法,用户不

15、需要编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象拖放到屏幕的一点即可。“Basic”指的BASIC语言,它是一种再计算机技术发展历史上应用最为广泛的语言,VB是在原有Basic语言基础上的进一步发展,它包含了数百条语句、函数及关键词。Visual Basic 语言具有简单易学的特性,只要稍有语言基础就可以很快掌握并进而精通。可视化的用户界面设计功能,把程序设计人员从繁琐复杂的界面设计中解脱出来;可视化编程环境的“所见即所得”功能,使界面设计如积木游戏一般,从而使编程成为一种享受。2.2 VB的基本应用 由于我是VB的初学者,是第一次用到,只懂得VB的一些基本应用。下面我将介绍

16、一下在本设计当中用到的一些基本概念及操作。用 Visual Basic 创建一个应用程序,第一步是创建界面,它是用户与应用程序进行交互操作的可视部分。窗体和控件是创建界面的基本构造模块;也是创建应用程序所使用的对象。窗体是一种对象,由属性定义其外观、由方法定义其行为、由事件定义其与用户的交互。通过设置窗体属性并编写响应事件的 Visual Basic 代码,就能定义出满足应用程序需要的对象。控件是包括在窗体对象内的对象,是VB中预先定义好的、在程序中能够直接使用的对象。每个控件都有自己的属性、事件和方法,可在设计时或在代码中修改或使用。工具箱中的每个控件都以图标的形式来表示。2.2.1 数据类

17、型与语句 VB同其它的编程语言一样,有自己的变量类型、语句等。其中的数据类型有很多种,大致包括:1. 整型(Integer)和长整型(Long)2. 字节型(Byte)3. 单精度型(Single)和双精度型(Double)4. 货币型(Currency)5. 字符型(String)6. 逻辑型(Boolean)7. 日期型(Date)8. 对象型(Object)9. 变体型(Variant)在程序中不特别说明时,VB会自动将该变量默认为Variant型变量。另外不同类型的数据,所占的存储空间不一样。数据的类型可在数据之后加上一个类型符来表示,例如,413&,86!,104.67#等。在设计中

18、应用较多的语句有两个IF语句和FOR.NEXT语句。IF语句分为单行结构条件语句(If.Then.Else) 和块结构条件语句(If.Then.Else.End if),另外IF语句还可以嵌套。在已知循环的次数或变量的变化范围时用For.Next循环最为方便、快捷,其格式为 For 循环变量初值To终值Step 步长 循环体 Next 循环变量循环变量从初值取到终值,每次增加一个步长值。对于循环变量的每一个值,循环体执行一次,直到循环变量超过终值为止。 1 步长值可正可负当步长0,循环体若能执行,初值必须终值。For x= 2 To 100 step 2 Sum = Sum + xNext x

19、 图2.1 FOR循环流程图当步长0,循环体若能执行,初值必须终值。For x= 100 To 2 step -2 Sum = Sum + xNext x2“超过”终值不一定是大于!3当步长值1时,“Step 1”可省去!4提前退出For循环 : Exit For2.2.2 控件在本设计中,所涉及到的控件有Text Box、Picture Box、Lable、Commandbutton、Data及Shape等,这其中有一个最为重要的一个控件,DATA控件如图示。1DATA是连接当前操作界面与数据库的纽带,利用它可以将数据存入数据库中,也可以将数据库中的数据读出来。这涉及到了它的几个重要属性。图

20、2.2 DATA控件l DataBaseName属性 决定欲连接的数据库文件名 l RecordSource属性 决定欲连接的数据表名 l Connect属性 指明欲存取的数据库格式 l Exclusive属性 决定数据库是否供单人使用,True为单人。 l ReadOnly属性 决定是否将所连接的数据库设为只读。2Data控件常用的方法(1) AddNew方法AddNew用于添加一个新记录,新记录的每个字段如果有默认值将以默认值表示,如果没有则为空白。例如,给Data1的记录集添加新记录:Data1.Recordset.AddNew(2) Delete方法Delete用于删除当前记录的内容,

21、在删除后应将当前记录移到下一个记录。(3) Edit方法Edit用于对可更新的当前记录进行编辑修改。(4) Find方法群组Find方法群组是用于查找记录,包含FindFirst、FindLast、FindNext和FindPreviou方法,这4种方法查找的起点不同 。Find方法 查找起点 查找方向 FindFirst 第一个记录 向后查找 FindLast 最后一个记录 向前查找 FindNext 当前记录 向后查找 FindRrevious 当前记录 向前查找例如,查找客户号字段为10002的记录:Datal.Recordset.FindFirst客户号=10002,If Datal.

22、Recordset.NoMatchThen 如果没找到MsgBox找不到10002号客户End If通常当查找不到符合条件的记录时,需要显示信息提示用户,因此使用NoMatch属性,当使用Find或Seek方法找不到相符的记录时,NoMatch属性为True。(5) Move方法群组 Move方法群组是用于移动记录,包含MoveFirst、MoveLast、MoveNext和MovePrevious 方法,这四种方法分别是移到第一笔记录、移到最后一笔记录、移到下一笔记录和移到前一笔记录。注意:当在最后一个记录时,如果使用了MoveNext方法时EOF的值会变为True,如果再使 用MoveNe

23、xt方法就会出错。对于MovePrevious方法如果前移,结果也是同样。(6) Refresh方法如果DatabaseName、ReadOnly、Exclusive或Connect属性的设置值发生改变,可以使用Refresh方法打开或重新打开数据库,用Refresh方法可以更新数据控件的集合内容。(7) Seek方法Seek方法适用于数据表类型(Table)记录集,通过一个已被设置为索引(Index)的字段,查找符合条件的记录,并使该记录为当前记录。语法:记录集.Seek比较式,key1,key2,.,key13例如,当索引为客户号字段时,查找客户号为10005的记录: Data1.Reco

24、rdset.Seek:,10005(8)Update方法Update方法用于将修改的记录内容保存到数据库中。(8) UpdateControls方法UpdateControls方法可以从数据控件的记录集中再取回原先的记录内容,即恢复原先值。当在与数据控件链接的控件中修改了记录内容,可以用UpdateControls方法使这些控件显示恢复原来的值。3与控件绑定控件箱中的常用控件PictureBox、Label、TextBox、CheckBox、Image、OLE、ListBox 和ComboBox控件都能和Data的Recordset的一个字段绑定,与Data控件绑定的控件称为数据感知控件1.数

25、据感知控件的相关属性 DataSource属性:用于在下拉列表中选择想要绑定的控件名称。DataField属性:用于在下拉列表中选择要显示的字段名称。2.绑定数据控件的步骤数据感知控件绑定的过程不需要加入任何程序代码,将文本框txtOrderNo与Dara1绑定的步骤如下:(1) 将数据控件(Data1)放置在窗体中,将数据感知控件TextBox放置在窗体中并改名为txtOrderNo。(2) 设置Data1的DatabaseName属性为C:四路温度采集.Mdb文件,设置Data1的RecordSource属性为温度采集表。(3) 设置txtOrderNo的DataSource属性为Data

26、1,设置txtOrderNo的DataField属性为第一路字段。2.3数据库及SQL语言的基本应用2.3.1 ACCESS数据库VB默认的数据库是Microsoft Access数据库,扩展名为.MDB,因此,VB处理Access数据库的速度最快。不过,VB也可处理其它格式的数据库,如Excel、dBase、FoxBase、FoxPro、Paradox等。无论各种数据库内部格式如何不同,VB都会自动将其转变为关系数据库。1数据表:Table数据表是一组相关的数据按行、列排列的二维表格,简称为表(Table)。每个数据表都有一个名字,一个数据库一般都由一个或多个数据表构成,如:dBase、Fo

27、xBase、FoxPro等数据库均由一个数据表构成,Excel数据库可以由多个表(Sheet1、Sheet2、Sheet3等)构成,Access数据库由一个或多个数据表构成。 2记录与字段 字段:Field 数据表由多行多列组成,每一列称为一个字段(Field);数据表表头中的每一个数据项的名称称为字段名。如姓名、性别、职务等。 记录:Record 表头(字段名)下面的每一行称为一个记录(Record);如每一个人的信息所在的行就是一条记录。 关键字:KeyWord 对数据库中的记录进行分类查询时所用到的字段称为关键字。如按总成绩排序时,则“总成绩”字段就是关键字,如按英语排序时,“英语”字段

28、就是关键字。关键字中又分主关键字、次关键字等。 索引:Index 一个表可以按照不同顺序保存或排序,即一张表可以有不同的索引方式;如学生成绩可以按总成绩建立索引,也可以按单科成绩建立索引等,有了索引后进行相应的查询就非常方便快捷。 3建立一个Access数据库首先启动可视化数据管理器 “外接程序”“可视化数据管理器” 选择所建的数据库的类型: “文件/新建/Microsoft Acess” “Version 7.0/2.0 MDB”建立数据表结构 新建表:在“数据库窗口”的Properties上右击,选择“新建表” 修改数据表结构 右击表名称,选择“设计”选项 数据记录的输入、修改与删除u 添

29、加:添加一个新记录。 u 编辑:编辑当前记录。 u 删除:删除当前记录。 u 关闭:保存结果,关闭本窗口。 u 排序:对当前记录集排序。 u 过滤器:筛选满足条件的记录。 u 移动:决定下一个要显示的记录。 u 查找:显示“搜索”对话框。2.3.2 SQL语言 SQL语言和基于SQL的关系数据库系统是计算机产业最重要的基础技术之一。SQL已经成为当今标准的计算机数据库语言。SQL是结构化查询语言(Structured Query Language)的缩写。正如它的名称所暗示的,SQL是一种计算机语言,它可以与数据库进行交互。事实上,SQL使用的是一种特殊类型的数据库,即关系数据库。实际上,“结

30、构化查询语言”这个名称并不十分恰当。SQL远远不只是一个查询工具,尽管这曾经是它最初的用途,并且检索数据仍然是其最重要的功能之一。可以使用SQL来控制DBMS为其用户提供的所有功能,包括数据定义、数据检索、数据操作、访问控制、数据共享和数据完整性。因此,SQL是一种综合性语言,它是用来控制并与数据库管理系统进行交互的。 和其它的关键字相比,SELECT可以称为是SQL的核心部分。在SQL语言中它是高效复杂语句的基础,也是用户从自己数据库中提取信息的手段。它几乎能以无数的方式同其它关键字和子句联合起来使用,得到想要查看的信息。下面概述一下SELECT语句的通用查询方法简单的SQL查询只包括选择列

31、表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询四路温度采集表中时间为“08-6-01”的时间字段SELECT 时间FROM 四路温度采集WHERE 时间=08-6-01(一) 选择列表选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。1、选择所有列例如,下面语句显示四路温度采集表中所有列的数据: SELECT * FROM四路温度采集2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。例如: SELECT 时间 F

32、ROM 四路温度采集3、更改列标题在选择列表中,可重新指定列标题。定义格式为:列标题=列名列名 列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT TIME=时间FROM 四路温度采集4、删除重复行SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。5、限制返回的行数使用TOP n PERCENT选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是

33、表示一百分数,指定返回的行数等于总行数的百分之几。例如: SELECT TOP 2 *FROM 四路温度采集 SELECT TOP 20 PERCENT * FROM 四路温度采集 (二)FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: SELECT username,ci

34、tytable.cityidFROM usertable,citytableWHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名:表名 as 别名表名 别名例如上面语句可用表的别名格式表示为: SELECT username,b.cityidFROM usertable a,citytable bWHERE a.cityid=b.cityidSELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。例如: SELECT a.au_fname+a.au_lnameFROM authors

35、a,titleauthor ta(SELECT title_id,titleFROM titlesWHERE ytd_sales10000) AS tWHERE a.au_id=ta.au_idAND ta.title_id=t.title_id此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。(三) 使用WHERE子句设置查询条件WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据: SELECT *FROM usertableWHERE age20WHERE子句可包括各种条件运算符:比较运算符(大小比较):、=、=、=、!、!=10 AN

36、D age=302、列表运算符例:country IN (Germany,China)3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime等类型查询。(四)查询结果排序使用ORDER BY子句对查询返回的结果按一列或多列排序。ORDER BY子句的语法格式为:ORDER BY column_name ASC|DESC ,n其中ASC表示升序,为默认值,DESC为降序。ORDER BY不能按ntext、text和image数据类型进行排序。例如: SELECT *FROM 四路

37、温度采集ORDER BY 时间 desc另外,可以根据表达式进行排序。2.4 软件设计2.4.1 系统进入界面在此系统软件中共有3个界面,首先进入的是系统进入界面。如图2.2示范进入系统需要输入正确的学号,否则提示输入学号有误。在这个界面当中用到了Picture box、Text box、Timer等几个控件。首先,将这些控件一一拖入窗体当中,摆放好其位置。接着在图片控件中加载一个背景图片,选中图片控件,其属性当中有个“Picture”,选择图片的目录,再点击打开,图片被成功加载。日期的显示是利用Timer和Label控 图2.2 系统界面件实现的,Timer的特点是每隔一定的时间间隔产生一次

38、Timer事件,将其Invernal属性设置为1000,即1秒。再写入如下程序:Private Sub Form_Load()Timer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer()Label4.Caption = DateEnd Sub这样即可完成日期显示。在进入系统按扭对应程序段中写入以下语句即可,Private Sub Command1_Click()If Text1.Text = ThenForm2.ShowUnload Form1ElseMsgBox 您的学号有误,请重新输入。, vbExclamation, 警告End IfEnd

39、 Sub这样即可实现在输入正确学号后才可进入系统,如果学号错误则会弹出提示对话框。2.4.2 实时显示界面图2.3 实时显示界面实时显示界面是在上位机对下位机的实时监测对下位机上传的数据进行曲线的绘制。整个界面样式如图2.3界面上的六个按钮分别为参数设置的确定键、下位机初始化、采集、停止、历史数据及退出键。点击采集键,上位机会发送命令字,使下位机开始开始采集数据并送至上位机,与此同时上位机绘出温度变化曲线,第一路为红色曲线,第二路为黄色,第三路为蓝色,第四路为绿色。采集及绘制曲线的语句如下(以第一路为例):Private Sub Timer1_Timer() 第一路采集Dim buf As S

40、tringIf MSComm1.CommEvent = 2 ThenMSComm1.InputLen = 1buffer = MSComm1.InputIf buffer = Q Thena = Val(Text1.Text)Text1.Text = Timer1.Enabled = FalseMSComm1.Output = 6Timer2.Enabled = Truea = CInt(a * 100 / 255)Picture1.Line (b, d)-(c, a), vbRedd = ab = cc = b + 5ElseText1.Text = Text1.Text & bufferE

41、nd IfEnd IfEnd Sub在参数设置框内,可以对下位机初始化、对采样频率进行设置、设置警报值。为了能与下位机实现通信,此界面需添加MSComm控件。还需要添加DATA控件与数据库进行绑定,再利用TextBox控件与DATA控件进行绑定,这样将温度数据送给TextBox后,温度数据就会被存入数据库中。相应的语句为:Data1.Recordset.EditText1.Text = aText2.Text = eText3.Text = iText4.Text = mLabel1.Caption = TimeLabel2.Caption = DateData1.Recordset.Move

42、NextData1.UpdateRecord2.4.3 历史数据界面该界面主要是用于查询历史数据,所以在此之前需创建一个ACCESS数据库,表名称为四路温度采集,添加字段日期、时间、第一路、第二路、第三路、第四路。在窗体中添加DATA控件与之绑定,同样利用TextBox控件将数值取出,进而绘制出温度曲线、方框图等。如图,在日期的文本框中,输入要查询的日期,则在历史数据显示中会出现对应日期的温度数据。在路数框中输入通道号,则会绘制出对应通道温度变化曲线和方框图。图2.4 历史界面该界面的程序为(绘制曲线以第一路为例):Private Sub Command1_Click()Dim a As St

43、ringDim b As Stringb = Text1.Texta = select*from 温度监测1 where 日期= & b & Data1.RecordSource = aData1.RefreshEnd SubPrivate Sub Command2_Click()Picture1.Scale (0, 100)-(500, 0)Picture2.Scale (0, 100)-(500, 0)Dim c, d As IntegerDim x() As Stringc = 0d = 2If Text2.Text = 1 Then 第1路For i = 0 To UBound(x)y

44、 = CInt(Val(tex3.Text)Data1.Recordset.MoveNextz = CInt(Val(Text3.Text)Picture1.DrawWidth = 3Picture1.Line (c, y)-(d, z), vbRedPicture2.FillStyle = 0Picture2.FillColor = vbBluePicture2.Line (c, y)-(d, 0), vbBlue, Bc = c + 2d = d + 2z = yNextEND IF第三章 下位机的硬件设计在此系统中,下位机主要是负责采集多路数据将其送至上位机,与此同时单片机也会进行将数据

45、转换为对应的温度示数在LED显示器上显示。下位机的硬件主要由单片机AT89C51、AD转换器ADC0809、D触发器74LS74以及键盘LED显示组成。3.1 AT89C51单片机AT89C51单片机是现在最常用的单片机之一。它采用静态CMOS工艺制造,最高工作频率为24MHz,其PDIP/DIP封装如图所示。除了PDIP封装之外,还有PQFP/TQFP和PLCC/LCC等2种不同的封装,用户可以根据不同的场合进行选择。AT89C51是一种带4K字节闪烁,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

46、由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 图3.1 89C51引脚图单片机的主要特性有4K字节可编程闪烁存储器、128*8位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路引脚说明VCC:供电电压。 GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIAS

47、H编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外

48、部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能,如下:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 (外部中断0)P

49、3.3 (外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止A

50、LE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。:当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,将内部锁定为RESET;当端保持高电平时,此间内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。在本系统中,单片机

51、的主要功能是读出A/D转换的结果并将其送至上位机,还有控制ZLG7289的按键与显示。3.2 A/D转换器随着超大规模集成电路技术的飞速发展,A/D转换器的新设计思想和制造技术层出不穷。为满足各种不同的检测及控制任务的需要,大量结构不同、性能各异的A/D转换器芯片应运而生。在进行多路温度采集的时候,往往需要同时采样多个参数,然后将模拟量转换成数字量,一般情况下,采用多参数共用一个A/D转换器,计算机对各参数分时进行采样。为此,常常需要有一个多路开关,轮流把各传感器采集的数据送到A/D。此外,在微型机采样系统中,由于A/D转换器的转换过程需要一定的时间,因此,必须保证在A/D转换器转化过程中被测

52、参数保持不变,否则将影响转换精度,特别是当参数的变化速度比较快时更是如此。另一方面,在模拟量输出系统中,也是分时工作的,对于每个单个的系统,也需要保持输出不变,而用来完成这一工作的电路叫做采样/保持器(S/H),多路开关和采样/保持器式数据采集和输出系统中必不可少的一个组成部分。目前来说,A/D转换器的型号很多,较为常见的是双积分型与逐次逼近型,逐次逼近型A/D转换器,在精度、速度和价格上都适中,是最常用的A/D转换器件。双积分A/D转换器,具有精度高,抗干扰性好,价格低廉等优点,但转换速度较慢。在此系统中,我采用了ADC0809芯片,因其本身具有多路开关及采样/保持器,ADC0809是8位逐

53、次逼近型A/D转换器,它可以对8路模拟量信号进行分时的A/D转换,转换结果是8位二进制数据,它是单一+5V电源供电。片内带有锁存功能的8路选1的模拟开关,由C、B、A的编码来决定所选的通道。0809完成一次转换需要100左右。输出具有TTL三态锁存器,可直接连接到MCS-51的数据总线上。3.2.1 A/D转换器的主要技术指标(1) 转换时间和转换速率转换时间A/D完成一次转换所需要的时间。转换时间的倒数为转换速率。并行式A/D转换器,转换时间最短约为2050ns,速率为( 5020)次;双极性逐次逼近式转换时间约为0.4,速率为2.5M(2) 分辨率A/D转换器的分辨率习惯上用输出二进制位数

54、或BCD码位数表示。量化过程引起的误差为量化误差。量化误差是由于有限位数字量对模拟量进行量化而引起的地误差。量化误差理论上规定为一个单位分辨率的LSB,提高分辨率可减少量化误差。(3) 转换精度A/D转化器的转换精度定义为一个实际A/D转换器与一个理想A/D转换器在量化值上的差值。可用绝对误差或相对误差表示。3.2.2 ADC0809引脚功能首先,ADC0809共有28引脚,采用直插式封装如图。其主要引脚功能如下:IN0IN7是8路模拟信号的输入端。D0D7是8位数字量输出端。A、B、C与ALE控制8路模拟通道的切换,A、B、C分别与三根地址线或数据线相连,三者编码对应8个通道地址口。C、B、A=000111分别对应IN0IN7通道地址。强调说明:虽然ADC0809有8路模拟通道可以同时输入8路模拟信号,但是在同一时刻只能转换一路,各路

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论