温度是日常生活及工业生产中需要频繁检测及控制的一个量,随着微处理器的高频化及小型化,在电子产品中得到广泛的应用,基于单片机的数字温度计就显得非常普遍和实用。本文采用DS18B20温度传感器,设计了一套基于单片机AT89C51的数字温度自动控制系统。克服了传统温度测量的读数麻烦、测量速度慢、精度低、误差大等缺点,并且可以对温度进行调节。该系统设计电路简单,输出温度用液晶显示,读数更直接,分辨率更高。
该系统由主控制器、测温电路、显示电路和键盘电路组成。其系统结构如图1所示。
图1 系统结构图
图2 硬件连线图
图3 DS18B20读写框图
该系统主控制器采用单片机AT89S51,温度传感器为DS18B20,用LCD 128X64液晶显示屏实时显示当前温度及控制温度。键盘电路采用3*4矩阵键盘来设定需要温度。AT89S51的P0.0~P0.4通过上拉电阻分别连接LCD 128X64液晶显示屏的E、R/W、RS、/CS2、/CS1,P1.0~P1.7连接LCD 128X64液晶显示屏的DB0~DB7,P2.0~P2.7接键盘电路。
本系统选择ATMEL生产的AT89S51单片机,其特性如下:
(1)4KB可编程程序存储器(ROM);128B内部数据存储器(RAM);32条双向输入输出线(I/O);1000次以上的循环写/擦;
(2)有ISP在线编程功能,在改写单片机存储器内的程序不需要把芯片从工作环境中剥离。速度更快、稳定性更好,烧写电压也仅仅需要4~5V即可;
(3)内部集成看门狗计时器,不再需要外接看门狗计时器单元电路;
(4)电源范围宽达4~5.5V,其工作性能更为稳定。
图4
图5
图6
DS18B20是美国DALLAS公司推出的一种改进型智能数字温度传感器。其主要特点如下:
(1)适应电压范围较宽,3.0~5.5V,两种供电方式,寄生电源方式下由数据线供给;
(2)1-wire单总线数据通信方式,多个DS18B20可以并联到3根或2根线上,通过一根端口线与CPU通信;
(3)温度测量范围为—55℃~+125℃,可编程为9~12位的A/D转换精度。
JDL12864主要由行/列驱动器及128*64的全点阵液晶显示器组成,可以显示8*4个(16*16点阵)汉字。其主要特点如下:
(1)电源:VDD,+5V。模块内自带—10V负压,用于作LCD的驱动电压;
(2)内置汉字字库,提供8192个16×16点阵汉字(简繁体可选),128个16×8点阵字符;
(3)与CPU接口采用8位数据总线并行输入输出和8条控制线;
(4)工作温度为—10℃~+50℃。存储温度为—20℃~+70℃;其硬件连线如图2。
DS18B20的单总线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序,如图3所示。
(1)根据硬件设计电路,在Proteus元件库中将所需要的元器件找出;
(2)根据硬件设计电路中各个元件之间的关系,将各个元件连接起来;
(3)检查各元件的排列、连接和元件的型号、大小;
(4)加入“*.HEX”文件;
(5)启动软件仿真演示;
(1)启动仿真后显示当前温度33.4℃,实际温度为33.5℃;如图4。
(2)将温度设置为85.2℃,显示屏上状态变为加热状态;如图5。
(3)将温度设为12.2℃,显示屏上状态变为降温状态;如图6。
本文设计了基于DS18B20数字式温度传感器的温度自动控制系统,系统已AT89S51单片机作为主控制器,采用LCD12864液晶显示器显示温度,实现了温度的实时采集和精确显示,而且可以通过调节来进行加热或降温,实现温度的精确控制。通过仿真验证,整个系统电路简单,性能稳定,在测温范围内测温准确。
[1]李铁.基于单片机的温度控制系统的设计[J].微型机与应用,2010,29(24):29-30.
[2]王玲芝,李育贤.基于DS18B20的数字式温度计设计[J].工业仪表与自动化装置,2010,5:74-76.
[3]冯平.数字温度报警器的设计与实现[J].广东通信技术,2009(4):18-21.
[4]夏发钦.基于单片机的精密温度控制系统的设计与实现[J].信息技术,2011(10):133-135.
[5]李泓.智能仪器设计基础[M].北京:清华大学出版社,2010:68-77,132-144.