摘要电子技术在日常生活中得到了广泛的应用,各类转换电路的不断推出以及电子产品的快速更新,电子技术已成为世界发展和人们生活中必不可少的工具。
同时伴随传感器在生产生活中更加广泛的应用,一种新型的数字式温度传感器实现对温度的测试与控制得到了更快的开发,本文设计了一种基于单片机AT89C51的温度检测及报警系统。
该系统将温度传感器DS18B20接到单片机的一个端口上,单片机对温度传感器进行循环采集。
将采集到的温度值与设定的上下限进行比较,当超出设定范围的上下限时,通过单片机控制的报警电路就会发出报警信号,从而实现了本次课程设计的要求。
本次设计同时应用到许多我们用过的软件设计,将前面所学的知识融汇在一起实现温度监测及其报警的功能。
该系统设计和布线简单、结构紧凑、体积小、重量轻、抗干扰能力较强、性价比高、扩展方便,在工农业等领域的温度检测中有广阔的应用前景。
关键字温度传感器;单片机;报警;数码管显示目录1绪论 (1)1.1温度报警系统简介 (1)1.2课题背景与研究意义 (1)1.3 课题设计主要研究目的 (1)2系统整体方案设计 (2)2.1系统的基本方案 (2)2.2各模块方案选择 (2)2.2.1 单片机的选择 (2)2.2.2 温度传感器的选择 (2)2.2.3 显示模块的选择 (3)3系统的硬件设计与实现 (4)3.1系统硬件概述 (4)3.2电路模块 (4)3.2.1 单片机 (4)3.2.2复位电路模块 (5)3.2.3显示电路模块 (6)3.2.4传感器电路模块 (6)4.系统的软件设计 (9)4.1软件设计应用环境与设计语言 (9)4.2系统设计设计流程图 (9)5系统仿真设计 (10)5.1 Proteus 软件介绍 (10)5.2 Proteus 仿真图 (10)5.3 硬件调试 (11)5.4调试结果 (11)结论 (12)参考文献 (13)附录 (14)附录1 元件清单与仿真图 (14)附录2 源程序 (16)1绪论1.1温度报警系统简介温度报警系统广泛的用于工业农业等领域,是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。
温度报警系统在农业蔬菜大棚中起到重要作用,温度报警器探测到温度超标时,温度报警器发出报警信号。
1.2课题背景与研究意义温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。
随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度:如大气及空调房中温度的高低,直接影响着人们的身体健康;粮仓温度的检测,防止粮食发霉,最大限度地保持粮食原有新鲜品质,达到粮食保质保鲜的目的;工业易燃品的存放。
测温技术在生产过程中,在产品质量控制和监测以及节约能源等方面发挥了着重要作用。
本实验设计实现了工业测温基本功能,同时,在设计实验过程中,运用到单片机、模电、数电、传感器和C++程序设计等知识,这既能加强我们的理论知识与实践的结合,也能够提高我们应用交叉学科知识进行综合设计的能力。
1.3 课题设计主要研究目的本温度报警器以AT89C51单片机为控制核心,由一数字温度传感器DS18B20测量被控温度,结合7段LED以及驱动LED的74LS245组合而成。
当被测量值超出预设范围则发出警报,且精度高。
利用现代虚拟仿真技术可对设计进行仿真实验,与单片机仿真联系紧密的为proteus仿真,利用keil软件设计单片机控制系统,然后与proteus进行联合调试,可对设计的正确性进行检验。
2系统整体方案设计2.1系统的基本方案本次设计通过使用AT89C51单片机芯片、和温度传感器、蜂鸣器实现功能效果,传感器可以接受周围的温度数据,并且通过数码管显示具体温度数值,通过按键可以设置温度的上限下限,若采集到的温度高于温度上限,蜂鸣器报警提示,同样低于下限也报警。
系统设计框图如图2-1所示:图2-1 系统总框图通过温度传感器采集环境温度,通过按键控制主控程序,实现数码管度温度上下限的设置,将温度数值显示在LED数码光上,若温度超出上限或下限,驱动发光二极管点亮,同时蜂鸣器报警提示。
2.2各模块方案选择2.2.1 单片机的选择采用STC89C51单片机,它是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
2.2.2 温度传感器的选择温度传感器选用达拉斯公司的单线数字温度传感芯片DS18B20。
它将地址线、数据线和控制线合为一根双向串行传输数据的信号线,允许在这根信号线上挂接多个DS18B20。
每个芯片内有一个64位的ROM,其中存有各个器件自身的序列号,作为器件独有的ID号码。
其测温范围是-55~128℃,测温分辨率在12位时精度为0.0625℃。
DS18B20简化了温度器件与计算机的接口电路,使得电路简单,使用更加方便。
2.2.3 显示模块的选择采用数码管显示模块,采集温度超出或低于上下限时,相应的发光二极管点亮。
3系统的硬件设计与实现3.1系统硬件概述本设计包括温度数据采集和显示两个部分,数据采集通过温度传感器实现,显示有发光二极管,LED数码管实现。
报警功能由蜂鸣器实现,系统的复位以及温度上下限的调整分别由三个按键实现。
3.2电路模块3.2.1 单片机AT89C51单片机内部主要由9个部件组成:1个8位中央处理器;4KBFlash 存储器;128B的数据存储器;32条I/O口线;2个定时器/计数器;1个具有6个中断源、4个优先级的中断嵌套结构;用于多处理机通信、I/O扩展或全双工UART的串行口;特殊功能寄存器;1个片内振荡器和时钟电路。
AT89S51系列单片机完全继承了MCS-51的指令系统,共有111条指令,按其功能可分为五大类:数据传送类指令、算术运算类指令、逻辑运算类指令、控制转移类指令、布尔操作。
AT89C51单片机引脚如图3-1所示。
图3-1 AT89C51单片机引脚图管脚说明:P0口:8位、漏极开路的双向I/O口。
P0能够用于外部程序数据存储器。
它可以被定义为数据/地址的第八位。
P0口在应用时必须外接上拉电阻,作为输入时,首先应将引脚置1。
P1口:8位双向I/O口,内部含上拉电阻。
作为输入时,应先将引脚置高;若负载为低电平,则通过内部上拉电阻向外输出电流。
P2口:8位双向I/O口,内部含上拉电阻。
作为输入时,应先将引脚置高;若负载为低电平,则通过内部上拉电阻向外输出电流。
P3口:8位双向I/O口,内部含上拉电阻。
作为输入时,应先将引脚置高;若负载为低电平,则通过内部上拉电阻向外输出电流。
P3口除了通用I/O口功能外,还有第二功能。
P3口的第二功能定义如表3-1所示。
表3.1 P3口第二功能定义RST:复位输入,低电平有效。
ALE/PROG:地址锁存允许信号输出。
在正常操作状态下,该引脚端口输出恒定频率的脉冲。
其频率为晶振频率的1/6,可用作外部定时或其他触发信号。
如果需要,可通过SFR的第0位置禁止ALE操作,但ALE的禁止位不影响对外部存储器的访问。
PSEN:片外程序存储器选通信号,低电平有效。
当AT89S51执行来自外部程序存储器的指令代码时,PSEN/每个机器周期两次有效。
在访问外部数据存储器时,PSEN/无效。
EA/:EA片外程序存储器访问允许信号,低电平有效。
VPPXTAL1:外接晶振。
在单片机内部是反相放大器的输入及端。
XTAL2:外接晶振。
在单片机内部是反相放大器的输出端,输入到内部时钟发生器。
3.2.2复位电路模块复位是单片机的初始化操作,复位信号是高电平有效,复位操作有上电自动复位、按键电平复位、外部脉冲复位和自动复位四种方式。
在本设计中复位采用上电自动复位,当接通电源的瞬间,RST端与Vcc同电位,随着电容的电压逐渐上升,RST 端的电压也逐渐下降,于是在RST端便形成了一个正脉冲,只要该正脉冲的宽度持续两个周期的高电平,就可以实现系统的自动复位,复位电路原理图如图3-2所示。
图3-2 上电复位电路3.2.3显示电路模块显示电路由单片机的P0、P2端口控制。
显示模块如图3-3。
图3-3 温度显示模块3.2.4传感器电路模块(1)DS18B20内部结构DS18B20是Dallas公司继DS1820后推出的一种改进型智能数字温度传感器,与传统的热敏电阻相比,只需一根线就能直接读出被测温度值,并可根据实际需求来编程实现9~12位数字值的读数方式。
DS18B20的外形如一只三极管,引脚名称及作用如下:GND:接地端,DQ:数据输入/输出脚,与TTL电平兼容,VDD:可接电源,也可接地。
因为每只DS18B20都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。
采用数据总线供电方式时VDD接地,可以节省一根传输线,但完成数据测量的时间较长;采用外部供电方式则VDD接+5V,多用一根导线,但测量速度较快,内部结构如图3-4。
(2)DS18B20供电方式DS18B20可以采用外部电源供电和寄生电源供电两种模式。
外部电源供电模式是将DS18B20的GND直接接地,DQ与但单总线相连作为信号线,VDD与外部电源正极相连。
如图3-5所示。
图中DS18B20的DQ端口通过接入一个4.7K的上拉电阻到VCC,从而实现外部电源供电方式。
寄生电源供电模式如图3-6所示:从图中可知,DS18B20的GND和VDD均直接接地,DQ与单总线相连,单片机其中一个I/O口与DS18B20的DQ端相连。
(3)DS18B20的测温原理DS18B20的测温原理如图3-7所示, 其主要由斜率累加器、温度系数振荡器、减法计数器、温度存储器等功能部件组成。
图3-7 DS18B20的测温原理DS1820 是这样测温的:用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。
计数器被预置到对应于-55℃的一个值。
如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55℃)的值增加,表明所测温度大于-55℃。
同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。
然后计数器又开始计数直到0,如果门周期仍未结束,将重复这一过程。
斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨率。
DS18B20内部对此计算的结果可提供0.5℃的分辨率。
温度以16bit带符号位扩展的二进制补码形式读出,DS18B20遵循单总线协议,每次测温时都必须有4个过程]:初始化、传送ROM 操作命令、传送ROM操作命令、数据交换。