首页 恒温控制器上位机软件开发毕业设计

恒温控制器上位机软件开发毕业设计

举报
开通vip

恒温控制器上位机软件开发毕业设计2010届毕业设计 题 目 恒温控制器上位机软件开发 1 学 院 自动化与电气工程学院 1 专 业 电气工程及其自动化 1 班 级 电气062 1 学 号 106032044 1 学生姓名 陶志明 1 指导教师 瞿晓 1 完成日期 2010年6月10日 1 二○一○ 年 六 月 浙江科技学院毕业设计、学位论文 版权使用授权书 本人 陶志明 学号 106032044 声明所呈交的毕业设计(论文)、学位论文《 恒温控制器上位机软件开发 》,是在导师指导下进行的研究工作及取得的研究成果。除了文中特别加以标注和致谢的地方外...

恒温控制器上位机软件开发毕业设计
2010届毕业设计 题 目 恒温控制器上位机软件开发 1 学 院 自动化与电气工程学院 1 专 业 电气工程及其自动化 1 班 级 电气062 1 学 号 106032044 1 学生姓名 陶志明 1 指导教师 瞿晓 1 完成日期 2010年6月10日 1 二○一○ 年 六 月 浙江科技学院毕业设计、学位论文 版权使用授权 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 本人 陶志明 学号 106032044 声明所呈交的毕业设计(论文)、学位论文《 恒温控制器上位机软件开发 》,是在导师指导下进行的研究工作及取得的研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,与我一同工作的人员对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 本毕业设计(论文)、学位论文作者愿意遵守浙江科技学院 关于保留、使用学位论文的 管理办法 关于高温津贴发放的管理办法稽核管理办法下载并购贷款管理办法下载商业信用卡管理办法下载处方管理办法word下载 及规定,允许毕业设计(论文)、学位论文被查阅。本人授权 浙江科技学院 可以将毕业设计(论文)、学位论文的全部或部分 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 编入有关数据库在校园网内传播,可以采用影印、缩印或扫描等复制手段保存、汇编毕业设计(论文)、学位论文。 (保密的学位论文在解密后适用本授权书)     论文作者签名: 陶志明 导师签名: 瞿晓   签字日期: 2010 年 6 月 12 日 签字日期: 2010 年 6 月 12 日  摘 要 温度是一种被广泛应用于生产和生活的重要的物理量。针对与不同的应用领域,生产和研制适当的测温系统是十分必要的。 本文开发了基于VB6.0的恒温控制器上位机软件系统。根据串行通讯原理,设计了单片机与PC机的接口电路,建立了单片机与PC机之间的串行通讯 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 。对测温系统实现了对象化操作——将采集到的温度信号编码进行接受和描述,将其直接显示在可视的界面当中。该测温系统还具有实时存储功能和信号处理功能。在本设计中,为了及时掌握系统的运行状况,我们还增加了报警功能。 关键词:温度,实时曲线,VB6.0 Abstract Temperature is a very important physical quantity which used in production and life .For the different applications, it is necessary to produce the proper system of measuring temperature. The main theoretical base is theory of data collection . The temperature signals measured by 18B20 sensors transform to the voltage signals .The single chip transforms the voltage code to 16M code which is the basic of communication .I design the interface circuit between the single chip and PC .The temperature signals are received and described by VB and then displayed on the screen .All the signals can be Real-time memory in order to analyze them . Keywords: Temperature ,Current curve,VB6.0 目录 TOC \o "1-3" \h \z \u 摘 要 II Abstract III 1 绪论 1 1.1 选题意义 1 1.2 课题研究的主要内容 2 2 通讯设计基础 3 2.1 RS232通信接口 3 2.2 单片机串口通信基础知识 3 2.3 VB简介 5 2.4 MSComm控件 5 2.4.1 MSComm控件两种处理通讯的方式 6 3 系统设计 10 3.1 功能要求 10 3.2 设计方案 10 3.2.1 下位机设计 10 3.2.2 上位机设计 12 4 程序设计 14 4.1 mscomm串口程序设计 14 4.2 曲线绘制程序与报警 14 4.3 指定参数阀自动控制恒温 16 4.4 数据保存程序 16 5 总结 18 致 谢 19 参考文献 20 附录 上位机程序 21 1 绪论 1.1​  选题意义 温度是工业中非常关键的一项物理量,在农业,工业,现代科学研究和各种高新技术的开发和研究中也是一个非常普遍和常用的测量参数。例如钢铁生产过程中,按照工艺条件的规定保持一定的温度才能保证产品质量和设备的安全。对电气设备进行温度的监控,例如高压开关、变压器的出线套管等,判断可能存在的热缺陷,进而能及时发现、处理、预防重大事故的发生。因此研究温度现场过程控制仪具有重要的意义。 一般意义下的温度控制装置已经广泛地应用到国内外的工业、医疗及日常生活领域, 其种类繁多, 控制方式及控制手段不胜枚举, 其概念也并不新奇。然而温度控制技术在工程应用中, 在专用化和高指标方面还有很大的发展空间, 还有需要我们进一步开发与探索的实际问题。在一些重点室中, 以及在进行一些特殊实验时,对恒温控制系统的恒温控制要求非常严格, 并且控制温度范围比较广泛, 同时要求在各个不同的实验时间能够对温度进行调节, 为此相继研制出了一些恒温控制系统,但都是用电子电路所构成,其中就包括上位机部分。 随着电子技术和轻工业技术的不断发展,利用廉价的单片机并综合现代传感器技术、智能控制等先进技术来实现在全自动化温室中蔬菜、花卉等作物工厂化生产已经成为可能,并且在实际生产中得到广泛应用。 以此为背景,我们希望设计一款上位机软件,通过它与下位机取得联系,采集分析下位机所测得的温度数据并发出控制信号进行控制。本温度程控制的特点是控制精确,具有优秀的人机界面,可视化程度高。 1.2​  课题研究的主要内容 本课题将研究在VB环境下PC机与单片机之间实现串行通讯需要解决的问题并给出其通讯程序。PC机的通讯利用Visual Basic 6.0提供的串行通讯的MSComm控件。通过此控件PC机可以利用串行口与其它设备连接,简单高效地实现设备之间的串行通讯。 采用VB 6.0作为该系统的上位机编程语言,同时利用RS232实现与单片机间的通讯,从而对下位机采集得到的数据进行动态跟踪的显示、分析、绘制曲线及数据的存储。其组成大概有两部分,一个是实时数据显示界面,即当下位机将数据到达的同时要绘制出曲线。另一个是历史数据界面,即在输入所要查询的时间与通道后,绘制出相应的曲线。 2 通讯设计基础 由于该系统实现的功能较简单,因此采用RS232通信接口与下位机进行通讯,实现对下位机的数据采集和控制。在PC端,则通过VB中的MSComm控件完成对通讯进行控制的功能。 2.1 RS232通信接口 在本次课题中,上位机与下位机的通讯采用RS232标准,所以在这里简单介绍一下RS232。 串行通信端口(SERIAL COMMUNICATION PORT)在系统控制的范畴中一直占有极重要的角色,不仅没有因为时代的进步被淘汰,反而是在规格上愈来愈向其极限挑战。现在,计算机上的串行通信端口(RS232)是标准配置,用途上则以连接调制解调器作通信传输最为常见,当然了,它的重要性还不只如此! 图2-1 RS232简介 RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(ecommeded standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。它规定连接电缆和机械、电气特性、信号功能及传送过程[8]。常用物理标准还有有EIA�RS-232-C、EIA�RS-422-A、EIA�RS-423A、EIA�RS-485。 这里只介绍EIA�RS-232-C(简称232,RS232)。 例如,目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。 2.2 单片机串口通信基础知识 STC89c52RC单片机的设有全双工的异步通讯串行口4种工作方式 ,波特率由片内定时器/计数器控制。 除用于串行通讯,还可用来扩展并行I/O口。 串行口内部结构如图 10,两个物理上独立地接收和发送缓冲器,可同时收、发数据。 两个缓冲器共用一个特殊功能寄存器字节地址:SBUF(99H)。 图 2-2 单片机串行口内部结构 表2-1 SCON 各位定义 SM0、SM1——串行口4种工作方式的选择位 SM0 SM1 方式 功 能 说 明 0 0 0 同步移位寄存器方式(用于扩展I/O口) 0 1 1 8位异步收发,波特率可变(由定时器控制) 1 0 2 9位异步收发,波特率为fosc/64或fosc/32 1 1 3 9位异步收发,波特率可变(由定时器控制) SMOD:波特率选择位。 方式1的波特率的计算公式为: 方式1波特率=(2SMOD/64)×定时器T1的溢出率 当SMOD=1时,要比SMOD=0时的波特率加倍,也称SMOD。 位为波特率倍增位。 2.3 VB简介 Microsoft VB提供了开发Microsoft Windows应用程序的最迅速、最简捷的方法。不论是Microsoft Windows应用程序的资深专业开发人员还是初学者,VB都为我们提供了整套工具,以便开发应用程序。 VB,“Visual”在计算机程序设计中意思是“可视化程序设计”,指的是开发图形界面的方法。使用这种方法,用户不需要编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象拖放到屏幕的一点即可。 “Basic”指的BASIC语言,它是一种再计算机技术发展历史上应用最为广泛的语言,VB是在原有Basic语言基础上的进一步发展,它包含了数百条语句、函数及关键词。Visual Basic 语言具有简单易学的特性,只要稍有语言基础就可以很快掌握并进而精通。可视化的用户界面设计功能,把程序设计人员从繁琐复杂的界面设计中解脱出来;可视化编程环境的“所见即所得”功能,使界面设计如积木游戏一般,从而使编程成为一种享受。 2.4 MSComm控件 在VB的编程过程中,主要采用MSComm控件通过串口与下位机通讯,因此MSComm控件是贯穿整个设计的灵魂。 MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。 2.4.1 MSComm控件两种处理通讯的方式 MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。 2.4.1.1 事件驱动方式 事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。 2.4.1.2 查询方式 查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。  本文根据实际的要求采用的是查询方式。 2.4.1.3 MSComm 控件的常用属性 MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。 CommPort 设置并返回通讯端口号。 Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。 PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。 Input 从接收缓冲区返回和删除字符。 Output 向传输缓冲区写一个字符串。 下面分别描述: CommPort属性:设置并返回通讯端口号。 语法 object.CommPort[value ] (value 一整型值,说明端口号。)  说明 在设计时,value 可以设置成从 1 到 16 的任何数(缺省值为 1)。但是如果用PortOpen 属性打开一个并不存在的端口时,MSComm 控件会产生错误 68(设备无效)。 注意:必须在打开端口之前设置 CommPort 属性。 RThreshold 属性:在 MSComm 控件设置 CommEvent 属性为 comEvReceive 并产生 OnComm 之前,设置并返回的要接收的字符数。 语法 object.Rthreshold [ = value ](value 整型表达式,说明在产生 OnComm 事件之前要接收的字符数。 ) 说明 当接收字符后,若 Rthreshold 属性设置为 0(缺省值)则不产生 OnComm 事件。例如,设置 Rthreshold 为 1,接收缓冲区收到每一个字符都会使 MSComm 控件产生 OnComm 事件。 OnComm 常数 常数 值 描述  comEvSend 1 发送事件。  comEvReceive 2 接收事件。  comEvCTS 3 clear-to-send 线变化。 comEvDSR 4 data-set ready 线变化。 comEvCD 5 carrier detect 线变化。 comEvRing 6 振铃检测。 comEvEOF 7 文件结束。  InputMode 常数 常数 值 描述  comInputModeText 0 (缺省)通过 Input 属性以文本方式取回数据。 comInputModeBinary 1 通过 Input 属性以二进制方式检取回数据。  DSRHolding 属性:确定 Data Set Ready (DSR) 线的状态。Data Set Ready 信号由调制解调器发送到相连计算机,指示作好操作准备。该属性在设计时无效,在运行时为只读。 语法:object.DSRHolding object 所在处表示对象表达式,其值是“应用于”列表中的对象。 DSRHolding 属性返回以下值: 值 描述  True Data Set Ready 线高  False Data Set Ready 线低  说明:当 Data Set Ready 线为高电平 (DSRHolding = True) 且超时时,MSComm 控件设置 CommEvent 属性为 comEventDSRTO(数据准备超时)并产生 OnComm 事件。 当为 Data Terminal Equipment (DTE) 机器写 Data Set Ready/Data Terminal Ready 握手例程时该属性是十分有用的。 数据类型:Boolean Settings 属性: 设置并返回波特率、奇偶校验、数据位、停止位参数。 语法: object.Settings[ = value] 说明:当端口打开时,如果 value 非法,则 MSComm 控件产生错误 380(非法属性值)。Value 由四个设置值组成,有如下的格式: "BBBB,P,D,S" BBBB 为波特率,P 为奇偶校验,D 为数据位数,S 为停止位数。value 的缺省值是:"9600,N,8,1" InputLen 属性:设置并返回 Input 属性从接收缓冲区读取的字符数。 语法 object.InputLen [ = value] InputLen 属性语法包括下列部分: value 整型表达式,说明 Input 属性从接收缓冲区中读取的字符数。  说明:InputLen 属性的缺省值是 0。设置 InputLen 为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部的内容。 若接收缓冲区中 InputLen 字符无效,Input 属性返回一个零长度字符串 ("")。在使用 Input 前,用户可以选择检查 InBufferCount 属性来确定缓冲区中是否已有需要数目的字符。该属性在从输出格式为定长数据的机器读取数据时非常有用。 EOFEnable 属性:确定在输入过程中 MSComm 控件是否寻找文件结尾 (EOF) 字符。如果找到 EOF 字符,将停止输入并激活 OnComm 事件,此时 CommEvent 属性设置为 comEvEOF, 语法:object.EOFEnable [ = value ] EOFEnable 属性语法包括下列部分: value 布尔表达式,确定当找到 EOF 字符时,OnComm 事件是否被激活,如“设置值”中所描述。  value 的设置值: True 当 EOF 字符找到时 OnComm 事件被激活。  False (缺省)当 EOF 字符找到时 OnComm 事件不被激活。  说明:当 EOFEnable 属性设置为 False,OnComm 控件将不在输入流中寻找 EOF 字符。 3 系统设计 3.1 功能要求 设计一个基于Visual Basic 6.0的恒温控制系统。用单片机系统接收温度传感器的温度数据,并在数码管上显示当前温度值,可测温范围0-100摄氏度,精度0.5摄氏度,实现远程实时监测温度数据。每日四次自动记录、存贮温度数据。计算机可查询当前温度数据,并画出温度曲线图。可设置参数阈值自动控制空调等设备。当温度超出规定范围时,自动发出警告。 使用VB6.0编写上位机程序,接收温度数据并储存在数据库中;接收数据时,要求能同步画出温度变化的曲线;要求系统可查询历史温度信息。 基于VB6.0的恒温系统在设计时主要应该满足如下功能指标: 1.​ 可测温范围0-100摄氏度,精度0.5摄氏度; 2.​ 当单片机通过串口往PC发送一次数据,采集一次温度数据。 3.​ 可设置参数阈值自动控制空调等设备。 4.​ 可查看当前温度,并自动控制温度的调整,使整个系统处于恒温状态,当温度超出一定范围后发出报警。 5.​ 上位机接收温度数据,并将数据、接收数据时间等信息存储到文本中; 6.​ 接收温度数据时,同步画出温度变化的曲线; 3.2 设计方案 设计方案主要有分为上位机设计和下位机设计,而本次设计主要着重于上位机软件设计。 3.2.1 下位机设计 下位机电路设计总体设计方框图如图所示,控制器采用单片机AT89C51,温度传感器采用DS18B20,用8位LED数码管以串口传送数据实现温度显示并通过串口与上位机PC通讯,把数据传送给上位机,并用VB编写的图形界面把温度的变化曲线显示出来,并通过数据库存储,可查询历史温度记录。 图3-1 总体设计框图 主控制器 单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。 显示电路 显示电路采用8位共阳极LED数码管,从P0口输出段码,P2口为LED的位选信号。 温度传感器 采用DS18B20温度传感器,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。 PC实时显示界面 显示实时温度数据变化曲线的界面,采用VB6.0编辑,在程序使用VB6.0的通用串口控件MSCOMM来对发送到串口的数据进行采集处理。上下位机定义好通信协议和波特率。 3.2.2 上位机设计 图3-2 上位机软件框架图 上位机采用Viusal Basic设计,VB5.0/6.专用于串口通信的的MSComm通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,可以连接到其他通信设备(如Modem)。还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的各种错误和事件,从而可以用它创建全双工 、事件驱动的、高效实用的通信程序。 最后完成的程序界面如下图所示: 图3-3 软件运行界面 此程序可选择串口号,和通讯的波特率。可控制所选串口的打开与关闭。实时显示温度,当温度偏离所设定的恒温时,可通过MSComm.Output自动发出控制信号给下位机进行调节。温度超过上限或者下限时,曲线颜色会变红,并且发出声音报警。每天四次进行数据存储,数据存储在txt中,可点“查看详细记录”进行查看。 4 程序设计 整个软件的程序部分包括通讯部分,输入部分,报警子程序,绘图部分,温度控制部分,设定数据部分等,接下来简单介绍一下各部分的程序与实现方法。 4.1 mscomm串口程序设计 在上位机VB程序的编写中,最重要的是串口的初始化程序和接收触发程序的设计。本程序使用VB6.0的通用串口控件MSComm来对发送到串口的数据进行采集处理。: 在VB程序中可手动设置为串口号,输入模式为文本模式,且接收四个和发送一个字符就会触发MSComm1的OnComm接收触发事件。手动设置波特率,可以根据具体设计情况更改波特率的大小,但要与下位机的一致。程序中还编写了错误处理程序,当串口未被打开时就开始程序时会报错。 图4-1 串口设置界面 4.2 曲线绘制程序与报警 曲线是有无数个点组成的。所以绘制曲线在坐标系中设立两个点(x1,y1),(x2,y2)时间轴是每个循环加25,纵轴按温度的数据放大比例绘制就可画出一条温度曲线。切当温度大于60℃或者小于20℃时,曲线的颜色会变红,并且声音报警,同时报警灯亮。 图4-2 实时温度显示界面 图4-3 温度记录曲线 图4-4 报警与控制显示界面 4.3 指定参数阀自动控制恒温 当温度高于设定值之后,会通过mscomm向下位机发送1,通过下位机程序改变空调频率达到降温的目的,同时降温指示灯亮,升温指示灯灭。当温度低于设定值之后,会通过mscomm向下位机发送0,通过下位机程序改变空调频率达到升温的目的,同时升温指示灯亮,降温指示灯灭。当温度达到恒定温度是,指示灯灭。 图4-5 恒温值参数阀设定界面 4.4 数据保存程序 保存温度数据到文本文件中,并用箭头表示温度的变化情况。而且是在n=0时才运行本程序,而n是在定时器中运行的一个参数,作用是使记录程序每过特定设置时间运行记录一次,在本设计中是每日4次记录。 图4-6 记录查看按钮 图4-7 文本记录效果 5 总结 随着科技的发展,在各个领域都要用到数据采集系统,其中就包括最普遍的温度的数据采集。传统的温度采集方法费时且精度较差,而如今各个行业对温度数据的要求越来越高,如科研实验室,因此新型的数字温度计大量出现,其中最普遍的是使用传感器和单片机组成采集电路就可以 获得较高的精度要求。 在这种背景下,选择基于VB6.0的数据采集系统这个课题具有很大的现实意义,用VB编写上位机程序,在PC上通过图形界面就能控制下位机即单片机采集温度数据信号,设计直观大方,使用DS18B20高灵敏度的温度传感器采集温度数据,再用AT89C51处理数据,由7位共阳极的LED数码管显示当前温度,并且可以通过串口向上位机传送数据,显示实时温度曲线和把数据存入数据库中,方便查询历史温度记录。读数方便,测量范围广,测温准确。 此外在设计要求的基础上,还做了一定程度的功能扩展,显示当前时间,程序运行的开始时间,结束时间,总运行时间等。可以选择串口和波特率满足不同要求,设置采集间隔时间,显示不同时间范围的温度满足不同场合的测温要求。硬件简单,成本也低。 在设计过程中,对整个系统硬件和软件的分析,采用模块化程序设计的方法, 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图分析设计思路,将系统分成几个模块,最终进行整合,从而实现了基于VB6.0的数据采集系统的设计。 在毕业设计的过程中,针对所要设计的课题,我更加系统的学习了VB6.0语言和C语言,同时使我了解了测温的原理和相关领域的知识。 就个人而言,在这次毕业设计锻炼了个人意志以及在克服困难的毅力,培养了我在一定的压力下进行研究和设计的心理素质,独立处理问题的能路,提高了我查找运用各种参考资料以及与其他人沟通交流解决问题的能力。此外,整个设计过程中由于指导老师的帮助下,开拓了我的思维,提高了将所学知识学以致用的能力。 致 谢 本学位论文是在我的指导老师瞿晓老师的耐心指导下完成的。从论文开题时就给予了许多中肯意见,使我在之后的设计过程中能够少走弯路,事半功倍。同时也感谢浙江科技学院能够提供如此的师资力量和实验室研究条件。瞿老师始终都给予了细心的指导和很大支持,解答了我在设计过程中很多的疑惑,在论文的选题、研究理论、框架结构、数据整理,直至撰写、修改和定稿等各个环节均严格把关,并投入了大量的时间和精力。瞿老师治学严谨,学识渊博,为我营造了一种良好的设计氛围。在跟随瞿老师学习的过程中,丰富了自己的理论知识和学术思想。 很庆幸这些年来我遇到了许多恩师益友,无论在学习上、生活上还是工作上都给予了我无私的帮助和热心的照顾,让我在许多方面都有所成长。感恩之情难以用语言量度,谨对多年来给予我关心与支持的良师益友和亲人们致以最诚挚的谢意! 陶志明 2010年6月10日写于浙江科技学院 参考文献 [1] 张开生,郭国法.《MCS-5单片机温度控制系统的设计》[J] 2005 [2] 沈建华,杨艳琴,翟骁曙.《MSP430 系列16 位超低功耗单片机原理与应用》[M] 2004 [3] 赖寿宏.《微型计算机控制技术》[M] 1994 [4] 王永初.《自动调节系统工程设计》[M] 1983。 [5] 人杰、殷人昆、陶永雷.《实用软件工程(第二版)》[M] 2003 [6] 王运坚.《VISUAL BASIC 6.0 应用指南》[M] 1998 [7] 管丽娜,白海波.《实用Visual Basic6 教程》[M] 2001 [8] 郭军.《网络管理与控制技术》[M] 1999 [9] 何立民.《单片机高级教程》[M] 2001 [10]赵晓安.《MCS-51单片机原理及应用》[M] 2001 [11]李广第.《单片机基础》[M] 1999 [12]徐惠民、安德宁.《单片微型计算机原理接口与应用》[M] 1996 [13]Samsung Electronics. 《S3C44BOX Risc microcontroller ARM instruction sheet》[M] 2002 [14]Hynix Corp. 《HY57V641620HG Data Sheet》[M] 2005 附录 上位机程序 Dim val_str As String Dim val_num As Double Dim x1, y1, x2, y2 As Double Dim sa, sb, temp As Double Dim t1, t2 As Date Dim t_d As Integer Dim n As Integer Private Sub Command1_Click() If MSComm1.PortOpen = False Then 'Label25.Visible = True Label26.Caption = "Open a port first!" Label26.ForeColor = vbRed Else If Timer1.Enabled = False Then Picture1.Cls Timer1.Enabled = True Command1.Caption = "停止" t1 = Time$ Label16.Caption = "开始测量时间:" & t1 Label17.Caption = "停止测量时间: ..." Label24.Caption = " 持续时间: ..." Open App.Path & "\温度测量记录.txt" For Output As #1 Print #1, "--------------------------------------" Print #1, "-------------温度测量记录-------------" Print #1, "-------- " & Date$ & " by TZM ----------" Print #1, "--------------------------------------" Print #1, "-----" & " 时间" & "----------" & "温度" & "----" & "变化趋势--" 'Label23.Visible = False Label23.Enabled = False Label23.ForeColor = &HC0C0C0 Else Timer1.Enabled = False Command1.Caption = "重新开始" t2 = Time$ Label17.Caption = "停止测量时间:" & t2 t_d = DateDiff("s", t1, t2) Label24.Caption = " 持续时间: " & Str$(t_d) & " 秒" 'Picture1.Cls x1 = 0 x2 = 0 Print #1, "--------------------------------------" Close #1 'Shell "notepad.exe 温度测量记录.txt", vbNormalFocus 'Label23.Visible = True Label23.Enabled = True Label23.ForeColor = vbRed End If End If End Sub Private Sub Command2_Click() If MSComm1.PortOpen = False Then MSComm1.Settings = Text3.Text & ",n,8,1" MSComm1.CommPort = Text2.Text MSComm1.InBufferSize = 8 MSComm1.OutBufferSize = 2 MSComm1.RThreshold = 4 MSComm1.SThreshold = 1 MSComm1.InputMode = comInputModeText MSComm1.PortOpen = True MSComm1.InBufferCount = 0 Command2.Caption = "关闭串口" Shape1.BackColor = vbRed Label26.Caption = "COM" & Text2.Text & " is open!" Label26.ForeColor = vbRed Else MSComm1.PortOpen = False Command2.Caption = "打开串口" Shape1.BackColor = &HFFFFFF Label26.Caption = "No port is open!" Label26.ForeColor = vbBlack If Timer1.Enabled = True Then Timer1.Enabled = False Close #1 Picture1.Cls x1 = 0 x2 = 0 Label16.Caption = "开始测量时间: ..." Label17.Caption = "停止测量时间: ..." Label24.Caption = " 持续时间: ..." Command1.Caption = "开始" Label23.Enabled = False Label23.ForeColor = &HC0C0C0 End If End Sub Private Sub Command3_Click() WMP1.Controls.stop Shape2.BackColor = &HFFFFFF Shape3.BackColor = &HFFFFFF End Sub Private Sub Command4_Click() temp = Text4.Text End Sub Private Sub Form_Load() Me.Caption = "恒温控制系统——by TZM" If MSComm1.PortOpen = True Then MSComm1.PortOpen = False x1 = 0 y1 = 0 x2 = 0 Text4.Text = 40 y2 = 0 temp = 40 n = 0 val_num = 0 sa = 0 sb = 0 WMP1.Settings.autoStart = False WMP1.URL = App.Path & "\xine.mp3" End Sub Private Sub Label19_Click() Shell "notepad.exe 温度测量记录.txt", vbNormalFocus End Sub Private Sub Label23_Click() Shell "notepad.exe 温度测量记录.txt", vbNormalFocus 'Label23.Visible = False Label23.Enabled = False Label23.ForeColor = &HC0C0C0 End Sub Private Sub MSComm1_OnComm() Select Case MSComm1.CommEvent Case comEvReceive val_str = MSComm1.Input MSComm1.InBufferCount = 0 Text1.Text = val_str val_num = Val(val_str) If val_num < temp - 1 Then Shape4.BackColor = vbBlue Shape5.BackColor = &HFFFFFF MSComm1.Output = 0 MSComm1.OutBufferCount = 0 ElseIf val_num > temp + 1 Then MSComm1.Output = 1 MSComm1.OutBufferCount = 0 Shape5.BackColor = vbBlue Shape4.BackColor = &HFFFFFF Else Shape4.BackColor = &HFFFFFF Shape5.BackColor = &HFFFFFF End If x1 = x2 y1 = y2 If x2 > Picture1.Width Then Picture1.Cls x1 = 0 x2 = 0 Else x2 = x2 + 25 End If y2 = val_num * 45 If y1 = 0 Then y1 = y2 If val_num > 60 Then Picture1.Line (x1, Picture1.Height - y1)-(x2, Picture1.Height - y2), vbRed Shape2.BackColor = vbRed WMP1.Controls.play ElseIf val_num < 20 Then Shape3.BackColor = vbRed WMP1.Controls.play Picture1.Line (x1, Picture1.Height - y1)-(x2, Picture1.Height - y2), vbRed Else Picture1.Line (x1, Picture1.Height - y1)-(x2, Picture1.Height - y2), vbBlue End If If n = 0 Then Picture1.Circle (x1, Picture1.Height - y1), 25, vbBlack Picture1.Print val_str sa = sb sb = val_num If val_num > 60 Then If sa < sb Then Print #1, "-- " & Time$ & " -- " & val_str & "℃ --" & " (↑) -- " & "(超过警戒上线!)" ElseIf sa = sb Then Print #1, "-- " & Time$ & " -- " & val_str & "℃ --" & " (--) -- " & "(超过警戒上线!)" Else Print #1, "-- " & Time$ & " -- " & val_str & "℃ --" & " (↓) -- " & "(超过警戒上线!)" End If ElseIf val_num < 25 Then If sa < sb Then Print #1, "-- " & Time$ & " -- " & val_str & "℃ --" & " (↑) -- " & "(超过警戒下线!)" ElseIf sa = sb Then Print #1, "-- " & Time$ & " -- " & val_str & "℃ --" & " (--) -- " & "(超过警戒下线!)" Else Print #1, "-- " & Time$ & " -- " & val_str & "℃ --" & " (↓) -- " & "(超过警戒下线!)" End If Else If sa < sb Then Print #1, "-- " & Time$ & " -- " & val_str & "℃ --" & " (↑) -- " ElseIf sa = sb Then Print #1, "-- " & Time$ & " -- " & val_str & "℃ --" & " (--) -- " Else Print #1, "-- " & Time$ & " -- " & val_str & "℃ --" & " (↓) -- " End If End If End If End Select End Sub Private Sub Text4_KeyPress(KeyAscii As Integer) If Not IsNumeric(Chr(KeyAscii)) And Chr(KeyAscii) <> "." Then KeyAscii = 0 End If End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0 End If End Sub Private Sub Text3_KeyPress(KeyAscii As Integer) If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0 End If End Sub Private Sub Timer1_Timer() If n = 1000 Then n = 0 Else n = n + 1 End If End Sub Private Sub Timer2_Timer() Label15.Caption = "当前时间:" & Date$ & " " & Time$ End Sub Private Sub WindowsMediaPlayer1_OpenStateChange(ByVal NewState As Long) End Sub
本文档为【恒温控制器上位机软件开发毕业设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_750082
暂无简介~
格式:doc
大小:277KB
软件:Word
页数:31
分类:互联网
上传时间:2010-12-31
浏览量:52