基于温度传感器火灾报警装置设计[论文]

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于温度传感器的火灾报警装置设计

摘要:基于单片机at89c52与ds18b20温度传感器,设计出可以实时通过液晶显示器显示温度和时间,并且超过预定温度时进行报警的火灾报警装置。该装置大致分为液晶显示、温度检测及报警、时间调用和按键更改时间等四个模块,与传统火灾报警器相比,该火灾装置经济成本低、监控范围广、监控精度高、实时性强。

关键词:单片机温度传感器ds18b20 火灾报警

中图分类号:tu892 文献标识码:a 文章编号:1007-3973(2013)006-121-02

1 引言

随着科技发展,生产安全已经成为一个至关重要的问题。其中,火灾又是生产安全中最大的难题。火灾发生时,温度的变化是非常明显的,所以温度检测是该系统的主要部分。可用于温度检测的元器件主要为热电阻,通过检测热电阻的阻值变化、公式换算可得到对应的温度值,此过程需要进行a/d转换。由于a/d转换存在精度和分辨率的问题,在检测热电阻阻值变化的误差上通过a/d转换后误差有可能会进一步增大。即使我们采用软件进行误差修复,但由于我们采用的微处理器为at89c52,rom只有8k,在存贮程序之后也没有足够的空间来存放误差修复中产生的大量数据表格。鉴于以上问题,我们采用了带封装的可编程器件ds18b20系列。

ds18b20采用单线接口,仅用一条线就可实现微处理器与ds18b20的双向通讯,测温范围为-55℃~+125℃,固有测温分辨率为0.5℃,

测量结果以9至12位数字量方式串行传送,不再需要a/d转换,不仅节约了i/o口,而且还简化了电路。

我们已知的显示器件有7段数码管和液晶显示屏。为了可视化显示效果,我们选择了1602lcm芯片的液晶显示屏,能显示16x2个字符。相对于其他液晶芯片,1602lcm芯片的成本低、编程相对容易,而且还支持8个用户自定义字符,能够满足基本的输出要求。1602lcm芯片的液晶显示屏在显示温度后还有多余的空间可用于显示日期和时间,所以我们设置了实时时钟电路ds1302来显示日期和时间。时间的记录可以通过内部定时器来实现,但是掉电之后数据丢失,每次重启设备后都需要对时间进行设置,及其不方便,所以我们选用了ds1302芯片,它的工作原理与定时器一样,但是它可以外接备份电源,在系统掉电之后由备份电源供电,继续计时,达到实时时钟的目的。另外,它可以对年、月、日、时、分、秒进行计时,且具有闰年补偿等功能,即在第一次对它进行设定之后,以后只需要调用它内部存贮的数据就可准确地显示时间了,既达到了实时时钟的目的,又简化了编程。

选用的单片机at89c52也是同类技术中性价比比较高的产品,具有使用普遍、价格合理、程序实现较简单等特点。

2 单元电路设计与分析

2.1 温度检测模块

由于ds18b20是单线操作,与串行接口一样,需要一定的协议才能正常工作,协议如下:初始化→rom操作→存储器操作→执行/

数据。

(1)初始化。通过单线总线的所有执行(处理)都是从一个初始化序列开始的。初始化序列包括一个由总线控制器发出的复位脉冲和跟随其后由从机发出的存在脉冲。存在脉冲让总线控制器知道ds1820在总线上且已准备好操作。

(2)rom操作。一旦总线控制器探测到一个存在脉冲,它就可以发出5个rom命令中的任一个。由于我们的单线上只有一个

ds18b20,所以只用到一条rom指令:skip rom[cch],这条命令允许总线控制器不用提供64位rom编码就使用存储器操作命令,在单点总线情况下可以节省时间。如果总线上不止一个从机,在skip rom命令之后跟着发一条读命令,由于多个从机同时传送信号,总线上就会发生数据冲突(漏极开路下拉效果相当于相与)。

(3)存储器操作。在于ds18b20建立起联系之后,就应该对

ds18b20进行存储器操作,告诉ds18b20接下来应该做什么,共有6条指令(协议),而我们只用到了其中的两条,分别为:convert t[44h]启动一次温度转换;read scratchpad[beh]读取暂存器内容,即读取温度转换后的数值。

(4)执行和数据显示。得到温度值后需要对数字量进行转换,而读取的数字量的低四位为小数部分,对得到的数字量乘以0.0625就得到了温度的模拟量。鉴于显示输出对小数操作不方便,则将值放大100倍得到一个整数,在输出显示时,先分别提取各权位上的数字,再加小数点来还原真实值。

(5)温度传感器ds18b20功能块。ds18b20的核心功能就是可以直接转换成数字量。

2.2 实时时钟模块

实时时钟采用的ds1302芯片与温度检测ds18b20芯片为同一家公司制造,都是单总线数据传输,除了时序和协议上有所区分,其余操作大体相同,建立全局数组变量来存储读取的时间值,再选择性输出。

2.3 按键更改时间模块

检测按键有两种方式:(1)查询;(2)中断。考虑到主程序要显示实时时钟,即1秒内至少完成一次循环操作,而温度转换又会占用大部分时间,为了不影响输出显示,同时减轻cup负担,而采取中断方式。

按键设置为4个:

menu键:切换调试模式和正常模式;

move键:移动光标位置,选择需要修改的数据;

addd键:数据加1;

subb键:数据减1。

采用4输入与非门(74ls20)接入单片机的外部中断接口。

软件设置,通过menu键对全局变量menu(标志变量)变值来进入不同的状态,切换液晶显示,同时当系统由调试模式转向正常模式时,向ds1302写入改变后的时间值,完成对ds1302的初始化;设置move变量来确定光标做出的位置及addd键与subb键的操作

对象,同时根据move的不同值来确定各变量大致的进制数,例如:年的进制为0~99,月的进制为1~12。

2.4 液晶显示模块

液晶显示和7段数码管的显示方法几乎一致,都是先送显示地址,再送显示数据,不同的是,对7段数码管,当地址选择信号移开后,该地址的数码管不再点亮,属于动态扫描类型,而对1602液晶显示器,1602lcm芯片内有一块ddram(显示数据ram),即液晶屏会一直显示存放在ddram中数据,所有,想要在液晶屏上显示数据,只需要将数据内容送到ddram中相应的地址内存储起来就可以了,改变ddram中的内容就能改变显示屏上的内容。

1602共有11个信号控制引脚,其中8位数据接口,1个使能接口,2个控制接口,其余为电源、地和背光亮度控制(可选)。

对1602的操作分为写命令和写数据,其中写命令可以设置液晶的工作模式和指定ddram地址。

2.5 初始化部分

由于使用的外部器件少,需要初始化的也只有液晶的工作模式设定。但在调试过程中发现,系统上电工作的时候温度为85℃同时出现报警(报警温度设定为57℃,此为火警报警温度),上网查找资料后确定,ds18b20在复位后上电工作时输出的温度为85℃,固在初始化部分加入启用温度转换,并延时一段时间,以此来错过复位上电的85℃,达到修正错误的目的。

3 火灾报警系统硬件组成图

相关文档
最新文档