课程设计基于AT89S52的数字温度计(DS18B20)设计实验
信息学院
《电子系统设计》
——设计报告
完成日期:
专 业: 班 级: 设计题目: 学生姓名: 指导教师:
通信工程 092 数字温度计设计 张庆余、陈子杰、王洪亮
张铮
目 录
一、设计任务和性能指标 ............................................. 3 1.1设计任务 .................................................... 3 1.2性能指标 .................................................... 3 二、设计方案 ....................................................... 3 三、系统硬件设计 ................................................... 3 3.1主控制器AT89C52.. .......................................... 3 3.2温度采集装置DS18B20 ........................................ 4 3.3显示电路的设计 .............................................. 7 3.4温度调节设置按键电路 ........................................ 8 3.5复位电路 .................................................... 8 3.6时钟电路 .................................................... 8 3.7报警电路 .................................................... 9 四、系统软件设计 ................................................... 9 4.1主程序设计 .................................................. 9 4.2温度检测装置设计 ........................................... 10 4.3中断设定子程序设计 ......................................... 12 4.4报警模块设计 ............................................... 14 五、调试及性能分析 ................................................ 14 5.1调试步骤 ................................................... 14 5.2性能分析 ................................................... 15 六、心得体会 ...................................................... 15 参考文献 .......................................................... 16 附录1 系统硬件电路图 .............................................. 16 附录2 程序清单 ................................... 错误!未定义书签。
一、设计任务和性能指标
1.1设计任务
设计以智能集成温度传感器DS18B20,89S52单片机为控制器构成数字温度测量装置,它与传统的温度计相比,具有读数方便,测温范围广,测温准确,输出温度采用数字显示。
要求用Protel 画出系统的电路原理图(要求以最少组件,实现系统设计所要求的功能),印刷电路板(要求布局合理,线路清晰),绘出程序流程图,并给出程序清单(要求思路清晰,尽量简洁,主程序和子程序分开,使程序有较强的可读性)。 1.2性能指标
(1)实时显示环境温度值 (2)通过按键可以设定报警温度的上下限值
(3)当环境温度大于报警温度上限值,通过红灯闪烁和蜂鸣器报警;当环境温度小于报警温度下限值,通过绿灯闪烁和蜂鸣器报警。
二.设计方案
按照系统设计的功能的要求,初步确定设计系统主要由温度测量和数据采集两部分电路组成,电路系统构成框图如图1.1所示。方案采用数字温度芯片DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89S52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据,另外AT89S52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。该系统利用AT89S52芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。
DS18B20
温度采集
图 2.1 DS18B20温度测温系统框图
数码显独立键盘输入 AT89S52单片机 示 时间复位电路 警示电路部分 显示模块采用采用了四位数码管,通过温度传感器和单片机交换数据,把当前环境下的温度数据适时传输给数码管。键盘采用线性连接,连接方式相对简单,使用查询法实现调整功能。
三、系统硬件设计
3.1单片机的选择
采用AT89C52单片机为中心控制芯片。AT89C52是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含8K bytes的可反复擦写的PEROM和256bytes的RAM以及通用8位中央处理器和Flash存储单元。AT89C52功能强大,可充分满足该控制器存储等各方面的需求。
AT89C52提供以下标准功能:8K字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时器/计时器,一个6位向量级中断结构,一个全双工串通信口,片内振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件的可选节电工作方式:空闲方式停止CPU的工作,但允许RAM的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
图3.1 AT89C52引脚图
AT89C52的参数了解:
工作温度 -55℃~+125℃
储藏温度 -65℃~+150℃ 任一引脚对地电压 -1v~+7v 最高工作电压 6.6v 直流输出电流 15mA
3.2温度采集装置
由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。这里采用DALLAS公司的数字温度传感器DS18B20作为测温元件。
DALLAS最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55~+125摄氏度,可编程为9位~12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
DS18B20的性能特点如下:
●独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口
线即可实现微处理器与DS18B20的双向通讯;
●DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线
上,实现组网多点测温;
●DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路
集成在形如一只三极管的集成电路内;
●适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可
由数据线供电;
●温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃; ●零待机功耗;
●可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、
0.25℃、0.125℃和0.0625℃,可实现高精度测温;
●在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨
率时最多在750ms内把温度值转换为数字,速度更快;
●用户可定义报警设置;
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器
件;
●测量结果直接输出数字温度信号,以\"一线总线\"串行传送给CPU,
同时可传送CRC校验码,具有极强的抗干扰纠错能力;
●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能
正常工作11以上特点使DS18B20非常适用与多点、远距离温度检测系统。
DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式如图3-2所示,DQ为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。
图 3.2 外部封装形式 图 图 3.3 所示图为引脚图
64 位 ROM 单 片 机 存储器和控制逻辑 高 速 缓 存 温度传感器 高温触发TH 低温触发TL 配置寄存器 8位CRC发生器
图3.4 DS18B20内部结构框图
3.3显示电路的设计
百位 12 十位 9 个位 8 十分位 6 A 11 B 7 C 4 D 2 E 1 F 10 G 5 DP 3 DS18B20采集的温度数据经单片机分析在该数码管上显示。
3.4温度调节设置按键电路
通过四个外围按键与单片机AT89C52直接相连,用户可根据需要设置自己想
要控制的正常范围内任意想要温度。 3.5复位电路
进行复位工作是单片机进入工作的状态的初始化操作,是CPU和系统中的其它部件都处于一个确定初始状态,并从这个状态开始工作。另外当程序运行错误或由于错误操作而是单片机进入锁死状态的时侯。也可以通过复位操作进行的从新启动的操作。等到复位以后,单片机的计算机初始值被初始化。
图3.5 复位电路
3.6时钟电路
对于每个系统工程的时钟电路,都是用于单片机工作所需要的时钟信号,单片机只有在时钟信号的控制下,其各部件之间才能协调一致工作,时钟信号控制着计算机的工作节奏。
在单片机的TXAL1、TXAL12、之间跨接晶体振荡器和微调电容,可以喝单片机内部的振荡器构成一个稳定的自激振荡器,这就是单片机的时钟电路。这种方式称之为内部的时钟源方式。电容C4和C5的主要作用是帮助振荡器起振,且振荡器大小对振荡频率有微调作用,在80C51系列中电容的大小20微法。另外,振荡器的频率只要由石英晶振的频率来决定本次设计选用12MHz。
图3.6 时钟电路
3.7温度报警电路
本设计采软件处理报警,利用有源蜂鸣器进行报警输出,采用直流供电。当所测温度超过获低于所预设的温度时,数据口相应拉高电平,报警输出。报警电路硬件连接见图 3.7。
图 3.7 蜂鸣器电路连接图
四、系统软件设计
4.1主程序设计
主程序模块主程序需要调用4个子程序,分别为数码管显示程序,温度测试及处理子程序,报警子程序,中断设定子程序。各模块程序功能如下:
●数码管显示程序:向数码的显示送数,控制系统的显示部分。 ●温度测试及处理程序:对温度芯片送过来的数据进行处理,进行判断
和显示。
●报警子程序:进行温度上下限判断及报警输出。 ●中断设定程序:实现设定上下限报警功能。
主程序流程图见图4.1。
图 4.2 DS18B20初始化流程图 图4.1 主程序流程图
4.2 温度检测装置设计
温度检测流程DS18B20在单片机控制下分三个阶段:
●18B20初始化:初始化流程图见4.2 ●读18B20时序:读DS18B20流程见图4.3 ●写18B20时序:写18B20 流程见图4.4
发出DS18B20复位命令 发跳过ROM命令 发出度温度命令 读取操作,CRC命令 9字节完? CRC效验,正确 移入温度暂存器 结束
图4.3 读DS18B20流程图
DS18B20写开始 设置串行位数为8 DQ清零,将DQ总线电平拉低 延时15us 写入一位数据 延时15us DQ置1设置为恢复状态 8为数据送完否 DS18B20写入结束
图4.4 写DS18B20流程图
4.3中断设定子程序设计
中断模块采用了外中断和内中断套用方法。当设计需要实现上下限报警时,利用INT0口进行中断,set键进行上下限报警温度设定,进入温度设定状态后(按一下温度设定键),首先会提示显示“UP”字母,表示要用户设定高温报警温度,按S3 键 ,表示本位数字+1,按S4表示移向下一位,如 果4位高温设定完毕,则显示“DO”,表示要用户设定低温报警温度。4位低温设定完毕,如果用户设置的高温比设定的低温高的话则显示“ERRO”表示错误提示,同时会有蜂鸣器及时报警提示,然后自动显示“UP”,让用户重新进行温度设定。中断设定子程序流程图见下图
关于外部中断开内部中断 显示UP SB S1跳到下一位 四位设定完 显示DO S3 S4跳到下一位 四位设定设置温度比较 高温?低显示LED 开外部中断关内部中断
图4.5中断设定子程序流程图
4.4报警模块设计
报警程序读取出温度值C清除报警标志位C>MAX?Y置上限报警标志C 五、调试及性能分析 5.1调试步骤 调试分为硬件调试和软件调试。 硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。具体步骤及测试结果如下: (1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,测试结果所有连接线都已连接好; (2)检验单片机的晶振是否起振,用示波器观察波形;测试结果波形都很好; (3)检查各芯片的功能是否正常,检测按键的导通情况。测试结果正常。 软件调试主要是程序调试,将整个温度计显示程序按照实现功能分为各子模块进行调试,首先都要在实验台上进行调试。具体步骤如下: (1)显示程序调试。在单片机实验课中我们已经做过LED显示实验,所以这部分相对简单,很快便调试无误了。我们设计的硬件显示部分与实验台虽然并不相同,但相差并不多,经改动后在单路板上也调试通过了; (2)主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和显示数据刷新子程序等的调试。由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读/写编程时,必须严格的保证读/写时序,否则将无法读取测量结果。 5.2性能分析 „„省略„„„. 六、心得体会 通过本次课程设计,使我对电子设计及制作产生了较为浓厚的兴趣,这不仅加强了自己对理论知识的理解和巩固,还能提高自己的动手能力,可以说受益匪浅。 本次课程设计主要分为四部分:设计、仿真、调试。这三个步骤在整个课程设计过程中起着重要的作用。 本次毕业设计是设计一个数字温度计,该设计充分利用了温度传感器DS18B20功能强大的优点,如DS18B20可以直接读出被测温度值,进行转换;而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点,大大 简化了硬件电路,也使得该数字温度计不仅具有结构简单、成本低廉、精确度较高、反应速度较快、数字化显示和不易损坏等特点,而且性能稳定,适用范围广,因此特别适用于对测温要求比较准确的场所。 我们经过将近一周的课程设计,终于完成了数字温度计的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,从这次的课程设计中,我们真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我们在这次课程设计中的最大收获。 参考文献 [1] 张毅刚,单片机原理及应用(第二版),高等教育出版社,2010-5. [2] 康华光,电子技术基础(模拟部分)(第五版),高等教育出版社,2006-1. [3] 康华光,电子技术基础(数字部分)(第五版),高等教育出版社,2006-1. 系统硬件电路图 程序清单 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 因篇幅问题不能全部显示,请点此查看更多更全内容