火灾烟雾报警器论文_第1页
火灾烟雾报警器论文_第2页
火灾烟雾报警器论文_第3页
火灾烟雾报警器论文_第4页
火灾烟雾报警器论文_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、XINYU UNIVERSITY基于单片机的万年历的设 计论文题 目基于单片机的万年历的设计二级学院中兴通讯信息学院专 业一通信工程班级学号15通信工程二班学牛 章成正指导教师刘丹娟摘要随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究, 不断创新纪录。 美国 DALLAS 公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。 它可以对年、 月、日、 周日、 时、 分、 秒进行计时,还具有闰年补偿等多种功能,而且DS1302 的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。

2、该电路采用 STC89C51 单片机作为核心,功耗小,能在5V 的低压工作, 电压可选用 35V 电压供电。 综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势, 具有广阔的市场前景。 本电路为实现电子万年历的功能,采用单片机STC89C51,辅助以必要的外围电路,用C语言编写程序,并进行模块化设计而成的电子万年历系统.它通过LCD 能正确显示阳历星期和时分秒,温度等,具有功能稳定,精确度高和可调的特点。关键词:单片机; STC89C51; DS1302; LCD1602 ;万年历目录第1章绪论11.1 论文研究来源、目的和意义 11.1

3、.1 论文研究来源11.1.2 论文研究目的和意义1烟雾报警器的国内外现状 2第2章 烟雾检测报警器的设计方案及工作原理 3系统设计的功能3基本功能3拓展功能。3烟雾检测报警器设计思路32.2.1 烟雾传感器的介绍 42.2.2 烟雾传感器的分类 42.3烟雾检测报警器整体设计方案 42.3.1烟雾检测报警器工作原理4温度检测报警器工作原理5烟雾报警器系统类型5第3章 烟雾检测报警器的硬件设计 63.1 主电路的设计与实现 63.1.1 89系列单一机的概况: 63.1.2 AT89S52单片机介绍 63.1.3 AT89C51单片机的内部结构: 73.1.4 MQ-2型烟雾传感器83.1.5

4、 DS18B20温度传感器工作原理8工作原理 9烟雾报警器原理图 103.2 复位电路 103.3 晶振电路 113.4 按键电路 123.5 AD 烟雾采集模块 123.6 温度采集模块 133.7 声亮报警模块 133.8 液晶显示模块 14第 4 章 烟雾检测报警器的软件实现 164.1 单片机软件开发工具介绍 16软件介绍 16程序流程 17流程图 18主程序 194.3.1 显示子程序 204.3.2 A/D 转换子程序21第五章 总结 235.1 软件调试总结235.2 硬件功能实现的总结 23参考文献 24致谢 25附录 1 26部分源程序 26附录 2 34元件清单 34附录

5、3 35仿真运行图 35实物图 35实物运行图 36基于单片机的烟雾报警器第1章绪论1.1 论文研究来源、目的和意义1.1.1 论文研究来源随着社会的进步,人们的生活越来越好但也伴随着越来越多的隐患,由于在现代城市家庭里,许多人因不懂家庭安全常识引起火灾事故,使幸福家庭眼间毁于一旦,有的甚至导致家破人亡,而且一旦发生居民家庭火灾,处置不当,是造成人 员伤亡的重要因素。所以说,人们应该积极了解家庭火灾的主要起因,还有预防 火灾的发生。英国每年发生50000起以上的严重家庭火灾,其中大部分火灾造成人员伤亡 和重大的家庭财产损失,有的还连累左邻右舍,火灾损失更加惨重。在调查火灾 起因的时候,绝大多数

6、发生火灾家庭的当事人说,以前总觉得火灾是人家的事情, 与自己离得很远,没有想到这一次竟然会发生在自己的头上。1.1.2 论文研究目的和意义随着现代家庭采用方便的家用电器的增加,家庭火灾发生的频率越来越高。 一旦家庭有火灾发生,就很容易出现扑救不及时、灭火器材缺乏以及在场人惊慌 失措、逃生缓慢等不利因素,最终导致重大生命财产损失。为了保护生命安全与 财产安全,人们需要实时注意防止火灾的发生, 利用高科技产品有利于人们及早 发现火灾的隐含,及时的防止不必要的灾难发生。为了早期发现火灾的隐患,防止和减少火灾危害,保护人身和财产安全,防 止火灾引起燃烧、爆炸等事故,造成严重的经济损失与危生命安全。随着

