《基于单片机的智能恒温箱设计毕业设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能恒温箱设计毕业设计.doc(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 基于单片机的智能恒温箱设计毕业设计目录摘要IAbstractII目录III前言- 1 -1 绪论- 2 -1.1 课题研究的背景- 2 -1.2 课题研究的意义- 3 -1.3 课题研究的容- 3 -2 恒温箱的系统概述- 5 -2.1 系统的主要功能- 5 -2.2 系统需求分析- 6 -2.3 智能恒温箱的工作流程- 6 -2.4 恒温箱的工作过程- 8 -2.5 本章小结- 8 -3 智能恒温箱的硬件设计- 9 -3.1 MCS-51单片机简介- 9 -3.2 硬件电路设计概述- 11 -3.3 时钟频率电路设计- 12 -3.4 复位电路设计- 13 -3.5 显示电路的设计- 14
2、 -3.5.1 显示电路概述- 14 -3.5.2 七段LED数码管的原理- 15 -3.5.3 显示电路整体设计- 16 -3.6 开关键盘设计- 17 -3.6.1 指拨开关- 17 -3.7 指示灯电路- 18 -3.8 温度采集电路- 19 -3.9 总体硬件原理图- 20 -3.10 本章小结- 21 -4 系统软件设计- 22 -4.1 软件任务分析- 22 -4.2 程序流程图- 23 -4.3 本章小结- 27 -5 软件调试与仿真- 28 -5.1 Keil软件调试- 28 -5.2 PROTEUS软件调试- 29 -5.3 PROTEUS仿真- 31 -5.4 本章小结-
3、33 -结论- 34 -致谢- 35 -参考文献- 36 -附件1 总体硬件原理图- 37 -附件2 程序清单- 38 - 44 - / 47前言温度控制系统广泛应用于社会生活的各个领域 ,如家电产品、汽车、材料、电力电子等 ,常用的控制电路根据应用场合和所要求的性能指标有所不同 ,在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题,开发出性能较好的温度控制系统对于测控技术的发展具有很大的意义。采用数字温度传感器DS18B20,因其部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数字温度传感器DS1
4、8B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。更能串接多个数字温度传感器DS18B20进行多围的温度检测。由于单片机功能强大,可大大加快系统的开发与调试速度,并具有控制方便、简单、灵活等特点,因此本设计硬件电路以80C51单片机为核心来实现温度控制,具有实用性强、可靠性强等特点。1 绪论1.1 课题研究的背景21世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,是随着超大规模集
5、成电路技术的发展而诞生的。由于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化。智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。它迅猛的发展到了各个领域,人们也越来越感到应用单片机技术的优越性,因而单片机也得到了广泛的应用。同时,它也不断地完善和发展。智能恒温箱的温度是医疗、工业生产和食品加工等领域的关键,因此对温度的测量与控制始终占据着重要的地位。市场上常见的温度传感器以电压输出为主要形式,不同的传感器其非线性曲线也各不相同,缺乏一个产品应具备的通用性和互换性。温度传感器应用围很广、使用数量很大,
6、但是在常规的环境参数中由于温度受其它因素影响较大,而且难以校准,因此,温度也是最难准确测量的一个参数。常规方法测量温度误差大、准确度低、测量滞后的时间长。近年来,国传感器正向着集成化、智能化、网络化和单片机的方向发展,为开发新一代温度测量系统创造了有利条件。在智能恒温箱控制系统的设计中,用数字传感器将温度信号以数字信号的方式传送给单片机,经单片机处理后的温度数值,一方面送LED数码管显示;另一方面与给定值经行比较,判断温度高低,从而采取相应的措施:加热或者制冷。使温度达到设定值。智能恒温箱主要是用来控制温度,他为农业研究、生物技术、测试提供所需的各种环境模拟条件,因此可广泛适用于药物、纺织、食
7、品加工等无菌试验、稳定性检查以与工业产品的原料性能、产品包装、产品寿命等测试。随着单片机技术的飞速发展,通过单片机对被控制对象控制日益广泛,具有体积小、功能强、性价比高等特点,把单片机应用于温度控制系统中可以起到更好的控温作用,智能恒温箱是使用单片机进行温度控制的典型应用,采用单片机做主控单元可完成对温度的采集和控制等的要求。1.2 课题研究的意义智能恒温箱的性能主要取决于对温度控制的性能,本课题采用单片机为主控制器,通过数字传感器测得箱温度,再将温度信号送入主控制器,来完成恒温箱的温度控制系统的硬件。箱温度可保持在设定的温度围。当设置的温度高于实时温时,单片机送出加热信号;当设置的温度低于实
8、时温度时,单片机送出制冷信号。1.3 课题研究的容本次课题只设计温度采集,温度显示,和温度控制信号的送出部分,对于如何保温,如何加热和制冷不在此次设计的围。本系统采用模块化设计智能恒温箱,系统上电后默认设定的恒温温度为20,使用时可以自行调节预期的恒温温度,调节围为099。调节好后系统会将采集来的实时温度与设定的预期温度进行比较,如果实时温度比设定温度高就开启制冷设备,如果实时温度比预期温度低就开启加热设备。如果温度一样则不开启加热或制冷设备。在显示电路上通常显示的是实时的温度,即传感器采集来的温度,如果想要显示人们设定的预期温度可以按显示切换键,这时显示器上就会显示预期温度,几秒钟后跳回,显
9、示实时温度。显示实时温度时,表示显示的是实时温度的发光二极管点亮。而显示预期温度的时候,表示显示的是预期温度的发光二极管点亮。本论文章节的结构和容如下:1.绪论。简要介绍了智能恒温箱的发展现状,说明了课题研究的容。2.智能恒温箱的概述。说明了恒温箱的工作过程和主要功能,介绍了设计中需要用的单片机的基础知识,确定了本课题要达到的设计目标。3.智能恒温箱的硬件电路设计。详细描述了本课题各个组成电路单元的设计。4.智能恒温箱的软件设计。编写程序。5.软件调试与仿真。安装软件,设置软件并录入程序调试。绘制电路图并作电气检测,导入程序进行仿真。6.结论。总结本次设计,指出设计中的一些问题,提出改善意见,
10、并展望未来的设计。2恒温箱的系统概述2.1 系统的主要功能本系统是借用单片机采用模块化设计的智能恒温箱,包括温度设定按钮、温度显示、温度调节、实时温度显示和预定温度显示转换按钮、温度采集等(根据需要也可另设或者多设相关功能)。显示系统除了显示实时的温度还能显示设定的温度,也就是人们想要保持的温度。系统的主要功能模块方框图如图2.1所示。图2.1 系统主要功能模块框图本系统是采用模块化设计的智能恒温箱,在生活中有广泛的应用,系统上电后默认设定的恒温温度为20,使用时可以自行调节预期的恒温温度,调节围为099。调节好后系统会将采集来的实时温度与设定的预期温度进行比较,如果实时温度比设定温度高就开启
11、制冷设备,如果实时温度比预期温度低就开启加热设备。如果温度一样则不开启加热或制冷设备。在显示电路上通常显示的是实时的温度,即传感器采集来的温度,如果想要显示人们设定的预期温度可以按显示切换键,这时显示器上就会显示预期温度,几秒钟后跳回,显示实时温度。显示实时温度时,表示显示的是实时温度的发光二极管点亮。而显示预期温度的时候,表示显示的是预期温度的发光二极管点亮。单片机整个恒温箱的核心,部电路设计用汇编语言编写。它完成了温度参数设定,温度采集计算,温度显示,温度比较,温度调节等功能。2.2 系统需求分析1.在使用中可以将采集来的温度数据计算转换为我们熟悉的摄氏温度。2.在099的围,人们可以自由
12、调节预期达到的温度。3.可以将实时温度与预期温度进行比对,以正常调节温度。4.将设定的预期温度和实时温度显示出来。5.通常显示实时温度,当按下显示切换键后能显示几秒钟的预期温度。2.3 智能恒温箱的工作流程智能恒温箱的基本工作原理:在使用恒温箱时,系统会将从温度传感器采集来的温度数据转化为摄氏度的形式,与事先设定的预期温度进行对比,然后根据比对的结果采取相应的措施(加热,或制冷)来不断地接近以至于达到预期的温度。并且系统能够显示实时的温度和设定的预期温度。恒温箱的工作流程如图2.2所示:图2.2 恒温箱工作流程2.4 恒温箱的工作过程1.设定预期温度。如果想调节预期的温度,先闭合“温度设定”开
13、关,进入调节状态,此时会显示设定的温度值,如果想加一摄氏度就按下“加1”键,如果想减一摄氏度就按一下“减1”键,温度LED显示器上会显示改变后的温度,调整围为099。0时再减1会跳到99,99时再加1会跳到0。要退出调节状态,断开“温度设定”开关即可。2.温度采集和计算。单片机通过与温度传感器进行通信,获取实时温度信息,并将所获取的温度信息数据转化为摄氏温度的形式存储起来。3.温度比较和温度调节。将存储的实时摄氏温度与设定的预期温度经行比较。如果实时温度高于设定温度,则开启制冷器;如果实时温度低于设定温度,则开启加热器。4.实时温度显示。将存储的实时温度显示在LED数码管上。5.设定温度显示。
14、若想查看设定的预期温度,则需按下“温度显示切换”按键,然后LED显示器就会显示设定预期的温度,显示时间为数秒,跳出预期温度的显示。若再想查看预期温度显示需再次按下“温度显示切换”按键。总而言之,本课题利用80C51单片机与外围接口实现的温度控制系统设计了恒温箱,该恒温箱提高了系统的可靠性,简化了电路结构,节约了成本,是一个实用的工程设计。2.5 本章小结本章主要讲述了恒温箱的工作原理和本设计系统的工作流程。在说明工作原理的过程中,突出了电路的组成单元以与这些单元如何实现温度采集和温度控制等功能。在说明系统流程时,结合本设计的容,指出了参数设置的方法和意义。3 智能恒温箱的硬件设计3.1 MCS
15、-51单片机简介单片微型计算机简称为单片机,又称为微型控制器,是微型计算机的一个重要分支。单片机是70年代中期发展起来的一种大规模集成电路芯片,是集CPU、RAM、ROM、I/O接口和中断系统于同一硅片的器件。80年代以来,单片机发展迅速,各类新产品不断涌现,出现了许多高性能新型机种,现已逐渐成为工厂自动化和各控制领域的支柱产业之一。引脚功能: MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照-单片机引脚图: P0.0P0.7 P0口8位双向口线(在引脚的3932号端子)。 P1.0P1.7 P1口8位双向口线(在引脚的18号端子)。 P2.0P2.7 P2口8位双向口线(在
16、引脚的2128号端子)。 P3.0P3.7 P3口8位双向口线(在引脚的1017号端子)。 这4个I/O口具有不完全相同的功能,他们各个端口的功能分别如下所示。 P0口有三个功能: 1、外部扩展存储器时,当作数据总线(芯片中的D0D7为数据总线接口) 2、外部扩展存储器时,当作地址总线(芯片中的A0A7为地址总线接口) 3、不扩展时,可做一般的I/O使用,但部无上拉电阻,作为输入或输出时应在外部接上拉电阻。 P1口只做I/O口使用:其部有上拉电阻。 P2口有两个功能: 1、扩展外部存储器时,当作地址总线使用 2、做一般I/O口使用,其部有上拉电阻; P3口有两个功能: 除了作为I/O使用外(其
17、部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。 有部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的,即:编程脉冲:30脚(ALE/PROG)编程电压(25V):31脚(EA/Vpp)。在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是什么呢?他起什么作用呢?都说了是电阻那当然就是一个电阻,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。 ALE/PROG 地址锁存控制信号:在系统扩
18、展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。ALE有可能是高电平也有可能是低电平,当ALE是高电平时,允许地址锁存信号,当访问外部存储器时,ALE信号负跳变(即由正变负)将P0口上低8位地址信号送入锁存器。当ALE是低电平时,P0口上的容和锁存器输出一致。在没有访问外部存储器期间,ALE以1/6振荡周期频率输出(即6分频),当访问外部存储器以1/12振荡周期输出(12分频)。从这里我们可以看到,当系统没有进行扩展时,ALE会以1/6振荡周期的固定频率输出,因此可以作为外部时钟,或者外部定时脉冲使用。 PORG编程脉冲的输入端:我们已知道,在8051
19、单片机部有一个4KB或8KB的程序存储器(ROM),ROM的作用就是用来存放用户需要执行的程序的,我们通过编程脉冲输入端口把编写好的程序存入进这个ROM中,这个脉冲的输入端口就是PROG。 PSEN 外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作。 1、部ROM读取时,PSEN不动作; 2、外部ROM读取时,在每个机器周期会动作两次; 3、外部RAM读取时,两个PSEN脉冲被跳过不会输出; 4、外接ROM时,与ROM的OE脚相接。 EA/VPP 访问程序存储器控制信号 1、接高电平时: CPU读取部程序存储器(ROM) 扩展外部ROM:当读取部程序存
20、储器超过0FFFH(8051)1FFFH(8052)时自动读取外部ROM。 2、接低电平时:CPU读取外部程序存储器(ROM)。 在前面的学习中我们已知道,8031单片机部是没有ROM的,那么在应用8031单片机时,这个脚是一直接低电平的。 8751烧写部EPROM时,利用此脚输入21V的烧写电压。 RST 复位信号:当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作,当复位后程序计数器PC=0000H,即复位后将从程序存储器的0000H单元读取第一条指令码。 XTAL1和XTAL2 外接晶振引脚。当使用芯片部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部
21、时钟时,用于接外部时钟脉冲信号。 VCC:电源+5V输入 VSS:GND接地。 3.2硬件电路设计概述本设计分为硬件设计和软件设计,这两者相互结合,不可分离:从时间上看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要做一些修改。只要技术准备充分,硬件设计的大量返工是比较少的,软件设计的任务是贯彻始终的,到中后期基本上都是软件设计任务,随着集成电路计数器的飞速发展,各种功能很强的芯片不断出现,使硬件电路的集成度越来越高,硬件设计的工作量在整个项目中所占的比重逐渐下降,为使硬件电路设计尽可能合理,应注意以下几个方面:1.尽可能采用功能强的芯片,以简化电路。功能强的芯片可以代替若干个普通芯片,
22、随着生产工艺的提高,新型芯片的价格在不断下降,并不一定比若干个普通芯片价格总和高。2.留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。3.程序空间。选用片程序空间足够大的单片机,本设计采用80C51单片机。4.RAM空间,80C51单片机部RAM不多,当要增强软件数据处理功能时,往往觉得不足。如果系统配置了外部RAM,则建议多留一些空间。如果选用8155作I/O接口,就可以增强256字节RAM。如果有大批数据需要处理,则应配置足够的RAM,如6264、62256等。随着软件设计水平提
23、高,往往只要改变或者增加软件中的数据处理算法,就可以使系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。只要在硬件电路设计初期考虑到这一点,就应该为系统将来升级留有足够的RAM空间,哪怕多设计一个RAM插座,暂时不插芯片也好。I/O端口,在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。如果有些新的信号需要采集,就必须增加输入检测端:有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,但是要用的时候就能派上用场了。3.3 时钟频率电路设计单片机必须在时钟的驱动下才能工作,在单片机部有一个
24、时钟振荡电路,只需要外接一个振荡源就能产生一定周期的时钟信号送到单片机部的各个单元,决定单片的工作频率,时钟电路如图3.1所示。一般选用石英晶体振荡器。此电路大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶体的频率确定。电路中两个电容C1、C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1、C2的典型值为30pF。图3.1 外部振荡电路单片机工作时,由部振荡器产生或由外直接输入的送至部控制逻辑单元的时钟信号的周期称为时钟周期,其大小是时钟信号频率的倒数,时钟信号频率常用fosc表示。图中时钟频率为12MHz,即fosc
25、=12MHz,则时钟周期为1/12s。3.4 复位电路设计单片机的第9脚RST为硬件复位电路,只要在该端加上持续4个机器周期的高电平即可实现复位,复位后单片机的各个状态都恢复到初始化状态,其电路图如图3.2所示。图3.2中由按键以与电容C3、电阻R1、R9构成上电复位与手动电路。由于单片机是高电平复位,所以上电复位时,接通电源即可,当上电后,由于电容C3开始缓缓充电,则图中电路由5V电源到电容到电阻R9和地之间形成一个通路,由于在R9上产生电压降,则单片机的RST脚上为高电平,经过一段时间后电容的电充满,此时C3处可视为断路,单片机RST脚处电压逐渐降为0V,即处于稳定的低电平状态,此时单片机
26、完成上电复位,程序从0000H开始执行。手动复位时,按一以下图中的按钮即可,当按键按下的时候,单片机的9脚RST管脚处于高电平,此时单片机处于复位状态。图3.2 硬件复位电路3.5 显示电路的设计3.5.1 显示电路概述显示功能与硬件关系极大,在这里我们使用的是七段数码管显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,一种是动态扫描。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态扫描的特点是显示稳定程度没有静态显示好,程序编写复杂,但是相对静态显示而言最大的优点是占用端口资源少。由于本设计需要较多的端口用于其它的功能因此采用占用端口少的动态扫描显示的方法
27、。以下将对显示电路的各个部件与整体设计做详细的介绍。3.5.2 七段LED数码管的原理LED数码管显示器由8个发光二极管中的7个长条发光二极管按a、b、c、d、e、f、g顺序组成“8”字形,另一个点形的发光二极管放在右下方,用来显示小数点。数码管按部连接方式又分为共阳极数码管和共阴极数码管两种。若部8个发光二极管的阳极连在一起接电源正极,就称为共阳极数码管;若8个发光二极管的阴极连在一起接地,则称为共阴极数码管。本次设计所用的到的共阴极数码管的引脚如图3.4所示,外部有10个引脚,其中1和6引脚连通,作为公共端接地。从LED数码的结构可以看出,不同段的组合就何以构成不同的字符,例如段b、c被点
28、亮时,就可以显示数字1:当段a、b、c被点亮时,就可以显示数字7;只要控制7个发光二极管按一定要求亮与灭,就能显示出十六进制字符0F。将控制数码管显示字符的各字段代码称为显示代码或字段码。图3.3 一位共阴极数码管引脚图数码管显示码是表述二进制数与数码管所显示字符的对应关系的,如表3.1所示。对于共阴极数码管,由于8个发光二极管的阴极已连在一起接地,所以,只要控制各字段的正极,就可以控制发光二极管的亮与灭。表3.1 七段显示译码器的真值表与段码表字符h g f e d c b a字段码00 0 1 1 1 1 1 1共阴字段码3FH10 0 0 0 0 1 1 0共阴字段码06H20 1 0
29、1 1 0 1 1共阴字段码5BH30 1 0 0 1 1 1 1共阴字段码4FH40 1 1 0 0 1 1 0共阴字段码66H50 1 1 0 1 1 0 1共阴字段码6DH60 1 1 1 1 1 0 1共阴字段码7DH70 0 0 0 0 1 1 1共阴字段码07H80 1 1 1 1 1 1 1共阴字段码7FH90 1 1 0 1 1 1 1共阴字段码6FHA0 1 1 1 0 1 1 1共阴字段码77HB0 1 1 1 1 1 0 0 共阴字段码7CHC0 0 1 1 1 0 0 1共阴字段码39HD0 1 0 1 1 1 1 1共阴字段码5EHE0 1 1 1 1 0 0 1共阴
30、字段码79HF0 1 1 1 0 0 0 1共阴字段码71H3.5.3 显示电路整体设计显示电路如图3.4所示。图中RP1为电阻盒,相当于8个独立的电阻的一端接在一起并接电源,另外一端分别接出引线,在显示电路中作为上拉电阻。图中有2个七段LED数码管,它们的公共端1、2分别接到单片机的P2.0、P2.1口,单片机的这2个I/O口输出位选信号用于动态扫描。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个LED数码管的公共端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位数码管的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象与发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,
31、但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。而单片机的P0.0P0.6口则负责将字段码数据传送给LED数码管。图3.4 显示电路3.6 开关键盘设计3.6.1 指拨开关指拨开关面板上通常会标有“ON”或其他记号,若将开关拨到“ON”的一边,则接点接通(on),拨到另一边则为断开(off)。若要以开关作为输入电路,通常会接一个电阻到Vcc或GND,做上拉电阻或下拉电阻,如图3.5所示有两种开关电路可供选择。(a) (b)图3.5 开关电路本设计的温度设定允许和退出按键是选用如图3.5中(a)所示的设计,低电平为进入温度设定,高电平为退出温度设定。3.6.2 按键开关按
32、键开关为机械弹性开关,当按下键帽时,按键的复位弹簧片被压缩,动片触电与静片触电相连,键盘的两个引脚被接通;松手后,复位弹簧将动片弹开,使动片与静片脱离接触,键盘的两个引脚被断开。由于机械接触点的弹性作用,一个按键从开始接上至接触稳定要经过510ms的抖动时间,在此期间,有抖动发生。按键抖动波形如图3.6所示。图3.6 按键抖动电压波形按键开关输入需要解决的两个主要问题是判断是否有按键按下和消除按键抖动的影响。按键的确认反映在电压上,就是和按键相连的引脚呈现出高电平还是低电平。消除按键的抖动通常有硬件、软件两种消除方法。一般在按键较多时,采用软件的方法消除抖动,即在第一次检测到有按键按下时,执行
33、一段延时1215ms的子程序后,再确认该键电平是否任保持为闭合状态电平,如果保持为闭合状态电平就可以确认真有按键按下,从而消除抖动的影响。3.7 指示灯电路在实时温度和设定温度切换时,为了明白LED数码管显示的是哪种温度,可以用两个发光二极管来指示,如果标有“实时温度”标记的发光二极管点亮,则表示数码管显示的是实时温度,如果标有“设定温度”标记的发光二极管点亮,则表示数码管显示的是设定温度。这样就不至于混淆了。如图3.7所示为温度指示灯电路。图中两个发光二极管分别与单片机的P2.6,P2.5口相连,单片机把显示何种温度的信号送给这两个口,对应的发光二极管就会点亮,信号为低电平有效。图3.7 温
34、度指示灯电路3.8 温度采集电路温度采集电路如图3.8所示:图中U2为温度采集电路的核心部件,温度传感器DS18B20,下面将详细介绍它的参数和用法。DS18B20部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一个频率稳定的计数脉冲。高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。温度寄存器被预置成27,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1,这个过程重复进行,直到计数器2计数到0时便停止。图3.8 温度采集电路3.9 总体硬件原理图总体硬件原理图如附件1所示,图中主要部分U1芯片为80C
35、51单片机,U2为温度传感器DS18B20。温度传感器接到单片机的P1.2口。两个发光二极管“HEAT”和“COOL”分别表示传送给加热器和制冷器的启动信号,分别接到单片机的P1.0,P1.1口。如果“HEAT”灯点亮表示加热器在工作;如果“COOL”灯点亮表示制冷器在工作。按键“温度显示切换”是用于切换显示预设的温度的按键,接单片机的P2.7口。还有两个发光二极管分别是“实时温度”和“设定温度”,表示当前数码管显示的是实时温度还是设定温度,若“实时温度”的发光二极管点亮表示数码管显示的实时温度,若“设定温度”的发光二极管点亮则表示数码管当前显示的是设定温度。两个数码管分别接单片机的P2.6,
36、P2.5口。图中有两个七段共阴数码管,它的字段码信号端口接到单片机的P0.0P0.6口,公共端接单片机的P2.0和P2.1口。开关“温度设定”接单片机的P2.2口,按钮“加1”和“减1”分别接单片机的P2.3和P2.4口。按闭合“温度设定”开关进入预期温度的设定,按“加1”,“减1”按钮来加减温度。3.10 本章小结本章详细的讲述了以80C51为核心元件的恒温箱的硬件电路具体设计过程,分析了具体电路的工作原理。在设计过程中,实现温度控制的是通过编写程序的方法集成在80C51部。接着将程序下载到硬件电路中,配合周边的温度采集电路,时钟电路,温度控制电路,显示电路等,制作出符合设计要求的恒温箱。4
37、系统软件设计4.1 软件任务分析软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,使在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。在对
38、各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。各执行模块规划好后,就可以设计监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比较难一样。软件任务分析的另一个容是如何安排监控软件和执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序与其调用的子程序,这类程序对实时性要求不是太高,延时几十毫秒甚至几百毫秒也没关系,故通常将监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排
39、一些实时性要求较高的容,如定时系统和外部中断。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。4.2 程序流程图在本程序中包括了以下主要的程序:主程序,温度设定子程序,温度读取与转换子程序,显示温度子程序,比较温度子程序,显示切换子程序。主程序流程图如图4.1所示:图4.1 主程序流程图温度设定子程序流程图如图4.2所示:图4.2 温度设定子程序流程图温度采集计算子程序如图4.3所示:图4.3 温度采集计算子程序流程图温度比较处理子程序流程图如图4.4所示:图4.4 温度比较处理子程序流程图温度显示子程序如图4.5所示:图4.5 温度显示子程序4.3 本
40、章小结本章是恒温箱的软件设计,实现恒温箱的主要功能是通过编写程序的方法集成在80C51部。将程序下载到硬件电路中,实现温控功能。5 软件调试与仿真5.1 Keil软件调试打开Keil uVision2软件,执行【Project】|【New Project】命令,打开【Create New Project】对话框,输入文件名,点击【保存】,如图5.1所示。图5.1 目标文件新建示意图选择控制芯片类型,本设计采用Intel 80C51,在【Select Device for TargetTarget 1】对话框中选择80C51BH,如图5.2所示。图5.2 单片机芯片选择示意图设置芯片参数。右击【
41、Project Workplace】中的【Target 1】,选择【Options for Target Target 1】弹出参数设置对话框,如图5.3所示。设置频率为12HZ。点击【Output】选项卡,勾选【Create HEX File】,点击【确定】保存。图5.3 参数设置示意图创建ASM文件,执行【File】|【New】命令,或者使用快捷键“Ctrl+N”新建ASM文件。输入并保存程序。编译无误后,调试运行生成HEX文件。5.2 PROTEUS软件调试打开PROTEUS软件,执行【文件】|【新建】命令,或者使用快捷键“Ctrl+N”新建DSN文件。按照第三章硬件设计,从原件库中选择
42、所需电器元器件并连接电路。系统仿真电路图如附录A所示。根据前面章节的设计,配置元器件的参数。PROTEUS电器检测并生成元器件清单。执行【工具】|【电器规则检查】命令,如图5.4所示。点击【电器规则检查】选项,弹出电气规则检测结果。如图5.5所示。图5.4 电气规则检查示意图图5.5 电气规则检查结果电气规则检查无误后,执行【工具】|【电器规则检查】命令,如图5.4所示。选择【材料清单】,生成材料清单,如表5.1所示。表5.1 系统电路图元器件清单QuantityReferencesValueResistors1R16008R2,R5-R8,R10,R1110k2R3, R4,R11,R123
43、001R9Capacitors2C1, C230p1C310pNtegrated Circuits1U180C511U2DS18B20Miscellaneous4COOL, HEATLED-GREEN1RP1RESPACK-81X1CRYSTAL5.3 PROTEUS仿真在系统电路图中,双击80C51单片机芯片,弹出芯片设置对话框。设置时钟频率为12HZ,添加程序文件*.HEX。点击【OK】选项,完成80C51设置,如图5.6所示。图5.6 80C51设置示意图执行【调试】|【开始/重启动调试】命令,或者使用快捷键“Ctrl+F12”调试电路。调试完成后,执行【调试】|【执行】,或者使用快捷键
44、“F12”运行仿真程序。仿真开始时,仿真图如图5.7所示,数码管显示器显示当前实时温度27摄氏度。图5.7 实时温度显示图按下“温度切换”按钮,显示设定温度,如图5.8所示。本设计在默认状态下设定温度为20摄氏度。图5.8温度切换示意图按下“温度设定”开关,此时温度显示为设定的温度,在按“温度加”(或者 “温度减”)按钮,每按一次设定温度增加1摄氏度(或者减少1摄氏度),如图5.9所示。图5.9 温度设定示意图5.4 本章小结本章详细的讲述了Keil uVision2软件设置以与程序调试过程。详细表达了PROTEUS参数设置与其仿真过程。通过插图具体分析仿真流程。在仿真过程中,由于温度传感器参
45、数未作改变,所以显示的实时温度一直未变。如需真实模拟恒温箱的运行情况,需要对温度传感器DS18B20设置。结论6个多月的毕业设计即将完毕了,我深刻感受到专业知识的缺乏,同时,在整个设计过程中我也感受到自身知识的进步,特别是在单片机控制系统方面。设计是以80C51单片机为核心进行的,数据采样模块采用可直接输出数字量的数字温度传感器DS18B20,使系统的软、硬件都简化了很多;采用继电器驱动模块作为为系统的降温部分,大大地简化了系统硬件电路。通过对风机的控制可实现恒温箱温度的自动控制。由于采用数字温度传感器DS18B20采集温度,所以,详细介绍了DS18B20的运用;软件设计方面采用汇编语言对系统
46、的软件编程,为了便于编写、调试、修改和增删,系统软件的编制采用了模块化的设计方法。鉴于温度控制的发展趋势,在以后的实践中对系统还要做进一步的改进:硬件方面,采用DSP, ARM或者利用第一章提到的片上系统SOC对系统的硬件进行重新设计,软件方面,摒弃传统的前后台系统软件编程模式,改用基于实时操作系统的系统软件开发;控制算法方面,尝试采用现在得到快速发展的智能控制方法,如模糊控制、神经网络控制和模糊PID控制等等。致谢本课题是在莉莉老师的悉心指导下完成的,从论文的选题、系统设计、到修改定稿都没有离开老师的无私帮助,通过本次设计,本人在老师的指引下学到了许多知识,这些是在平时的学习中得不到的知识,她严谨的治学态度、渊博的学识和悉心的指