-------------精选文档-----------------可编辑摘要随着时代的进步和发展,温度的测试已经影响到我们的生活、工作、科研、各个领域,已经成为了一种非常重要的事情,因此设计一个温度测试的系统势在必行。本文主要介绍了一个基于AT89C52单片机的数字温度报警器系统。详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度的采集和报警,并可以根据需要任意上下限报警温度,它使用起来相当方便,具有量程宽、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。DS18B20与AT89C52结合实现最简温度报警系统,该系统结构简单,有广泛的应用前景。关键词:单片机;温度检测;AT89C52;DS18B20;-------------精选文档-----------------可编辑目录摘要...............................................................................................错误!未定义书签。1设计要求及方案选择.................................................................错误!未定义书签。1.1设计要求.............................................................................................................01.2方案选择.............................................................................................................02理论分析与设计........................................................................................................02.1芯片介绍............................................................................................................02..1.1DS18B20概述.......................................................................................02.1.2STC89C52介绍......................................................................................22.2系统结构框图.....................................................................................................32.3程序原理叙述.....................................................................................................33.电路设计........................................................................................................................33.1硬件设计.............................................................................................................33.1.1报警模块...................................................................................................33.1.2单片机最小系统电路..............................................................................43.1.3温度采集模块..........................................................................................53.2软件设计............................................................................错误!未定义书签。3.2.1流程框图及仿真电路图..........................................................................63.2.2程序设计..................................................................错误!未定义书签。-------------精选文档-----------------可编辑4、系统测试...................................................................................................................215、总结...........................................................................................................................22.参考文献.........................................................................................................................23-------------精选文档-----------------可编辑1.设计要求及方案选择1.1设计要求基本功能:1、用DS18B20进行温度采样2、将采样的温度值进行显示扩展功能:1、可设置一个温度控制范围2、当温度超过设定值时或低于设定值时,进行报警,超过设定值时为其降温直至到达温度范围内。1.2方案选择采用单总线数字温度传感器DS18B20测量温度,直接输出数字信号。便于单片机处理及控制,节省硬件电路。且该芯片的物理化学性很稳定,此元件线形性能好,在0—100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器STC89C52构成的温度装置,它直接输出温度的数字信号到微控制器。每只DS18B20具有一个独有的不可修改的64位序列号,根据序列号可访问不同的器件。并选择数码管作为输出显示,蜂鸣器位报警装置;2理论分析与设计2.1芯片介绍2.1.1DS18B20概述-------------精选文档-----------------可编辑DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。DS18B20测温原理。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。它的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。图2-1-1DS18B20封装形式和引脚功能如图2-1-1所示,DS18B20的外形如一只三极管,引脚名称及作用如下:GND:接地端。DQ:数据输入/输出脚,与TTL电平兼容。VDD:可接电源,也可接地。因为每只DS18B20都可以设置成两种供电方-------------精选文档-----------------可编辑式,即数据总线供电方式和外部供电方式。采用数据总线供电方式时VDD接地,可以节省一根传输线,但完成数据测量的时间较长;采用外部供电方式则VDD接+5V,多用一根导线,但测量速度较快2.1.2STC89C52介绍STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用宏晶科技公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。由于此单片机应用在仓库温湿度检测上,所以本设计选用了低功耗、高性能、低价格。小管脚(40脚)的STC89C52单片机。如图2-1-2所示:图2-1-2STC89C52单片机-------------精选文档-----------------可编辑2.2系统结构框图系统主要包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五个部分。系统框图如图2-2-1所示。图2-2-1系统结构款图2.3程序原理叙述其中温度采集模块负责利用DS18B20传感器实时采集温度数据,并将采集到的温度数据传输到单片机控制模块,单片机控制模块将检测到的数据进行处理后送到LCD显示模块进行显示,同时将数据与系统默认的温度上限32°C进行比较,如果检测到的温度超过35°C或低于25°C,蜂鸣器会发出不同频率的声音进行报警。3.电路设计3.1硬件设计3.1.1报警模块报警电路用一个三极管驱动一只蜂鸣器组成,驱动信号由芯片的管脚RD/P3.7控制。当显示的温度不在设定的温度范围内,即不在TL与TH之间则单片机显示电路报警电路温度传感器-------------精选文档-----------------可编辑驱动蜂鸣器发声报警,其电路如图3-1-1所示。或采用一个扬声器即可。图3-1-1报警电路3.1.2单片机最小系统电路在课题设计的温度控制系统设计中,控制核心是STC89C52单片机,该单片机为51系列增强型8位单片机,它有32个I/O口,片内含4KFLASH工艺的序存储器,便于用电的方式瞬间擦除和改写,而且价格便宜,其外部晶振为12M一个指令周期为1μS。使用该单片机完全可以完成设计任务,其最小系统主包括:复位电路、震荡电路以及存储器选择模式,如图3-2-1所示-------------精选文档-----------------可编辑图3-1-2单片机最小电路3.1.3温度采集模块在硬件完成后,为了使作品能够实现预定的功能和效果,因此需要对环境温度进行采集.在本设计中采用外部供电方式实现DS18B20传感器与单片机的连接如图3-1-3所示.-------------精选文档-----------------可编辑图3-1-3温度传感器接口3.2.1流程框图及仿真电路图图3-