7、烟感报 警器的使用者不断增加,住宅失火造成的死亡人数也不断下降。 据美国国家消防 协会报告说明,安装了推荐数目的烟感报警器的住宅一旦发生火灾,住宅内人员的逃生时机将比未安装的住宅多出 50%2。所以家庭装有烟雾报警器灾难能够降 低,防止不必要的灾难。烟雾报警器的国内外现状探测器朝新探测技术的发展进一步拓展了火灾探测的应用领域,为一些传统 探测器无法胜任的环境提供了有效的手段。相关技术的发展,如傅立叶近红外光 谱技术弱信号处理技术、低功耗 MCU技术进一步促进了传统探测技术的改良,使得传统探测器在技术和性能上有了显著的提高。火灾着极早期探测、多传感器 复合探测和探测器小型化、智能化的方向发展迈出

8、了更快的步伐。4第2章烟雾检测报警器的设计方案及工作原理系统设计的功能利用气体传感器 MQ-2、ADC0809模数转换器、DS18B20温度传感器等实 现基本功能。通过这些传感器和芯片,当环境中可燃气体浓度或温度等发生变化 时系统会发出相应的灯光报警信号和声音报警信号,以此来实现火灾报警,智能化提示。基本功能利用气体传感器 MQ-2、ADC0809模数转换器、DS18B20温度传感器采集 数据并对处理后的数据进行分析,如果温度大于或等于某个预设值,则黄灯点亮, 启动报警电路发出报警声音,反之则黄灯熄灭,无报警声音。如果烟雾值大于或等于某个预设值,则红灯点亮,并启动报警器,发出报警 声音。反之则

9、红灯熄灭,无报警声音。拓展功能。设计按键。当按下设置按键时,光标闪烁,此时按下力口”或 减”对应的温度或烟雾阈值可进行设置。烟雾检测报警器设计思路此次设计是针对于单片机原理及其应用展开的。其中包含了大学三年中所学 到的相关知识,运用所学的传感器技术,单片机技术去设计基于单片机的烟雾报 警系统。烟雾报警器的最基本组成部分包括:烟雾传感电路、温度传感电路、模 数转换电路、单片机控制电路。单片机紧紧联系着传感器和报警电路设备,给烟 雾报警器设定一个值,当外界环境到达预先设定的数值时,烟雾传感器把被测的 物理量作为输入参数,转换为电量输出。温度传感器的工作原理与上者相同。为 了简化整个系统的设计在本设

10、计中不采用前置放大器而是选择数值符合A/D转换器的输入等级。模数转换电路将从烟雾传感电路送出的模拟信号转换成单片机 可识别的数字信号后送入单片机。这里选择单片机的为输入方式,接收到信号的 单片机经过程序的设定会由作为单片机的输出电路, 单片机对该数字信号进行滤 波处理,并对处理后的数据进行分析, 是否大于或等于某个预设值,如果大于则 启动报警电路发出报警声音,反之则为正常状态。烟雾传感器、温度传感器及单片机是可燃烟雾检测报警器的两大核心,根据报警器功能的需要,选择合适、精确、经济的烟雾传感器及单片机芯片是至关重 要的。烟雾传感器的介绍烟雾传感器是将空气中的烟雾浓度变量转换成有一定对应关系的输出

11、信号 的装置,烟雾传感器是一种技术先进,工作稳定可靠的传感器,被广泛运用到各 种消防报警系统中。烟雾传感器的分类1、离子式烟雾传感器该烟雾报警器内部采用离子式烟雾传感, 离子式烟雾传感器是一种技术先进, 工作稳定可靠的传感器,被广泛运用到各消防报警系统中,性能远优于气敏电阻 类的火灾报警器。它在内外电离室里面有放射源锢 241,电离产生的正、负离子,在电场的作 用下各自向正负电极移动40在正常的情况下,内外电离室的电流、电压都是 稳定的。一旦有烟雾窜逃外电离室。干扰了带电粒子的正常运动,电流,电压就 会有所改变,破坏了内外电离室之间的平衡,于是无线发射器发出无线报警信号, 通知远方的接收主机,

