毕业设计(论文)基于单片机的医用恒温箱的设计

上传人:痛*** 文档编号:79121945 上传时间:2022-04-23 格式:DOC 页数:41 大小:554.03KB
返回 下载 相关 举报
毕业设计(论文)基于单片机的医用恒温箱的设计_第1页
第1页 / 共41页
毕业设计(论文)基于单片机的医用恒温箱的设计_第2页
第2页 / 共41页
毕业设计(论文)基于单片机的医用恒温箱的设计_第3页
第3页 / 共41页
点击查看更多>>
资源描述
安徽工程大学毕业设计(论文)基于单片机的医用恒温箱的设计摘 要随着智能控制技术的不断发展,在现代工农业生产以及科研实验的许多场合,需要及时准确地获取温度信息,并完成对温度的预期控制。单片机在检测和控制系统中得到广泛的应用,温度则是系统需要测量、控制和保持的一个量。因此,对温度系统的设计与研究一直备受广大科研工作者的重视。本设计是基于AT89C52单片机的恒温箱控制系统,系统分为硬件和软件两部分,其中硬件包括:温度传感器、数码管显示、控制和报警的设计;软件包括:键盘管理程序设计、数码管显示程序设计、控制程序设计和温度报警程序设计。编写程序结合硬件进行调试,能够实现设置和调节初始温度值,进行数码管显示,当加热到设定值后立刻报警。另外,本系统通过软件实现对按键误差、加热过冲的调整,以提高系统的安全性、可靠性和稳定性。本设计从实际应用出发选取了体积小、精度相对高的数字式温度传感元件DS18B20作为温度采集器,单片机AT89C51作为主控芯片,数码管作为显示输出,实现了对温度的实时测量与恒定控制。文章从硬件和软件两方面介绍了80C51单片机温度控制系统的设计,对硬件原理图和程序图作了简洁的描述。此次设计的温度控制系统主要是由中央控制器、温度检测器、显示器等模块组成。温度检测部分采用DS18B20温度传感器,用LED数码管做显示器。温度传感器DS18B20采集温度信号送给单片机,单片机对信号进行相应处理,并把温度数据送LED显示,从而实现对温度控制的目的。关键词:80C51单片机;恒温箱;温度控制 IDesign for Constant Temperature System Of Intelligent Based on MCU SystemAbstract With the continuous development of intelligent control technology, it is necessary to know temperature information correctly and immediately in modern industry, agriculture, research and experiment, and accomplish control to the temperature. Thus MCU get wide application in measurement and control system. Temperature is a number which needs system to detect, control and keep. Therefore many researchers always attach much importance to the design and research of temperature system. Taking a strong function 8 bit MCU80C51 which is introduced by ATMEL company for core, temperature-automatic control system aims to design a temperature controller for grain situation witch has those functions: flexible temperature set, figure display, voice alert, etc. After modified, it can be used to control other numbers . The paper gives an introduction about the design of MCU-80C51 temperature control system in software and hardware. The paper also briefly describes the hardware schematic graphic and program chart. The temperature control system of this design is mainly composed by central controller, temperature detector, display, etc. in the temperature detecting part, it adopts temperature sensor DS18B20, and displays with LED digital tube. The temperature sensor DS18B20 capture temperature signal and send to MCU. Then MCU processes these signals and transmits temperature data to LED displaying. Thereby it realizes the purpose to control temperature.Key Words: MCU80C51;Incubator;Temperature control目录引 言1第1章 绪论21.1 课题研究的背景21.2 课题研究的意义21.3 课题研究的内容2第2章 智能恒温箱的系统概述42.1 系统的主要功能42.2 系统需求分析52.3 智能恒温箱的工作流程52.4 恒温箱的工作过程72.5 本章小结7第3章 智能恒温箱的硬件设计83.1 硬件的电路设计概述83.2 总体硬件原理图83.3 时钟电路设计103.4 复位电路设计103.5 显示电路的设计113.5.1 显示电路概述113.5.2 七段LED数码管的原理113.5.3 显示电路整体设计133.6 开关键盘设计143.6.1 指拨开关143.6.2 按键开关143.7 指示灯电路153.8 温度采集电路163.9 本章小结19第4章 软件设计204.1 软件任务分析204.2 程序流程图204.3 本章小结25结论与展望26致 谢27参考文献28附录A PROTUES仿真图29硬件原理图30附录B 一篇引用的外文文献及其译文3180C5133附录C 主要参考文献题录及摘要37附录D 主要源程序39插图清单图2-1 系统主要功能模块方框图4图2-2 恒温箱工作流程6图3-1 总体硬件原理图9图3-2 外部振荡电路10图3-3 硬件复位电路11图3-4 一位共阴极数码管引脚图12图3-5 显示电路13图3-6 开关电路14图3-7 按键抖动电压波形15图3-9 温度指示灯电路16图3-10温度采集电路16图4-1 主程序流程图21图4-2 温度设定子程序流程图22图4-3 温度采集计算子程序流程图23图4-4 温度比较处理子程序流程图24图4-5 温度显示子程序流程图24表格清单表3-1 七段显示译码器的真值表及段码表12表3-2 DS18B20暂存器字节分配19- 35 -引言 温度控制系统广泛应用于社会生活的各个领域 ,如家电、汽车、材料、电力电子等 ,常用的控制电路根据应用场合和所要求的性能指标有所不同 ,在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题,开发出性能较好的温度控制系统对于测控技术的发展具有很大的意义。采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。更能串接多个数字温度传感器DS18B20进行多范围的温度检测。 由于单片机功能强大,可大大加快系统的开发与调试速度,并具有控制方便、简单、灵活等特点,因此本设计硬件电路以80C51单片机为核心来实现温度控制,具有实用性强、可靠性强等特点。第1章 绪论1.1 课题研究的背景二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,是随着超大规模集成电路技术的发展而诞生的。由于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化。智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。它迅猛的发展到了各个领域,人们也越来越感到应用单片机技术的优越性,因而单片机也得到了广泛的应用。同时,它也不断地完善和发展。智能恒温箱的温度是医疗、工业生产和食品加工等领域的关键,因此对温度的测量及控制始终占据着重要的地位。市场上常见的温度传感器以电压输出为主要形式,不同的的传感器其非线性曲线也各不相同,缺乏一个产品应具备的通用性和互换性。温度传感器应用范围很广、使用数量很大,但是在常规的环境参数中由于温度受其它因素影响较大,而且难以校准,因此,温度也是最难准确测量的一个参数。常规方法测量温度误差大、准确度低、测量滞后的时间长。今年来,国内传感器正向着集成化、智能化、网络化和单片机的方向发展,为开发新一代温度测量系统创造了有利条件。在智能恒温箱控制系统的设计中,用数字传感器将温度信号以数字信号的方式传送给单片机,经单片机处理后的温度数值,一方面送LED数码管显示;另一方面与给定值经行比较,判断温度高低,从而采取相应的措施:加热或者制冷。使温度达到设定值。智能恒温箱主要是用来控制温度,他为农业研究、生物技术、测试提供所需的各种环境模拟条件,因此可广泛适用于药物、纺织、食品加工等无菌试验、稳定性检查以及工业产品的原料性能、产品包装、产品寿命等测试。随着单片机技术的飞速发展,通过单片机对被控制对象控制日益广泛,具有体积小、功能强、性价比高等特点,把单片机应用于温度控制系统中可以起到更好的控温作用,智能恒温箱是使用单片机进行温度控制的典型应用,采用单片机做主控单元可完成对温度的采集和控制等的要求。1.2 课题研究的意义智能恒温箱的性能在很大程度上取决于对温度的控制性能,本课题采用单片机为主控制器,通过数字传感器测得箱内温度,再将温度信号送入主控制器,来完成恒温箱的温度控制系统的硬件。箱内温度可保持在设定的温度范围内,当设置的温度低于实时温度时,单片机送出加热信号;当设置的温度低于实时温度时,单片机送出制冷信号。1.3 课题研究的内容本次课题只设计温度采集,温度显示,和温度控制信号的送出部分,对于如何保温,如何加热和制冷不在此次设计的范围内。本系统采用模块化设计智能恒温箱,系统上电后默认设定的恒温温度为20,使用时可以自行调节预期的恒温温度,调节范围为099。调节好后系统会将采集来的实时温度与设定的预期温度进行比较,如果实时温度比设定温度高就开启制冷设备,如果实时温度比预期温度低就开启加热设备。如果温度一样则不开启加热或制冷设备。在显示电路上通常显示的是实时的温度,即传感器采集来的温度,如果想要显示人们设定的预期温度可以按显示切换键,这时显示器上就会显示预期温度,几秒钟后跳回,显示实时温度。显示实时温度时,表示显示的是实时温度的发光二极管点亮。而显示预期温度的时候,表示显示的是预期温度的发光二极管点亮。本论文章节的结构和内容如下:第一章 :绪论。简要介绍了智能恒温箱的发展现状,说明了课题研究的内容。第二章 :智能恒温箱的概述。说明了恒温箱的工作过程和主要功能,介绍了设计中需要用的单片机的基础知识,确定了本课题要达到的设计目标。第三章 :智能恒温箱的硬件电路设计。详细描述了本课题各个组成电路单元的设计。第四章 :智能恒温箱的软件设计。编写程序。第五章 :总结。总结本次设计,指出设计中的一些问题,提出改善意见,并展望未来的设计。第2章 智能恒温箱的系统概述2.1 系统的主要功能本系统是借用单片机采用模块化设计的智能恒温箱,包括温度设定按钮,温度显示,温度调节,实时温度显示和预定温度显示转换按钮,温度采集等(根据需要也可另设或者多设相关功能)。显示系统除了显示实时的温度还能显示设定的温度,也就是人们想要保持的温度。系统的主要功能模块方框图如图2-1所示。时钟复位电路2位七段数码管显示80C51单片机进入温度设 定,温度加、减按键输入电路2个发光二极管显示温度调节电路温度采集电路显示切换按键电路图2-1 系统主要功能模块方框图本系统是采用模块化设计的智能恒温箱,在生活中有广泛的应用,系统上电后默认设定的恒温温度为20,使用时可以自行调节预期的恒温温度,调节范围为099。调节好后系统会将采集来的实时温度与设定的预期温度进行比较,如果实时温度比设定温度高就开启制冷设备,如果实时温度比预期温度低就开启加热设备。如果温度一样则不开启加热或制冷设备。在显示电路上通常显示的是实时的温度,即传感器采集来的温度,如果想要显示人们设定的预期温度可以按显示切换键,这是显示器上就会显示预期温度,几秒钟后跳回,显示实时温度。显示实时温度时,表示显示的是实时温度的发光二极管点亮。而显示预期温度的时候,表示显示的是预期温度的发光二极管点亮。单片机整个恒温箱的核心,内部电路设计用汇编语言编写。它完成了温度参数设定,温度采集计算,温度显示,温度比较,温度调节等功能。2.2 系统需求分析1. 在使用中可以将采集来的温度数据计算转换为我们熟悉的摄氏温度。2. 在099的范围内,人们可以自由调节预期达到的温度。3. 可以将实时温度与预期温度进行比对,以正常调节温度。4. 将设定的预期温度和实时温度能显示出来。5. 通常显示实时温度,当按下显示切换键后能显示几秒钟的预期温度。2.3 智能恒温箱的工作流程智能恒温箱的基本工作原理:在使用恒温箱时,系统会将从温度传感器采集来的温度转化为摄氏度的形式,与事先设定的预期温度进行比对,然后根据比对的结果采取相应的措施(加热,或制冷)来不断地接近以至于达到预期的温度。并且系统能够显示实时的温度和设定的预期温度。恒温箱的工作流程如图2-2所示:加载程序运行进入温度设定不进行温度设定温度减温度加温度采集与计算温度比较并进行温度调节显示实时温度无显示切换显示切换显示设定温度图2-2 恒温箱工作流程2.4 恒温箱的工作过程1. 设定预期温度。如果想调节预期的温度,先闭合“温度设定”开关,进入调节状态,此时会显示设定的温度值,如果想加一摄氏度就按下“加1”键,如果想减一摄氏度就按一下“减1”键,温度LED显示器上会显示改变后的温度,调整范围为099。0时再减1会跳到99,99时再加1会跳到0。要退出调节状态,断开“温度设定”开关即可。2. 温度采集和计算。单片机通过与温度传感器进行通信,获取实时温度信息,并将所获取的温度信息数据转化为摄氏温度的形式存储起来。3. 温度比较和温度调节。将存储的实时摄氏温度与设定的预期温度经行比较。如果实时温度高于设定温度,则开启制冷器;如果实时温度低于设定温度,则开启加热器。4. 实时温度显示。将存储的实时温度显示在LED数码管上。5. 设定温度显示。若想查看设定的预期温度,则需按下“温度显示切换”按键,然后LED显示器就会显示设定预期的温度,显示时间为数秒,跳出预期温度的显示。若再想查看预期温度显示需再次按下“温度显示切换”按键。总而言之,本课题利用80C51单片机及外围接口实现的温度控制系统设计了恒温箱,该恒温箱提高了系统的可靠性,简化了电路结构,节约了成本,是一个实用的工程设计。2.5 本章小结本章主要讲述了恒温箱的工作原理和本设计系统的工作流程。在说明工作原理的过程中,突出了电路的组成单元以及这些单元如何实现温度采集和温度控制等功能。在说明系统流程时,结合本设计的内容,指出了参数设置的方法和意义。第3章 智能恒温箱的硬件设计3.1 硬件电路设计概述本设计分为硬件设计和软件设计,这两者相互结合,不可分离:从时间上看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要做一些修改。只要技术准备充分,硬件设计的大量返工是比较少的,软件设计的任务是贯彻始终的,到中后期基本上都是软件设计任务,随着集成电路计数器的飞速发展,各种功能很强的芯片不断出现,使硬件电路的集成度越来越高,硬件设计的工作量在整个项目中所占的比重逐渐下降,为使硬件电路设计尽可能合理,应注意以下几个方面:1. 尽可能采用功能强的芯片,以简化电路。功能强的芯片可以代替若干个普通芯片,随着生产工艺的提高,新型芯片的价格在不断下降,并不一定比若干个普通芯片价格总和高。2. 留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。3. 程序空间。选用片内程序空间足够大的单片机,本设计采用80C51单片机。4. RAM空间,80C51单片机内部RAM不多,当要增强软件数据处理功能时,往往觉得不足。如果系统配置了外部RAM,则建议多留一些空间。如果选用8155作I/O接口,就可以增强256字节RAM。如果有大批数据需要处理,则应配置足够的RAM,如6264、62256等。随着软件设计水平提高,往往只要改变或者增加软件中的数据处理算法,就可以使系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。只要在硬件电路设计初期考虑到这一点,就应该为系统将来升级留有足够的RAM空间,哪怕多设计一个RAM插座,暂时不插芯片也好。I/O端口,在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。如果有些新的信号需要采集,就必须增加输入检测端:有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,那么要用的时候就能派上用场了。3.2 总体硬件原理图 总体硬件原理图如图3-1所示,图中主要部分U1芯片为80C51单片机,U2为温度传感器DS18B20。温度传感器接到单片机的P1.2口。两个发光二极管“HEAT”和“COOL”分别表示传送给加热器和制冷器的启动信号,分别接到单片机的P1.0,P1.1口。如果“HEAT”灯点亮表示加热器在工作;如果“COOL”灯点亮表示制冷器在工作。按键“温度显示切换”是用于切换显示预设的温度的按键,接单片机的P2.7口。还有两个发光二极管分别是“实时温度”和“设定温度”,表示当前数码管显示的是实时温度还是设定温度,若“实时温度”的发光二极管点亮表示数码管显示的实时温度,若“设定温度”的发光二极管点亮则图3-1 总体硬件原理图则表示数码管当前显示的是设定温度。两个数码管分别接单片机的P2.6,P2.5口。图中有两个七段共阴数码管,它的字段码信号端口接到单片机的P0.0P0.6口,公共端接单片机的P2.0和P2.1口。开关“温度设定”接单片机的P2.2口,按钮“加1”和“减1”分别接单片机的P2.3和P2.4口。按闭合“温度设定”开关进入预期温度的设定,按“加1”,“减1”按钮来加减温度。3.3 时钟频率电路设计单片机必须在时钟的驱动下才能工作,在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定周期的时钟信号送到单片机内部的各个单元,决定单片的工作频率,时钟电路如图3-2 所示。图3-2 外部振荡电路 一般选用石英晶体振荡器。此电路大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要有石英晶体的频率确定。电路中两个电容C1、C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1、C2的典型值为30pF。单片机工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期,其大小是时钟信号频率的倒数,时钟信号频率常用fosc表示。图中时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12s。3.4 复位电路设计单片机的第9脚RST为硬件复位电路,只要在该端加上持续4个机器周期的高电平即可实现复位,复位后单片机的各个状态都恢复到初始化状态,其电路图如图3-3所示。图3-3中由按键以及电容C1、电阻R1、R2构成上电复位及手动电路。由于单片机是高电平复位,所以上电复位时,接通电源即可,当上电后,由于电容C1开始缓缓充电,则图中电路由5V电源到电容到电阻R1和地之间形成一个通路,由于在R1上产生电压降,则单片机的RST脚上为高电平,经过一段时间后电容的电充满,此时C1处可视为断路,单片机RST脚处电压逐渐降为0V,即处于稳定的低电平状态,此时单片机完成上电复位,程序从0000H开始执行。手动复位时,按一下图中的按钮即可,当按键按下的时候,单片机的9脚RST管脚处于高电平,此时单片机处于复位状态。值得注意的是,在设计当中使用到了硬件复位电路和软件复位两种功能,由上面所述的硬件复位之后的各状态可知,寄存器的值都恢复到了初始值,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能实现的前提条件就是不能对单片机进行硬件复位,所以设定了软件复位功能。软件复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。 图3-3 硬件复位电路3.5 显示电路的设计3.5.1 显示电路概述示功能与硬件关系极大,在这里我们使用的是七段数码管显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,一种是动态扫描。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态扫描的特点是显示稳定程度没有静态显示好,程序编写复杂,但是相对静态显示而言最大的优点是占用端口资源少。由于本设计需要较多的端口用于其它的功能因此采用占用端口少的动态扫描显示的办法。以下将对显示电路的各个部件及整体设计做详细的介绍。3.5.2 七段LED数码管的原理LED数码管显示器由8个发光二极管中的7个长条发光二极管(称七笔段)按a、b、c、d、e、f、g顺序组成“8”字形,另一个点形的发光二极管放在右下方,用来显示小数点。数码管按内部连接方式又分为共阳极数码管和共阴极数码管两种。若内部8个发光二极管的阳极连在一起接电源正极,就成为共阳极数码管;若8个发光二极管的阴极连在一起接地,测称为共阴极数码管。本次设计所用的到的共阴极数码管的引脚如图3-4所示,外部有10个引脚,其中1和6引脚连通,作为公共端接地。图3-4 一位共阴极数码管引脚图从LED数码的结构可以看出,不同笔段的组合就何以构成不同的字符,例如笔段b、c被点亮时,就可以显示数字1:当笔段a、b、c被点亮时,就可以显示数字7;只要控制7个发光二极管按一定要求亮与灭,就能显示出十六进制字符0F。将控制数码管显示字符的各字段代码称为显示代码或字段码。数码管显示码是表述二进制数与数码管所显示字符的对应关系的,如表3-1所示。对于共阴极数码管,由于8个发光二极管的阴极已连在一起接地,所以,只要控制各字段的正极,就可以控制发光二极管的亮与灭。表3-1 七段显示译码器的真值表及段码表字 符h g f e d c b a字段码01 1 0 0 0 0 0 00 0 1 1 1 1 1 1共阳字码段C0H共阴字码段3FH11 1 1 1 1 0 0 10 0 0 0 0 1 1 0共阳字码段F9H共阴字码段06H21 0 1 0 0 1 0 00 1 0 1 1 0 1 1共阳字码段A4H共阴字码段5BH31 0 1 1 0 0 0 00 1 0 0 1 1 1 1共阳字码段B0H共阴字码段4FH41 0 0 1 1 0 0 10 1 1 0 0 1 1 0共阳字码段99H共阴字码段66H51 0 0 1 0 0 1 00 1 1 0 1 1 0 1共阳字码段92H共阴字码段6DH61 0 0 0 0 0 1 00 1 1 1 1 1 0 1共阳字码段82H共阴字码段7DH71 1 1 1 1 0 0 00 0 0 0 0 1 1 1共阳字码段F8H共阴字码段07H81 0 0 0 0 0 0 00 1 1 1 1 1 1 1共阳字码段80H共阴字码段7FH91 0 0 1 0 0 0 00 1 1 0 1 1 1 1共阳字码段90H共阴字码段6FHA1 0 0 0 1 0 0 00 1 1 1 0 1 1 1共阳字码段88H共阴字码段77HB1 0 0 0 0 0 1 10 1 1 1 1 1 0 0 共阳字码段83H共阴字码段7CHC1 1 0 0 0 1 1 00 0 1 1 1 0 0 1共阳字码段C6H共阴字码段39HD1 0 1 0 0 0 0 10 1 0 1 1 1 1 1共阳字码段A1H共阴字码段5EHE1 0 0 0 0 1 1 00 1 1 1 1 0 0 1共阳字码段86H共阴字码段79HF1 0 0 0 1 1 1 00 1 1 1 0 0 0 1共阳字码段8EH共阴字码段71H3.5.3 显示电路整体设计显示电路如图3-5 所示:图3-5 显示电路图中RP1为电阻盒,相当于8个独立的电阻的一端接在一起并接电源,另外一端分别接出引线,在显示电路中作为上拉电阻。图中有2个七段LED数码管,它们的公共端1、2分别接到单片机的P2.0、P2.1口,单片机的这2个I/O口输出位选信号用于动态扫描。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个LED数码管的公共端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位数码管的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。而单片机的P0.0P0.6口则负责将字段码数据传送给LED数码管。3.6 开关键盘设计3.6.1 指拨开关指拨开关面板上通常会标有“ON”或其他记号,若将开关拨到“ON”的一边,则接点接通(on),拨到另一边则为断开(off)。若要以开关作为输入电路,通常会接一个电阻到Vcc或GND,做上拉电阻或下拉电阻,如图3-6所示有两种开关电路可供选择。 a) b)图3-6 开关电路本设计的温度设定允许和退出按键是选用如图3-6中a)所示的设计,低电平为进入温度设定,高电平为退出温度设定。3.6.2 按键开关 按键开关为机械弹性开关,当按下键帽时,按键内的复位弹簧片被压缩,动片触电与静片触电相连,键盘的两个引脚被接通;松手后,复位弹簧将动片弹开,使动片与静片脱离接触,键盘的两个引脚被断开。由于机械接触点的弹性作用,一个按键从开始接上至接触稳定要经过510ms的抖动时间,在此期间,有抖动发生。按键抖动波形如图3-7所示。 图3-7按键抖动电压波形按键开关输入需要解决的两个主要问题是判断是否有按键按下和消除按键抖动的影响。按键的确认反映在电压上,就是和按键相连的引脚呈现出高电平还是低电平。消除按键的抖动通常有硬件、软件两种消除方法。一般在按键较多时,采用软件的方法消除抖动,即在第一次检测到有按键按下时,执行一段延时1215ms的子程序后,再确认该键电平是否任保持为闭合状态电平,如果保持为闭合状态电平就可以确认真有按键按下,从而消除抖动的影响。一般电子装置中都设计有按键输入,用以控制程序执行时数据的输入或是特殊功能的设置及操作。在控制电路中,如果按键数不多是可以使用一个按键对应一条输入位线控制,即独立式按键。这种接法,一根输入线上的按键是否被按下,不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态就可以很容易判断哪个键按下了。独立式按键可以用单稳态锁存器消除抖动。如果监控程序中的读键操作安排在主程序(后台程序)或键盘中断(外部中断)子程序中,则该延时子程序便可直接插入读键过程中。如果读键过程安排在定时中断子程序中,就可省去专门的延时子程序,利用两次定时中断的时间间隔来完成抖动处理。3.7 指示灯电路在实时温度和设定温度切换时,为了明白LED数码管显示的是哪种温度,可以用两个发光二极管来指示,如果标有“实时温度”标记的发光二极管点亮,则表示数码管显示的是实时温度,如果标有“设定温度”标记的发光二极管点亮,则表示数码管显示的是设定温度。这样就不至于混淆了。如图3-9所示为温度指示灯电路。图3-9 温度指示灯电路图中两个发光二极管分别与单片机的P2.6,P2.5口相连,单片机把显示何种温度的信号送给这两个口,对应的发光二极管就会点亮,信号为低电平有效。3.8 温度采集电路温度采集电路如图3-10所示:图3-10 温度采集电路图中U2为温度采集电路的核心部件,温度传感器DS18B20,下面将详细介绍它的参数和用法。DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。初始时,温度寄存器被预置成-55,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1,这个过程重复进行,直到计数器2计数到0时便停止。初始时,计数器1预置的是与-55相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1计数器所需要的计数个数。DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25进行比较,若低于0.25,温度寄存器的最低位就置0;若高于0.25,最低位就置1;若高于0.75时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5,四舍五入最大量化误差为1/2LSB,即0.25。温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。测温结束时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占据第二字节。DS18B20测量温度时使用特有的温度测量技术。DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。当计数门打开时,DS18B20进行计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性度加以补偿。测量结果存入温度寄存器中。一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。DS18B20工作过程一般遵循以下协议:初始化ROM操作命令存储器操作命令处理数据 初始化单总线上的所有处理均从初始化序列开始。初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。存在脉冲让总线控制器知道DS1820 在总线上且已准备好操作。 ROM操作命令一旦总线主机检测到从属器件的存在,它便可以发出器件ROM操作命令之一。所有ROM操作命令均为8位长。这些命令列表如下:Read ROM(读ROM)33H此命令允许总线主机读DS18B20的8位产品系列编码,唯一的48位序列号,以及8位的CRC。此命令只能在总线上仅有一个DS18B20的情况下可以使用。如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将发生数据冲突的现象(漏极开路会产生线与的结果)。Match ROM( 符合ROM)55H此命令后继以64位的ROM数据序列,允许总线主机对多点总线上特定的DS18B20寻址。只有与64位ROM序列严格相符的DS18B20才能对后继的存贮器操作命令作出响应。所有与64位ROM序列不符的从片将等待复位脉冲。此命令在总线上有单个或多个器件的情况下均可使用。Skip ROM( 跳过ROM )CCH在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。如果在总线上存在多于一个的从属器件而且在Skip ROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。Search ROM( 搜索ROM)F0H当系统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知道其64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。Alarm Search(告警搜索)ECH此命令的流程与搜索ROM命令相同。但是,仅在最近一次温度测量出现告警的情况下,DS18B20才对此命令作出响应。告警的条件定义为温度高于TH 或低于TL。只要DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变TH或TL的设置,使得测量值再一次位于允许的范围之内。贮存在EEPROM内的触发器值用于告警。 存储器操作命令Write Scratchpad(写暂存存储器)4EH这个命令向DS18B20的暂存器中写入数据,开始位置在地址2。接下来写入的两个字节将被存到暂存器中的地址位置2和3。可以在任何时刻发出复位命令来中止写入。Read Scratchpad(读暂存存储器)BEH这个命令读取暂存器的内容。读取将从字节0开始,一直进行下去,直到第9(字节8,CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。Copy Scratchpad(复制暂存存储器)48H这条命令把暂存器的内容拷贝到DS18B20的E2存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又正在忙于把暂存器拷贝到E2存储器,DS18B20就会输出一个“0”,如果拷贝结束的话,DS18B20 则输出“1”。如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10ms。Convert T(温度变换)44H这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。Recall E2(重新调整E2)B8H这条命令把贮存在E2中温度触发器的值重新调至暂存存储器。这种重新调出的操作在对DS18B20上电时也自动发生,因此只要器件一上电,暂存存储器内就有了有效的数据。在这条命令发出之后,对于所发出的第一个读数据时间片,器件会输出温度转换忙的标识:“0”=忙,“1”=准备就绪。Read Power Supply(读电源)B4H对于在此命令发送至DS18B20之后所发出的第一读数据的时间片,器件都会给出其电源方式的信号:“0”=寄生电源供电,“1”=外部电源供电。 处理数据DS18B20的高速暂存存储器由9个字节组成,其分配如表3-2所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。表3-2 DS18B20暂存器字节分配温度/二进制表示十六进制表示符号位(5位)数据位(11位)+1250 0 0 0 01 1 1 1 1 0 1 0 0 0 007D0H+25.06250 0 0 0 00 0 1 1 0 0 1 0 0 0 10191H+10.1250 0 0 0 00 0 0 1 0 1 0 0 0 1 000A2H+0.50 0 0 0 00 0 0 0 0 0 0 1 0 0 00008H00 0 0 0 00 0 0 0 0 0 0 0 0 0 00000H-0.51 1 1 1 11 1 1 1 1 1 1 1 0 0 0FFF8H-10.1251 1 1 1 11 1 1 0 1 0 1 1 1 1 0FF5EH-25.6251 1 1 1 11 1 0 0 1 1 0 1 1 1 1FE6FH-551 1 1 1 11 0 0 1 0 0 1 0 0 0 0FC90H 上表是DS18B20温度采集转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于或等于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。温度转换计算方法举例:例如当DS18B20采集到+125的实际温度后,输出为07D0H,则:实际温度=07D0H0.0625=20000.0625=125.0。例如当DS18B20采集到-55的实际温度后,输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作为计算),则:实际温度=370H0.0625=8800.0625=55.0。3.9 本章小结本章详细的讲述了以80C51为核心元件的恒温箱的硬件电路具体设计过程,分析了具体电路的工作原理。在设计过程中,实现温度控制的是通过编写程序的方法集成在80C51内部。接着将程序下载到硬件电路中,配合周边的温度采集电路,时钟电路,温度控制电路,显示电路等,制作出符合设计要求的恒温箱。第4章 软件设计4.1 软件任务分析软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,使在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。在对各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。各执行模块规划好后,就可以设计监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比较难一样。软件任务分析的另一个内容是如何安排监控软件和执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延时几十毫秒甚至几百毫秒也没关系,故通常将监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。4.2 程序流程图在本程序中包括了以下主要的程序,主程序,温度设定子程序,温度读取及转换子程序,显示温度子程序,比较温度子程序,显示切换子程序。主程序流程图如图4-1所示:图4-1 主程序流程图温度设定子程序流程图如图4-2所示:图4-2 温度设定子程序流程图温度采集计算子程序如图4-3所示:图4-3 温度采集计算子程序流程图温度比较处理子程序流程图如图4-4所示读取实时温度值实时温度与设定温度相等吗?实时温度比设定值大?开启制冷开启加热N返回NYY图4-4 温度比较处理子程序流程图温度显示子程序如图4-5所示:选通十位地址,送显示字符延时约12ms选通个位地址,送显示字符延时约12ms返回图4-5 温度显示子程序根据这些流程图编写出的最终源程序见附录D4.3 本章小结本章是恒温箱的软件设计,实现恒温箱的主要功能是通过编写程序的方法集成在80C51内部。将程序下载到硬件电路中,实现温控功能。结论与展望三个多月的毕业设计即将结束了,我深刻感受到专业知识的缺乏,同时,在整个设计过程中我也感受到自身知识的进步,特别是在单片机控制系统方面。设计是以80C51单片机为核心进行的,数据采样模块采用可直接输出数字量的数字温度传感器DS18B20,使系统的软、硬件都简化了很多;采用继电器驱动模块作为为系统的降温部分,大大地简化了系统硬件电路。通过对风机的控制可实现粮库温度的自动控制。由于采用数字温度传感器DS18B20采集温度,所以,详细介绍了DS18B20的运用;软件设计方面采用汇编语言对系统的软件编程,为了便于编写、调试、修改和增删,系统软件的编制采用了模块化的设计方法。鉴于温度控制的发展趋势,在以后的实践中对系统还要做进一步的改进:硬件方面,采用DSP, ARM或者利用第一章提到的片上系统SOC对系统的硬件进行重新设计,软件方面,摒弃传统的前后台系统软件编程模式,改用基于实时操作系统的系统软件开发;控制算法方面,尝试采用现在得到快速发展的智能控制方法,如模糊控制、神经网络控制和模糊PID控制等等。致谢本课题是在代广珍导师的悉心指导下完成的,从论文的选题、系统设计、到修改定稿都没有离开代老师的无私帮助,通过本次设计,本人在代老师的指引下学到了许多知识,这些是在平时的学习中得不到的知识,他严谨的治学态度、渊博的学识和悉心的指导使我受益非浅。在此,向代老师表以崇高的敬意和由衷的感谢!还要感谢各位评阅老师,经过你们的认真评阅和指正,将会使我的设计的系统更加完善。在此,我向你们致以最诚挚的谢意!安徽工程大学电气工程学院的老师们,在平时严谨的治学和勤恳的教育,让我
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!