1、 1 基于单片机的多功能温度检测系统的设计 一、 引言 随着社会的发展和技术的进步,人们越来越注重温度检测与显示的重要性。温度检测与状态显示技术与设备已经普遍应用于各行各业,市场上的产品层出不穷。温度检测及显示也逐渐采用自动化控制技术来实现监控。本课题就是一个温度检测及状态显示的监控系统。 二、 系统方案 本系统采用 AT89S52 作为该系统的单片机。系统整体硬件电路包括,电源电路,传感器电路,温度显示电路,上下限报警电路等如图 1 所示。图中报警电路可以在被测温度不在上下限范围内时,发出报警鸣叫声音。温度 控制的基本原理为 :当 DSl8B20 采集到温度信号后,将温度信号送至 AT89S
2、52 中处理,同时将温度送到 LCD 液晶屏显示,单片机根据初始化设置的温度上下限进行判断处理,即如果温度大于所设的最高温度就启动风扇降温 ;如果温度小于所设定的最低温度就启动报警装置。温度控制器的原理图 三、 系统硬件设计 1.单片机 AT89S52 的介绍 AT89S52 是一种低功耗、高性能 CMOS8 位微控制器 ,具有 8K 可编 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚 完全兼容。片上 Flash 允许程序存储器在系统编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使 AT
3、89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案 5。 AT89S52 具有以下标准功能: 8k 字节 Flash, 256 字节 RAM, 32 位 I/O 口线 ,看门狗定时器,2 个数据指针,三个 16 位定时器 /计数器,一个 6 向量 2 级中断结构 ,全双工串行口,片内晶振及时钟电路。另外, AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲 模式下, CPU 停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。掉电保护方式下, RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 2.DS1
4、8B20 传感器的介绍 在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度 5。因此,在 2 温度测量系统中,采用 抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案, 与其它温度传感器相比 DSl820 具有以下特点: (1)独特的单线接口方式。 DSl820 在与微处理器连接时仅需要一条接口线即可实现微处理器与 DSl820 的双向通讯。 (2)多点功能简化了分布式温度检测
5、的应用。 (3)DSl820 在使用中无需任何外围元件。 (4)可用数据线供电,电压范围从 3.0V 到 5.5V。 (5)可测量的温度范围从 -55 到 +125 ,增量值 0. 5 ;华氏温度范围从 -67 到 +257,增量值 0 9。 (6)支持多点组网功能。 多个 DS1820 可以并接在同一条总线上 ,实现多点测温。 (7)9 位的温度分辨率。测量结果以 9 位数字量方式串行传送。 (8)用户可设定温度报警门限值。 (9)有超温度搜寻功能。 ( 1) DSl8B20 的工作原理 DS18B20 的内部结构 DSl8B20 的测温原理框图如图 3.2 所示。图中低温度系数品振的振荡频
6、率受温度影响很小,用于产生同定频率的脉冲信号送给计数器l。高温度系数晶振随温度变化其振荡频率明显改变。所产生的信号作为计数器2 的脉冲输入。计数器 1、计数器 2 和温度寄存器被预置在 -55 所对应的 一个基数值。计数器 l 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 O 时,温度计数器的值将加 l,计数器 l 的预置值将被重新装人,计数器 l 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 O 时,停止温度寄存器的累加,此时温度寄存器中的数值即为所测温度。图 3.2 中的斜率累加器用于补偿和修正测温过程中的非线性,其输出小于修正计
7、数器 l 的预置值。 ( 2) DS18B20 与 AT89S52 的接口方式 DS18B20 与单片机的连接方式有两种:即寄生电源方式 和外部电源方式。 寄生电源方式:在寄生电源供电方式下, DS18B20 从单线信号线上汲取能量:在信号线 DQ 处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。寄生电源方式有三个好处: 1)进行远距离测温时,无需本地电源。 2)可以在没有常规电源的条件下读取 ROM。 3)电路更加简洁,仅用一根 I/O 口实现测温。要想使 DS18B20 进行精确的温度转换, I/O 线必须保证在温度
8、转换期间提供足够的能量,由于每个 DS18B20 在温度转换 期间工作电流达到 1mA,当几个温度传感器挂在同一根 I/O 线上进行多点测温时,只靠 4.7K 上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。 外部电源供电方式:在外部电源供电方式下, DS18B20 工作电源由 VDD 引脚接入,此时 I/O 线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个 DS18B20 传感器,组成多点测温 3 系统。 本系统采用外部电源方式。连接方法即 DS18B20 的 1 脚接地 ,2 脚 (DQ 引脚 )与 AT89S52 的一根 I/O
9、 口线相连 ,3 脚接 +5V。在 A89S52 的 I/O 口线与 +5V 之间连接一 4.7K 的上拉电阻,以保证数据采集的正常进行。若要组成多点温度检测系统,可在单片机的同一根 I/O 口线上,以相同的连接方法并联多片 DS18B20 芯片。 3、 LCD1602 液晶屏 1602 液晶显示模块可以和单片机 AT89S52 直接接口 。 4、 蜂鸣器驱动电路 由于蜂鸣器的工作电流一般比较大,以致于单片机的 I/O 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。当所测的温度低于 6 摄氏 度时,报警。 5、 风扇电路 当所测的温度高于 80 摄氏度时,启动
10、风扇电路。因为工作电流比较大,所以用放大电路来驱动,即用三极管来放大电流就可以了。当温度高于 80 时,给单片机一个命令,单片机 P2 6 引脚输出高电平,三极管导通,风扇电路接通,电风扇开始转动,从而起到降温作用。 四 、 系统的软件设计 本系统采用 AT89S52 作为核心处理器件,把经过 DSl8B20 现场实时采集到的温度数据,存入 AT89S52 的内部数据存储器,送液晶显示,并与预先设定值进行比较,然后由单片机输出信号去控制风扇电路和报警 电路。多功能温度检测显示系统软件主要包括:函数声明、延迟时间函数、 DS18B20 初始化函数、读出DS18B20 当前的温度、温度数据转化成液
11、晶字符显示等程序 。 五、 小结 随着工业的不断发展,对温度测量的要求来越高,而且测量范围也越来越广,因此对温度检测技术的要求也越来越高。 本文介绍了以 DSl8B20 新型数字温度传感器、 AT89S52 单片机、 LCD1602 液晶显示模块为主体构建的温度检测显示系统。说明了系统硬件电路、系统主程序与各模块子程序的设计。本系统采用的是 DALLAS 公司推出的数字式 温度传感器DS18B20,无需外加 A D 即可输出数字量,把温度信号直接转换成串行数字信号供微机处理。因此。该系统具有硬件电路结构简单、转换精度高、显示结果清晰稳定、成本低等显着优点。在诸如粮库测温、智能建筑、中央空调等多种需要温度检测的场合具有较好的应用前景。