12、将报警信息传递出去。2、光电式烟雾传感器光电烟雾报警器内有一个光学迷宫,安装有红外对管,无烟时红外接收。烟雾检测报警器整体设计方案烟雾检测报警器工作原理本论文中的烟雾报警器采用89S52单片机来控制核心,采用MQ-2型电阻式 半导体传感器采集烟雾信息。其工作原理,首先烟雾传感器采集烟雾信息然后把 烟雾信号转换为电量送入模数转换器中;接着模数转换电路将从烟雾传感电路送 出的模拟信号转换成单片机可识别的数字信号后送入89S52单片机;最后,将实际可燃性气体浓度送入液晶,并判断浓度值是否超出报警门限,当浓度低于设置 门限值的时候绿灯长亮,当烟雾浓度超出设定的限定值时,红灯亮并发出声音报 壁 育。基于

13、单片机的烟雾报警器温度检测报警器工作原理该设计采用的是数字温度传感器。温度传感器检测到的温度以及数据处理后, 直接送给单片机89c52数字信号并进行数据分析。单片机对于温度传感器的送入 的数据与预先设定的温度阈值,并判断温度是否超出设定的限定值。假设是超过, 黄灯点亮并发出报警声音。烟雾报警器系统类型为适应家庭和工业等场所对可燃性易爆烟雾安全性要求,设计的可燃性烟雾 报警仪应不仅能在较宽的温度范围工作,而且应具有显示可燃烟雾浓度使用 89S52单片机,MQ-2烟雾传感器与DS18B20温度传感器作为敏感元件,利用 ADC0809转换器和烟雾报警电路,开发出可用于家庭或小型单位火灾报警的烟 雾报

14、警器。整个设计由5大模块与两个基本电路构成:AD烟雾采集模块、按键 模块、液晶显示模块、声光报警提示模块、温度采集模块以及复位电路和晶振电 路。89S52单片机,烟雾传感器是将现场烟雾浓度等非电信号转化为电信号,冉 通过ADC0809将模拟信号转换成数字信号送给单片机进行处理。烟雾报警模块 由单片机和报警电路组成,由单片机控制实现不同的声光报警功能。本系统采用 高性能的单片机,工作稳定、测量精度高、通用性强、功耗低,保证报警器的精 确性及可靠性,而且最好体积小,成本低,有利于减少报警器的体积,降低报警 器的成本。第3章烟雾检测报警器的硬件设计主电路的设计与实现89S52单片机是报警仪的设计中最

15、核心的部件,一方面它控制A/D转换器实 现模拟信号到数字信号的转换,另一方面,将采集到的数字电压值经电脑处理得 到相应的二进制代码,与设定的值作比较。整个系统的软件编程就是通过C语言对单片机89S52实现其控制功能。89系列单片机的概况:MCS-51单片机是美国INTE公司于1980年推出的产品,典型产品有 80 31、8051和8751等通用产品,一直到现在,MCS-5 1内核系列兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。我们常说的已经停产的89C51指的是ATMEL公司的AT 89C51单片机,同时是在原基础上增强了许多特性,

16、如时钟,更优秀的是由 Flash程序存储器的内容至少可以改写 1000次存储器取带了原来的 ROM一 次性写入,AT89C51的性能相对于8051已经算是非常优越的了。89C51的缺 陷在于不支持ISP在线更新程序功能,必须加上ISP功能等新功能才能更好 延续MCS-51的传奇。89S51就是在这样的背景下取代89C51的,现在,89S51 目前已经成为了实际应用市场上新的宠儿,作为市场占有率第一的Atmel目前公司已经停产 AT89C51,将用AT89S51代替。89S51在工艺上进行了改良,89S51 采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。89SXX可以像下 兼容89

17、CXX等51系列芯片。市场上见到的89C51实际都是Atmel前期生产 的 巨量库存而以。如果市场需要,Atmel当然也可以再恢复生产 AT89C51。3.1.2 AT89S52单片机介绍AT89S52实物图与结构图由图3-1、3-2所示。该单片机可反复擦写1000次 的FLASH只读程序存储器,器件采用 ATMEL公司之高密度、非易失性存储技 术制造,兼容标准MCS-51指令系统及80C51引脚结构,片上Flash允许程序存 储器在系统可编程,亦适于常规编程器。由图 3-2可见,89S52单片机主要由以 下部分组成:CPU系统:8位CPU;含布尔处理器;时钟电路;总线控制逻辑。存储器系统:8

