智能家庭烟雾火灾检测报警系统
更新时间:2024-04-15 04:35:01 阅读量: 综合文库 文档下载
届 别 2013届 .. 学 号
毕业设计
智能家庭烟雾检测火灾报警系统
姓 名 系 别、 专 业 导 师 姓 名、职 称 完 成 时 间
目录
摘要 ..................................................................................................................................................... 3 Abstract .................................................................................................................................................... 4 1 绪论 ................................................................................................................................................... 5
1.1 课题背景................................................................................................................................ 5 1.2 设计概述................................................................................................................................ 5 1.3 烟雾报警器的国内外现状 .................................................................................................... 6 1.4 烟雾报警器的发展趋势 ........................................................................................................ 6 1.5 设计任务分析 ........................................................................................................................ 7 2 总体方案设计.................................................................................................................................... 7
2.1 烟雾检测传感器选型 ............................................................................................................ 8
2.2.1 烟雾传感器的介绍 .................................................................................................... 9 2.2.2 MQ-2半导体气体烟雾传感器 ................................................................................. 12 2.2 单片机选型 .......................................................................................................................... 13
2.2.1 STC89C52单片机简介 ............................................................................................. 13 2.2.2 单片机的引脚功能描述 ........................................................................................ 14 2.1.3 温度采集模块 .......................................................................................................... 15
3 系统的硬件电路.............................................................................................................................. 16
3.1 单片机最小系统 .................................................................................................................. 16 3.2 单片机的时钟电路与复位电路设计 .................................................................................. 17 3.3 烟雾检测AD采集电路 ........................................................................................................ 17 3.4 显示模块.............................................................................................................................. 18 3.5 声音报警电路 ...................................................................................................................... 19 3.6 按键控制电路 ...................................................................................................................... 19 3.7 电源模块.............................................................................................................................. 20 3.8 温度传感器(DS18B20)电路 ................................................................................................ 21
3.8.1 DSl8B20简介 ........................................................................................................... 21 3.8.2 DSl8B20具体参数及工作方式 ............................................................................... 23 3.8.3 18B20接口电路 ....................................................................................................... 24
4 系统软件的设计.............................................................................................................................. 26
4.1 系统主程序设计及流程图 .................................................................................................. 26 5 硬件调试及调试中遇到的问题 ...................................................................................................... 27 6 电路的调试 ..................................................................................................................................... 27 7 总结评价 ......................................................................................................................................... 27 致谢 ....................................................................................................................................................... 28
1
参考文献 ............................................................................................................................................... 29 附件一:总体原理图设计 .................................................................................................................... 30 附件二:部分程序源代码 .................................................................................................................... 31
2
摘要
随着社会和经济的发展,防火工作越来越重要,但是目前国内的许多研发都侧重于大型场所的火灾报警。因此,我们就有必要研制一种结构简单、经济实用的家庭烟雾报警器以适应市场的需求。基于供家庭使用的烟雾报警器应该具备的基本要求和功能,文章设计了一种比较适合的烟雾报警器。
本设计以传感器和单片机作为烟雾报警器设计的核心器件,配合其它器件即可实现声光报警、自动排烟换气和消防灭火等功能。设计中单片机选用STC89C52作为控制器件,传感器选用MQ-2型半导体可燃气体敏感元件烟雾传感器实现烟雾的检测。烟雾报警器主要由烟雾信号采集及前置放大电路、模数转换电路、单片机控制电路、显示电路、声光报警电路和安全保护电路构成,设计合理、简单易懂、价格低廉,使单片机在烟雾报警系统的控制中得到充分应用,具有一定的实用价值。论文主要针对烟雾报警系统中的各个组成部分及功能进行了详细的介绍和说明,并对其主控电路和外围设备电路之间的接口连接方式,以及系统软件设计进行了重点的分析和讲解。 关键字:烟雾报警器;单片机;传感器
3
Abstract
With the development of society and economy, the fire work is more and more important, but many of the current domestic research are focused on the large space fire alarm.Therefore, it is necessary to design a simple structure, economical and practical family smoke alarm to adapt to the needs of the market.The basic requirements of the smoke alarm for household use based on should have and function, this paper designs a smoke alarm is suitable for the. The design of the sensor and single-chip microcomputer as the core device smoke alarm design, with other devices can achieve sound and light alarm, automatic exhaust ventilation and fire extinguishing function.Design of single chip STC89C52 is selected as the control device, the selection of sensor for detection of MQ-2 type semiconductor gas sensitive element smoke sensor smoke.The smoke alarm is mainly composed of smoke signal acquisition and the preamplifier circuit, analog-digital conversion circuit, single-chip microcomputer control circuit, display circuit, alarm circuit and protection circuit, reasonable design, simple, low price, make full use of MCU alarm system in the control of the smoke, and has a certain practical value.The main thesis of the smoke alarm system for the various components and functions are introduced and explained, and the connection mode of the main control circuit and peripheral equipment circuit interface, and the software design of the system is analyzed and the explanation of the key.
Key words:The smoke alarm; MCU; sensor
4
1 绪论
1.1 课题背景
随着科技的发展,越来越多的巨大的隐患由于工业生产和人们的日常生活而产生。为了早期发现和通报火灾,防止和减少火灾危害,保护人身和财产安全。保卫社会主义现代化建设,防止火灾引起燃烧、爆炸等事故,造成严重的经济损失,甚至危及生命安全。
为了减少这类事故的发生,就必须对烟雾进行现场实时检测,采用先进可靠的安全检测仪表,严密监测环境中烟雾的浓度, 及早发现事故隐患,采取有效措施,避免事故发生,才能确保工业安全和 家庭生活安全。因此,研究烟雾的检测方法与研制烟雾报警 器就成为传感器技术发展领域的一个重要课题。
1.2 设计概述
单片机及烟雾传感器是烟雾报警器系统的两大核心。单片机好比一个桥梁,联系着传感器和报警电路设备。近几年来,单片机已逐步深入应用到工农业生产各部门及人们生活的各个方面。各种类型的单片机也根据社会的需求而开发出来。单片机是器件级计算机系统,实际上它是一个微控制器或微处理器。由于它功能齐全,体积小,成本低,因此它可以应用到所有电子系统中。同样,它也可以广泛应用于报警技术领域,使各类报警装置的功能更加完善,可靠性大大提高,以满足社会发展的需要。而传感器作为信息技术系统的“感官”器件,如果没有“感官”感受信息,或者“感官”迟钝,都难以形成高精度、高速度的控制系统。美国曾把二十世纪八十年代称为传感技术时代,日本更是把传感技术列为十大技术之首。所以,根据报警器功能的需要,选择合适、精确、经济的烟雾传感器和单片机芯片是至关重要的。在本论文中的最主要的设计是选STC89C52单片机和MQ-2半导体气体烟雾传感器为核心器件。
目前,现代建筑都会有选择地安装不同功能的烟雾自动报警系统。因为烟雾自动报警系统是建筑物的神经系统,它能够感受、接收着发生火灾的早期信号并及时报警,发出警报同时告知用户和周边居民。它就像是一个个称职的更夫,给居住、忙碌或是休息在家庭中的人们以极大的安全感。在火灾的早期阶段,准确的探测到火情并迅速报警,对于及时组织有序快速疏散、积极有效地控制火灾的蔓延、快速灭火和减少火灾对居住人群的损失都具有重要的意义。
5
1.3 烟雾报警器的国内外现状
国外从20世纪30年代开始研究及开发烟雾传感器,且发展迅速,一 方面是因为人们安全意识增强,对环境安全性和生活舒适性要求提高;另 一方面是因为传感器市场增长受到政府安全法规的推动。据有关统计,美 国1996年~2002年烟雾传感器年均增长率为27%~30%。随着传感器生产 工艺水平逐步提高,传感器日益小型化、集成度不断增大,使得烟雾检测 仪器的体积也逐渐变小,提高了烟雾检测仪器的便携性,更加利于生产、运输及市场推广。
1963年5月,日本开发完成第一台接触燃烧式家用燃气泄漏报警器,次年12月其改良产品问世,改良的报警器可以检测燃气、一氧化碳等气 体,可以安装在浴室或者采用集中监视。
我国在70年代初期开始研制烟雾报警器,生产型号多样、品种较齐全,应用范围也由单一的炼油系统扩展到几乎所有危险作业环境的各种类型报警器,产品数量也在不断增加。但主要是在引进国外先进的传感器技术和先进的生产工艺基础上,进行研究与开发形成自己的特色。近年来,在烟雾选择性和产品稳定性上也有很大进步。
燃气报警器可分为民用火灾烟雾报警器、工业用烟雾报警器、 有毒有害烟雾报警器三大系列产品。
(1)
民用火灾烟雾报警器
民用火灾烟雾报警器为居民家庭用的火灾报警器,一般安装在厨房,遇到火灾产生的烟雾时时,报警器可发出声光报警,或同时伴有数字显示,同时联动 外部设备。有的报警器可自动开启排风扇,把烟雾排出室外
(2) 工业用烟雾报警器及有毒有害烟雾报警器
工业用烟雾报警器及有毒有害烟雾报警器只是检测探头有差异,而在原理和应用中都很相近。工业用燃气报警器及有毒烟雾报警器根 据检测环境的不同,也可分为检漏仪、控制器和探测器。
检漏仪的体积较小,可随身携带或手持,主要应用于燃气管理的查漏 与巡检。若有燃气泄漏,检漏仪便会发出声光报警,同时数字显示烟雾浓 度,以便及时采取安全措施,防止爆炸等恶性事故的发生。 控制器与探测器结合使用,可在防爆现场长期监测烟雾的浓度。
探测器安装在防爆现场,控制器壁挂在值班室等有人值守的地方,二者采用屏 蔽电缆线连接。当在现场的探测器探测到燃气泄漏之后,通过屏蔽电缆线将信号传到控制器,控制器发出声光报警,同时启动排风装置或关闭电磁阀切断气源,以确保安全。此种仪器广泛应用于液化气站、汽车加油站、锅炉房等工业场所。
1.4 烟雾报警器的发展趋势
面对人类社会经济与技术急速发展的时代,伴随这电子、计算机、通讯和现代控制
6
技术的迅速发展,现代火灾自动报警应用技术发展趋势正在向着全总线制、软件编程、网络化、智能化、多样化、小型化、社区化、蓝牙技术无线化、高灵敏化、综合化等方面发展。
针对当前烟雾自动报警系统存在的通讯协议不一致,系统误报、漏报频繁,智能化程度低,网络化程度低、特殊恶劣环境的烟雾探测报警抗干扰等问题较为突出的现象,提出在符合国家消防规范的基础下采用统一、标准、开放的通讯协议。通过对新技术、新工艺、新材料和新设备的应用研究,对系统方案、设备选型的优化组合,改进烟雾自动报警系统的工作性能、减少维护费用和维护要求,向着高可靠性、高灵敏性、低误报率、系统网络化、技术智能化方向发展,为更好的预防和遏制建筑火灾提供了强有力的保障,从而更好的保护国家和人民的生命、财产安全。
1.5 设计任务分析
本篇论文是烟雾报警器的研制: (1)对系统进行整体规划和结构设计。
(2)以STC89C52单片机为中央处理器,对硬件电路进行设计和改进,使其功能更加完善。系统硬件电路主要分为数据收集、声音报警电路、状态指示灯电路、LCD1602液晶显示电路部分。
(3)系统的软件编制。按照软件实现的功能,主要分为主程序、初始化子程序、浓度显示子程序、报警子程序、报警限值设置子程序。在程序的编写过程中,加入了详细的文字注释,便于后期的改进与维护。
(4)硬件电路和软件的综合调试。
2 总体方案设计
烟雾报警器是能够检测环境中的烟雾浓度,并具有报警功能的仪器。该报警系统的最基本组成部分应包括:信号采集模数转换电路、单片机控制电路、字符显示电路、声光报警电路和安全保护电路等部分组成。
为适应家庭和工业等场所对可燃性易爆烟雾安全性要求,设计的烟雾报警器具有显示报警状态。报警器采用延时的工作方式,烟雾检测报警器以STC89C52单片机为控制核心,选用MQ-2半导体气体烟雾传感器采集烟雾浓度信息,配合外围电路构成烟雾报警系统。本设计包括硬件和软件设计两个部分。
从设计的要求来分析该设计须包含如下结构:烟雾检测部分、STC89C52单片机主控部分、报警部分,AD采集四大部分。电路总题框图如图1所示:
7
电源 AD采集电路 按键控制 电源开关 STC89C52 显示电路 单片机 报警电路
图1 总体设计框图
处理器采用51系列单片机STC89C52。整个系统是在系统软件控制下工作的。设置在监测点上的烟雾检测探头将检测到的烟雾变换成电信号,送出模拟信号,给AD采集电路采集。在单片机内,经软件查询、识别判决等环节实时发出烟雾报警状态控制信号。驱动蜂鸣器及报警指示灯报警。
2.1 烟雾检测传感器选型
烟雾传感器是测量装置和控制系统的首要环节。而烟雾报警器的信号采集由烟雾传感器负责。烟雾传感器能够将气体的种类及其浓度有关的信息转换为电信号,根据这些电信号的强弱就可以获得与待测气体在环境中存在的情况有关的信息,从而达到检测、监控、报警的功能。可以说,没有精确可靠的传感器,就没有精确可靠的自动检测、控制和报警系统。烟雾传感器作为报警器中不可缺少的核心器件,它决定了所采集的烟雾浓度信号的准确性和可靠性。烟雾传感器内部结构如图2所示。
图 2 烟雾传感器及其结构图
8
2.2.1 烟雾传感器的介绍
烟雾传感器是模拟传感器。它能将空气中的烟雾浓度变量转换成有一定对应关系的输出信号的装置。烟雾传感器就是通过监测环境中烟雾的浓度来实现火灾防范的。当烟雾探头碰到烟雾或某些特定的气体,烟雾探头内部阻值发生变化,产生一个模拟值,从而对其进行控制。烟雾传感器利用烟雾敏感元件的电阻受烟雾(主要是可燃颗粒)浓度影响阻值变化的原理向单片机发送烟雾浓度相应的模拟信号。
在智能建筑中对火灾探测器的应用主要以感烟火灾探测器选用为主。随着传感器生产工艺水平逐步提高,传感器日益小型化、集成度不断增大,使得烟雾探测器的体积也逐渐变小,提高了烟雾探测器的便携性,更加利于生产、运输和市场推广。目前,烟雾传感器广泛应用在城市安防、小区、工厂、公司、学校、家庭、别墅、仓库、资源、石油、化工、燃气输配等众多领域。
在国内的产品中,无论哪家生产的烟雾探测器,都可以探测到火灾的发生,都具有比较高的灵敏度,而且在安装中都比较简单。但是,由于各生产的设备不可通用,独立为正,不但不可彼此互相代替,更不可以互相通讯。使得用户面对众多厂家生产的烟雾探测器感到不知所措。而这也正是国内产品市场的一个重大缺陷。
(1)烟雾传感器的分类
从构成气体传感器材料的形态上通常将它们分为干式和湿式气体传感器。由于对不同气体的检测方法不尽相同,目前主要的方法有:利用半导体气体器件检测的电气法;使用电极和电解液对气体进行检测的电化学法;利用气体对光的折射率或光吸收等特性来检测气体的光学法。
(2)烟雾传感器应满足的基本条件
一个烟雾传感器可以是单功能的,也可以是多功能的;可以是单一的实体,也可以是由多个不同功能传感器组成的阵列。但是,任何一个完整的烟雾传感器都必须具备以下条件:
(a)能选择性地检测某种单一烟雾,而对共存的其它烟雾不响应或低响应; (b)对被测烟雾具有较高的灵敏度,能有效地检测允许范围内的烟雾浓度; (c)对检测信号响应速度快,重复性好; (d)长期工作稳定性好; (e)使用寿命长;
(f)制造成本低,使用与维护方便。 (3)常见的烟雾探测器种类及工作原理
为了确保家庭环境的安全,需要对各种可燃性气体、有毒性气体进行检测。但是,由于烟雾的种类繁多,一种类型的烟雾传感器不可能检测所有的气体,通常只能检测某一种或两种特定性质的烟雾。例如氧化物半导体烟雾传感器主要检测各种还原性烟雾,如CO、H2、C2H5OH、CH3OH等。固体电解质烟雾传感器主要用于检测无机烟雾,如O2、
9
CO2、H2、Cl2、SO2等。因此目前使用的烟雾传感器有很多种,各自的检测原理也各不相同,下面就对一些常用的烟雾传感器进行介绍。
(a)半导体烟雾传感器(半导体气敏传感器)
半导体烟雾传感器包括用氧化物半导体陶瓷材料作为敏感体制作的烟雾传感器,以及用单晶半导体器件制作的烟雾传感器。半导体烟雾传感器是利用气体在半导体表面的氧化和还原反应导致敏感元件阻值变化而制成的。按照敏感机理分类,半导体烟雾传感器可分为电阻式和非电阻式。当半导体接触到气体时,半导体的电阻值将发生变化,利用传感器输出端阻值的变化来测定或控制气体的有关参数,这种类型的传感器称为电阻式半导体气敏传感器;当MOS场效应管在接触到气体时,场效应管的电压将随周围气体状态的不同而发生变化,利用这种原理制成的传感器被称为非电阻式半导体气敏传感器。
自1962年半导体金属氧化物烟雾传感器问世以来,由于具有灵敏度高、响应快、输出信号强、耐久性强、结构简单、体积小、维修方便、价格便宜等诸多优点,得到了广泛的应用。但是其最大的缺点就是选择性较差。该传感器己成为世界上产量最大、使用最广的烟雾传感器之一。
(b)接触燃烧式传感器
当易燃烟雾接触这种被催化物覆盖的传感器表面时会发生氧化反应而燃烧。接触燃烧式气体传感器的检测元件一般为铂金属丝(也可表面涂铂、钯等稀有金属催化层),使用时对铂丝通以电流,保持300℃~400℃的高温,此时若与可燃性气体接触,可燃性气体就会在稀有金属催化层上燃烧,因此铂丝的温度会上升,铂丝的电阻值也上升;通过测量铂丝的电阻值变化的大小,就知道可燃性气体的浓度。使用接触燃烧式传感器,其最大的缺点是探头很容易发生阻缓和中毒现象。一般在连续使用两个月后应对该传感器进行维护。这无形中加大了工作人员的工作量,同时增加了报警器的维护成本。
(c)电化学传感器
电化学传感器由膜电极和电解液封装而成。电化学气敏传感器一般利用液体(或固体、有机凝胶等)电解质,其输出形式可以是气体直接氧化或还原产生的电流,也可以是离子作用于离子电极产生的电动势。即烟雾浓度信号将电解液分解成阴阳带电离子,通过电极将信号传出。它的优点是:反映速度快、准确、稳定性好、能够定量检测,但寿命较短(大约两年)。它主要适用于毒性烟雾检测。目前国际上绝大部分毒气检测采用该类型传感器。
(d)高分子烟雾传感器
利用高分子气敏元件制作的烟雾传感器近年来得到很大的发展。高分子气敏元件在遇到特定烟雾时,其电阻、介电常数、材料表面声波传播速度和频率、材料重量等物理性能发生变化。高分子气敏元件由于具有易操作性、工艺简单、常温选择性好、价格低廉、易与微结构传感器和声表面波器件相结合,在毒性烟雾和食品鲜度等方面的检测中
10
具有重要作用。高分子烟雾传感器具有对特定烟雾分子灵敏度高,选择性好,且结构简单,能在常温下使用,可以弥补其它烟雾传感器的不足。
(e)红外吸收型传感器
红外传感器通常用两束红外光进行烟雾测量,主光束通过测量元件内的目标烟雾,参考光束通过比较元件内的参考烟雾。在测量和比较元件中,红外射线被烟雾有选择地吸收了。未吸收的红外光由光电探测器测量,产生一个正比于目标烟雾浓度的差分信号。非扩散式红外探测器NDIR (non-dispersive IR )是其中的一种,所有的未吸收光全部以最小的扩散和损耗被记录下来。
由于不同的烟雾吸收不同波长的IR,所以传感器根据目标烟雾而调整,典型应用包括测量CO和CO2、冷冻剂烟雾和一些易燃气。由于非碳氢化合物易燃烟雾(如氢)不吸收电磁谱中IR部分的能量,所以这种传感器可以精确地测量碳氢化合物,并具有最小的交叉灵敏度,而且不受其它烟雾的腐蚀以及高浓度目标烟雾的影响。
(f) 离子感烟传感器
离子感烟传感器对于火灾初起和阴燃阶段的烟雾气溶胶检测非常有效,可测烟雾粒径范围为0.03um-10um。它在内外电离室里面有放射源镅241。由于它能使两极板间空气分子电离为正、负离子,使电极之间原来不导电的空气具有导电性。在正常的情况下,内外电离室的电流、电压都是稳定的。当火灾发生时,烟雾粒子进入电离室后,电力部分(区域)的正离子和负离子被吸附到烟雾粒子上,使正、负离子相互中和的概率增加,从而将烟雾粒子浓度大小以电流变化量大小表示出来,实现对火灾参数的检测。
(g)光电式感烟传感器
光电式感烟传感器由光源、光敏元件和电子开关组成。平常光源发出的光,通过透镜射到光敏元件上,电路维持正常,如果有烟雾从中阻隔,到达光敏元件上的光就显著减弱,于是光敏元件就把光强的变化变成电的变化,利用光散射原理对火灾初期产生的烟雾进行探测,并及时发出报警信号。按照光源不同,可分为一般光电式、激光光电式、紫外光光电式和红外光光电式等4种。
光电式感烟探测器发展很快,种类不断增多,就其功能而言,它能实现早期火灾报警,除应用于大型建筑物内部外,还特别适用于电气火灾危险性较大的场所,如计算机房、仪器仪表室和电缆沟、隧道等处。
根据报警器检测烟雾种类的不同要求,很多场合都会选择使用半导体烟雾传感器。经过对比众多烟雾传感器的应用特性,发现半导体烟雾传感器的优点更加突出。半导体烟雾传感器具有灵敏度高、响应快、体积小、结构简单,使用方便、价格便宜等优点,且不会发生探头阻缓及中毒现象,维护成本较低,因而得到广泛应用。因此,本设计中的烟雾传感器选用MQ-2半导体气体烟雾传感器。
11
2.2.2 MQ-2半导体气体烟雾传感器
MQ-2半导体传感器是以清洁空气中电导率较低的金属氧化物二氧化锡(SnO2)为主体的N型半导体气敏元件。当传感器所处环境中存在烟雾气体时,传感器的电导率随空气中烟雾气体浓度的增加而增大。在设计报警器时只有使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。该传感器具备一般半导体烟雾传感器灵敏度高、电导率变化大、响应和恢复时间短、抗干扰能力强、输出信号大、寿命长和工作稳定等优点,在市面上应用十分广泛。
二氧化锡(SnO2)半导体气敏元件特点:
(a)SnO2材料的物理、化学稳定性较好,与其他类型气敏元件相比,SnO2气敏元件寿命长、稳定性好、耐腐蚀性强。
(b)SnO2气敏元件对气体检测是可逆的,而且吸附、脱离时间短,可连续长时间使用。
(c)SnO2气敏元件结构简单,成本低,可靠行较高,机械性能良好。
MQ-2气敏元件的结构如图2所示,由微型AL2O3陶瓷管、SnO2 敏感层,测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内,加热器为气敏元件提供了必要的工作条件。封装好的气敏元件有6只针状管脚,其中4个用于信号取出,2个用于提供加热电流。
MQ-2半导体气体烟雾传感器适用于烟雾、天然气、煤气、氢气、烷类气体、汽油、煤油、乙炔、氨气等的检测,对可燃性气体的(CH4、C4H10、H2等)的检测很理想。这种传感器在较宽的浓度范围内对烟雾气体有良好的灵敏度,能够检测多种可燃性气体,十分适合应用在家庭的气体泄漏报警器中。是一款便携式气体检测器,非常适合多种应用的低成本传感器。其技术指标表1。
表1 MQ-2的技术指标
加热电压(Vh) 回路电压(Vc) 负载电阴(Rl) 清洁空气中电阻 (Ra) 灵敏度(S=Ra/Rdg) 响应时间(trec) 恢复时间(trec) 元件功耗 检测范围 使用寿命 AC或DC 5±0.2V 最大DC 24V 2KΩ ≤2000 KΩ ≥4(在1000ppmC4H10中) ≤10S ≤30S ≤0.7W 50—10000ppm 2年 由于物理量和测量范围的
不同,传感器的工作机理和结构就不
同。通常烟雾传感器输出的电信号是模拟信号(已有许多新型传感器采用数字量输出)。
12
当信号的数值符合A/D转换器的输入等级时,可以不用放大器放大;当信号的数值不符合A/D转换器的输入等级时,就需要放大器放大。所以MQ-2半导体气体烟雾传感器要想把采集到的烟雾浓度模拟信号传送给单片机控制器就必须经过将模拟信号经过A/D转换器转化为可以识别的电信号给单片机。
设计时应注意,气敏元件开机通电时,其内阻很小,但经过一段时间后,才能恢复到原来的稳定状态。因此,QM-2气体传感器需开机预热几分钟,才可投入使用,以免造成误报。
2.2 单片机选型
单片机是烟雾自动报警系统的心脏,用来接收火灾信号并启动报警装置显示和执行相应的报警。在单片机实现的控制功能中,需要单片机有较快的运算速度,使检测人员和用户在报警器系统正常工作时能够及时地观测到实时的烟雾浓度等级,并进行相应处理。同时,在能够满足报警器系统设计的计算速度及接口功能要求的同类型单片机中,要考虑选择价格低廉且体积轻巧的机型,在保证了报警器的精确性、可靠性及抗干扰性的基础上,能够不提高成本,缩小体积。
由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中,MCS系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。其中,51系列单片机的优点是价钱便宜,I/O口多,程序空间大。因此,测控系统中,使用51系列单片机是最理想的选择,因此设计采用STC89C52。 2.2.1 STC89C52单片机简介
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在线可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。这一模块以单片机为中心把程序代码烧进去然后外围接上复位电路、振荡电路、键盘控制、LCD1602液晶显示电路、报警电路等子模块。
13
2.2.2 单片机的引脚功能描述
下面对STC89C52各引脚的功能进行较为详细的介绍: 1)电源引脚Vcc和Vss
Vcc(40脚):电源端为+5V Vss(20脚):接地端。 2)时钟电路引脚XTAL1和XTAL2
XTAL2(18脚):接外部晶体和微调电容的一端。在单片机内部它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时针电路时,该引脚输入外时钟脉冲。要检查STC89C52的振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。
XTAL1(19脚):接外部晶体和微调电容的另一端。在片内,它是振荡电路反向放大器的输入端。在采用外部时钟时,该引脚必须接地。 3)控制信号脚 RST ALE PSEN 和EA。 RST(9脚):RST是复位信号输入端,高电平有效。在此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。
ALE/PROG(30引脚):地址锁存允许信号端。当STC89C52上电正常工作后,ALE引脚不断向外输出正脉冲信号。此频率为振荡器频率fosc的1/6,当CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。在CPU访问片外数据存储时,每取值一次(一个机器周期)会丢失一个脉冲。平时不访问片外存储时,ALE端也以1/6的振荡频率固定输出正脉冲,因而ALE信号可以用作对外输出时钟或定时信号。如果你想看一下STC89C52芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出,如有脉冲信号输出,则STC89C52基本上是好的。ALE的负载驱动能力为8个LS型TTL(低功耗高速TTL)。
PSEN(29脚);程序存储允许输出信号引脚,在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引脚接ERROM的OE端。PSEN端有效,即允许读出ERROM/ROM中的指令码。CPU在从外部ERROM/ROM取指令期间,每个周期PSEN两次有效。不过,在访问片外RAM时,要少产生两次PSEN负脉冲信号。要检查一个AT89C52小系统上电后CPU能否正常到ERROM/ROM中读取指令码,也可用于示波器看PSEN端有无脉冲输出。如有,说明基本上工作正常。
EA/VPP(31脚):外部程序存储器地址允许输入端/固化编程电压输入端。当EA引脚接高电平时,CPU只访问片内ERROM/ROM并执行内部程序存储器中的指令。但在PC(程序计数器)的值超过OFFFH(对8751/8051为4k)时,将自动转向执行片外存储器的程序。当出入信号EA引脚接低电平(接地)时,CPU只访问外部ERROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。对于无芯片内的ROM的8031或8032,须外扩ERROM,此时必须将EA引脚接地。如果使用有片内ROM的STC89C52,外扩ERROM也是可以的,但也要使EA接地。
14
4)I/O(输入/输出端口,P0,P1,P2,P3)
P0口:P0口是一个漏极开路的8位准双向I/O端口。 P1口:8位准双向I/O端口。
P2口:即可以做地址总线输出地址高8位,也可以做普通I/O用,(此时为准双向口)。 P3口:双功能口,即可以做普通I/O口用(此时为准向口,也可以按每位定义实现第二功能操作)。见表2。
表2 P3口的第二功能表
引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD (串行输入口) TXD (串行输出口) INT0(外部中断0) INT1(外部中断1) T0(定时器0外部中断) T1(定时器1外部中断) WR(外部存储器写选通) RD(外部存储器读写通) 2.1.3 温度采集模块 方案1:
采用PT100作为测温电路的温度传感器。PT100传感器是利用铂电阻的阻值随温度变化而变化、并呈一定函数关系的特性来进行测温的,具有抗振动、稳定性好、准确度高、耐高压等优点。但使用起来比较复杂。 方案2:
采用DS18B20作为测温电路的温度传感器。DS18B20的数字温度输出通过 “ 一线 ” 总线( 1-Wire是一种独特的数字信号总线协议,它将独特的电源线和信号线复合在一起,仅使用一条口线;每个芯片唯一编码,支持联网寻址、零功耗等待等,是所需硬件连线最少的一种总线)这种独特的方式,可以使多个 DS18B20方便地组建成传感器网络,为整个测量系统的建立和组合提供了更大可能性。它在测温精度、转换时间、传输距离、分辨率等方面比其他温度传感器有了很大的进步,给用户带来了更方便的使用和更令人满意的效果。
15
通过比较,DS18B20直接输出数字温度值,不需要校正,因此选择方案2。
3 系统的硬件电路
3.1 单片机最小系统
要使单片机工作起来最基本的电路构成为单片机最小系统如图3示。
图3 信号处理模块
单片机最小系统包括单片机、复位电路、时钟电路构成。
STC89C52 单片机的工作电压范围:4V-5.5V,所以通常给单片机外界5V直流电源。连接方式为单片机中的40脚VCC接正极5V,而20脚VSS接电源地端。
复位电路就是确定单片机的工作起始状态,完成单片机的启动过程。单片机接通电源时产生复位信号,完成单片机启动确定单片机起始工作状态。当单片机系统在运行中,受到外界环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。一般有上电自动复位和外部按键手动复位,单片机在时钟电路工作以后,在RESET端持续给出2个机器周期的高电平时就可以完成复位操作。本设计采用的是外部手动按键复位电路,需要接上上拉电阻来提高输出高电平的值。
16
时钟电路好比单片机的心脏,它控制着单片机的工作节奏。时钟电路就是振荡电路,是向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。XTAL1和XTAL2分别为反向放大器的输入和输出,该反向放大器可以配置为片内振荡器。如采用外部时钟源驱动器件,XTAL2应不接。因为一个机器周期含有6个状态周期,而每个状态周期为2个振荡周期,所以一个机器周期共有12个振荡周期,如果外接石英晶体振荡器的振荡频率为12MHZ,一个振荡周期为1/12us。
3.2 单片机的时钟电路与复位电路设计
本系统采用STC系统列单片机,相比其他系列单片机具有很多优点。一般STC单片机资源比其他单片机要多,而且执行速度快;STC系列单片机使用串口对单片机进行烧写,下载程序较为方便;STC89C52单片机内部集成了看门狗电路;且具有很强抗干扰能力。
本系统采用内部方式的时钟电路和加电自复位的复位电路,如下图4图5所示:
图4 时钟电路
图5 复位电路
由于单片机P0口内部不含上拉电阻,为高阻态,不能正常地输出高/低电平,因而该组I/O口在使用时必须外接上拉电阻。
3.3 烟雾检测AD采集电路
烟雾检测采用MQ-2传感器。经过ADC0832采集后就可以得到各种烟雾浓度下的电压值。从而设定出理想的烟雾强度报警值。电路如图6所示
17
图6 烟雾浓度采集电路
3.4 显示模块
显示采用LCD1602液晶显示,显示电路如图7
图7 LCD1602液晶显示
18
3.5 声音报警电路
电路通过三极管基极串连一个电阻与单片机P3.6端口连接从而达到控制蜂鸣器是否报警。
图8 声音报警电路图
3.6 按键控制电路
本电路设计了四个按键,一个设置键、一个加键、一个减键、一个紧急报警键,当遇到紧急情况时,可按下紧急报警键,蜂鸣器进行报警。如图9所示
19
图9 消音按键连接电路图
3.7 电源模块
由于本系统采用电池供电,我们考虑了如下几种方案为系统供电。 方案1:
采用5V蓄电池为系统供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。但是蓄电池的体积过于庞大,在报警器上使用极为不方便。因此我们放弃了此方案。 方案2:
采用4节1.5 V干电池共4.5V做电源,经过实验验证系统工作时,单片机、传感器的工作电压稳定能够满足系统的要求,而且电池更换方便。
综上所述采用方案2
电源接口电路如图10,其中P1为电池接口,SW1为电源开关。D1为电源指示灯。
20
图10 电源接口电路
3.8 温度传感器(DS18B20)电路
3.8.1 DSl8B20简介
DSl8B20温度传感器是美国DALLAS半导体公司继DSl820之后最新推出的智能改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据要求通过简单的编程实现9~l2位的数字直读方式。可以分别存93.75ms和750ms内完成9位和12位的数字量,并且从DSl8B20读出的信息或写入DSl8B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接DSl8B20供电,而无需额外电源。因而使用DSl8B20可使系统结构更趋简单,可靠性更高。他在测温精度,转换时间,传输距离,本文系统地介绍了基于DS18B20的温度测量控制系统的组成、设计方案、电路原理、程序设计过程。DS18B20多点温度测量系统是以AT89C52单片机作为控制核心,智能温度传感器DS18B20为控制对象,用LCD1602液晶显示,运用C语言实现系统的各种功能。设计完成了冷库温度的监控和报警等令人满意的效果。DSl8B20采用3脚PR35封装或8脚SOIC封装,其内部结构框图如8所示:
图8 DSl8B20的内部结构图
DS18B20的内部结构主要有四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图9所示:
21
图9 DS18B20的管脚
DS18B20的引脚说明如下: GND :地 DQ :数据I/O VDD :电源 NC :空脚
64位激光ROM开始8位是产品类型的编号,接着是每个器件的惟一的序号共有48位,最后8位是前56位的CRC校本文系统地介绍了基于DS18B20的多点温度测量控制系统的组成、设计方案、电路原理、程序设计以及系统仿真过程。DS18B20冷库温度监控报警系统是以AT89C52单片机作为控制核心,智能温度传感器DS18B20为控制对象,用LCD1602液晶显示,运用C语言编程实现系统的各种功能。设计完成温度的测量,与上下限温度报警值设置。借助单片机编程软件Keil实现了系统软、硬件的交互联调,并结合LCD1602液晶、DS18B20和AT89C52单片机最小系统进行了电路焊接和调试,实现了课题设计目的。
DSl8B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除EEPRAM。后者用于存储TH,TL值。数据先写入RAM,经校验后再传给EEPRAM。而配置寄存器为高速暂存器中的第5个字节,他的内容用与确定温度值的数字转换分辨率,DSl8B20 工作时按此寄存器中的分辨率将温度转换为相应精度的数值。低5位一直都是1,TM是测试模式位,用于设置DSl8B20在工作模式还是在测试模式。如表1所示。在DSl8B20出厂时该位被设置为0,用户不要去改动,Rl和R0决定温度转换精度位数。
表1 字节各位的定义
TM R1 R0 1 1 1 1 1 由表2可见,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要在分辨率和转换时间权衡考虑。高速暂存存储器除了配置寄存器外,还有其
22
他8个字节组成,其分配如表3所示。其中温度信息(第l,2字节),TH和TL值第3,4节,第6~8字节,表现为全逻辑1;第9字节读出的是前面所有的8字节的CRC码,可用来保证通信正确。
表2 数据分辨率和转换时间
R1 R0 分辨率 温度最大转换时间/ms 0 0 1 1 0 1 0 1 9 10 11 12 93.75 187.5 275.00 750.00 当DSl8B20接收到温
度转换命令后,开始启动转换,如表3所示。转换完成后的温度值就以16位带符号扩展到二进制补码形式储存在高速暂存存储器的第l,2字节。单片机可通过单线接口读到该数据,读取时低位在前面,高位在后,数据格式以0.0625℃/LSB形式表示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。
温度低位 制转换
温度高位 TH TL 配置 保留 保留 保留 8位CRC 表3 码
在DSl8B20完成温度变换之后,温度值与贮存TH和TL内的触发值相比较因为这些寄存器仅仅是8位,所以0.5℃位在比较时被忽略。TH或TL的最高有较位直接对应于l6位温度奇存器的符号位。如果温度测量的结果高于TH或低于TL,那么器件内告警标志将置位。每次温度测量更新此标志。只要告警标志置位,DSl8B20将对告警搜索命令做出响应。这允许并联连接许多DSl8B20,同时进行温度测量。如果某处温度超过极限,那么可以识别出正在告警的器件并立即将其读出而不必读出非告警的器件。部分温度转换如表4所示:
3.8.2 DSl8B20具体参数及工作方式
表5 部分温度转换值
温度 +125℃ +85℃ +25.0625℃
输入(2进制) 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0001 23
输出(16进制) 07D0H 0550H 0191H
+10.125℃ +0.5℃ 0℃ -0.5℃ 0000 0000 1010 0010 0000 0000 0000 1000 0000 0000 0000 0000 1111 1111 1111 1000 00A2H 0008H 0000H FFF8H 参数特性:
(1)独-10.125℃ 1111 1111 0101 1110 FF5EH 特-25.0625℃ 1111 1111 0101 1110 EE6FH 单-55℃ 1110 1110 0110 1111 FE90H 接只需l个接口引脚即可通信
(2)多点综合测温能力使分布式温度检测应用得以简化 (3)不需要外部元件 (4)可用数据线供电 (5)需备份电源
(6)测量范围从-55℃至+125℃增量值为0.5℃ (7)以9位数字值方式读出温度
(8)在1秒(典型值)内把温度变换为数字 (9)用户可定义的非易失性的温度告警设置
(10)告警搜索命令识别和寻址温度在编定的极限之外的器件温度告警情况 (11)应用范围包括恒温控制工业系统消费类产品温度计或任何热敏系统 极限参数:
(1)任何引脚相对于地的电压-0.5V至+7.0V (2)运用温度-55℃至+125℃ (3)贮存温度-55。C至+125℃ (4)焊接温度260℃/l0秒
3.8.3 18B20接口电路
24
的线口
图10 温度传感器接口电路图
(2) DS18B20控制方法 DS18B20有六条控制命令:
温度转换 44H 启动DS18B20进行温度转换 读暂存器 BEH 读暂存器9个字节内容
写暂存器 4EH 将数据写入暂存器的TH、TL字节 复制暂存器 48H 把暂存器的TH、TL字节写到E2RAM中
重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节 读电源供电方式 B4H 启动DS18B20发送电源供电方式的信号给主CPU
(3) DS18B20供电方式
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图3.1所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个三极管来完成对总线的上拉。本设计采用电源供电方式, P2.3口接单线总线为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个上拉电阻和STC89C52的P2.3来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D变换操作时,总线上必须有强的上拉,上拉开启时间最大为10 μs。采用寄生电源供电方式是VDD和GND端均接地。由于单线制只有一根线,因此发送接收口必须是三状态的。主机控制DS18B20完成温度转换必须经过3个步骤:
? 初始化。 ? ROM操作指令。
? 存储器操作指令。
25
4 系统软件的设计
4.1 系统主程序设计及流程图
主程序流程图如下图所示。首先要给传感器预热,因为MQ-2型半导体电阻式烟雾传感器在不通电存放一段时间后,再次通电时,传感器不能立即正常采集烟雾信息,需要一段时间预热。程序初始化结束后,系统进入监控状态。
传感器预热处理
信号采集 A/D转换 单片机处理,判断否超过设定报警值
是 进入报警子程序 26 开始 程序初始化 否
图11 主程序流程图
在整个报警系统工作中,烟雾浓度信息经ADC0832转换处理后,由单片机进行分析处理,判断系统是否启动报警。主程序还包括LCD1602浓度字符显示功能、手动报警功能、报警浓度设定功能,中断子程序等,使报警器功能更加完善,给用户带来便利。
5 硬件调试及调试中遇到的问题
第一步为目测,单片机应用系统电路全部手工焊接在洞洞板上,因此对每一个焊点都要进行仔细的检查。检查它是否有虚焊、是否有毛剌等。
第二步为万用表测试,先用万用表复核目测中认为可疑的连线或接点,查看它们的通断状态是否与设计规定相符,再检查各种电源线与地线之间是否有短路现象。
第三步为加电检查。当系统加电时,首先检查所有插座或器件引脚的电源端是否有符合要求的电压值,接地端电压值是否接近零,接固定电平的引脚端是否电平正确。
第四步是联机检查。
在对硬件电路调试过程中,还遇到了不少问题,第一次把所有的元件都焊上去后,都准备调试了,才发现正负极的插针离得太近了,不容易接电源,本不该犯的错误,这些都是由于自己的粗心大意造成的,所以说,做任何事情都必需经过“三思而后行”,来不得半点的马虎,否则浪费了时间和精力。
6 电路的调试
首先烧入显示程序,看显示正不正常。在调试程序时,发现有的指令用的不正确,导致电路功能不能完全实现,另外软件程序中的延时有的过长、有的过短。类似的现象还有很多就不一一列举了。
7 总结评价
烟雾检测报警器可保障生产与生活的安全,避免火灾和爆炸事故以及煤气中毒的发生,它是防火、防爆和安全生产所必备的仪器,具有广阔的市场空间与发展前景。 本论文在对烟雾传感器和报警技术进行深入研究的基础上,全面比较国内外同类产品的技术特点,合理地确定系统的设计方案。并对仪器的整体设计和各个组成部分进行了详细的分析和设计。
本论文设计的烟雾报警器由烟雾信号采集电路与单片机控制电路两大部分构成。根据设计要求、使用环境、成本等因素,选用MQ-2型半导体电阻式烟雾传感器。该传感
27
器是对以烷类烟雾为主的多种烟雾有良好敏感特性的广谱型半导体敏感器件。它的灵敏度适中,具有响应与恢复特性好,长期工作稳定性、重现性、不易受环境影响及抗温湿度影响等优点。
在系统单片机控制电路的设计上,采用了高性能、高整合度的STC89C52单片机作为核心芯片,充分利用了其高速数据处理能力和丰富的片内外设,实现了仪器的小型化和智能化。使仪器具有结构简单、性能稳定、体积小、成本低等优点。由于烟雾传感器需要在加热状态下工作,温度越高,反应越快,响应时间和恢复时间就越快。为提高响应时伺,保证传感器准确地、稳定地工作,需要向烟雾传感器持续供给5V的加热电压。烟雾报警器能在较宽的温度范围工作,可将烟雾浓度显示用LCD1602液晶显示。当烟雾的浓度达到设定的浓度时,发出报警。
通过现场标定及测试,分析烟雾浓度信号的实验数据,计算本报警器显示烟雾浓度与实际浓度之间的误差为2.55%LEL,在所规定误差范围±5%LEL之内,满足检测要求,达到了预期的设计效果的结论。
到目前为止我的毕业设计也即将告一段落了,在这次的毕业设计中,自己也学习到了很多以前没有没有经历过的知识,让我更加清楚了理论知识和实践能力的差别了,了解到自己的短处,培养了我的独立思考能力,进一步提高了自己在实际设计过程中研究问题、发现问题、解决问题的能力,同时,也发现了自己的不足之处,和一些问题的存在,并有待进一步学习和发展,让自己在未来的工作和学习之中更快的适应和提高自己。
致谢
在完成本设计的写作过程中,我十分感谢我的指导老师。从选题到完成设计,老师一直都是很悉心的给我讲解着在设计中遇到的各种问题,循循善诱,严格把关,帮助我开拓设计思路,并不断地鼓舞着我,使我感到信心倍增,让我非常积极地投入到设计中,不断地完成设计中的一个个部分。在此,再次感谢老师在设计上不断地给与我帮助,让我在大学里的最后一次的学习过程中,充分感受到了自己对学习的兴趣和热情,使我能够圆满地完成自己的毕业设计。
回想大学四年的时光,仿佛尽在昨天。最后,我还要感谢在我大学四年的学习期间给我极大关心和支持的家人、各位老师以及我的同学和朋友。是你们在生活和学习上不断给与我支持、帮助和无微不至的关怀,是你们不断地给与了我信心,让我在人生中一
28
次次坚强地走下去。
参考文献
[1]李华.MCS一51系列单片机实用接口技术.北京航空航天大学出版社. [2]张毅坤等.单片微型计算机原理及应用.西安电子科技大学出版社.2006. [3]潘新民等.微型计算机控制技术.电子工业科技大学出版社.2003. [4]陈伟.MCS一51系列单片机实用子程序集锦.清华大学出版社.1993. [5]吴佑寿. Lab VIEW7实用教程.电子工业出版社.2007.
[6]朱明程等.一氧化碳传感器MGS1100原理及应用电子技术.1998年第1期. [7]刘迎春.传感器原理设计及应用.哈尔滨工业大学出社. [8]赵负图.数据采集与控制系统.北京科学技术出社.1987. [9]王若鲸.数据通信系统入门.人民邮电出版社.1984. [10]肖忠祥主编.数据采集原理.西北工业大学出版社.2003
[11]刘广玉.新型传感器技术及应用.北京航空航天大学出版社.1989. [12]张毅刚.MCS一51单片机应用设计.1990.
[13]陈伟.MCS一51系列单片机实用子程序集锦.清华大学出版社.1993. [14]何立民.单片机实用文集.北京航空航天大学出版.1993. [15]余成波.传感器与自动检测技术.高等教育出版社.2004.
29
附件一:总体原理图设计
30
附件二:部分程序源代码
#include
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#include
sbit CS=P2^4; //CS定义为P2口的第4位脚,连接ADC0832CS脚 sbit SCL=P2^3; //SCL定义为P2口的第3位脚,连接ADC0832SCL脚 sbit DO=P2^2; //DO定义为P2口的第4位脚,连接ADC0832DO脚
sbit dq = P2^0; //18b20 IO口的定义 sbit beep = P3^2; //蜂鸣器IO口定义 sbit fengshan = P1^4;
uint temperature,s_temp ; //温度的变量 uchar dengji,s_dengji; //烟物等级 uchar shoudong; //手动报警键
31
bit flag_300ms ;
uchar key_can; //按键值的变量 uchar menu_1; //菜单设计的变量 bit key_500ms ;
/***********************1ms延时函*****************************/ void delay_1ms(uint q) {
uint i,j; for(i=0;i /******************把数据保存到单片机内部eeprom******************/ void write_eeprom() { 32 数 中 SectorErase(0x2000); byte_write(0x2000, s_temp); byte_write(0x2001, s_dengji); byte_write(0x2060, a_a); } /******************把数据从单片机内部eeprom中读出来*****************/ void read_eeprom() { s_temp = byte_read(0x2000); s_dengji = byte_read(0x2001); a_a = byte_read(0x2060); } /**************开机自检eeprom初始化*****************/ void init_eeprom() { read_eeprom(); //先读 if(a_a != 1) //新的单片机初始单片机内问eeprom { s_temp = 50; 33 s_dengji = 60; a_a = 1; write_eeprom(); } } /***********************18b20初始*****************************/ void init_18b20() { bit q; dq = 1; //把总线拿高 delay_uint(1); //15us dq = 0; //给复位脉冲 delay_uint(80); //750us dq = 1; //把总线拿高 等待 delay_uint(10); //110us q = dq; //读取18b20初始化信号 delay_uint(20); //200us dq = 1; //把总线拿高 释放总线 } 34 化函数 /*************写18b20内的数据***************/ void write_18b20(uchar dat) { uchar i; for(i=0;i<8;i++) { //写数据是低位开始 dq = 0; //把总线拿低写时间隙开始 dq = dat & 0x01; //向18b20总线写数据了 delay_uint(5); // 60us dq = 1; //释放总线 dat >>= 1; } } /*************读取18b20内的数据***************/ uchar read_18b20() { uchar i,value; for(i=0;i<8;i++) { dq = 0; //把总线拿低读时间隙开始 value >>= 1; //读数据是低位开始 35 dq = 1; //释放总线 if(dq == 1) //开始读写数据 value |= 0x80; delay_uint(5); //60us 读一个时间隙最少要保持60us的时间 } return value; //返回数据 } /*************读取温度的值 读出来的是小数***************/ uint read_temp() { uint value; uchar low; //在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序 init_18b20(); //初始化18b20 write_18b20(0xcc); //跳过64位ROM write_18b20(0x44); //启动一次温度转换命令 delay_uint(50); //500us init_18b20(); //初始化18b20 write_18b20(0xcc); //跳过64位ROM 36 write_18b20(0xbe); //发出读取暂存器命令 EA = 0; low = read_18b20(); //读温度低字节 value = read_18b20(); //读温度高字节 EA = 1; value <<= 8; //把温度的高位左移8位 value |= low; //把读出的温度低位放到value的低八位中 value *= 0.0625; //转换到温度值 return value; //返回读出的温度 } /*********** 读 数 模 转 换 数 据 ********************************************************/ //请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的 // 1 0 0 通道 // 1 1 1 通道 unsigned char ad0832read(bit SGL,bit ODD) { unsigned char i=0,value=0,value1=0; 37 SCL=0; DO=1; CS=0; //开始 SCL=1; //第一个上升沿 SCL=0; DO=SGL; SCL=1; //第二个上升沿 SCL=0; DO=ODD; SCL=1; //第三个上升沿 SCL=0; //第三个下降沿 DO=1; for(i=0;i<8;i++) { SCL=1; SCL=0; //开始从第四个下降沿接收数据 value<<=1; if(DO) value++; } for(i=0;i<8;i++) { //接收校验数据 38 value1>>=1; if(DO) value1+=0x80; SCL=1; SCL=0; } CS=1; SCL=1; if(value==value1) //与校验数据比较,正确就返回数据,否则返回0 return value; return 0; } /*************定时器0初始化程序***************/ void time_init() { EA = 1; //开总中断 TMOD = 0X01; //定时器0、定时器1工作方式1 ET0 = 1; //开定时器0中断 39 TR0 = 1; //允许定时器0定时 } /********************独立按键程序*****************/ uchar key_can; //按键值 void key() //独立按键程序 { static uchar key_new; key_can = 20; //按键值还原 P1 |= 0x0f; if((P1 & 0x0f) != 0x0f) //按键按下 { delay_1ms(1); //按键消抖动 if(((P1 & 0x0f) != 0x0f) && (key_new == 1)) { //确认是按键按下 key_new = 0; switch(P1 & 0x0f) { case 0x0e: key_can = 4; break; //得到k1键值 case 0x0d: key_can = 3; break; //得到k2键值 40 case 0x0b: key_can = 2; break; //得到k3键值 case 0x07: key_can = 1; break; //得到k4键值 } } } else key_new = 1; } /****************按键处理LCD1602液晶显示函数***************/ void key_with() { if(key_can == 4) //紧急报警键 手动报警 { if(menu_1 == 0) shoudong = 1; } if(key_can == 1) //设置键 { menu_1 ++; if(menu_1 >= 3) { 41 menu_1 = 0; } if(menu_1 == 0) init_1602() ; //初始化显示 } if(menu_1 == 0) { if((key_can == 2) || (key_can == 3)) shoudong = 0; //取消手动报警 } if(menu_1 == 1) //设置高温报警 { if(key_can == 2) { s_temp ++ ; //高温报警值加1 if(s_temp > 99) s_temp = 99; } if(key_can == 3) { s_temp -- ; //高温报警值减1 if(s_temp <= 10) 42 s_temp = 10 ; } write_sfm2(1,8,s_temp); //显示温度 write_sfm2(2,8,s_dengji); //显示烟物等级 write_com(0x80+7); //将光标移动到第2行第到3位 write_com(0x0f); //显示光标并且闪烁 write_eeprom(); //保存数据 } if(menu_1 == 2) //设置低温报警 { if(key_can == 2) { s_dengji ++ ; //烟物报警值加1 if(s_dengji >= 99) s_dengji = 99; } if(key_can == 3) { s_dengji --; //烟物报警值减1 if(s_dengji <= 1) s_dengji = 1; 43 } write_sfm2(1,8,s_temp); //显示温度 write_sfm2(2,8,s_dengji); //显示烟物等级 write_com(0x80+0x40+7); //将光标移动到第2行第到3位 write_com(0x0f); //显示光标并且闪烁 write_eeprom(); //保存数据 } } /****************报警函数***************/ void clock_h_l() { static uchar value; if((dengji >= s_dengji) || (temperature >= s_temp) || (shoudong == 1)) //报警 { value ++; if(value >= 2) { value = 10; 44 beep = ~beep; //蜂鸣器报警 fengshan = 0; //起动风扇 } }else { if((dengji < s_dengji) && (temperature (shoudong == 0)) //取消报警 { value = 0; beep = 1; fengshan = 1; //关闭风扇 } } } /***************主函数*****************/ void main() { beep = 0; //开机蜂鸣器叫一声 delay_1ms(200); P0 = P1 = P2 = P3 = 0xff; //初始化IO口 temperature = read_temp(); //读取温度值 45 < (s_temp)) && init_1602(); //1602液晶初始化 init_eeprom(); //读eeprom数据 time_init(); //初始化定时器 delay_1ms(650); while(1) { key(); //独立按键程序 if(key_can < 10) { key_with(); //按键按下要执行的程序 } if(flag_300ms == 1) { flag_300ms = 0; temperature = read_temp(); //读取温度值 clock_h_l(); dengji = ad0832read(1,0); dengji = dengji * 99 / 255; if(menu_1 == 0) { if(temperature >= 99) temperature = 99; 46 write_sfm2(1,8,temperature); //显示温度 write_sfm2(2,8,dengji); //显示烟物等级 } } } } /*************定时器0中断服务程序***************/ void time0_int() interrupt 1 { static uchar value; TH0 = 0x3c; TL0 = 0xb0; // 50ms value ++; if(value % 6 == 0) { flag_300ms = 1; //300ms value = 0; } } 47 48
正在阅读:
智能家庭烟雾火灾检测报警系统04-15
机务实习报告01-15
80吨汽车吊车起重表03-16
十个月宝宝食谱大全整理03-01
公务员考试面试经验(必看)03-11
《货币银行学》300道题06-11
Java_WEB复习题答案105-19
墨子的兼爱思想的现代借鉴08-07
底董小学班级精细化管理细则10-14
2012年科室表态发言稿12-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 报警系统
- 火灾
- 烟雾
- 检测
- 智能
- 家庭
- 廉政历史小故事
- 市场营销第1阶段测试题
- 中兴电源DU68T601V4.1R04M01(CSU401S)协议调测交维手册(2) - 图
- 2018广西教师招聘报名动态:来宾市中小学教师无人报考岗位一览表
- 2016年英语四级考试:10天攻克核心词汇(1)
- 幼儿文学的特点习题
- 海地软件使用方法大全
- 古兰经的教育思想
- 宁夏2017年中考数学试卷及答案解析
- OVATION 逻辑组态
- 建筑总承包合同的涉税风险管控研究 doc16
- 一年级阅读练习(1)
- 设备科绩效工资二级分配方案
- 小学英语教师培训心得体会
- 公开课二年级看图写话教学设计
- 2010年度全国星级饭店统计公报 - 图文
- 空调系统毕业设计计算说明书 - 图文
- 公共卫生执业医师历年真题--营养与食
- 三年级数学《长方形和正方形的面积》周末练习
- 副本煤矿突发环境应急预案(最新) - 图文