《基于单片机的电冰箱温控器设计毕业设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的电冰箱温控器设计毕业设计.doc(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 基于单片机的电冰箱温控器设计毕业设计前言1第1章绪论21.1电冰箱的基本介绍21.2国外的研究状况21.3本设计的研究容3第2章总体方案设计52.1功能特点52.2设计要求62.3方案设计6第3章系统的硬件设计73.1硬件设计方案73.2硬件电路主要芯片介绍83.2.1 MCS-51单片机83.2.2 MCS-51单片机引脚介绍93.2.3基本时序单位113.2.4温度传感器DS18B20123.2.5 DS18B20的测温原理153.2.6 DS18B20使用中注意的事项173.3部分电路介绍183.3.1时钟电路183.3.2复位电路193.3.3过欠电压检测电路223.3.4显示电路2
2、23.3.5报警电路233.3.6键盘电路233.4压缩机、风机、电磁阀控制24第4章系统的软件设计264.1软件设计流程264.2主程序的设计274.3子程序的设计294.3.1初始化子程序294.3.2测温子程序304.3.3控制子程序324.3.4中断子程序33第5章 系统调试与性能分析345.1调试345.2性能分析34结论35谢辞36参考文献37附录39外文资料译文4054 / 56前言冰箱是深刻改变了人类生活的现代奇迹之一。在人们发明冰箱之前,保存肉类的唯一方法是腌制,而在夏季喝到冰镇饮料更是一种奢望。随着国民经济的日益发展,人民的生活水平有了很大的提高,冷冻器具在家庭,医院,旅馆
3、,餐厅和科研单位得到了广泛的应用。电冰箱作为应用较为普与的家用电器,近年来,随着微电子技术、传感器技术以与控制理论的发展,其呈现迅猛发展,电冰箱向大容量、多功能、无氟、节能、智能化、人性化方向发展,因此传统的机械式、简单的电子控制难以满足现代冰箱的发展要求。电冰箱一般设有冷冻室和冷藏室。冷冻室的温度为:- 16 - 24 。冷藏室的温度为:28 。电冰箱控制的主要任务就是保持箱食品最正确温度达到食品保鲜的目的。本论文介绍单片机结合DS18B20设计的智能温度控制系统,系统用一种新型的“一总线”可编程数字温度传感器(DS18B20),不需复杂的信号调理电路和AD转换电路能直接与单片机完成数据采集
4、和处理,实现方便、精度高、功耗低、微型化、抗干扰能力强,可根据不同需要用于各种温度监控与其他各种温度测控系统中。美国DALLAS最新单线数字温度传感器DS18B20,具有微型化低功耗、高性能、可组网等优点,新的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20的测温分辨率较高,DS18B20可直接将温度转化成串行数字信号,因此特别适合和单片机配合使用,直接读取温度数据。现场温度直接以“一线总线”的
5、数字方式传输,大大提高了系统的抗干扰性。而且新一代产品更便宜,体积更小。 DS18B20可以程序设定912位的分辨率,精度为0.0625C。可选更小的封装方式,更宽的电压适用围。分辨率设定,与用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!第1章 绪论1.1电冰箱的基本介绍冰箱的基本原理很简单:冰箱利用液体蒸发吸收热量。冰箱中使用的液体(即制冷剂)会在极低的温度蒸发,使冰箱部保持冰冻温度。所有冰箱都由五个基本部件组成:l 压缩机 l 安全阀 l 热交换管,冰箱外部呈弯曲或盘曲状的管道l 冷交换管,冰箱部呈弯曲或盘曲状的管道
6、 l 制冷剂,冰箱蒸发以制造低温的液体很多工业冰箱使用纯氨作为制冷剂,纯氨在-32时蒸发。压缩机压缩制冷剂气体,这将升高制冷剂的压力和温度(橙色),而冰箱外部的热交换线圈帮助制冷剂散发加压产生的热量。当制冷剂冷却时,制冷剂液化成液体形式(紫色),并流经安全阀。当制冷剂流经安全阀时,液态制冷剂从高压区流向低压区,因此它会膨胀并蒸发(浅蓝色)。在蒸发过程中,它会吸收热量,发挥制冷效果。冰箱的线圈帮助制冷剂吸收热量,使冰箱部保持低温。然后,重复该循环。1.2国外的研究状况长期以来,在电子行业,温控器正快速发展。温控器是控制末端装置,实现分室温度控制和节能运行的关键。 普通电冰箱温控器基本上是一个独立
7、的闭环温度调节系统,主要由温度传感器、控制器、温度设定机构等装置组成。其控制原理是电冰箱温控器根据温度传感器测得的室温与设定值的比较结果发生控制信号,控制电冰箱压缩机电源的开关,即用切断和打开压缩机电源的方式,调节电冰箱温度。 第一代空调温控器主要是电气式产品,空调温控器的温度传感器采用双金属片或气动温包,通过“给定温度盘”调整预紧力来设定温度,风机三速开关和季节转换开关为拨档式机械开关。这类温控器产品普遍存在“温度设定分度值过粗”、 “时间常数太大”、“机械开关易损坏”等问题。 第二代空调温控器为电子式产品,温度传感器采用热敏电阻或热电阻,部分产品的温度设定和风速开关通过触摸键和液晶显示屏实
8、现人机交互界面,冷热切换自动完成,运算放大电路和开关电路实现双位调节。这类智能空调温控器产品改善了人机交互界面,解决了“温度设定分度值过粗”等问题,但仍存在“控制精度不高”、“时间常数大”、“操作较复杂”等问题。目前国外生产厂家正在研究开发第三代智能型温控器,如DS18B20。个别厂家积极响应国家的政策,应用新型控制模型和数控芯片实现智能控制。现在已有国厂家生产出了智能型温控器,并已应用于实际工程。这一生产带动电子行业的发展。1.3本设计的研究容课题的任务是应用单片机与DS18B20单总线器件设计一套温度检测系统,实现对温度的测量与显示,并通过按键人为设定温度上下限!而且在温度超上限价或下限量
9、有控制功能,系统以高性能/价格比的89C51为核心,完成对数据的分析、处理、显示、温度上下限设置、超限自动控制,采用单线数字温度传感器DS18B20来完成对温度的采样和转换。由于课题是完成对温度的实时监测,因而系统的核心部分就是如何实现温度采集。系统采用的是美国DALLAS公司继DS1820之后推出的一种改进型智能温度传感器DS18B20来完成这一任务的。DS18B20与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要去通过简单的编程实现9-12位的数字值读数方式,可分别在93.75ms和750ms完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅从
10、一根口线,温度变换功率来源于数据总线,总线本身可以为所接的DS180B20供电,而无需外电源。DS18B20需在严格的时序控制下才能进行正常操作。对DS18B20的操作包括初始化操作、读/写时间片。总线上的所有操作均从初始化开始,初始化或对RAM、ROM操作。主CPU通过“时间片”来写入或读出DS18B20中的数据。概括说,主CPU经过单线接口访问DS18B20的工作流程为:对DS18B20进行初始化ROM操作命令存储器(包括RAM和EERAM)操作命令数据处理。主CPU对ROM操作完毕,即发出控制操作命令,使DS18B20完成温度测量并将测量结果存入高速暂存器中,然后单片机可读出此温度转换值
11、,并随之进行数据处理、送显示等操作。研究方法则是采用C51单片机开发板模拟电冰箱工作环境,并模拟设定电冰箱各项参数,以研究电冰箱温控器的工作原理与设计。研究的容主要包括以下方面: 1、液晶显示的工作原理,并通过液晶将各项数据显示在冰箱外; 2、温度控制器原理,制冷原理,自动控制电冰箱工作使其通过制冷达到所设定的温度; 3、智能检测电冰箱工作电压是否正常,避免压缩机烧坏; 4、继电器工作原理,模拟对压缩机的通/断电操作; 5、单片机C程序编程语言; 本文介绍基于单片机的电冰箱温控器设计的总体设计思想和方案,与用到的部分芯片与硬件设计的原理,还有软件设计过程中的思想和方法等。第2章 总体方案设计2
12、.1功能特点基于单片机设计的智能冰箱控制器,与传统的电冰箱相比,在功能上有了很大的扩展,更加人性化,更加方便,真正实现了智能化的要求。它的智能化主要表现在以下几个方面:第一,用户可以通过控制面板上的按钮,对冷冻室的温度进行预先设定,而不必打开冰箱门,电脑能根据用户设定的温度,控制压缩机的开、停,使冷冻室的温度达到设定的温度,同时在控制面板上有数码管向用户显示冷冻室的实时温度和预设的温度值。第二, 通过按钮转换,数码管还可以向用户显示冰箱压缩机开机时间和停机时间,用户通过观察这两个计时时间能估计出实时的压缩机开机时间百分率,了解冰箱的工作状况与耗电情况,了解在长期的使用过程中冰箱的性能、效率、能
13、耗变化情况。第三,使冰箱具有“大脑”功能,能够根据自身的“感觉”,不断做出自身的调整,如自己控制压缩机的启动/停止,以与相应的时间;同时,它还忠诚的响应主人的号召,时刻按照主人的要求行事。主人下达最终的执行任务,它就通过自身的方式执行,如它的行动方向与主人的指令是一致的。第四,当用户开启冰箱门之后,未关严或开门时间过长时发出开门超时报警、提醒用户与时关门以节省电能,当电冰箱因氟利昂泄露或压缩机等机械部件性能劣化,发生制冷效率下降而使压缩机长时间开机连续超过6小时以上,发出1报警,以与冷冻室温度下降不下去,高于零下5度时发出故障2报警。总而言之,电冰箱使用这个由单片机设计的冰箱控制器后,用户再也
14、不用像以前那样,对使用电冰箱的工作状况,性能好坏全然不知道,而是通过电脑对电冰箱工作状况的实时监测和显示,实时清楚的了解温度、效率、能耗的情况;它使得一台普通的电冰箱有了“大脑”,它能通过不断地监测,调整自己的行为,使之维持在正常的水平上。当自己“生病”时,便向它的主人发出病态信号,并且给予“治疗”。这个控制器真正使得电冰箱智能化,因此称之为“智能冰箱控制器”。2.2设计要求通过液晶显示所设定的温度,温度能随意调节,能自动控制电冰箱工作,使其通过制冷达到所设定的温度。2.3方案设计根据设计的要求,我们可以知道在本次设计中最重要的部分就是温控器,温控器的选择将决定外部电路的设计,在日常生活与工农
15、生产中,经常要用到温度的检测与控制,传统的测温元件有热电耦和热电阻。温控器的第一选择就可以选择热电耦和热电阻,他们测出的一般都是电压,再转换成对应的温度,但是需要比较多的外部硬件支持。因此这种选择就有如下主要缺点:1.硬件电路复杂2.软件调试复杂3.制作成本高 方案设计采用美国DALLAS半导体公司生产的高性能数字智能温度传感器DS18B20。DS18B20作为检测元件,测温围为-55125,最高分辨率可达0.0625。DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。所以在本次毕业设计中采用方案二,使用DS18B20作温控器配合
16、51单片机STC89C52进行设计。 第3章 系统的硬件设计3.1硬件设计方案按照系统设计功能的要求,确定系统由8个模块组成:主控制器、测温电路、液晶显示电路、过欠压检测电路、继电器压缩机电路、复位电路、按键电路和报警电路。图3-1 单片机控制电冰箱的原理框图应用89C51单片机控制电冰箱的原理框图如图31,MCS-51单片机的典型芯片是89C51。MCS-51系列单片机研制于1980年,由Intel公司所开发,其结构是8048的延伸,改进了8048的缺点,其ROM、RAM都可扩充至64KB,也增添了如乘(MUL)、除(DIV)、减(SUBB)、比较(CJNE)、栈入(PUSH)、栈出(POP
17、)、16位数据指针、布尔代数运算等指令,以与串行通信能力和5个中断源。采用温度传感器测得冷冻室温度,通过单线与单片机通信,单片机将此温度值进行保存后,通过控制版面的按键输入某一冷冻温度设定值(电冰箱出厂时候,已经输入了一个比较适宜的温度值,或叫做隐含值),这个设定的温度值由单片机送往右边四位数码显示的同时,还不断与实测的冷冻室温度进行比较,如下:T1T设+8?即冷冻室温是否比设定的温度高8度,若是的话,单片机2.0口输出高电平,使得VT1饱和导通,继电器K1吸合,压缩机运转,电冰箱开始制冷过程.若比较结果是否定的,则压缩机保持原来状态不变,这里会有两种情况:一种是压缩机在开机后使冷冻室温度T1
18、降下来,使得T1不再大于T设+8的情况,这也需要保持压缩机继续停机。程序设计必须考虑对于非变频式压缩机(即活塞式、玄片式等开停式温控制器型),为避免压缩机的频繁启动/停止,而规定的大约8围,是上升还是下降进入两种不同情形时压缩机应有的状态。压缩机运行后,冷冻室温度不断下降,控温程序将对T1T设继续进行比较,当冷冻室温度T1降至设定温度以下时,单片机P2.0口输出低电平,继电器K1释放,控制压缩机停机,若比较结果是否定的则保持压缩机开机状态不变。只要压缩机一运转,单片机就对压缩机开机进行与时,当压缩机开机时间达到10小时后,主程序使P2.0口变成低电平,压缩机停机,同时P1.2口送出高电平,使得
19、VT2饱和导通,继电器K2吸合,化霜加热器接通电源220V,化霜开始。化霜过程的完毕时由蒸发器便面的温度T3来决定的,当结霜融化,蒸发器表面温度T3 DS18B20的单线输入单片机的P1.0口,温度存入单片机,该温度值与化霜完毕温度值13度进行比较,T313?若结果是肯定的,则执行两个动作,一时P2.0口恢复低电平,使化霜继电器K2释放,化霜电热器断电。二是将压缩机开机累计时间清零,为下一个化霜控制周期做好准备。3.2硬件电路主要芯片介绍3.2.1 MCS-51单片机MCS-51部基本组成为:一个8位的中央处理器(CPU),256byte片RAM单元,4Kbyte掩膜式ROM,2个16位的定时
20、器/计数器,四个8位的并行I/O口(P0,P1,P2,P3),一个全双工串行口,5个中断源,即外部中断2个,定时器中断2个,串行中断1个,有2个中断优先级。中断控制电路主要包括用于中断控制的四个寄存器;定时器控制寄存器TCON,串行口控制器SCON,中断允许控制寄存器IE,中断优先级控制寄存器IP等。一个片振荡器和时钟发生电路。其中2路温度输入P1.0和,一路状态电平输入,三路键盘输入;其中故障报警和冷藏室温度公用一个端口。MCS-51系列单片机特点如下:(1)专为控制应用所设计的八位CPU ;(2)具有布尔代数的运算能力;(3)32条双项且可被独立寻址的IO口;(4)芯片有128字节可供存储
21、数据的RAM(8052:256字节);(5)部有两组16位定时器(8052有3个);(6)具有全多工传输信号UART;(7)5个中断源,且具有两级(高低)优先权顺序的中断结构;(8)芯片有4KB(8KB/8052)的程序存储器(ROM);(9)芯片有时钟(CLOCK)振荡器电路;(10)程序存储器可扩展至64KB(ROM);(11)数据存储器可扩展至64KB(RAM)。 3.2.2 MCS-51单片机引脚介绍MCS-51系列单片机采用40引脚双列直插式封装(DIP),4个并行口共有32根引脚,可分别作为地址线、数据线和I/O线;2根电源线;2根时钟振荡电路引脚和4根控制线。MCS-51 单片机
22、是高性能单片机,因为受引脚数目的限制,所以有许多引脚具有第二功能,以89C51芯片为例,说明各引脚功能如以下图3-2所示。(1)电源引脚Vss和VccVss:接地端。 Vcc:芯片+5V电源端。(2)时钟信号引脚XTAL1和XTAL2XTAL1、XTAL2:当使用单片机部振荡电路时,用来外接石英晶体和微调电容,XTAL1是片振荡电路反相放大器的输入端,XTAL2是片振荡电路反相放大器的输出端,振荡电路的频率就是晶体的固有频率。图3-2 89C51引脚图当使用外部时钟时,XTAL1接地,XTAL2接外部时钟信号源。(3)控制信号引脚RST/VPD、ALE/PROG、PSEN和EA/VPPRST/
23、VPD:RST是复位信号输入端。当输入的复位信号保持两个机器周期(24个时钟周期)以上的高电平时有效,用来完成复位操作;第二功能VPD作为备用电源输入端,当主电源Vcc发生故障,电压降低到低电平规定值时,可通过VPD为单片机部RAM提供电源,以保护片RAM中的信息不丢失,使系统上电后能继续正常运行。ALE/PROG:ALE为地址锁存允许输出信号。在访问外部存储器时,ALE用来锁存P0口扩展低8位地址的控制信号。在不访问外部存储器时,ALE也以时钟振荡频率的1/6的固定频率输出,因为它又可用作对外输出时钟信号或其他需要,例如可以用示波器查看ALE是否有脉冲信号输出来确定89C51芯片的好坏;第二
24、功能PROG是对部有EPROM的单片机的EPROM编程时编程脉冲输入端,它和31号引脚的第二功能Vpp一起使用。PSEN:外部ROM的读选通信号输出端。在访问外部ROM时,PSEN产生负脉冲作为读外部ROM的选通信号。而在访问外部RAM或片ROM时,不会产生有效PSEN信号。EA /VPP:EA是访问外部RAM的控制信号。当EA为低电平时,CPU只执行外部ROM中的程序。当EA为高电平且PC值小于0FFF(4K)时,CPU执行部ROM的程序,但当PC的值超出4K时将自动转去执行片外ROM的程序。对于无片ROM的8031或不使用部ROM的89C51,需外扩EPROM,此时EA必须接地。在Flas
25、h ROM编程期间,该引脚也用于施加允许电源VPP(如果选用12V编程)。(4)并行I/O端口P0、P1、P2和P3P0口(P0.0-P0.7):P0口是一个8位双向I/O端口(需外接上拉电阻)。在访问外部存储器时,分时提供低8位地址线和8位双向数据线。P0口先输出片外存储器的低8位地址并锁存在地址锁存器中,然后再输入或输出数据。P1口(P1.0P1.7):P1口是一个部带有上拉电阻的8位准双向I/O端口。P1口只能作为一般I/O口使用。P2口(P2.0P2.7):P2口是一个部带有上拉电阻的8位准双向I/O端口。在访问外部ROM或外部ROM时,输出高8位地址,与P0口提供的低8位地址一起组成
26、16位地址总线。P0口和P2口用作数据/地址线后,不能再作为通用I/O口使用。P3口(P3.0 P3.7):P3口是一个部带有上拉电阻的8位准双向I/O端口,在系统中8个引脚都有各自的第二功能。3.2.3基本时序单位单片机以晶体振荡器的振荡周期(或外部引入的时钟周期)为最小的时序单位,片的各种微操作都以此周期为时序基准。振荡频率二分频后形成状态周期或称s周期,所以1个状态周期包含有2个振荡周期。振荡频率fosc12分频后形成机器周期MC。所以,一个机器周期包含有6个状态周期或12个振荡周期。14个机器周期确定一条指令的执行时间,这个时间就是指令周期。89C51单片机指令系统中,各条指令的执行时
27、间都在14个机器周期之间。4种时序单位中,振荡周期和机器周期是单片机计算其他时间值(例如,波特率、定时器的定时时间等)的基本时序单位。下面是单片机外接晶振频率12MHZ时的各种时序单位的大小:状态周期=2/fosc=2/12MHZ=0.0167s机器周期=12/fosc=12/12MHZ=1s指令周期=(14)机器周期=(14)s振荡周期=1/fosc=1/12MHZ=0.0833s3.2.4温度传感器DS18B20 温度传感器是本系统不可或缺的元件,其性能的好坏直接影响系统的性能,因此采用DALLAS公司生产的高性能数字温度传感器DS18B20。 DS18B20是DALLAS公司生产的一线式
28、数字温度传感器,具有3引脚TO92小体积封装形式;温度测量围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。图3-3 DS18B20引脚图DS18B20的管脚排列如图3-3所示:DQ: 为数字信号输入输出端;GND:为电源地;VDD:为外接供电电源输入端(在寄生电源接线
29、方式时接地,见图3-2)。 ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8X5X41)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20部结构如图3-4所示主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。图3-4 DS18B20的部结构DS18B20用12 位存贮温度值,最高位为符号位。以以下图表2-1为DS18B20的温度存储方式,负温度S = 1,正温度S
30、= 0。表3-1 DS18B20 温度值格式表温度值低字节LBSBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0222222224温度值高字节 MBSBit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8sssss262524高低温报警触发器TH和TL、配置寄存器均由一个字节的EEPROM组成,使用一个存储器功能命令可对TH、TL或配置寄存器写入。其中配置寄存器的格式如下: 表3-2 配置寄存器结构0R1R011111转化后得到的12位数据,存储在DS18B20的两个8byte的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将
31、测得的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。如:0550H为+85,0191H为25.0625,FC90H为- 55。R1、R0决定温度转换的精度位数:R1R0=00,9位精度,最大转换时间为93.75ms,R1R0=01,10位精度,最大转换时间为187.5ms,R1R0=10,11位精度,最大转换时间为375ms,R1R0=11,12位精度,最大转换时间为750ms;未编程时默认为12位精度。 表3-3 DS18B20温度数据表温度数据输出(二进制)数据输出(十六进制)+1250000 0111 1101
32、 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.125 0000 0000 1010 0010 00A2H+0.50000 0000 0000 1000 0008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000 FC90H高速暂存器是一个9字节的存储器。开始两个字节包含被
33、测温度的数字量信息;第3、4、5字节分别是TH、TL、配置寄存器的临时拷贝,每一次上电复位时人文科技学院毕业设计 11 被刷新;第6、7、8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。3.2.5 DS18B20的测温原理DS18B20测量温度采用了特有的温度测量技术,其温度测量电路如图3-5所示。冷藏室温度T2.冷冻室温度T1温度蒸发器表面温度T3均由DS18B20温度传感器获得。采用DS18B20较普通传感器有诸多优点,最主要的是它省去了大量的硬件电路,避免了太多的调试问题,而且精度高,响应迅速,实在是上上之举。它通过单数据线DQ与单片机进行数据
34、通讯,简单、可靠、易行。图3-5 温度检测电路图3-5中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时
35、温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3-5中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。 由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令
36、数据传输。另外,在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:在信号线DQ处于高电平期间把能量储存在部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来在给寄生电源(电容)充电。独特的寄生电源方式有三个好处:(1)进行远距离测温时,无需本地电源(2)可以在没有常规电源的条件下读取ROM(3)电路更加简洁,仅用一根I/O口实现温测 要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会
37、造成无法转换温度或温度误差极大。3.2.6 DS18B20使用中注意的事项DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: 1.较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。 2.在DS1820的有关资料中均未提与单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。
38、当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 3.连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 4.在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的
39、返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。 3.3部分电路介绍3.3.1时钟电路89C51单片机的时钟信号通常用两种电路形式得到:部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了部振荡方式。由于单片机部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生震荡时钟脉冲。部振荡方式的外部电路如图3-6所示,图中,电容器C1、C2起稳定振荡频率、快速起振的作用,其电容值通常取30PF左右。晶振频率的典型值位12M
40、HZ,采用6MHZ的情况也比较多。部振荡方式的时钟信号比较稳定,实用电路中使用较多。由图3-6可见,外部振荡信号由XTAL2引入,XTAL1接地。为了提高输入电路的驱动能力,通常使外部信号经过一个带有上拉电阻的TTL反相门后接入XTAL2。图3-6部振荡方式外部振荡方式是把外部已有的时钟信号引入单片机,这种方式适宜用来使单片机的时钟与外部信号保持同步。3.3.2复位电路当MCS51系列单片机的复位引脚RST(全称RERST)出现2个机器周期以上的高电平时,单位就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电自动复位和按键手动复位
41、。上电复位要求接通电源后,自动实现复位操作。通常用的上电复位电路如图3-7所示。图中电容C和电阻R对电源Vcc来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机的等效电阻的作用,不用图中电阻R也能达到上电复位的操作功能。所谓手动复位,是指通过接通一按钮开关,使单片机进入复位状态。系统上电运行后,若需要复位,一般是通过手动复位来实现的。通常采用手动复位和上电复位结合,其电路如图3-7所示。图3-7单片机复位电路图 单片机复位后的状态:单片机的复位操作时单片机进入初始化状态,其中包括是程序计数器PC=0000H,这说明程序从0000H地址单元开始执行。单片机冷启动后,片RAM为随机值,
42、运行中的复位操作不改变片RAM区中的容,21个特殊功能寄存器复位后的状态为确定值。 值得指出的是,记住一些特殊功能寄存器复位后的主要状态如表3-4所示,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。 说明:表中符号为随机状态; A=00H,表面累加器已被清零;表3-4特殊功能寄存器特殊功能寄存器初始状态特殊功能寄存器初始状态A00HTMOD00HB00HTCON00HPSW00HTH000HSP07HTL000HDPL00HTH100HP0P3FFHSBUF不定IP*00000BSCON00HIE0*00000BPCON0*BPSW=00H,说明选寄存器0组为工作寄存器组;SP
43、=07H,说明堆栈指针指向片RAM07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的容写入到08H单元中;P0p3=FFH,说明已向各端口线写入1,此时,个端口既可用于输入又可用于输出;IP=*00000B,说明各个中断源处于低优先级;IE=0*00000B,说明各个中断均被关断;系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个震荡周期后,51单片机即进入芯片部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片部的程序代码,
44、若为低电平便会执行外部程序。51单片机在系统复位时,将其部的一些重要寄存器设置为特定的值,至于部RAM的数据则不变。3.3.3过欠电压检测电路过欠压检测电路只有检测出电压是否稳定便可,而这种电路允许输出端并接在一起。使用电压比较器,部采用射级接地、集电极开路的三极管集电极输出方式。 此电路的工作原理是: 当输入电压UiUR1时,比较器A1的输出管导通,而比较器A2的输出管截止,此窗口比较器的输出电平将由比较器A1输出电平确定为低电平。只有当输入电压处于窗口电压之,即UR2UiUR1时,比较器A1和A2输出管均截止,窗口比较器输出电平是由上拉负载电阻拉向高电平。3.3.4显示电路 LED显示器是
45、单片机应用系统中常用的廉价输出设备。它是由若干个发光二极管组成的,当发光二极管导通时,相应一个笔画划发光,控制某段发光二极管导通,就能显示出某个数码或字符。 在静态显示系统中,每位显示器都应有各自的锁存器、译码器(若采用软件译码,译码器可省去)与驱动器,用以锁存各自待显示数字的BCD码或字段码。因此,静态显示系统在每一次显示输出后能够保持显示不变,仅在待显示数字需要改变时,才更新其数字显示锁存器中的容。这种显示占用CPU的时间少,显示稳定可靠。缺点是,当显示的位数较多时,占用的I/O口较多。 在动态显示的系统中,CPU需定时地对每位LED显示器进行扫描,每位LED显示器分时轮流工作,每次只能使
46、一位LED显示,但由于人的视觉暂留现象,仍感觉所有的LED显示器都在同时显示。这种显示的优点是使用硬件少,占用I/O口少。缺点是占用 CPU时间长,只要不执行显示程序,就立刻停止显示。但随着大规模集成电路的发展,目前已有能自动对显示器进行扫描的专用显示芯片,使电路既简单又占用CPU时间。在我们所设计的温度计中数码管显示就是利用的动态显示。图2-11 LED显示电路3.3.5报警电路报警电路主要用示电冰箱使用过程中出现的故障,包括系统自身故障,外界故障,和误操作,如:冰箱温度太高,外界电压波动大,未关好冰箱门或是开门时间太长等等。 四个指示灯作用: L1: 温度超限失控报警L2: 开门超时报警L3:压缩机运行时报警L4:电源过压或欠压时报警图3-8报警电路3.3.6键盘电路因本系统使用的按键数目少,故按键采用硬件去抖。按键电路如图3