《基于单片机控制的恒温箱设计.doc》由会员分享,可在线阅读,更多相关《基于单片机控制的恒温箱设计.doc(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、(2011届)毕业设计(论文)资料题 目 名 称: 基于单片机控制的恒温箱设计 学 院(部): 电气与信息工程学院 专 业: 机电一体化技术 学 生 姓 名: 班 级: 学号 指导教师姓名: 职称 最终评定成绩: 湖南工业大学教务处 (2011届)专科毕业设计(论文)基于单片机控制的恒温箱设计学 院(部): 电气与信息工程学院 专 业: 机电一体化技术 学 生 姓 名: 刘 勇 班 级:机电0821 学号08395182124 指导教师姓名: 周翔 职称 讲师 最终评定成绩 2011年6年湖南工业大学专科毕业设计(论文)摘 要本设计以单片机AT89c51为核心部件,采用单总线型数字式的温度传感
2、器DS18B20作为温度采集,设计制作了带键盘输入控制,动态显示和越限报警功能的恒温控制系统。该系统既可以对当前温度进行实时显示,又可以对温度进行控制,并使其恒定在某一温度范围。控制键盘设计使设置温度简单快捷,两位整数一位小数的显示方式具有更高的显示精度。通过对系统软件和硬件的合理规划,发挥单片机自身集成多系统功能单元的优势,在不减少功能的前提下有效降低了成本,系统操作简便。关键词 :单片机,恒温控制,AT89C51,DS18B20,精度ABSTRACTThis design with single-chip microcomputer AT89c51 as the core componen
3、t with single bus-control digital temperature sensor DS18B20 as temperature gathering, design with a keyboard input control, the dynamic display and the limit alarm function of temperature control system. This system not only can real-time display of the current temperature and temperature control,
4、and make its constant in a certain temperature range. Control the keyboard design makes set temperature simple and quick, two integer a decimal display mode has higher precision of the show. Through the system software and hardware reasonable planning, play microcontroller itself more system functio
5、n unit integrated advantage, in not reduce functionality premise to reduce the cost and system easy operation. Key words: single-chip ,microcomputer temperature control, AT89C51 single chip ,DS18B20 ,precision 目 录第1章 绪论11.1 课题背景 11.2 国内外恒温控制技术发展现状及趋势11.2.1 国外恒温控制的发展现状及趋势11.2.2 国内恒温控制的发展现状及趋势21.3 设计任
6、务21.3.1 设计目的21.3.2 系统设计技术指标31.3.3 系统功能3第2章 恒温控制系统总体方案设计42.1系统方案选择与论证42.1.1 一位式的模拟控制方案42.1.2 二位式的模拟控制方案42.1.3 PID算法控制方案52.2 恒温控制系统工作原理6第3章 恒温控制系统硬件设计73.1 CPU主控模块73.1.1AT89C51单片机简介73.1.2 AT89C51各引脚功能说明73.1.3 AT89C51单片机主要性能参数83.1.4晶振电路与复位电路的设计83.2 温度采集模块93.2.1 DS18B20的特点93.2.2 DS18B20内部结构113.2.3 DS18B2
7、0的内存结构113.2.4 温度传感器DS18B20的测温原理123.2.5 DS18B20的指令集133.2.6 DS18B20与单片机的接口电路143.3 按键输入电路163.4 继电器模块173.4.1 固态继电器SSR工作原理173.4.2 固态继电器SSR的特点183.4.3 继电器控制电路图193.5 显示模块19第4章 恒温控制系统软件设计224.1 工作流程224.2 程序模块224.2.1 主程序224.2.2 温度传感器驱动子程序234.2.3 键盘扫描处理程序244.2.4 温度检测与控制子程序244.2.5温度显示子程序254.3 软件调试264.4 软硬调试28结束语
8、29参考文献30致谢31附录一 硬件电路32附录二 软件程序3347 第1章 绪 论1.1 课题背景温度是工业上常见的被控参数之一,特别是在冶金、化工、建材、食品加工、机械制造等领域,恒温控制系统被广泛应用于加热炉、热处理炉、反应炉等。在一些温控系统电路中,广泛采用的是通过热电偶、热电阻或PN结测温电路经过相应的信号调理电路,转换成AD转换器能接收的模拟量,再经过采样保持电路进行AD转换,最终送入单片机及其相应的外围电路,完成监控。但是由于传统的信号调理电路实现复杂、易受干扰、不易控制且精度不高。本文介绍单片机通过数字温度传感器检测外部温度对水箱进行恒温控制的设计,采用PID算法来控制PWM波
9、形的产生,进而控制电炉的加热来实现恒温控制。因此,本系统采用一种新型的可编程温度传感器(DS18B20),不需复杂的信号处理电路和AD转换电路就能直接与单片机完成数据采集和处理,实现方便、精度高,可根据不同需要用于各种场合。在日常生活中,也经常用到电烤箱、微波炉、电热水器、烘干箱等需要进行温度检测与控制的家用电器。采用单片机实现温度控制不仅具有控制方便、简单、灵活等优点,而且可以大幅度地提高被控温度的技术指标,从而大大提高产品的质量,现以恒温控制系统的设计进行介绍。1.2 国内外恒温控制技术发展现状及趋势随着计算机控制技术的发展,恒温控制己在工业生产领域中得到了广泛应用,并取得了巨大的经济和社
10、会效益。在不同的领域内,由于控制环境、目标、成本等因素,需要针对具体情况来设计系统结构和功能,以取得最佳的控制效果。其中,恒温环境的自动化控制技术在工业生产、商业运营中是一个重要研究课题。1.2.1 国外恒温控制的发展现状及趋势自70年代以来,由于工业过程控制的需要,特别是在微电子技术和计算机技术的迅猛发展,以及自动控制理论和设计方法发展的推动下,国外恒温控制系统发展迅速,并在智能化,自适应参数的自整定等方面取得了很大的科技成果。在这方面以日本、美国、德国、瑞典等国技术领先,并且都生产出了一批商品化的性能优异的温度控制器及仪器仪表。目前,国外温度控制系统及仪表正朝着高精度智能化、小型化等方面快
11、速发展。虽然温度控制系统在国内各行各业的应用已经十分广泛,但从国内生产的温度控制器及技术来讲,其总体发展水平仍然不高,同国外的日本、美国、德国等先进国家相比,仍然有着较大的差距。1.2.2 国内恒温控制的发展现状及趋势我国目前在恒温控制技术这方面总体技术水平处于20世纪80年代中后期水平,成熟产品主要以“点位”控制及常规的PID控制器为主,它只能适应一般温度系统控制,难于控制滞后、复杂、时变的温度系统控制。在适应于较高控制场合的智能化、自适应控制仪表领域内,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。因此,我国在恒温控制等控制仪表行业与国外还有着一定的差距。从过程量的检测角度出发
12、,温度是最常见的过程变量之一,它是一个非常重要的过程变量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形,结晶以及空气流动等物理和化学过程。而恒温控制技术在工业领域应用非常广泛,由于其具有工况复杂、参数多变、运行惯性大、控制滞后等特点,它对控制调节器要求较高。其温度控制不好就可能引起生产安全,产品质量和产量等一系列问题。尽管恒温控制很重要,但是要控制好温度常常会遇到意想不到的困难。随着嵌入式系统开发技术的快速发展及其在各个领域的广泛应用,人们对电子产品的小型化和智能化要求越来越高,作为高新技术之一的单片机以其体积小、价格低、可靠性高、适用范围大以及本身的指令系统等诸多优势
13、,在各个领域、各个行业都得到了广泛应用。1.3 设计任务1.3.1 设计目的设计一个恒温自动调节控制系统,温度可以在一定范围内由人工设定,并能在环境温度降低时实现自动调节,以保持与设定的温度基本不变。利用单片机AT89C51实现温度的智能控制,使温度能够在设定温度实现恒定温度调节,利用数字温度传感器读出实际温度,并在此基础上将实际温度调节到通过键盘设定的温度(其方式是加热或降温),并通过数码管显示器实现当前温度与设定温度的显示。1.3.2 系统设计技术指标设计的恒温控制系统的技术指标:(1)预置时显示设定温度,达到定温度时显示实时温度,显示精确到1。(2)恒温箱温度可预置,在误差范围内恒温控制
14、,温度控制误差1。(3)恒温系统由1KW电炉加热。 (4)启动后有运行指示,温度低于预置温度5时进行220V全加热。(5)具有相应的保护功能。1.3.3 系统功能(1)可以对温度进行自由设定,但必须在0100内,设定时可以实时显示出设定的温度值。(2) 加热由1台1KW电炉来实现,如果温度不在设定温度时,根据设定的温度值与实际检测的温度值之差来采取不同的加热方式。(3) 能够保持实时显示温度,显示位数4位,分别为百位、十位、个位和小数位。(但由于规定不超过90度,所以百位也就没有实现,默认的百位是不显示的。)第2章 恒温控制系统总体方案设计2.1系统方案选择与论证2.1.1 一位式的模拟控制方
15、案此方案是传统的一位式模拟控制方案,选用模拟电路,用电位器设定给定值,反馈的温度值和设定值比较后,决定加热或不加热。其特点是电路简单,易于实现,但是系统所地结果的精度不高并且调节动作频繁,系统静差大,不稳定,受环境影响大,不能实现复杂的控制算法,难以用数码管显示,难以用键盘设定,其方案一框图如图2.1所示。比较器温度预置信号放大固态继电器加热装置数据采集信号放大图2.1 一位式模拟控制方案框图2.1.2 二位式的模拟控制方案此方案采用单片机系统来实现。单片机软件编程灵活、自由度大,可用软件编程实现各种控制算法和逻辑控制。单片机系统通过温度传感器(ADC590)对水箱内水温进行检测,得到模拟的温
16、度信号,在经过A/D转换成数字信号之后,则可用数码管来显示水温的实际值,还能用键盘输入设定值,也可实现打印功能。本方案还可选用51单片机(内部含有4KB的EEPROM),不需要外扩展存储器可使系统整体结构较为简单。但是它是一种传统的模拟控制方式,而模拟控制系统难以实现复杂控制规律,控制方案的修改也比较麻烦,其方案二框图如图2.2所示。加热装置上限比较温度预置信号放大信号采集固态继电器信号处理下限比较图2.2 二位式模拟控制方案框图2.1.3 PID算法控制方案此方案采用单片机为控制核心的控制系统,尤其对温度控制,它可达到核心的控制作用,并且可方便实现数码显示、键盘设定及利用PID算法来控制PW
17、M波形的产生,进而控制电炉的加热来实现恒温控制,其所测结果精度也大大的得到了提高,在利用PID算法来控制PWM波形的产生,是有效的控制数字脉冲的输出宽度,使固态继电器得到有效和有序的逻辑控制,不会使固态继电器产生误动作。因此利用PWM技术进行脉宽调制的优点是:(1)从处理器到被控系统信号都是数字形式的,无需进行数模转换。(2)让信号保持为数字形式可将噪声影响降到最小,并且噪声只有在强到足以将逻辑“1”改变为逻辑“0”或将逻辑“0”改变为逻辑“1”时,才能对数字信号产生影响。(3)对噪声抵抗能力的增强也是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。(4)P
18、WM经济、节约空间、抗噪性能强,是一种值得广大工程师在许多设计应用中使用的有效技术。再加上单片机的软件编程灵活、自由度大,可用软件编程实现各种控制算法和逻辑控制。它可以通过用数字温度传感器采集到的实际水温温度直接进行数码管显示,还能用键盘输入设定值,并且内部含有4KB的EEPROM,不需要外扩展存储器,可使系统整体结构更为简单1,其方案三框图如图2.3所示。键盘设定数据采集单片机电源电路LED数码显示固态继电器加热装置图2.3 基于单片机控制的方框图数字PID调整复位电路由于方案一和方案二是传统的模拟控制方式,而模拟控制系统难以实现复杂控制规律,控制方案的修改也比较麻烦,而方案三是采用单片机为
19、控制核心的控制系统,利用PID控制原理和PWM技术实现对温度的控制。基于这样的控制原理和PWM技术的优越性,在对温度控制的系统中,它可达到采用其他控制系统所达不到的控制效果,并且可方便实现数码实时显示、键盘设定、直接可以驱动固态继电器,其测量结果的准确性和精度是非常高的,故经过对三种方案的比较论证,本设计采用方案三,利用单片机按增量式的PID控制算法对采集的温度数据进行处理,得到控制量,利用增量式的PID控制算法来控制PWM波形的产生进行控制固态继电器,从而达到控制电炉的功率进行加热,实现对温度的恒温控制。2.2 恒温控制系统工作原理现对该方案的具体原理进行详细介绍,其具体控制图如图2.4所示
20、。AT89C51数字PID继电器控制电路电炉智能温度传感器DS18B20驱动电路LED显示图2.4恒温控制原理图按键输入系统通过数字温度传感器检测温度,把采集到的数据直接送到单片机进行处理,由于数字式温度传感器能在极短时间内把采集到的模拟量转换成数字量,这样被它处理的数据直接送到数字PID模块进行调整。然后,把检测到的数据与预先设定的温度值进行比较,根据不同的差值去控制控制固态继电器的通断,以采取不同的加热方式进行加热升温。另外,还设置了温度实时显示的装置,可以同时显示预先设定的温度值和实际检测到的温度值。第3章 恒温控制系统硬件设计恒温控制系统主要由六部分组成:CPU主控制模块、主电源模块、
21、键盘处理模块、温度采集模块、继电器控制模块及LED显示模块。3.1 CPU主控模块CPU主控制模块采用AT89C51芯片,把数字温度传感器采集到的温度信号与原预先设定值进行比较,然后根据其差值通过PID调节整定,控制继电器的通断进行不同加热方式,能用键盘进行输入数据的处理以及温度信号的实时显示。3.1.1AT89C51单片机简介AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C51是一种带4K字节闪存可编程可擦除只读存
22、储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。3.1.2 AT89C51各引脚功能说明如图3.1所示:VCC:供电电压。Vdd:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P2口:P2口为
23、一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。图3.1 40引脚双列直插封装图P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。RST:复位输入。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。当/EA端保持高电平时,从内部程
24、序存储器开始读取。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.1.3 AT89C51单片机主要性能参数(1)与MCS51产品指令系统完全兼容; (7)32个可编程I/O口线;(2)4K字节可重复擦写Flash闪速存储器; (8)2个16位定时/计数器;(3)1000次擦写周期; (9)6个中断源;(4)全静态操作:0Hz24MHz; (10)可编程串行UART通道;(5)三级加密程序存储器; (11)低功耗空闲和掉电模式。(6)1288字节内部RAM; 3.1.4晶振电路与复位电路的设计单片机内部带有时钟电路,只需要在片外通过XTAL1、XT
25、AL2引脚接入定时控制单元(晶体振荡和电容),即可构成一个稳定的自激振荡器。振荡器的工作频率一般在1.212MHz之间,当然在一般情况下频率越快越好,可以保证程序运行速度即保证了控制的实时性。一般采用石英晶振作定时控制元件,在不需要高精度参考时钟时,也可以用电感代替晶振,有时也可以引入外部时钟脉冲信号。接在晶振上的电容虽然没有严格要求,但电容的大小会影响振荡器的稳定性和起振的快速性。因此,通常选择在1030pF左右,在此次设计时钟电路时,晶振频率选用(12MHz),电容选用(20pF),并且它们应尽可能靠近芯片,以减小分布电容,保证振荡器振荡的稳定性。复位电路采用按键电平复位,它通过复位端经电
26、阻与+5V电源实现,只要能保证复位信号高电平持续时间大于2个机器周期就可实现复位,其时钟电路和复位电路如图3.2所示。图3.2 时钟电路和复位电路图3.2 温度采集模块由于在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。而且一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此,在本设计中的温度测量系统中,采用美国Dallas半导体公司的DS18B20温度芯片对测量温度进行采集温度数据,并且由于它抗干扰能力强,是解决这些问题的最有效方
27、案。另外数字温度传感器(DS18B20)具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果和广泛的应用。3.2.1 DS18B20的特点美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持 一线总线接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。目前DS18B20批量采购价格仅
28、6元左右。在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案,新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。新的一线器件DS18B20体积更小、适用电压更宽、更经济。DS18B20、DS1822的特性 DS18B2
29、0可以程序设定912位的分辨率,精度为0.5C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!DS1822与DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为2C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继一线总线的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。 DS18B20、
30、DS1822 一线总线数字化温度传感器同DS1820一样,DS18B20也支持一线总线接口,测量温度范围为-55C+125C,在-10+85C范围内,精度为0.5C。DS1822的精度较差为2C。现场温度直接以一线总线的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3.0V5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。二、DS18B20的外形DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS
31、18B20的外形及管脚排列如下图3.3:图3.3 DS18B20外形及引脚排列图DS18B20引脚定义: (1) GND为电源地; (2) DQ为数字信号输入/输出端; (3) VDD为外接供电电源输入端(在寄生电源接线方式时接地)DS18B20的主要特性(1)独特的单线接口方式:与微处理器连接时仅需要一条口线即可实现双向通讯。(2)在使用中不需要任何外围元件。(3)可用数据线供电,电压范围:+3.0+5.5 V。 (4)测温范围:-55 +125。固有测温分辨率为0.5。 (5)通过编程可实现912位的数字读数方式。 (6)用户可自设定非易失性的报警上下限值。 (7)支持多点组网功能,多个D
32、S18B20可以并联在惟一的三线上,实现多点测温。(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。3.2.2 DS18B20内部结构主要由4部分组成:64位光刻R0M、温度传感器、非易失性的温度报警触发器TH和TL、配置寄存器,DS18B20的内部结构图如图3.4所示。图3.4 DS18B20内部结构图3.2.3 DS18B20的内存结构DSI8B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPROM,后者存放高温和低温触发器TH,TL和结构寄存器。高速暂存RAM包含了9个连续字节(08),前两个字节是测得的温度信息,字节0的内容是温度的
33、低8位,字节1是温度的高8位,字节2是TH(温度上限报警),字节3是TL(温度下限报警),字节4是配置寄存器,用于确定输出分辨率9到12位。第5、6、7个字节是预留寄存器,用于内部计算。字节8是冗余检验字节,校验前面所有8个字节的CRC码,可用来保证通信正确。DS18B20中的温度传感器对温度的测量结果用16位符号扩展的二进制补码读数形式提供。DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。如表一所示表一 温度传感器12位数据在RAM中的存储 LSB LSB 22222222LSB LS
34、B SSSSS222这是12位转化后得到的16位数据,存储在18B20的两个8比特的RAM中。二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H3.2.4 温度传感器DS18B20的测温原理DS18B20的测温原理用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其振荡频率明显改变,所产生
35、的信号作为减法计数器2的脉冲输入,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度,由
36、于它内部的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,其内部测温电路图3.5所示。斜率累加器预置减法计数器1计数比较器预置减到零温度寄存器减到零减法计数器2高温度系数振荡器低温度系数振荡器设置/清除最低有效位增加停止 图3.5 内部测温电路框3.2.5 DS18B20的指令集操作ROM的指令共有5条,均为单字节指令,表二是其16进制指令表: 表二 ROM操作16进制指令指令代码 指令说明55 指定匹配芯片指令CC 跳过ROM匹配指令F0 搜索芯片指令EC 报警芯片搜索33 读ROM指令,器件收到
37、这个指令后就把64位ID码传送给主机操作芯片的RAM、E2PROM指令共有6条,均为单字节指令,表三 是其16进制指令表: 表三 RAM、E2PROM操作16进制指令指令代码 指令说明44 温度转换指令,并把转换后的数据存放在RAM的B1、B2的两个字节里BE 读取温度指令,器件收到这个指令后把B1、B2两个字节的数据传送给主机4E 改写RAM的B3、B4、B5的数据,主机发这个指令后再分别发送相应的数据48 器件收到这个指令后就将B3、B4、B5的数据写到E2PROMB8 器件收到这个指令后就把EEPROM的高H、低L温度报警值写到进B3、B4B4 器件收到这个指令后就返回0或者1给主机,0
38、为寄生电源,1为外部电源3.2.6 DS18B20与单片机的接口电路DS18B20的引脚图及与AT89C51的接口电路如图所示,其中DS18B20工作在外部电源供电方式,AT89C51单片机采用P3.0和DS18B20通信,如图3.6所示。图3.6 DS18B20与AT89C51单片机的接口电路 (1) GND为电源地; (2) DQ为数字信号输入/输出端; (3) VDD为外接供电电源输入端;DS18B20与AT89C51通信分析:当程序运行时,首先将DS18B20初始化,设置好要求的初始值,再调用温度读取子程序读取温度测量值,当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高
39、速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。第九个字节是冗余检验字节。 DS18B20暂存寄存器分布寄存器内容字节地址温度值低位0温度值高位1高温限值TH2低温限值TL3配置寄存器4保留5保留6保留7CRC检验8根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将
40、数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 根据ROM指令表指 令约定代码 功能读ROM 33H读DS1820ROM中的编码(即64位地址)符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS1820使之作出响应,为下一步对该DS1820的读写作准备。搜索ROM0F0H用于确定挂接在同一总线上DS1820的个数和识别64位ROM地址。为操作各器件作好准备。跳过ROM0CCH忽略64位 ROM地址,直接向DS1820发温度变换命令。适用于单片工作。告警搜索命
41、令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。根据RAM指令表 指令约定代码功能温度变换44H启动DS1820进行温度转换,转换时最长为500ms(典型为200ms)。结果存入内部9字节RAM中。读暂存器0BEH内部RAM中9字节的内容写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H将RAM中第3、4字节的内容复制到EEPROM中。重调EEPROM0B8H将EEPROM中内容恢复到RAM中的第3、4字节。读供电方式0B4H读DS1820的供电模式。寄生供电时DS1820发送“0”,外接电源供电DS1820发送
42、“1”。DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。根据上述工作编写相关子程序:1.读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。2温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。3计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。将以上子程序或单独调用或加入初始化中优化程序布
43、局。温度数据的计算处理方法:从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。因为DS18B20的转换精度为912位可选项的,为了提高精度采用12位。在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.625,就是实际的二进制温度值。一个十进制值和二进制值之间有很明显的关系,就是把二进制的高字节的低半字节和低字节的低半字节化成十进制后,就是温度值的小数部分。小数部分因为是半个字节,所以二进制值范围是0F,转换成十进制小数值就是0。0625的倍数(015)。采用1位显示小数,可以精确到0.1。3.3 按键输入电路在按键模块电路中,K1是复位按钮,z0.0是温度上调按钮, z0.1是温度下调按钮, 按键后系统自动调节设定值。其硬件电路图如图3.7所示。(a) (b)如图3.7 按键输入模块按键电路图分析:Z0.0接单片机P3.2口,设置为预设温度个位调整位Z0.1接单片机P3.3口,设置为预设温度十位调整位预定低电平为有效按键,采用去抖动子程序确定按键的有效性按键电路运行分析:当系统通电正常运行时,系统每一秒钟就对按键电路扫秒一次,扫描结束后,将扫描的结果送至系统中进行校验,如果有按键按下,则判断是那个键按下,在进行相关操作。例如,判断是z0.0按下,此按键设定为预设温度各
限制150内