18、KB的程序存储器ROM/EPROM/Flash,可扩至64KB; 128KB数据存储器RAM,可再扩64KB;特殊功能寄存器SFR。3.1.3 AT89C51单片机的内部结构:AT89C51 单片机内部由 CPU、4KB 的 FPEROM , 128B 的 RAM ,两个 16 位的定时/计数器T0和T1, 4个8位的I/O端P0、P1、P2、P3等组成。单片微 机内部最核心的部分是CPU。CPU主要功能是产生各种控制信号,控制存储器、 输入/输出端口的数据传输、数据的算术运算、逻辑运算以及位操作处理等,CPU 按其功能可分为运算器和控制器两部分。控制器由程序计数器PC、指令储存器、 指令译码

19、器、实时控制与条件转移逻辑电路等组成。 它的功能是对来自存储器中 的指令进行译码,通过实时控制电路,在规定的时刻发出各种作所需的内部和外 部的控制信号,使各部分协调工作,完成指令所规定的操作运算器由算术逻辑器部 件ALU、累加器ACC、暂存器、程序状态字寄存器 PSW, BCD码调整 电路等组成。图3.1单片机内部结构图7基于单片机的烟雾报警器3.1.4 MQ-2型烟雾传感器半导体烟雾传感器包括用氧化物半导体陶瓷材料作为敏感体制作的烟雾传 感器以及用单晶半导体器件制作的烟雾传感器。 按敏感机理分类,可分为电阻型 和非电阻型。半导体气敏元件也有 N型和P型之分。N型在检测时阻值随烟雾 浓度的增大

20、而减小;P型阻值随烟雾浓度的增大而增大。半导体气敏传感器的分 类。本设计中采用的MQ-2型烟雾传感器 属于二氧化锡半导体气敏材料,属于外表 离子式N型半导体。当处于200300° C温度时,二氧化锡吸附空气中的氧,形成氧 的负离子吸附,使半导体中的电子密度减 少,从而使其电阻值增加。当与烟雾接触 时,如果晶粒间界处的势垒受到该烟雾的 调制而变化,就会引起表而电导率的变化。利用这一点就可以 获得这种烟雾存在的信 息。图3.1.4 MQ-2型烟雾传感器3.1.5 DS18B20温度传感器工作原理DS18B20数字温度传感器 接线方便,封装成后可应用于多种场合,如管道式, 螺纹式,磁铁吸附

21、式,不锈钢封装式,型号多种多样,有 LTM8877, LTM8874 等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样, 适用于各种狭小空间设备数字测温和控制领域。基于单片机的烟雾报警器工作原理ADC0809是美国国家半导体公司生产的 CMOS工艺8通道,8位逐次逼近 式A/D模数转换器。它由8路模拟开关、地址锁存与译码器、比较器、8位开关 树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。其内部有一个8通道多路开关,它

22、可以根据地址码锁存译码后的信号霜只选通8路模拟输入信号 图3.1.5DS18B20温度传感器结构囱中的一个进行A/D转换。外部特性引脚功能ADC0809芯片有28条引脚,采用双列直插式 封装,如下图。下面说明各引脚功能:IN0IN7: 8路模拟量输入端。IIJC?112-12-8: 8位数字量输出端。ADDA、ADDB、ADDC : 3位地址输入线,用 于选通8路模拟输入中的一路。图3.1.6 AT89C51引脚图ALE:地址锁存允许信号,输入端,高电平有 效。START : A/D转换启动脉冲输入端,输入一0809复位,下降沿启动A/D个正脉冲至少100ns宽使其启动脉冲上升沿使 转换。EO

23、C: A/D转换结束信号,输出端,当A/D转换结束时,此端输出一个高 电平转换期间一直为低电平。OE:数据输出允许信号,输入端,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于 640KHz。REF +、REF-:基准电压。Vcc:电源,单一 +5V。GND:地。9基于单片机的烟雾报警器烟雾报警器原理图吒13国 ra LJMH H raoAbJi RliFi-再片由际 rdpPZ1W FZdFJ F33f,1l 程公任 FZJ/iCI F74AU FET/iW"lllflVa? ra VTfr "

