




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、jiangsu teachers university of technology 本科毕业设计(论文) 基于单片机的恒温箱的设计 学院名称: 电气信息工程学院 专 业: 电子信息工程 班 级: 08 东电子 姓 名: 李刚 指导教师姓名: 王云松 指导教师职称: 实验师 2012年 5 月 基于单片机的恒温箱的设计摘要:本文论述了具有温度设定灵活、数字显示及语音报警等功能的温度控制的设计。该系统主要是由中央控制器、温度检测器、显示器等模块组成。该系统以功能较强的8位80c51单片机为控制核心,温度检测部分采用ds18b20温度传感器,用led数码管做显示器。温度传感器ds18b20采集温度信
2、号送给单片机,单片机对信号进行相应处理,并把温度数据送led显示,从而实现对温度控制的目的。由于单片机功能强大,可大大加快系统的开发与调试速度,并具有控制方便、简单、灵活等特点,故可以把数字温度传感器ds18b20做成探头,探入到狭小的地方,增加了实用性。更能串接多个数字温度传感器ds18b20进行多范围的温度检测。关键字:80c51单片机;温度采集;温度控制the design of the constant temperature box based on scmabstract:this paper discusses the design of temperature control
3、with flexible temperature setting, digital display and voice alarm these functions. the system is mainly composed of a central controller, temperature detectors, monitor modules.it uses powerful 8 bit mcs80c51 for the core,uses the ds18b20 for the temperature detection part , and uses led digital fo
4、r display to achieve the purpose of temperature control.as the single chip microcomputer powerful, can greatly accelerate the development and debugging speed,and has convenient control, simple, flexible, and other characteristics,so ds18b20 can be made for temperature to send into the narrow place.w
5、hats more can be concatenated with a plurality of digital temperature sensor ds18b20 to detect over a range of temperature .key words: mcs80c51;temperature sensor;temperature control目录第1章 绪论11.1 课题研究的背景11.2 课题研究的意义21.3 课题研究的内容2第2章 智能恒温箱的系统概述32.1 系统的主要功能32.2 系统需求分析42.3 智能恒温箱的工作流程42.4 恒温箱的工作过程62.5 本章小
6、结6第3章 智能恒温箱的硬件设计73.1 硬件电路设计概述73.2 总体硬件原理83.3 时钟频率电路设计83.4 复位电路设计93.5 显示电路的设计103.5.1 显示电路概述103.5.2 七段led数码管的原理113.5.3 显示电路整体设计133.6 开关键盘设计143.6.1 指拨开关143.6.2 按键开关143.7 指示灯电路153.8 温度采集电路153.8.1 ds18b20的性能163.8.2 ds18b20的管脚排列173.8.3 主要的数据部件173.9 本章小结18第4章 软件设计194.1 软件任务分析194.2 程序流程204.2.1 主程序204.2.2 温度
7、设定子程序214.2.3 温度采集计算子程序224.2.4 温度比较处理子程序254.2.5 温度显示子程序274.3 本章小结28第5章 系统调试29参考文献31致 谢 33附录a 硬件原理图34附录b 元器件清单及实物图35附录c 主要源程序36第1章 绪论1.1 课题研究的背景温度控制系统广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等 ,常用的控制电路根据应用场合和所要求的性能指标有所不同 ,在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题,开发出性能较好的温度控制系统对于测控技术的发展具有很大的意义。智能恒温箱的温度是医疗、工业
8、生产和食品加工等领域的关键,因此对温度的测量及控制始终占据着重要的地位。市场上常见的温度传感器以电压输出为主要形式,不同的的传感器其非线性曲线也各不相同,缺乏一个产品应具备的通用性和互换性。温度传感器应用范围很广、使用数量很大,但是在常规的环境参数中由于温度受其它因素影响较大,而且难以校准,因此,温度也是最难准确测量的一个参数。常规方法测量温度误差大、准确度低、测量滞后的时间长。今年来,国内传感器正向着集成化、智能化、网络化和单片机的方向发展,为开发新一代温度测量系统创造了有利条件。随着单片机技术的飞速发展,通过单片机对被控制对象控制日益广泛,具有体积小、功能强、性价比高等特点,把单片机应用于
9、温度控制系统中可以起到更好的控温作用,智能恒温箱是使用单片机进行温度控制的典型应用,采用单片机做主控单元可完成对温度的采集和控制等的要求。在智能恒温箱控制系统的设计中,用数字传感器将温度信号以数字信号的方式传送给单片机,经单片机处理后的温度数值,一方面送led数码管显示;另一方面与给定值经行比较,判断温度高低,从而采取相应的措施:加热或者制冷。使温度达到设定值。智能恒温箱主要是用来控制温度,他为农业研究、生物技术、测试提供所需的各种环境模拟条件,因此可广泛适用于药物、纺织、食品加工等无菌试验、稳定性检查以及工业产品的原料性能、产品包装、产品寿命等测试。1.2 课题研究的意义智能恒温箱的性能在很
10、大程度上取决于对温度的控制性能,本课题采用单片机为主控制器,通过数字传感器测得箱内温度,再将温度信号送入主控制器,来完成恒温箱的温度控制系统的硬件。箱内温度可保持在设定的温度范围内,当设置的温度低于实时温度时,单片机送出加热信号;当设置的温度低于实时温度时,单片机送出制冷信号。目前,在温度控制实现过程中,大量采用的仍然是传统的pid控制算法,参数整定复杂,往往需要在线反复调试,尤其是对象模型不精确时,根据理论设计所得参数无法保证系统的性能,难以达到理想的效果。 本文针对医用恒温箱的温度控制系统进行了讨论和研究。恒温箱是一个典型的一阶大惯性、纯滞后的对象,而且由于干扰众多,恒温箱的精确模型难以建
11、立,因此传统的温度控制方法难以满足要求。 为了解决模型难以建立的情况下的高精度温度控制,论文提出了柔性神经网络参数自学习pid控制方法和温度预测控制方法,并且对两种控制方法应用于恒温箱的温度控制进行了仿真研究。仿真结果表明,新的控制方法达到了理想的效果。 论文在理论研究的基础上,进行了控制系统的硬件设计和软件设计。硬件系统以51单片机为控制核心,采用ds18b20温度传感器,用led数码管做显示器,来表现对恒温箱的加热或制冷。 1.3 课题研究的内容本次设计只涉及温度采集温度显示,以及温度控制信号的送出部分,对于如何保温,如何加热和制冷不在此次设计的范围内。本系统采用模块化设计智能恒温箱,系统
12、上电后默认设定的恒温温度为20,使用时可以自行调节预期的恒温温度,可调节范围为099。调节好后系统会将采集来的实时温度与设定的预期温度进行比较,如果实时温度比设定温度高就开启制冷设备,如果实时温度比预期温度低就开启加热设备。如果温度一样则不开启加热或制冷设备。第2章 智能恒温箱的系统概述2.1 系统的主要功能该系统主要是借用单片机采用模块化设计的智能恒温箱,包括温度设定按钮,温度显示,温度调节,实时温度显示和预定温度显示转换按钮,温度采集等。显示系统除了显示实时的温度还能显示设定温度的上限和下限,也就是人们想要保持的温度的范围。系统的主要功能模块方框图如图2-1所示。时钟80c51单片机复位电
13、路进入温度设 定,温度加、减按键输入电路温度采集电路显示切换按键电路2位七段数码管显示2个发光二极管显示温度调节电路图2-1 系统主要功能模块方框图本系统是采用模块化设计的智能恒温箱,在生活中有广泛的应用,系统上电后默认设定的恒温温度为20,使用时可以自行调节预期的恒温温度,调节范围为099。调节好后系统会将采集来的实时温度与设定的预期温度进行比较,如果实时温度比设定温度高就开启制冷设备,如果实时温度比预期温度低就开启加热设备。如果温度一样则不开启加热或制冷设备。在显示电路上通常显示的是实时的温度,即传感器采集来的温度,如果想要显示人们设定的预期温度可以按显示切换键,这是显示器上就会显示预期温
14、度,几秒钟后跳回,显示实时温度。显示实时温度时,表示显示的是实时温度的发光二极管点亮。而显示预期温度的时候,表示显示的是预期温度的发光二极管点亮。单片机整个恒温箱的核心,内部电路设计用汇编语言编写。它完成了温度参数设定,温度采集计算,温度显示,温度比较,温度调节等功能。2.2 系统需求分析(1)在使用中可以将采集来的温度数据进行计算,转换成我们所熟悉的摄氏温度,并加以显示。(2)在099的范围内,人们可以自由调节预期达到的温度。(3)可以将实时温度与预期温度进行比对,以输出调节温度信号。(4)能将设定的预期温度的上限和下限同时显示出来。2.3 智能恒温箱的工作流程单片机恒温箱的基本工作原理:在
15、使用恒温箱时,系统会将从温度传感器采集来的温度转化为摄氏度的形式,转化完成后与事先设定的预期温度进行比对,然后根据比对的结果采取相应的措施(输出升温信号或输出降温信号)来不断地来表示出达到预期的温度。并且系统能够显示实时的温度和设定的预期温度。恒温箱的工作流程如图2-2所示:显示实时温度显示切换无显示切换显示设定温度温度加温度减温度比较并进行温度调节温度采集与计算运行不进行温度设定进入温度设定加载程序图2-2 恒温箱工作流程2.4 恒温箱的工作过程(1)设定预期温度。如果想调节预期的温度,先按下“温度设定”开关,进入调节状态,此时才会先显示设定需要保持温度的上限,如果想加一摄氏度就按下“加1”
16、键,如果想减一摄氏度就按一下“减1”键,温度led显示器上会显示改变后的温度。再按下“温度上下限设定转换”按钮,此时设定为需要保持温度下限,操作与上限操作方法相同。要退出调节状态,再次按下“温度设定”开关即可。(2)温度采集和计算。51单片机通过与数字温度传感器ds18b20,获取实时温度信息,并将所获取的温度信息数据进行计算,转化为摄氏温度的形式存储起来。(3)温度比较和温度调节。将存储的实时摄氏温度与设定的预期温度经行比较。如果实时温度高于设定温度上限,则降温二极管亮,并且蜂鸣器发出警报;如果实时温度低于设定温度下限,则升温二极管亮,并且蜂鸣器发出警报。(4)设定温度显示。当温度范围设定在
17、一定值时并保存后,则在当前温度上方显示“t xx h xx”。“t”t表示设定后的温度下限,“h”表示设定后的温度上限。简而言之,这里就是利用80c51单片机及外围接口实现的温度控制系统设计了恒温箱,该恒温箱提高了系统的可靠性,简化了电路结构,节约了成本,是一个实用的工程设计。2.5 本章小结本章主要讲述了恒温箱的基本工作原理和该系统的工作流程。在这一章节中,以简洁明了的流程框图主要说明了本次电路的组成单元。这些单元通过何种方法来实现温度采集和温度控制等功能。在说明系统流程的同时又结合本设计的内容,指出了参数设置的方法和意义。第3章 智能恒温箱的硬件设计3.1 硬件电路设计概述随着集成电路计数
18、器的飞速发展,各种功能很强的芯片不断出现,使硬件电路的集成度越来越高,硬件设计的工作量在整个项目中所占的比重逐渐下降,为使硬件电路设计尽可能合理,应注意以下几个方面:(1)留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。(2)尽可能采用功能强的芯片,以简化电路。功能强的芯片可以代替若干个普通芯片,随着生产工艺的提高,新型芯片的价格在不断下降,并不一定比若干个普通芯片价格总和高。(3)芯片的选择。考虑到本次设计的功用和程序容量的大小,应该选用片内程序空间足够大的单片机,本设计采用的是8
19、0c51单片机。(4)ram空间。80c51单片机内部ram不多,当要增强软件数据处理功能时,往往觉得不足。如果系统配置了外部ram,则建议多留一些空间。随着软件设计水平提高,往往只要改变或者增加软件中的数据处理算法,就可以使系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。只要在硬件电路设计初期考虑到这一点,就应该为系统将来升级留有足够的ram空间,哪怕多设计一个ram插座,暂时不插芯片也好。(5)i/o端口。如果有些新的信号需要采集,就必须增加输入检测端:有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些i/o端口,虽然当时空着没用,那么要用的时候就能派上用场
20、了。在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。这也就如第一条所说的,要留有一定的余地。3.2 总体硬件原理主要部分的芯片为80c51单片机,主要部分的传感器为温度传感器ds18b20。温度传感器接到单片机的p1.2口。两个发光二极管“heat”和“cool”分别表示传送给加热器和制冷器的启动信号,分别接到单片机的p1.0,p1.1口。如果“heat”灯点亮表示温度过低,需要升温,需要加热器工作;如果“cool”灯点亮表示温度过高,需要降温,需要制冷机工作。而在实际电路中,我分别以红色二极管和绿色二极管表示“heat”“cool”。按键“
21、温度上下限切换”是用于切换温度的上限和下限值的按键,接在单片机的p2.7口上。当按键进入温度设定后,最先只能设定温度范围的上限值,如果想要对温度下限进行设定的话,就必须要按下“温度上下限切换”按钮,此后便可以对温度下限值进行设定。当再次按下“温度上下限切换”时便又可以对温度的上限值进行设定。当设定完温度的上下限值后再按下“温度设定”按钮保存温度设定的值范围。此时便该系统便开始工作。 图中有两个七段共阴数码管,它的字段码信号端口接到单片机的p0.0p0.6口,公共端接单片机的p2.0和p2.1口。开关“温度设定”接单片机的p2.2口,按钮“加1”和“减1”分别接单片机的p2.3和p2.4口。按闭
22、合“温度设定”开关进入预期温度的设定,按“加1”,“减1”按钮来加减温度。3.3 时钟频率电路设计单片机必须在时钟的驱动下才能工作,在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定周期的时钟信号送到单片机内部的各个单元,一般选用石英晶体振荡器。此电路大约延迟10ms后振荡器起振,在xtal2引脚产生幅度为3v左右的正弦波时钟信号,其振荡频率主要有石英晶体的频率决定单片的工作频率,时钟电路如图3-1 所示。图3-1 外部振荡电路 电路中两个电容c1、c2。这两个电容作用主要有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。c1、c2的取用值为30pf。单片机工作时,由内部振
23、荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期,其大小是时钟信号频率的倒数,时钟信号频率常用fosc表示。图中时钟频率为12mhz,即fosc=12mhz,则时钟周期为3.4 复位电路设计单片机的第9脚rst为硬件复位电路,只要在该端加上持续4个机器周期的高电平即可实现复位,复位后单片机的各个状态都恢复到初始化状态,其电路图如图3-2所示。 由按键以及电容c1、电阻r1、r2构成了如图3-3所示的上电复位及手动电路。51单片机是高电平复位,因此只要单片机上电时,该系统就默认复位。接当上电后,由于电容c1开始缓缓充电,则图中电路由5v电源到电容到电阻r1和地之间形成一个
24、通路,由于在r1上产生电压降,则单片机的rst脚上为高电平,经过一段时间后电容的电充满,此时c1处可视为断路,单片机rst脚处电压逐渐降为0v,即处于稳定的低电平状态,此时单片机完成上电复位,程序从0000h开始执行。手动复位时,按一下图中的按钮即可,当按键按下的时候,单片机的9脚rst管脚处于高电平,此时单片机处于复位状态。图3-2 硬件复位电路值得一提的是,在本次设计当中使用到了硬件复位电路和软件复位两种功能,由上面所述的硬件复位之后的各状态可知,寄存器的值都恢复到了初始值,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能实现的前提条件就是不能对单片机进行硬件复位,所以设定了软件复位功
25、能。软件复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。 3.5 显示电路的设计3.5.1 显示电路概述在实际的单片机系统中,往往需要多位显示。动态显示是一种最常见的多位显示方法,应用非常广泛。本实验要求实验两位动态显示,并通过调试程序达到最佳显示效果。 用数码管显示信息时,由于每个数码管至少需要8 个i/o 口,如果需要多个数码管,则需要太多i/o 口,而单片机的i/o 口是有限的。 动态显示是多个数码管,交替显示,利用人的视觉暂留作用使人看到多个数码管同时显示。在编程时,需要输出段选和位选信号,位选信号选中其中一个数码管,然后输出段码,使该数码管显
26、示所需要的内容,延时一段时间后,再选中另一个数码管,再输出对应的段码,高速交替。在动态显示程序中,各个位的延时时间长短是非常重要的,如果延时时间长,则会出现闪烁现象;如果延时时间太短,则会出现显示暗且有重影。 3.5.2 七段led数码管的原理led数码管显示器由8个发光二极管中的7个长条发光二极管(称七笔段)按a、b、c、d、e、f、g顺序组成“8”字形,另一个点形的发光二极管放在右下方,用来显示小数点。数码管按内部连接方式又分为共阳极数码管和共阴极数码管两种。若内部8个发光二极管的阳极连在一起接电源正极,就成为共阳极数码管;若8个发光二极管的阴极连在一起接地,测称为共阴极数码管。本次设计所
27、用的到的共阴极数码管的引脚如图3-3所示,外部有10个引脚,其中1和6引脚连通,作为公共端接地。图3-3 一位共阴极数码管引脚图从led数码的结构可以看出,不同笔段的组合就何以构成不同的字符,只要控制7个发光二极管按一定要求亮与灭,就能显示出十六进制字符0f。将控制数码管显示字符的各字段代码称为显示代码或字段码。数码管显示码是表述二进制数与数码管所显示字符的对应关系的,如表3-1所示。对于共阴极数码管,由于8个发光二极管的阴极已连在一起接地,所以,只要控制各字段的正极,就可以控制发光二极管的亮与灭。表3-1 七段显示译码器的真值表及段码表字 符h g f e d c b a字段码01 1 0
28、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
29、 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共阴字
30、码段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-4 所示:图3-4 显示电路图中rp1为排阻,图中有2个七段led数码管,而在实际中共有6个这样的数码管,分别代表“当前温度”,“设定最高温度值”,“设定最低温度值”。它们的公共端16分别接到单片机的p1.31.7和p0.7口,单片机的这6个i/o口输出位选信号用
31、于动态扫描。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个led数码管的公共端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位数码管的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。而单片机的p0.0p0.6口则负责将字段码数据传送给led数码管。3.6 开关键盘设计3.6.1 指拨开关拨码开关也可以叫做 dip 开关,拨动开关,超频开关,地址 开关,拨拉开关,数码开关,指拨开关等,是一款用来操作控制的地址开关,采用的是0/1的二进制编码原理来进行开
32、关。通俗的说也就是一款能用手拨动的微型的开关,所以也通常叫指拨开关的也很多。 若要以开关作为输入电路,通常会接一个电阻到vcc或gnd,做上拉电阻或下拉电阻本设计的温度设定允许和退出按键是低电平为进入温度设定,高电平为退出温度设定。3.6.2 按键开关按键开关为机械弹性开关,当按下键帽时,按键内的复位弹簧片被压缩,动片触电与静片触电相连,键盘的两个引脚被接通;松手后,复位弹簧将动片弹开,使动片与静片脱离接触,键盘的两个引脚被断开。操作按钮开关所控制的电路属于小电流电路。按钮有单极双位开关或双极双位开关,它按动能与用途又分为起动按钮、复位按钮、检查按钮、控制按钮、限位按钮等多种。由于机械接触点的
33、弹性作用,一个按键从开始接上至接触稳定要经过510ms的抖动时间,在此期间,有抖动发生。按键开关输入需要解决的两个主要问题是判断是否有按键按下和消除按键抖动的影响。按键的确认反映在电压上,就是和按键相连的引脚呈现出高电平还是低电平。消除按键的抖动通常有硬件、软件两种消除方法。一般在按键较多时,采用软件的方法消除抖动,即在第一次检测到有按键按下时,执行一段延时1215ms的子程序后,再确认该键电平是否任保持为闭合状态电平,如果保持为闭合状态电平就可以确认真有按键按下,从而消除抖动的影响。一般电子装置中都设计有按键输入,用以控制程序执行时数据的输入或是特殊功能的设置及操作。在控制电路中,如果按键数
34、不多是可以使用一个按键对应一条输入位线控制,即独立式按键。这种接法,一根输入线上的按键是否被按下,不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态就可以很容易判断哪个键按下了。独立式按键可以用单稳态锁存器消除抖动。3.7 指示灯电路在实时温度和设定温度切换时,为了明白led数码管显示的是哪种温度,可以用两个发光二极管来指示,如果标有“cool”标记的发光二极管点亮,则表示现下需要制冷,如果标有“heat”标记的发光二极管点亮,则表示现下需要制热。这样就不至于混淆了。如图3-5所示为温度指示灯电路。图中两个发光二极管分别与单片机的p2.6,p2.5口相连,单片机把显示何种温度的信号
35、送给这两个口,对应的发光二极管就会点亮,信号为低电平有效。图3-5 温度指示灯电路3.8 温度采集电路温度采集电路如图3-6所示:图中u2为温度采集电路的核心部件,温度传感器ds18b20,下面将详细介绍它的参数和用法。图3-6 温度采集电路dallas 半导体公司的数字化温度传感器ds1820是世界上第一片支持 一线总线接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。ds18b20 一线总线数字化温度传感器。ds1820支持一线总线接口,测量温度范围为 -55c+125c,在-10+85c范围内,精度为0.5c。现场温度直接以一线总线
36、的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量如:环境控制、设备或过程控制、测温类消费电子产品等。该产品支持3v5.5v的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。ds18b20可以程序设定912位的分辨率,精度为0.5c。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在eeprom中,掉电后依然保存。3.8.1 ds18b20的性能 (1) 可用数据线供电,电压范围:3.05.5v; (2) 测温范围:-55+125,在-10+85时精度为0.5; (3) 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0
37、.25、0.125和0.0625; (4) 12位分辨率时最多在750ms内把温度值转换为数字; (5) 负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。3.8.2 ds18b20的管脚排列 ds18b20的引脚定义: (1)gnd为电源地; (2)dq为数字信号输入/输出端; (3)vcc为外接供电电源输入端(在寄生电源接线方式时接地)。 图3-7 ds18b20外型图3.8.3 主要的数据部件 (1)光刻rom中的64位序列号是出厂前被光刻好的,它可以看作是该ds18b20的地址序列码。64位光刻rom的排列是:开始8位(28h)是产品类型标号,接着的48位是该ds18b
38、20自身的序列号,最后8位是前面56位的循环冗余校验码(crc=x8+x5+x4+1)。光刻rom的作用是使每一个ds18b20都各不相同,这样就可以实现一根总线上挂接多个ds18b20的目的。(2)ds18b20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/lsb形式表达。(3)ds18b20温度传感器的内部存储器包括一个高速暂存ram和一个非易失性的可电擦除的eepram,后者存放高温度和低温度触发器th、tl和结构寄存器。 (4)低五位一直都是1 ,tm是测试模式位,用于设置ds18b20在工作模式还是在测试模式。在ds18
39、b20出厂时该位被设置为0,用户不要去改动。 3.9 本章小结本章详细的讲述了以80c51为核心元件的恒温箱的硬件电路具体设计过程,分析了具体电路的工作原理。在设计过程中,实现温度控制的是通过编写程序的方法集成在80c51内部。接着将程序下载到硬件电路中,配合周边的温度采集电路,时钟电路,温度控制电路,显示电路等,制作出符合设计要求的恒温箱。第4章 软件设计4.1 软件任务分析软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大类:一类是执行软件,它能完
40、成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,使在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。在对各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。各执行模块规划好后,就可以设计监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较易出问题。这如同当一名操作
41、工人比较容易,而当一个厂长就比较难一样。软件任务分析的另一个内容是如何安排监控软件和执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延时几十毫秒甚至几百毫秒也没关系,故通常将监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。4.2 程序流程在本程序中包括了以下主要的程序,主程序,温度设定子程序,温度读取及转换子程序,显示温度子程序,比较
42、温度子程序。4.2.1 主程序主程序流程图如图4-1所示:图4-1 主程序流程图主程序的主要功能是设置传感器、负责温度的实时显示、读出并处理ds18b20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度。4.2.2 温度设定子程序温度设定子程序流程图如图4-2所示:图4-2 温度设定子程序流程图selsub:mov a,r0mov b,#10div abmov r1,a;温度十位存r1mov r2,b;温度个位存r2lcall display;显示温度jnb p2.3,inc0jnb p2.4,dec0jb p2.2,backljmp selsubinc0:;温度
43、加1mov a,r1cjne a,#63h,add0;温度是否为99,不是则跳到add0mov r1,#00hinc1:lcall delay1;延时显示jnb p2.3,inc1;按键是否松开,松开则程序往下执行ljmp selsubadd0:inc r0lcall delay1ljmp selsubdec0:;温度减1mov a,r1jz setr1;温度是0则跳到setr1dec r0dec1:lcall delay1jnb p2.4,dec1;按键是否松开,松开则程序往下执行ljmp selsub setr1:mov r1,#63hlcall delay1ljmp selsubback
44、:ljmp start4.2.3 温度采集计算子程序ds18b20 内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。温度采集计算子程序如图4-3所示:图4-3 温度采集计算子程序流程图ds18b20工作过程一般遵循以下协议:初始化rom操作命令存储器操作命令处理数据(1)初始化单总线上的所有处理均从初始化序列开始。初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。存在脉冲让总线控制器知道ds1820 在总线上且已准备好操作。(2) ro
45、m操作命令read rom(读rom)33hmatch rom( 符合rom)55hskip rom( 跳过rom )cchsearch rom( 搜索rom)f0halarm search(告警搜索)ech(3)存储器操作命令write scratchpad(写暂存存储器)4ehread scratchpad(读暂存存储器)behcopy scratchpad(复制暂存存储器)48hconvert t(温度变换)44hrecall e2(重新调整e2)b8hread power supply(读电源)b4h(4)处理数据ds18b20的高速暂存存储器由9个字节组成,其分配如表3-2所示。当温
46、度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。上表是ds18b20温度采集转化后得到的12位数据存储在ds18b20的两个8比特的ram中,二进制中的前面5位是符号位,如果测得的温度大于或等于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。表3-2 ds18b20暂存器字节分配温度/二进制表示十六进制表示符号位(5位)数据位(11位)+1250 0 0 0 01 1 1 1 1 0 1 0
47、 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
48、 1 1 11 0 0 1 0 0 1 0 0 0 0fc90h get_temper:setb p1.2lcall set_1820;ds18b20初始化jb flag,tss2;检测到ds18b20跳到tss2rettss2:mov a,#0cch;跳过rom匹配lcall write_1820;写ds18b20子程序mov a,#44h;发出温度转换命令lcall write_1820lcall display;用显示温度来等待ad转换结束lcall set_1820mov a,#0cch;跳过rom匹配lcall write_1820mov a,#0beh;发出读温度命令lcall w
49、rite_1820lcall read_1820;读ds18b20的温度数据mov a,temper_lmov r3,#44.2.4 温度比较处理子程序温度比较处理子程序流程图如图4-4所示开启制热yyn返回n开启制冷实时温度比设定值大?实时温度与设定温度相等吗?读取实时温度值图4-4 温度比较处理子程序流程图读出温度子程序的主要功能是读出ram中的9字节,在读出时需进行crc校验,校验有错时不进行温度数据的改写。然后读取的温度分别与设定的温度的最高值和最低值进行比较,当比最高温度高时,开启制冷;当读取温度低于设定最低温度值时,则开启制热。compare:;比较温度子程序mov temper_
50、set,r0mov a,r7cjne a,temper_set,comp;设定温度与实时温度不等则跳compsetb p1.0;关加热器setb p1.1;关制冷器retcomp:mov a,r7;实时温度存入amov b,r0;设定温度存入bdiv ab;a除以b,商给acjne a,#0h,comp1;若a不等于0,即实时温度高,跳转setb p1.1;关制冷器clr p1.0;开加热器ljmp exitcomp1:setb p1.0;关加热器clr p1.1;开制冷器4.2.5 温度显示子程序温度显示子程序如图4-5所示:选通十位地址,送显示字符延时约12ms选通个位地址,送显示字符延时约12ms返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国际产品授权分销合同
- 办公家具采购合同一
- 商品买卖合同「样本」
- 商业地产买卖合同模板范文
- 公司设立投资合作合同范本
- 矿山弃渣处理合同范本
- 消防及安全整改合同履行细则
- 校企合作合同新范本
- 土地使用权出让合同及物业销售细则
- 趸船结构培训课件
- 趣味语文课程设计
- 2024-2030年艺术摄影服务产业发展分析及发展趋势与投资前景预测报告
- 【光明乳业股份有限公司财务报表探析(定量论文)7800字】
- 外研版(2019)必修 第一册Unit 1 A New Start revision 课件
- 肺部感染临床路径
- 高中英语3500词(乱序版)
- 钢结构吊装技术交底
- 电商平台定价策略优化
- 人美版美术 二年级下册全册教学设计(表格式)
- 2024年广东省广州市黄埔区黄埔街道办事处招聘4人历年高频难、易错点500题模拟试题附带答案详解
- 数学家祖冲之课件
评论
0/150
提交评论