基于单片机和VB的多点温度监控系统设计教学资料.doc
-
资源ID:86459054
资源大小:583.50KB
全文页数:60页
- 资源格式: DOC
下载积分:20金币
快捷下载

会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于单片机和VB的多点温度监控系统设计教学资料.doc
Good is good, but better carries it.精益求精,善益求善。基于单片机和VB的多点温度监控系统设计-基于单片机和VB的多点温度监控系统设计(二)-上位机设计院系自动化学院专业自动化班级5407202学号200504072064姓名姚维丹指导教师王昱负责教师王昱沈阳航空工业学院2009年6月-摘要温度是一个基本的物理量,它是工农业生产过程中最普遍、最主要的工艺参数之一,实时精确的温度监控是产品质量的重要保证。随着现代科技的发展,电子计算机已越来越多地应用于温度的监控中。本文针对下位机多点温度测控系统的各点温度值,通过VB建立一个温度信息管理系统。详细阐述了系统的设计方法及功能。实现了与温度测控电路进行实时数据通信,完成温度信息的上传和温度设定值的下传功能。采用Access设计数据库,记录用户信息和温度信息。用VB连接数据库,完成温度信息的查询、显示、趋势图、报表生成等功能。达到了实时记录温度信息,定时传送温度设定值的技术指标要求。该多点监控系统拥有良好的人机界面,通用性好,操作简单、方便、易于实现温度的集中监控和管理等特点,具有较广泛的应用前景。关键词:VB;数据库;温度;监控AbstractTemperatureisafundamentalphysicalquantity,itisoneofthemostgeneralandimportantprocessparametersinindustrialandagriculturalproduction.Accuratereal-timetemperaturemonitoringisanimportantguaranteeforthequalityofproducts.Withthedevelopmentofmodernscienceandtechnology,electroniccomputerhasbeenusedintemperaturemonitoringfrequently.Therefore,inthispaperaninformationmanagementsystemoftemperatureisestablishedformulti-pointtemperaturemonitoringsystembyVB.Thedesignmethodsandfunctionsofthesystemisilluminatedindetail.Thesystemhasnotonlyachievedreal-timedatacommunicationwithtemperaturemonitoringandcontrolcircuitsbutalsoaccomplishedthetransferoftemperatureinformationandtemperaturesettings.Anaccessdatabaseisusedtorecordusersinformationandtemperatureinformation.UsingVBtoconnecttothedatabasethesystemhasmanyfunctionssuchasthequery,display,trend,reportgenerationandsoon.Thetechnicaltargetoftherecord,thetransmissionofreal-timetemperatureinformationandthetemperaturesettingsisalsoachieved.Themulti-pointtemperaturemonitoringsystemhasgoodhuman-computerinterface,goodcommon,simpleandconvenientoperation.Itiseasytoimplementcentralizedmonitoringandmanagementofthetemperature.Thesystemhasaveryextensiveapplicationprospect.Keywords:VB;database;temperature;monitoring目录第1章绪论11.1课题背景11.2多点温度监控系统发展现状11.3课题研究内容及技术指标41.4本文安排5第2章多点温度监控系统总体方案的设计62.1系统描述62.2总体方案设计62.3课题主要技术指标7第3章VB与单片机通信的建立83.1串行通信及RS232总线83.1.1串行通信83.1.2RS-232总线标准103.2VisualBasic6.0中的串行通信控件MSComm113.2.1MSComm控件处理通信的方式123.2.2MSComm控件的常用属性123.2.3MSComm控件的使用143.3PC机与AT89S51单片机的通信153.3.1硬件连接线路153.3.2通信协议153.3.3VB程序编制16第4章多点温度信息管理系统194.1多点温度信息管理系统功能194.2数据库的设计204.2.1Access数据库的设计204.2.2VB操作Access数据库的方法214.2.3数据库的生成224.3应用程序的设计224.3.1用户登陆模块设计234.3.2系统功能模块设计244.3.3主界面的设计254.3.4显示模块以及数据库显示模块的设计284.3.5查询模块的设计294.3.6通信及趋势图模块的设计304.3.7报表模块的设计314.3.8“关于”模块的设计324.3.9保存应用程序334.3.10建立可执行文件34结论35社会经济效益分析36参考文献37致谢39附录程序清单40第1章 绪论温度是表征物体冷热程度的物理量,在日常生活、工业自动化、家用电器、环境保护、安全生产和汽车工业等中都是基本的检测控制参数之一。所以对温度的监控管理在现代化生产中显得尤为重要。1.1 课题背景在我们的日常生活中,尤其是在北方,居民小区内冬季的供暖设备一般采用锅炉烧水供给。大多数的锅炉房只单纯的对出水温度进行了控制,而没有针对各个用户房间温度进行分别控制,从而不能有效的调节用户的温度,也造成了资源的浪费。多点温度监控系统则针对各个用户,分别采集各个用户的温度,上传给计算机,计算机通过该温度与设定值之间的差值对各个用户进行分别有效地调节控制,实现了温度的自动化控制,同时也避免了不必要的资源浪费。此外,在农业的生产中,大棚种植现在已经成为了农业生产中的主要部分。蔬菜作物的生长是需要一定温度的,这就要求大棚需要保持着恒定的一个温度以便使蔬菜等作物最好,最快的生长,以获得最大的经济效益。多点温度监控系统在大棚中的应用就方便了农民的生产,节省了资源。温度的测量和控制是许多行业的重要工作目标之一,不论是日常取暖、大棚种植还是粮食仓库、中药材仓库、图书保存,都需要在符合规定的温度环境条件之中。然而温度又是最不易保障的一项指标,针对这一情况,研制可实用的多点温度检测与控制系统就显得非常重要。总而言之,在现在的生活、生产中,多点温度监控系统都有着很广阔的应用前景。1.2 多点温度监控系统发展现状随着微型计算机和传感器技术的迅速发展,自动检测领域发生了巨大变化,针对温度的自动检测控制方面的研究有了明显的进展。对于温度监控系统来说,由传统的单点温度监控到现在的多点温度监控;由传统的集散控制到现在的现场总线控制等都是一个很大的进步。尤其是多点温度监控系统在现如今人们的生活、生产中越来越发挥着它所独有的优势:集中化管理,现场总线式监控。比如,中国是一个粮食大国,对粮食的储藏是农业生产过程中的一个非常重要的环节。为此设计了粮食仓库温度自动化监控系统。它的控制系统由中央控制装置、终端控制设备、传感器等组成。先编制出仓库存放粮食最优环境条件的管理程序表,存储于电子计算机的记忆装置中,电子计算机根据程序表确认、修正各仓库的参数,并给终端控制系统指令。终端控制设备向中央控制装置输送检测信息,根据中央控制装置的指令输出控制信号,使电器机械设备执行动作,实现粮食仓库的环境调节。该种系统可以达到自动控制降温、除湿、通风。根据需要,通过键盘将信息输入中央管理室,根据情况可随时调节仓库温度。粮食仓库温度湿度自动化控制系统在大型现代化粮食仓库中的使用,是现代化高新技术的体现。美国、日本的仓库监测设施近20年来发展很快,他们结合本国条件做出了具有创新特色的成就,其中仓库环境调控技术均有较高水平,但其监控设备价格昂贵。我国近年引进了多达16个国家和地区的仓库环境控制系统,对吸收国外先进经验、推动仓库温度湿度自动检测产生了积极的作用,但多因能耗过大,造价高,品种未能配套,未能达到很好的效果。中国的仓库环境综合控制系统必须走适合中国国情的发展道路,在引进、消化、吸收国内外先进技术和科学管理的基础上,进行总结提高、集成创新、超前示范,既开发适宜我国经济发展水平,又能满足不同气候条件,接近或达到世界先进水平的智能化仓库监测系统。在专用品种、综合配套技术、贮运营销上,应该研制具有中国知识产权的产品和技术。再比如,西安建筑科技大学研究生刘金颂的硕士论文所设计的变风量空调系统不但能克服定风量空调系统仅用一个送风参数无法满足不同房间或不同区域的不同室内空气环境要求的问题,也可避免风机盘管系统常附带的室内吊顶凝水、霉菌污染的问题;又具有良好的节能效果。但是要使变风量空调系统成功运行,充分体现其节能、卫生、舒适及良好经济性,关键在于控制系统能否按照空调室内的要求进行控制。变风量空调系统是靠变风量末端实现的,而控制变风量末端设备的依据是室内空调参数,合理准确的测量室内参数是实现控制的基本保证,在此基础上,提出一个合理的控制点。变风量系统在多种末端装置形式和控制方式下的室内特性,然后对VAV末端装置和控制形式进行设计、优化,成功实现VAV空调系统的选型、设计和应用。对VAV空调系统的特性,国外研究较多,特别是对变风量系统的控制和调节方法的研究,并有多年的设计运行实绩。然而,国内以前对VAV空调系统没有引起足够重视,对其特性研究较少;有些人也做了些研究,但大多套用自控模型进行模拟,研究得到的结果对VAV空调系统实际存在的问题指导意义不大。西安建筑科技大学变风量空调实验室申请了陕西省教育厅专项科研计划项目,以研制多点智能测温系统为技术平台,对VAV空调系统在多热污染源、多种变风量末端形式下对变风量系统室内气流流动特性和温度场进行测量和模拟,得到多污染源、多种变风量末端形式下的系统特性,进而提出变风量空调系统的最佳控制参数和控制方案,实现室内环境的健康舒适,为变风量系统的设计、应用提供理论依据。目前,针对变风量空调系统在公共建筑物中多热污染源、多种末端装置形式下,对室内气流流动特性和温度场状况进行测量和模拟,在国内还没有人系统地做出结果,而多污染源下的气流形式及在变风量系统下的空调效果更无人做出。刘金颂的课题就是该科研项目的子课题,即根据西安建筑科技大学变风量空调实验室现有的多点测温系统的缺陷,研究一种新型的多点智能测温系统。对多热污染源、各种末端形式(节流型、风机动力型和旁通型变风量箱,送风口形式有孔板型和条缝型风口)下室内的多点温度进行测量,为温度场分析提供准确可靠的数据。此外,迄今为止还没有一种CPU散热系统能保证永不失效。失去了散热系统保护伞的“芯”,往往会在几秒钟内永远停止“跳动”。微处理器功耗和温度随运行速度的加快而不断增大,现已成为一个不折不扣的“烫手山芋”。如何使处理器安全运行,提高系统的可靠性,防止因过热而产生的死机、蓝屏、反复重启甚至处理器烧毁,不仅是处理器所面临的困境,也是留给主板设计者的一个重要课题。为此,Intel率先提出了温度监控器(ThermalMonitor)的概念,通过对处理器进行温度控制和过热保护,大大提高了它的稳定性和安全性。还有,焦饼中心温度是焦炭成熟的标志,也是焦炉标准温度制定的依据。为了了解所制定的标准温度是否合理,以及焦饼沿炭化室长向和高向成熟的均匀情况。需要选择加热正常的炉号,在推焦前半个小时里测量焦饼中心温度。在炭化室机焦侧焦饼中各取上中下三点,分别测量各点温度,取其平均值作为焦饼中心温度,并分别求出焦饼的上下温度差,温差越小,焦饼质量就越好。一般焦饼上下各点温差不超过100,最终焦饼中心温度应保持在100050。正常生产条件下,焦饼中心温度规定一季度测量一次,当更换加热煤气种类、改变结焦时间、改变标准温度、配煤比变更较大以及炉温有较大波动时,也应测量焦饼中心温度对标准温度进行检查校正。工厂测量焦饼中心温度时一般采用在机焦侧插入特制的测量管,测量管内所特制的点来代表焦饼中心温度。由于管子长,插拔和测量过程具有高温、高空、有电并且与其他工种交叉作业的危险因素,特别是以往的拔管方法,多人站在装煤车上高空作业,拔出管子后离烧烫的管子和打开的炉口太近,容易烧伤烫伤,具有一定的危险性。为了避免操作时发生意外,保障作业过程安全顺利进行,就必须制定专用的测温工具和详细的作业步骤。基于传感器的耐热程度还不够达到这个指标,所以多点温度监控系统虽然可以避免上述操作的弊端,简单、有效的对温度进行检测,但还不能应用在对焦饼中心温度监控这个领域中。这就需要研制耐高温的传感器。由上文可知,尽管多点温度监控系统发展迅速,简单有效的解决了原来复杂的温度监控问题,但是它还存在很多问题,比如通信协议不规范,传感器质量不过关,现场管理和维护水平有待于加强等。基于以上各种问题,多点温度监控系统正朝着以下几个方向发展:(1)系统不仅要实现实时监测,而且在软件技术上应研究开发根据被监测环境地点的参数进行有效的判别、分析和提出专家决策方案。同时系统应用软件应向网络化发展,按统一的格式向外提供监测数据。(2)针对通信协议不规范和传输设备物理层协议不规范的问题,应尽快寻找一种解决系统兼容性的途径或制定相应的专业技术标准,这对促进温度监控技术发展和系统的推广应用均具有十分重要的意义。(3)研制高性能的温度传感器。(4)进一步加强现场管理和维护水平。1.3 课题研究内容及技术指标本文针对多点温度监控系统下位机建立一个温度信息管理系统,完成设计内容及实现的技术指标如下:1、课题研究内容(1)与下位机温度监控电路进行数据通信,实现温度信息的上传和温度设定值的下传;(2)设计Access数据库,记录用户信息和温度信息;(3)用VB连接数据库,完成温度信息的查询、显示、趋势图、报表生成等功能。2、技术指标(1)实时记录温度信息;(2)定时传送温度设定值。1.4 本文安排本论文共分5章。第1章概述,介绍多点温度监控系统的课题背景,多点温度监控系统的发展现状以及本课题的研究内容和技术指标;第2章介绍了多点温度监控系统总体方案的设计,以及课题的主要技术指标;第3章介绍PC机与单片机的通信,包括串行通信、RS-232总线、VB串行通信控件MSComm等。第4章具体介绍了多点温度监控管理系统,包括用户登陆模块、系统功能模块、数据库、报表、查询、显示、趋势图等。第5章得出结论,并做了社会经济效益分析。第2章 多点温度监控系统总体方案的设计设计方案的不同将直接决定系统硬件的结构,从而确定软件的不同编写思路。本章将介绍多点温度监控系统的总体结构,给出结构框图并引入双层总线的概念。最后给出系统的主要技术参数。2.1 系统描述我们采用现场总线进行设计。现场总线是应用于生产现场、在智能测量控制设备之间实现双向多点串行数字通信的系统,也称为开放式、数字化、多点通信的底层控制网络。开放式体现在现场总线公开、规范的通信协议。任何国家、厂家生产的智能测量控制设备只要遵守公共的通信协议就可以成为现场总线的一个节点。数字化是相对于模拟信号而言。模拟信号的传递需要一对一的物理连接,信号变化缓慢,信号的抗干扰能力差。数字信号克服了这些缺陷,抗干扰能力强。多点通信得益于设备的通信功能。多个设备可以挂接在一对双绞线上。结构简化而且系统接线简单。2.2 总体方案设计温度传感器的选择是本系统的关键。由于智能温度传感器采用数字化技术,能以数据形式输出被测温度值,具有测温误差小、分辨力高、抗干扰能力强、用户可设定温度上下限、具有超限自动报警功能,并且带串行总线接口,适配各种微控制器,因此我们采用智能温度传感器。我们采用DALLAS半导体公司生产的新型数字温度传感器DS18B20。DS18B20具有测温准确度高、总线挂接负载能力强的优势。它集温度测量、报警监测和数据通信多种功能于一体,并且兼容于DALLAS公司提出的单总线,可以很方便的组成底层总线。由于这层总线的主要功能是完成对温度的检测,所以称之为测温层总线。测温层总线由AT89C51单片机进行控制,单片机完成对总线上所有DS18B20发布命令和接收数据。另外,它还是温度传输层总线不可缺少的一部分。单片机在获取温度数据后需要进一步和PC机通信。本系统中只有一个单片机和PC进行串行数据通信,通信距离在10m左右,因此选择RS-232标准作为串行数据通信的物理层协议。这层总线结构主要实现温度数据的传输,所以称之为温度传输层总线。系统的总体结构框图如图2.1所示。图2.1系统的总体结构框图下位机通过DS18B20传感器的测量,将温度采集,采集上来的温度信息经过MAX232电平转换上传给上位机。这些上传到上位机的温度信息的处理是该多点温度监控系统-上位机最重要的一部分。上位机采用Access2003作为数据库管理系统,建立一个温度信息数据库,并用VisualBasic6.0开发数据库的前台应用,实现了温度信息的查询、显示、报表、趋势图等功能。2.3 课题主要技术指标1、硬件平台:微型计算机采用普通的PC机。2、软件平台(1)Windows操作系统;(2)Access数据库;(3)MicrosoftVisualBasic6.0开发工具。(4)应用软件数据的串行通信;数据的表格显示、查询、删除和报表打印等功能。第3章 VB与单片机通信的建立多点温度监控系统下位机将温度转换并将温度值存储到单片机的RAM里,本章主要讨论采用比较廉价的通信方式RS232来实现多点温度监控系统的上位机(PC机)向下位机(单片机)发送信息以及上位机接收下位机的温度信息并加以处理。3.1 串行通信及RS232总线多点温度监控系统下位机采集到的大量温度信息,需要传送至上位机,为接下来的温度分析处理提供数据。下位机只有一个单片机与PC机通信且两者之间的距离不是很长,因此我们采用异步串行通信中应用最广的RS-232标准总线实现两者之间的信息传递。本节将主要介绍串行通信的基本概念,数据传送方式,RS-232总线标准等。3.1.1 串行通信随着计算机系统的应用和微机网络的发展,计算机的通信功能显得尤为重要。从广义上讲,计算机通信可以分为并行通信和串行通信。并行通信速度快、实时性好,但占用的口线多、成本高、通信距离短,不适用于小型化产品。串行通信只需一根传输线即可完成通信功能,成本低,在通信中得到了广泛应用。计算机与外界的数据传送大多数都是串行的,通常把计算机与外界的数据传送称之为通信,因此提到的通信大多数都是指串行通信。1、串行通信的概念串行通信是计算机与外部设备进行信息交换的一种方式,是指数据一位一位地按顺序在一根信号线上进行传输的通信方式。串行通信有两种基本工作方式:异步传送和同步传送。在单片机中使用的串行通信都是异步方式,因此本系统采用异步串行通信方式来实现上位机与下位机之间的通信。异步串行通信是以字符为单位组成的祯传送的,即一祯一祯地传送。祯由发送端一祯一祯地发送,通过传输线被接收一祯一祯地接收。发送端何时开始发送以及何时结束发送是由祯格式规定的。通信线上没有数据传送时为逻辑高电平,每当接收端检测到传输线上发送来的逻辑低电平(祯起始位)时就知道发送端已开始发送,每当接收端接收到祯的停止位时就知道一祯字符信息已发送完毕。祯是一个字符的完整通信格式,由起始位、数据位、奇偶校验位和停止位等四部分组成。字符传送的祯格式如图3.1所示:图3.1异步通信的祯格式祯中各部分结构和功能如下:1)起始位:位于字符祯开头,始终为逻辑“0”低电平。用于向接收设备表示发送端开始发送一祯信息。2)数据位:紧跟起始位之后,数据位的个数可以是5、6、7、8或9位。PC机中经常采用7位或8位数据传送,8051串行口采用8位或9位数据传送。传送时,数据位从最低有效位开始发送,依次在接收设备中被转换为并行数据。3)奇偶校验位:位于数据位后,用于对字符传送作正确性检查,因此奇偶校验位是可选择的,共有3种可能,即奇校验、偶校验和无校验,由用户根据需要选定。4)停止位:位于字符祯末尾,为逻辑“1”高电平,用于标志一个字符传送的结束。可取1、1.5或2位。2、串行通信的数据传送方式在串行通信中,数据通常是在发送端和接收端之间进行传送,根据数据传送的方向,可分成三种基本的传送形式:单工、全双工和半双工。单工形式的数据传送是单向的,只需要一根数据线,通信线的一端固定为发送端,另一端固定为接收端。半双工形式的数据传送是双向的,但任何时刻只能由其中的一方发送数据,另一方接收数据。虽然半双工形式比单工形式灵活,但它的效率依然较低,从发送方式转换到接收方式所需要的时间大约为数个毫秒,这个时间延迟在时间较为敏感的系统是无法忍受的。全双工形式下,采用了信道划分技术,避免了半双工形式的缺点,数据传送是双向的,且可以同时发送和接收数据。本系统采用了效率较高的全双工通信形式。3、串行通信的传送速率在串行通信中,用“波特率”来描述数据的传输速率。所谓波特率,即每秒钟传送的二进制位数,其单位为bps。它是衡量串行数据传输快慢的重要指标。接收方的波特率和发送方的波特率可以分别设置,但接收方的波特率必须与发送方的波特率相同。3.1.2 RS-232总线标准在串行通信时,要求双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通信。RS-232C是美国电子工业协会EIA公布的串行通信标准,RS是RecommendedStandard的字头缩写,代表推荐,232是标识号,C表示修改的次数。RS-232C适用于短距离或带调制解调器的通信场合,目前已广泛应用于计算机与外围设备的串行异步通信接口中。1、机械特性RS-232C的机械特性主要指两个通信装置如何实现机械对接。RS-232C是数据终端设备DTE与数据通讯设备DCE之间的接口,RS-232C的机械标准规定DTE应配置DB25插头,即25针连接器,DEC应配置DB25的插座,即25孔连接器。表3.1计算机DB-9连接器引脚信号功能引脚号信号名称方向信号功能1DCDPC机对方PC机收到远程信号(载波检测)2RXDPC机对方PC机接收数据3TXDPC机对方PC机发送数据4DTRPC机对方PC机准备就绪5GND信号地6DSRPC机对方对方准备就绪7RTSPC机对方PC机请求发送数据8CTSPC机对方对方已切换到接收状态(清除发送)9RIPC机对方通知PC机,线路正常(振铃指示)实际应用中,DB-25型连接器中的许多信号用不上,对于一般的双工通信,仅需几条信号线就可实现,包括一条发送线、一条接收线和一条地线。因此普遍采用DB9插头,即9针连接器。表3.1给出了DB9连接器的信号引脚功能。本系统采用DB9型连接器,通过三根线实现系统连接,即接收数据引脚与发送数据引脚彼此交叉相连,信号地对应相接。这是最常用的全双工最简单系统连接法。2、电气特性RS-232标准的电气特性如表3.2所示。表3.2RS-232标准的电气特性不带负载时驱动器输出电平-25V25V负载电阻范围37k欧驱动器输出电阻<300欧负载电容(包括线间电容)<2500pF逻辑“0”时驱动器输出电平515V逻辑“0”时负载端接收电平>+3V逻辑“1”时驱动器输出电平-15-5V逻辑“1”时负载端接收电平<-3V输出短路电流<500mA驱动器转换速率<30由表4.2可以看出RS-232C电平采用负逻辑,逻辑“0”:+5+15V,逻辑“1”:-5-15V。在计算机和智能仪器内,通用的信号是正逻辑的TTL电平。而RS-232C电平是负逻辑的,与TTL电平不兼容,必须进行电平转换。电平转换通常可以使用MC1488、MC1489、MAX232等芯片来实现。本系统是采用MAX232芯片实现电平转换的。RS-232标准规定的波特率为:50、75、100、150、300、600、1200、4800、9600和19200bps。本系统波特率采用9600bps。3.2 VisualBasic6.0中的串行通信控件MSCommVisualBasic是一种可视化的编程语言,利用可视化技术进行编程,可使应用程序的开发简单、快捷,可编写出界面友好、功能强大的应用程序。MSComm控件全称为MicrosoftCommunicationsControl,是Microsoft公司提供的ActiveX控件,目的是为了简化Windows下串行通信编程,它既可以用来提供简单的串口端口通信功能,也可以用来创建功能完备的、事件驱动的高级通信工具。MSComm控件在串口编程时非常方便,程序员不必花时间去了解较为复杂的API函数,而且在VisualBasic、VisualC+、Delphi等语言中均可以使用。使用它可以建立与串行端口的连接,通过串行端口连接到其它通信设备(如调制解调器),发出命令,交换数据,以及监视和响应串行连接中发生的事件和错误。3.2.1 MSComm控件处理通信的方式MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。它提供下列两种处理通信的方式。1、事件驱动方式事件驱动通信是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时程序得到通知,例如,在串口接收缓冲区中有一个字符到达或一个变化发生时,程序都可以利用MSComm控件的OnComm事件捕获并处理这些通信事件,OnComm事件还可以检查和处理通信错误。在程序设计中,可以在OnComm事件处理函数中加入自己的处理代码,一旦事件发生即可自动执行该段程序。这种方法的优点是程序响应及时,可靠性高。2、查询方式在程序的每个关键功能完成之后,可以通过检查CommEvent属性的值来查询事件和错误。适用于自保持的应用程序较小的编程。查询方式的编程可用计时器或DoLoop程序实现。其实,查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。3.2.2 MSComm控件的常用属性对控件编程首先需要了解它的属性和事件。下面介绍MSComm控件的一些主要属性,如表3.3所示。表3.3MSComm控件的主要属性属性描述Commport设置并返回通信串口号Settings以字符串的形式设置并返回串口波特率、奇偶校验、数据位、停止位。格式为:MSComm1.Settings=”BBBB,P,D,S”Portopen设置并返回串口状态,也可以打开和关闭串口Input从接收缓冲区中读取数据并清空缓冲区Inputlen设置并返回一次从接收缓冲区中读取字节数InBufferSize设置并返回接收缓冲区的大小,缺省值为1024字节InBufferCount设置并返回接收缓冲区中等待接收的字符数InputMode设置并返回接收数据的类型。其值为0和1时,分别表示通过Input属性以文本方式和二进制方式取回数据OutBufferSize设置并返回发送缓冲区的大小,缺省值为512字节OutBufferCount设置并返回发送缓冲区中等待计算机发送的字符数Output向发送缓冲区发送数据,该属性设计时无效,运行时只读Rthreshold在MSComm控件设置ConunEvent属性为comEvReceive并产生OnComm之前,设置并返回要接收的字符数其中CommEvent属性是一个非常重要的属性。一旦串口发生通信事件或产生错误,依据产生的事件和错误,MSComm控件为CommEvent属性赋以不同的代码,同时产生OnComm事件。用户程序就可在OnComm事件处理程序中针对不同的代码,进行相应的处理。CommEvent属性的事件代码、常数以及含义参见表3.4和表3.5。表3.4CommEvent通信事件代码、常数及含义表事件代码常值含义1ComEvRecive接收到Rthreshold个字符。该事件将连续产生,直到用Input属性从接收缓冲区中读取并删除字符2ComEvSend发送缓冲区中数据少于Sthreshold个,说明串口已经发送了一些数据,程序可以用Output属性继续发送数据3ComEvCTSClearToSend信号线的状态发生变化4ComEvDSRDataSetReady信号线从1变到05ComEvCDCarrierDetect信号线的状态发生变化6ComEvRing检测到振铃信号7ComEvEOF接收到文件结束符表3.5ComEventnt通信错误代码、常数及含义表事件代码常数含义1001ComEvntBreak接收到一个中断信号1002ComEvntCTSTOClearToSend信号超时1003ComEvntDSRTODataSetReady信号超时1004ComEvntFrame祯错误1006ComEvntOverrun串口超速1007ComEvntCDTO载波检测超时1008ComEvntRxOver接收缓冲区溢出,缓冲区中已没有空间1009ComEvntRxParity奇偶校验错1010ComEvntTxFull发送缓冲区溢出,缓冲区中已没有空间1011ComEvntDCB检测串口的设备控制块时发生错误3.2.3 MSComm控件的使用MSComm控件通信的流程图如图3.2所示。编写程序时,只需要按照下面流程图,即可实现通信功能。图3.2MSComm控件通信的流程图3.3 PC机与AT89S51单片机的通信PC机与单片机之间的串行通信主要实现下位机的温度数据的采集和传输。下位机程序用汇编语言编写,固化在AT89SC51单片机中。单片机是测量系统的数据采集端,它主要完成对多个测温传感器DS18B20的控制和温度数据的读取以及同上位机的数据通信。上位机软件用VB编写,主要完成通信参数设置和温度数据的转换。通信参数设置主要用来完成对系统通信参数的设置,包括设定通信端口、波特率、数据位、奇偶校验位和停止位。温度数据的转换主要实现对接受到的温度数据由十六进制到十进制的转换,同时这一步也为后面的数据库的生成及温度信息管理工作做好了准备。3.3.1 硬件连接线路PC机与单片机之间的通信通过串口实现。由于RS232电平与TTL电平不兼容,本系统通过MAX232芯片实现TTL电平到RS232电平的转换,MAX232芯片是包含两路接收器和驱动器的RS232电平转换芯片,适用于各种232通信接口。如图3.3所示。图3.3PC与硬件单片机的连接电路图3.3.2 通信协议为使数据在PC和单片机之间无差错的传送,本文采用通信协议来规约数据的传输。PC机与单片机双方的通信协议如下:波特率:9600bps;数据格式:8位数据位,1位停止位,无奇偶校验;传送方式:PC机和单片机都采用查询方式收发数据,传送的数据格式为二进制格式。DS18B20转换出的温度信息包含两个字节,经过处理后,一个字节为温度的整数部分,另一个字节为温度的小数部分。每个DS18B20共传送三个字节,第一个字节为传感器所在的行列号,第二个字节是温度的整数部分,第三个字节是温度的小数部分。单片机收到PC机发送的握手信号“S”后,就依次命令DS18B20进行温度转换;PC机依次接收单片机上传过来的数据,并显示在特定区域。3.3.3 VB程序编制本系统串行通信的界面如图3.4所示:图3.4串行通信的界面因为系统采用的是事件驱动,所以具体程序的编制必须围绕相应的事件进行。本系统中,有关通信的工作过程主要有:通信参数初始化、发送握手信号、接收数据。具体初始化程序如下:PrivateSubForm_Load()MSComm1.CommPort=1'设置通讯窗口MSComm1.Settings="9600,N,8,1"'设置数据传输率和发送字符格式MSComm1.InputMode=comInputModeTextMSComm1.InBufferSize=1024'设置接收缓冲区1024ByteMSComm1.InputLen=0'设置或返回一次从接收缓冲区中读取字节数,0表示一次读取所有数据MSComm1.RThreshold=21IfMSComm1.PortOpen=FalseThen'打开串口MSComm1.PortOpen=TrueEndIfEndSub初始化完成后,PC机就可以与单片机进行通信了。点击“开始接收”按钮即可完成向单片机发送握手信号功能。发送程序为:DimreceAsStringrece=MSComm1.InputIfMid(rece,1,1)="S"ThenText1.Text=Text1.Text&receElseText1.Text=Text1.TextEndIf单片机接收到PC机发送的握手信号S后,就依次命令总线上的DS18B20进行温度转换并向PC机发送转换后的温度信息。我们在OnComm事件里进行温度数据的接收和转换。在转换后的温度之间加上一个空格,且在单个DS18B20温度信息末尾加上回车和换行符,目的是为PC机接收到的温度信息保存的文本文件转换成数据库作好准备。如果系统初始化不正常或DS18B20的端脱开未接好时,转换出的温度为默认初始值+85,温度高低字节为05H和50H。系统检测到DS18B20转换的温度值为上面两种情况时,我们在接收区显示该测点出现“测量有误”字样,提醒我们对系统进行硬件线路检查。OnComm事件程序如下:PrivateSubMSComm1_OnComm()DimbufferAsVariantDimarr()AsByteDimiAsInteger,aAsIntegerDimrestr1AsString,restr2As