24、ajrim qjrTnr pjvra F,sm田flffnr心irr卜图3.2烟雾报警器仿真原理3.2复位电路单片机的RET脚位复位脚。属于高电平复位。正常情况下, 后,给RET送入一个高电平,使单片机进行复位。RET处于低电平,当按下按键图3.2 复位电路10基于单片机的烟雾报警器3.3 晶振电路12MHz的晶振,其机器周期是 1us,也就是说在执行同一条指令时用 6MHz的晶振所用的时间是12MHz晶振的两倍。为了提高整个系统的性能我选 择了 12MHz的晶振。振荡方式的选择:内部振荡方式,MCS-51内部都有一个反相放大器,XTAL1、XTAL2分别为 反相放大器输入和输出端,外接定时反

25、馈元件以后就组成振荡器, 产生时钟送至 单片机内部的各个部件。这样就构成了内部振荡方式外部振荡方式是把已有的时钟信号引入单片机内。 这种方式适合用来使单片 机的时钟与外部信号一致。在我的这个设计中没有也无需与外部时钟信号一致, 所以我选择了内部振荡 方式,由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。晶振我选择了12MHz,相对于6MHz的晶振,整壬口工个系统的运行速度更快了。电容器 C1、C2起稳定振荡频率、快速起振的作用, 电容值我选择了 30pF。内部振荡方式所得的时钟信号稳定性高。U1>XTAL1XTAL2-g RST3 . Dkc.

26、120图3.3晶振电路3.4 按键电路图3.4按键电路按键电路A、B、C分别接单片机的,和。当有键按下时,单片机得到一个 低电平,通过程序进行判断,做出相应的工作。设置键为设置烟雾或温度的阈值, 加、减按键分别在温度和烟雾值的阈值进行增加或减少的处理3.5 AD烟雾采集模块本设计采用的是 ADC0809。于仿真问题,ADC0809块错误,因此采用 ADC0808代替。ADC0808相当于ADC0809的简化模数转换器。由于我们只需 要一个输入口,所以ADD的输入端我们全部接地,此时,只有IN0 口可以进行 数据的输入。当烟雾传感器采集到信号并转换成电信号后输入给ADC0808 o由单片机控制A

27、DC0808的模数转换,并将数据通过单片机的 P1 口输入。通过液 晶显示器显示出当前的烟雾值。CLOCK£JULisnJ2INO 76CLOCK-iGT ABT10CLOCKV=27IhUI fell d4<START过I IN IH2A I M n 11E。C_2IN己IN4eQW.20UT1 0UT2 0UT3 QUT4 OUTS 0UT6 0UT7 OUTS21P0qIHOINSINF20F15他P2.*1SP325KDD A 州p B AD& CsP4.a1424151r2314PC15TART 2217P7jftLt此VR£F(>)VREFO

28、10GE9 EJ3C其 08图3.5 AD烟雾采集电路3.6 温度采集模块DS18B20是数字度传感器,18B20检测 的温度信号会在内部进行转换成数字信号, 并通 过DQ脚输出。可以直接进入单片机进行数据的 处理判断。图3.6温度传感器电路3.7 声亮报警模块LED1与LED2界别接喇隼崛和。鸣器接在单片机的脚。当采集的温 度值或烟雾值大于设置好的初值,LED1或LED2会脚会由单片机的高电平变为 低电平,此时发光二极管处于导通状态而发光。于此同时,fmq会得到单片机给的一个低电平,使三极管处于导通状态,蜂鸣器发出声音。图3.7声亮报警电路3.8 液晶显示模块VL为液晶显示器比照度调整端,接

29、正电源时比照度最弱,接地时比照度最 高,比照度过高时会产生 鬼影”,使用时可以通过一个的电位器调整比照度。RS为寄存器选择,接单片机的,高电平时选择数据寄存器、低电平时选择 指令寄存器。R/W为读写信号线,接单片机的脚,高电平时进行读操作,低电 平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址, 当 RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可 以写入数据。E端为使能端,接单片机的脚,当 E端由高电平跳变成低电平时, 液晶模块执行命令。D0D7数据输入端口接单片机的P0 口。图3.8液晶显木电路第4章烟雾检测报警器的软件实现单片机软件开发工具介

