基于DS18B20的温度控制器设计

时间:2022-08-04 06:43:59

基于DS18B20的温度控制器设计

摘要:该系统在设计过程中,使用了DALLAS公司生产的数字温度传感器DSl8820和ATMEL公司推出的一种小型单片机AT89C2051作为CPU,四位数码显示。该系统具有高精度的温度控制和时钟显示功能。

关键词:温度传感器DSl8820;单片机AT89C205;数码显示

中图分类号:TP3 文献标识码:A 文章编号:(2008)04-0092-04

引言

本系统设计采用AT89C2051单片机控制,数字温度传感器DSl8820测温,四位数码管显示,测温范围在-55℃―+125℃,可设高低温报警,进行相应控制。DSl8820采用外部电源供电方式,单线总线接P3.2口,为保证在有效的时钟周期内提供足够的电流,用一个4.7K电阻来完成对总线的上拉。

AT89C2051采用6MHZ晶振,通过P3.3连接DS18820的控制信号,3.0、P3.1、P3.4、P3.5为四位数码管的位选信号。显示采用动态扫描方式,P1.0―P1.7分别接共阳极数码管的a、b、c、d、e、f、gDP,P3.7接蜂鸣用来温度超出指定的范围时报警,P3.2作为可扩展口等电路。

当DS18820处于写存储器操作和温度A/D变换操作时,总线上必须有强的上拉,上拉开启时间最大为10gs。由于单线制只有一根线,因此发送接收口必须是三态的。主机控制DS18820完成温度转换必须经过3个步骤:初始化、ROM操作指令、存储器操作指令。假设单片机系统所用的晶振频率为12MHz,根据DSl8820的初始化时序、写时序和读时序,分别编写3个子程序:INIT为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数据子程序,所有的数据读写都从最低位开始。虽然DSl8820有诸多优点,但使用起来并非易事,由于采用单总线数据传输方式,DSl8820的数据I,O均由同一条线完成。因此,对读写的操作时序要求严格。为保证DSl8820的严格I/O时序,需要做较精确的延时。

二、模块介绍

1 温度传感器DSl8820

DS18820是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO―92小体积封装形式;温度测量范围为-55℃―+125℃,可编程为9位―12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18820可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18820通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18820非常适用于远距离多点温度检测系统。引脚排列如图1所示:

(1)DS18820的内部结构:DS18820内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DSl8820的地址序列码,每个DS18820的64位序列号均不相同。64位ROM的排的循环冗余校验码(cRC=x8+x5+X4+1)。ROM的作用是使每一个DS18820都各不相同,这样就可以实现一根总线上挂接多个DS18820的目的。

(2)DS18820温度传感器的存储器:DS18820的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。

(3)工作时序:由于DSl8820是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18820有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机自动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。

2 单片机AT89C2051

AT89C2051是由ATMEL公司推出的一种小型单片机。1995年出现在中国市场。其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS―51完全兼容,可以很快被中国广大用户接受,其程序的电可擦写特性,使得开发与试验比较容易。

(1)引脚说明:AT89C2051共有20条引脚,详见图2。从图中可见,2051继承了8031最重要引脚:P1口共8脚,准双向端口。P3.0~P3.6共7脚,准双向端口,并且保留了全部的P3的第二功能,如P3.0、P3.1的串行通讯功能,P3.2、P3.3的中断输入功能,P3.4、P3.5的定时器输入功能。

在引脚的驱动能力上面,AT89C2051具有很强的下拉能力,P1,P3口的下拉力均可达到20mA。相比之下89C51/87C51的端口下拉力每个管脚最大为15mA。但是限定9脚电流之和小于71mA。这样,引脚的平均电流只9mA。AT89C2051驱动能力的增强,使得它可以直接驱动LED数码管。引脚如图2所示:

(2)存储器:AT89C2051片内含有2k字节的Flash程序存储器,128字节的片内RAM,与80C31内部完全类似。由于2051内部设计全静态工作,所以允许工作的时钟为0~20MHz,也就是说,允许在低速工作时,不破坏RAM内容。相比之下,一般8031对最低工作时钟限制为3.5MI-Iz,因为其内部的RAM是动态刷新的。AT89C2051不允许构造外部总线来扩充程序/数据存储器,所以它也不需要ALEPSEN、RD、WR一类的引脚。

(3)应用方法:AT89C2051内部程序存贮器为Flash,所以修改它内部的程序十分方便快捷,只要配备一个可以编程AT89C2051的编程器即可。调试人员可以采用程序编辑――编译――固化――插到电路板中试验这样反复循环的方法,对于熟练的MCS一51程序员来说,这种调试方法并不十分困难。但这种调试不能够了解片内RAM的内容和程序的走向等有关信息;普通8031/80C31仿真器的仿真插头中P1.0―P1.7和P3.0~P3.6引出来仿真205T,这种方法可以运用单步、断点的调试方法,但是仿真不够真实,比如,2051的内部模拟比较器功能,PI口、P3口的增强下拉力等等。AT89C2051适合于家用电器控制,分布式测控网络,I/O量不足不是很大的应用系统。

3 数码显示

本系统四位数码显示,数码管是一种半导体发光器件,其基本单元是发光二极管,数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。电路如图3所示:

共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(cOM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应的字段就不亮。

共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

内部的四个数码管共用a、b、c、d、e、f、g、DP这8根数据线,为人们的使用提供了方便,本系统采用四位数码管,所以它有四个公共端,加上a、b、c、d、e、f、g、DP,共有12个引脚,下面便是一个共阴极的四位数码管的内部结构图(共阳极的与之相反)。引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为112脚,下图中的数字与之一一对应。引脚如图4所示:

三、系统设计原理图

四、系统设计电路板

五、结 语

本系统已调试成功。可用于家庭温度、实验室温度等室温环境的实时测量。也可以随时根据需要,缩小体积,将其嵌入空调、冰箱等各种家用电器中用于自动调节控制温度,本系统稳定、可靠、实用件强,具有一定的应用价值。

上一篇:《广告策划》课程的五阶段渐进式教学模式 下一篇:超越立法主义