基于AT89C51的温度监测系统设计

时间:2022-08-14 05:36:13

基于AT89C51的温度监测系统设计

【摘要】本文设计的硬件电路可以对温度进行实时监测并在温度异常时发出警报。该电路采用以AT89C51为核心的主控芯片,并且包含了传感器数据采集模块、温度显示模块、报警模块以及复位模块等电路。其中,温度显示模块通过LCD1602液晶显示器对温度进行实时显示;传感器数据采集电路采用DS18B20单总线型温度传感器。该系统电路设计简单,工作性能稳定,硬件成本低廉,灵敏度高。

【关键词】AT89C51;DS18B20;LCD1602;温度传感器;实时监测

1.引言

温度的监测在现代工业生产以及日常生活中的应用愈来愈广泛,并且在某些领域也发挥着愈来愈重要的作用。在很多生产过程中,温度的监控与生产安全、生产效率、产品质量、能源节约等方面有着紧密的联系。目前,传感器已成为衡量一个国家科技发展水平的重要标志之一。而本文正是结合温度传感器与单片机所做的设计,该设计对温度的监测可广泛应用于食品、化工、机械等方面。

2.系统整体设计

结合温度监控器在实际应用的要求,为实现温度的实时监测以及报警的功能,本文采用以下电路模块对系统硬件进行设计:

主控芯片:选用AT89C51单片机作为整个系统的控制器;

显示模块:选用LCD1602液晶显示器作为系统的显示电路;

温度采集模块:选用DS18B20温度传感器作为系统的温度采集电路;

报警模块:采用蜂鸣器与发光二极管作为系统的报警电路。

综上所述,该硬件电路的系统框图如图1所示。

3.系统硬件设计

系统的整体硬件设计图如图2所示。

3.1 主控电路的设计

该模块是系统的核心控制部分,其主要任务是通过接口将获得的数据进行处理。本系统采用的AT89C51是美国ATMEL公司的一种高效微控制器。此单片机具有以下功能:4k字节Flash闪速储存器、128字节内部随机数据存储器(RAM)、32个I/O口线,而且它还与工业标准的MCS-51指令集和输出管脚相兼容。故而,这种低电压、高性能CMOS8位单片机可灵活应用于多种场所。

3.2 温度采集模块的设计

该系统的温度采集模块采用DS18B20进行温度数据的采集。DS18B20是美国Dallas半导体公司生产的数字化温度传感器。其测量温度范围为-55℃~+125℃,在-10~+85℃范围内,精度为±0.5℃。

在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿和放大电路零点漂移误差等技术问题,才可以达到较高的测量精度。另一方面,一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此,在温度测量系统中,解决这些问题的最有效方案是采用抗干扰能力强的新型数字温度传感器。并且适合于在恶劣环境中的现场温度测量,如:环境控制、设备或过程控制、测温类电子产品等。DS18B20作为世界上第一片支持“一线总线”接口的新一代温度传感器,它具有体积更小、精度更高、适用电压更宽、可组网等优点,在实际应用中取得了良好的测温效果。尤其是现场温度直接以"一线总线"的数字方式传输,大大提高了系统的抗干扰性。

DS18B20采集到的温度值的位数随着其分辨率不同而不同,温度转换时的延时时间为750ms。DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

3.3 报警模块

该电路模块的作用在于当温度采集系统所采集的温度高于或低于预设温度时,系统可以及时发出警报信息用来提示监测者做出相应的处理。由此,该模块的设计采用蜂鸣器及发光二极管作为报警元件。当系统检测到温度正常时,发光二极管D2发出绿光;当系统检测到温度异常时,发光二极管D2熄灭,同时,发光二极管D1开始闪烁,同时伴有蜂鸣器鸣叫。

3.4 温度显示模块

在单片机的人机交流界面中,输出方式通常有以下几种:LED数码管、发光二极管、液晶显示器。而选择晶液显示器作为输出器件因为它具有以下几个优点:

1)重量轻、体积小

液晶显示器显示原理是通过其显示屏上的电极控制液晶分子状态来进行显示的,因此,与相同显示面积的传统显示器相比,在重量上要轻得多。

2)功耗低

相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。

3)显示质量高

液晶显示器画质高而且不会闪烁,这是因为液晶显示器的每一个点在收到信号后会一直保持恒定的亮度与色彩,发光稳定性高,而不像阴极射线管的显示器(CRT)那样需要不断刷新亮点。

4)数字式接口

液晶显示器的数字式接口与单片机系统的接口相连接更加简单可靠,操作也更加方便。

3.5 键盘复位模块

本电路的复位模块共含有三个部分,分别为单片机自动复位部分、高温复位部分以及低温复位部分。在此,单片机复位部分就不再赘述。而S2、S3按键则分别被用于温度过高、过低时复位使用。

4.系统软件设计

4.1 主程序设计

本文所设计的主程序主要功能是负责温度的测量、读出、实时显示、判断并处理DS18B20的测量的当前温度值。温度的测量每1s进行一次,其程序流程见图4所示。

4.2 单总线通信实现

由于DS18B20在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。以下是以C51为例编写的基本子程序:

(1)延时子程序

void delay(unsigned int z)//延时大约2z微秒

{ uint y;

for(y=0;y

}

(2)初始化子程序

void dreset (void)

{ ds=0; //拉低单总线用以复位

delay(240); //延时

ds=1; //释放单总线

delay(40); //延时

}

(3)读一位数据子程序

void tempreadbit(void)

{ bit dat;

ds=0; //拉低单总线开始读时序

delay(1); //延时

ds=1; //释放单总线

delay(2); //延时

dat=ds; //读回数据

delay(10);

return(dat); //返回数据值

}

(4)写一位数据子程序

void tempwritebit(char bit)

{ ds=0; //拉低单总线开始写时序

if(bit==1) //若需写“1”即将总线置高

ds=1;

delay(2); //延时

ds=1; //释放单总线

}

5.结束语

本实验证实了基于AT89C51单片机的温度监测系统具有以下优点:硬件结构简单,性能稳定,并且本系统采用的LCD1602液晶显示器与LED相比,显示质量更高。同时,以数字温度传感器DS18B20作为温度采集器件,可以使误差控制在±0.5℃,因此所测温度更准确。当温度不在所预定的目标温度范围内时,蜂鸣器会发出报警信号并伴有指示灯闪烁,及时提醒监测者调整温度。但是,本实验仅仅是温度控制领域内的一个例子,还有许多有待改善的地方。

参考文献

[1]继昌,乔苏文,张海贵等.实用报警电路[M].北京:人民邮电出版社,2005:1-10.

[2]陈宇.基于DS18B20的温室大棚温度检测报警系统[J].辽宁师专学报,2012(02).

[3]王建佳.温度湿度实时监测与报警系统[J].科技探索,2012(05):386.

[4]曾龙,陈泽锋,曾贤贵,曾健平.基于DSl8B20温度传感器的无线系统[J].仪器仪表用户,2011(06):35.

[5]何立民.单片机高级教程[M].北京:北京航空航天大学出版社,2000.

作者简介:任晋婷(1989—),女,中北大学信息与通信工程学院在读硕士研究生,主要研究方向:电路与系统。

上一篇:基于labVIEW太阳能环境参数监控系统设计 下一篇:舞蹈机器人设计