30、绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开 发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的 优势,因而易学易用17。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑, 容易理解。在 开发大型软件时更能表达高级语言的优势。KEILC51标准C编译器为80C51微控制器的软件开发提供了 C语言环境,同时保留了

31、汇编代码高效,快速的特点。C51 编译器的功能不断增强,更加贴近 CPU本身,及其它的衍生产品。C51已被完 全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器, 实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的 开发环境。软件介绍Proteus软件进行单片机系统仿真设计,是虚拟仿真技术和电脑多媒体技术 相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;在单片机课程设计和全国大学生电子设计竞赛中,我们使用Proteus开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单 纯学习书本知识

32、更容易接受,更容易提高。实践证明,在使用Proteus进行系统 仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件该软 件中国总代理为广州风标电子技术。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工 具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、 致力于单片机开发应用的科技工作者的青睐。Proteus是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单 片机与外围电路协同仿真,一键切换到 PCB设

33、计,真正实现了从概念到产品的 完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,具处理器模型支持 8051、HC11、 PIC10/12/16/18/24/30/DsPIC33 AVR、ARM、8086 和 MSP430 等,2010 年又增 加了 Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面, 它也支持IAR、Keil和MPLAB等多种编译器。程序流程在整个程序流程中,经常要控制一部分指令重复执行假设干次,以便简短的 程序完成大量的处理任务。这种按某种控制规律重复执行的程序称为循环程序。循环程序有先执行后判断何先判断后执行

34、两种基本结构。而我们要选用的是先判断后执行。MQ-2刚开始的时候不能马上检测烟雾,需要等通电一会后才能正常工作, 程序初始化结束后系统进入工作状态。89S52单片机对传感器检测到的烟雾信号 进行模数转换,然后与设定的门限值进行比较,如果超过预算门限值蜂鸣器报警, 同时把烟雾浓度值送入显示管显示,没有超过门限值继续进入监控工作状态。流程图图4.2.1程序流程图基于单片机的烟雾报警器37主程序void main()check_wendu(); check_wendu();init_eeprom();Init1602();while(1)/烟雾指示灯亮/蜂鸣器报警/烟雾值小于预设值时/关掉报警灯/打

35、开蜂鸣器报警/打开温度报警灯/温度值小于预设值时/关闭报警灯/初始化时调用温度读取函数防止开机 85 °C/开始初始化保存的数据/调用初始化显示函数/进入循环temp=ADC0809();/读取烟雾值check_wendu();/读取温度值Key();/调用按键函数扫描按键if(Mode=0)/只有当模式为0时才会执行以下的阀值判断部分Display_1602(yushe_wendu,yushe_yanwu,c,temp);if(temp>=yushe_yanwu) /烟雾值大于等于预设值时 LED_yanwu=0;baojing=0;elseLED_yanwu=1;if(c&

36、gt;=(yushe_wendu*10)baojing=0;LED_wendu=0;elseLED_wendu=1;if(temp<yushe_yanwu)&&(c<(yushe_wendu*10)/ 当烟雾小于预设值并且温度也小于预设值时 && :逻辑与,左右两边的表达式都成立都为真,也就是1时,该 if 语句才成立baojing=1;/停止报警4.3.1 显示子程序/宏定义#define uint unsigned int#define uchar unsigned char/LCD 管脚声明 RW 引脚实物直接接地,因为本设计只用到液晶的写操作

37、, RW 引脚一直是低电平sbit LCDRS = P2A0;sbit LCDEN= P2A1;sbit LCDRW= P2A2;/初始画时显示的内容uchar code Init1="SET T:00E:000"uchar code Init2="NOW T:00.0 E:000"/LCD 延时void LCDdelay(uint z)/该延时大约100us不精确,液晶操作的延时不要求很精确uint x,y;for(x=z;x>0;x -) for(y=10;y>0;y -);/写命令void write_com(uchar com)LCD

38、RW=0;LCDRS=0;P0=com;LCDdelay(5);LCDEN=1;LCDdelay(5);LCDEN=0;/写数据void write_data(uchar date)LCDRW=0;LCDRS=1;P0=date;LCDdelay(5);LCDEN=1;LCDdelay(5);LCDEN=0;/1602 初始化void Init1602()uchar i=0;write_com(0x38);/ 屏幕初始化write_com(0x0c);/ 打开显示 无光标 无光标闪烁write_com(0x06);/ 当读或写一个字符是指针后一一位write_com(0x01);/ 清屏wri

39、te_com(0x80);/ 设置位置for(i=0;i<16;i+)write_data(Init1i);/显示数组1 的数据write_com(0x80+0x40);/ 设置位置for(i=0;i<16;i+)write_data(Init2i);/显示数组2 的数据4.3.2 A/D 转换子程序/ADC0809 读取信息uchar ADC0809()uchar temp_=0x00;/初始化高阻太OE=0;/转化初始化ST=0;/开始转换ST=1;ST=0;/ 外部中断等待AD 转换结束while(EOC=0)/ 读取转换的AD 值OE=1;temp_=Data_ADC080

40、9;OE=0;return temp_;第五章 总结5.1 软件调试总结本次课程设计, 充分讲课堂上学习上的知识运用到实践中。 除了要求 C 预言, 单片机知识的掌握力度之外,还要学习熟练电脑仿真软件。本次仿真软件采用的是protues7.10 ,由于烟雾传感器无法再仿真元件中查找,我们根据烟雾传感器的原理, 采用的是可变电位器进行代替。当改变电位器的电阻大小的时候, ADC0809 的输入端检测到电信号,并进行转换成数字信号输入给单片机。通过数据处理之后,在传送给液晶显示器。在程序上,使用 keil C51 软件编写程序。才进行初次仿真时,发光二极管并不发光。 经检测程序, 发现对于二极管是

41、否接地, 程序中需要改变其相应的电平。5.2 硬件功能实现的总结本次课程设计的硬件电路,全是手工焊接。焊接要求:元器件的布局必须美观,操作方便。焊锡尽量不使用拖焊,特别是长距离的连接,禁止使用拖焊进行连接。在硬件电路焊接完成后,先检测电路中是否有短路,虚焊的现象。详细检查各个芯片, 元器件的正极与负极是否都已经焊接完成。 检查完成之后再开始接入电源。参考文献1 胡宴如主编.模拟电子技术M 高等教育出版社, 2008-2-12 赵利主编 .数字电子技术M 冶金工业出版社, 2009-1-13李华.单片机C语言编程M.北京:北京航空航天大学出版社,2005-8-1.4徐爱钧.单片机原理实用教程基于

42、Protrues虚拟仿真M.北京:电子工业出版社 .2009-15 李萍 AT89S51 单片机、原理、开发与应用实例 M 北京:中国电力出版社 2008-76 张晔、王玉民等单片机应用技术M 北京:高等教育出版社 2006-37陈忠平 基于protues的51系列单片机设计与仿真电子工业出版社201318 张毅刚主编 单片机原理与应用设计 电子工业出版社 2014-29 顾辉,陈越等主编 微机原理与接口技术 电子工业出版社 2012-210 王港元 电子设计制作基础江西科技技术出版社2015-3致谢非常感谢刘丹娟老师, 在我设计制作仿真时候, 细心教导,为我解决很多问题,并且还拓宽了我的知识

43、, 让我对于单片机各方面的知识与应用,有了更多的认识。当然也要感觉此前的学习中,模拟电路老师,数字电路老师的教学。如果不是他们的任教, 他们的帮助和指导, 单单凭就我那浅薄的单片机知识,是不可能完成本次的课程设计的。 感谢你们对我们学习付出的时间与精力, 对此,我一定会铭感五内,始终不忘记老师的教诲。正是由于你们的教导, 我才能在各个方面提升自己能力, 让我以后在社会中有了些许立足之本。 在此向各位老师表示我由衷的谢意, 并祝所有的老师培养出越来越多的优秀人才,桃李满天下!当然,我还需要感谢我的小组成员, 是我们共同探讨,共同完成本次的课程设计。 当然还要感谢我的室友, 帮我解决我在写程序时遇

44、到的各种问题。 我知道,这个课程设计基于单片机的烟雾报警设计的圆满完成,是与老师,同学的帮助是分不开的。再次对我的指导老师刘丹娟以及我的同学致以最崇高的敬意和衷心的感谢。附录 1源程序/程序头函数#include <reg52.h>/宏定义#define uint unsigned int#define uchar unsigned char/显示函数也可鼠标选中左边右键 open document <>#include <>/显示函数在工程里#include <>#include "eeprom52.h"#define Da

45、ta_ADC0809 P1Data_ADC0809 即代表 P1 口/ 定 义 P1 口 为 Data_ADC0809 之 后 的 程 序 里/管脚声明sbit LED_wendu= P2A5;sbit LED_yanwu= P2A6;sbit baojing= P3A1;sbit DQ = P2A7;/ADC0809sbit ST=P3A3;sbit EOC=P3A6;sbit OE=P3A2;sbit CLOCK=P3A0;/按键sbit Key3=P2A3;sbit Key2=P2A4;sbit Key1=P3A7;/温度报警灯/烟雾报警灯/蜂鸣器接口/ds18b20 的数据引脚/设置键

46、 /加按键 /减按键signed char w;/温度值全局变量uint c;/温度值全局变量/酒精含量变量uchar temp;uchar yushe_wendu=50;uchar yushe_yanwu=45;/按钮模式|uchar Mode=0;/ 用于读取 ADC 数据/温度预设值/烟雾预设值/=1 是设置温度阀值=2 是设置烟雾阀值/函数声明extern uchar ADC0809();extern void Key();/*void delay(uint z)/延时函数大约延时z msuint i,j;for(i=0;i<z;i+)for(j=0;j<121;j+);*

47、/* 把数据保存到单片机内部void write_eeprom()eeprom 中 */SectorErase(0x2000);byte_write(0x2000, yushe_wendu);byte_write(0x2001, yushe_yanwu);byte_write(0x2060, a_a);/*把数据从单片机内部 eeprom 中读出来 */ void read_eeprom() yushe_wendu= byte_read(0x2000);yushe_yanwu= byte_read(0x2001);a_a = byte_read(0x2060);/*开机自检 eeprom 初始

48、化 */ void init_eeprom()read_eeprom();/先读if(a_a != 1)/新的单片机初始单片机内问eepromyushe_wendu=50;yushe_yanwu=45;a_a = 1;write_eeprom(); /保存数据/* 延时子程序:该延时主要用于ds18b20 延时 */void Delay_DS18B20(int num)while(num -) ;/* 初始化 DS18B20*/void Init_DS18B20(void)unsigned char x=0;DQ = 1;/DQ复位/稍做延时Delay_DS18B20(8);DQ = 0;/

49、单片机将DQ 拉低Delay_DS18B20(80);/精确延时,大于480usDQ = 1;/拉高总线Delay_DS18B20(14);x = DQ;/稍做延时后,如果Delay_DS18B20(20);/* 读一个字节*/unsigned char ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;x=0 则初始化成功, x=1 则初始化失败for (i=8;i>0;i DQ = 0; dat>>=1;DQ = 1; if(DQ)-)/ 给脉冲信号/ 给脉冲信号dat|=0x80;Delay_DS18B20

50、(4);return(dat);/* 写一个字节*/void WriteOneChar(unsigned char dat)unsigned char i=0;for (i=8; i>0; i -)DQ = 0;DQ = dat&0x01;Delay_DS18B20(5);DQ = 1;dat>>=1;/* 读取温度 */ unsigned int ReadTemperature(void)unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneCha

51、r(0xCC); /跳过读序号列号的操作 WriteOneChar(0x44); /启动温度转换 Init_DS18B20();WriteOneChar(0xCC);/跳过读序号列号的操作WriteOneChar(0xBE);/读取温度寄存器a=ReadOneChar();/读低8 位b=ReadOneChar();/读高8 位t=b;t<<=8;t=t|a;tt=t*0.0625;t= tt*10+0.5;/放大10倍输出并四舍五入return(t);/* 读取温度 */void check_wendu(void)/ 获取温度值并减去DS18B20 的温漂误差c=ReadTemperature()-5;if(c<0) c=0;if(c>=999) c=999;/ADC0809 读取信息uchar ADC0809()uchar temp_=0x00;/初始化高阻太OE=0;/转化初始化ST=0;/开始转换ST=1;ST=0;/ 外部中断等待AD 转换结束while(EOC=0)读取转换的 AD 值OE=1;temp_=Data_ADC0809;OE=0;re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论