欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    《单片机技术》课程设计危险气体报警器.doc

    • 资源ID:4146918       资源大小:5.68MB        全文页数:31页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《单片机技术》课程设计危险气体报警器.doc

    单片机技术课程设计说明书 危险气体报警器 湖南工学院单片机技术课程设计课题任务书 学院:电气与信息工程学院 专业:电气工程及其自动化指导教师学生姓名课题名称危险气体报警器内容及任务一、设计任务设计一个基于单片机的危险气体报警器。二、设计内容1、危险气体报警器的硬件系统(1)、单片机最小系统模块(2)、供电模块(3)、显示模块(4)、按键模块(5)、传感器电路模块(6)、报警电路模块2、危险气体报警器的软件系统(1)、传感器信号处理程序模块(2)、显示程序模块(3)、按键处理程序模块 (4)、报警程序模块三、设计要求该危险气体报警器上电或按键复位后能自动显示符号“S.”,进入准备工作状态。具备对室内烟雾或可燃气体等的传感检测功能,并能通过液晶屏显示出当前状态,有气体泄漏时可以发出警报声。用户可以通过按键来取消报警声等。对烟雾及防盗的检测反应速度不得超过5秒。主要参考资料1李广弟等. 单片机基础M.第3版. 北京:北京航空航天大学出版社,2003.6 2李全利. 单片机原理及应用(C51编程)M.北京:高等教育出版社,2012.12 3马忠梅. 单片机的C语言应用程序设计M.第四版.北京:航空航天大学出版社, 2003.64李光飞. 单片机C程序设计指导M.北京:航空航天大学出版社,2003.015李光飞. 单片机课程设计实例指导M.北京:航空航天大学出版社,2004.9 教研室意见 教研室主任:(签字)年 月 日摘 要 危险气体报警器通过监测气体的浓度来实现火灾防范,可以完成可燃性气体和有毒气体的检测以及报警功能,应用非常广泛,有效的预防了各种火灾的发生。危险气体报警器采用单片机AT89S52,其价格便宜,性能稳定,易于产品化。以MQ-2气体传感器和AT89S52单片机为核心设计危险气体报警器,利用MQ-2气体传感器,将置于测试环境中待测气体的浓度转换为模拟电压,再通过A/D转换器ADC0809将模拟电压转换为数字信号,送入单片机AT89C51中进行处理。通过设置报警值,用单片机控制蜂鸣器报警。最后通过调试硬件和软件系统,结果显示,所设计的危险气体报警器能够实现特定的功能,具备准确度高的优点,可以在预防火灾报警领域中得到广泛的应用。关键词:危险气体报警器;单片机;传感器;A/D转换器目 录1 课程设计简介及设计说明1 1.1 设计课题任务1 1.2 功能要求说明1 1.3 设计课题总体方案及工作原理12 硬件系统设计2 2.1 硬件系统各模块功能简要介绍22.1.1 AT89S52简介22.1.2 电源电路22.1.3 显示模块32.1.4 振荡电路模块42.1.5 A/D 转换模块42.1.6 声光报警模块52.1.7 复位电路模块52.1.8 下载电路模块62.1.9 按键模块62.1.10 传感器模块6 2.2 硬件系统设计图72.2.1 危险气体报警器主板原理图72.2.2 电源电路原理图72.2.3 危险气体报警器实物图72.2.4 电源实物图7 2.3 元器件清单73 软件设计8 3.1 AT89S52单片机资源使用情况8 3.2 各模块功能介绍8 3.3 程序流程框图83.3.1 主程序流程图概述83.3.2 键盘扫描程序93.3.3 A/D转换与比较程序流程图10 3.4 程序清单104 设计结果及误差分析11 4.1 使用说明11 4.2 使用软件介绍11 4.3 实物测试11 4.4 误差分析及改进措施13 4.5 设计体会13结束语14参考文献15致谢16附录17附录A 危险气体报警器主板原理图17附录B 危险气体报警器电源原理图18附录C 危险气体报警器实物图19附录D 危险气体报警器电源实物图20附录E 元件清单21附录F 程序清单221 课程设计简介及设计说明1.1 设计课题任务设计一个基于单片机的危险气体报警器。1.2 功能要求说明危险气体报警器上电或按键复位后能自动显示符号“S.”,进入准备工作状态。具备对室内烟雾或可燃气体的传感检测功能,并能通过液晶屏显示出当前状态,有气体泄漏时可以发出警报声。用户可以通过按键来取消报警声等。对烟雾及防盗的检测反应速度不得超过5秒。1.3 设计课题总体方案及工作原理选用AT89S52单片机成为系统核心控制部件,采用12M晶体振荡器及微小电容形成振荡电路;MQ-2传感器作为传感部分,构成危险气体报警器的主体结构,联合复位电路和A/D转换电路完成危险气体报警器的各种指定功能。图1 危险气体报警器的硬件结构图危险气体报警器的工作原理是将报警器至于气体环境中,当传感器检测到环境中危险气体的浓度达到设定的值时,通过ADC0809转换器将模拟电压转换为数字信号,送入单片机中进行处理,然后用单片机控制发光二极管和蜂鸣器报警。并且利用按键来实现复位和人为取消报警功能,即设计出符合要求的危险气体报警器。2 硬件系统设计2.1 硬件系统各模块功能简要介绍2.1.1 AT89S52简介AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程Flash存储器。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。单片机引脚图如图2所示。图2 单片机AT89S52引脚图2.1.2 电源电路电源电路主要用于给危险气体报警器提供电源,让报警器正常工作,为了更方便的得到所需的电源电压,用专用电源变压器,得到电压为12V的交流电压。通过过整流、滤波、稳压来提供稳定的直流电。整流是用二极管的单向导电性将正负变化的交流电压变为单向脉动电压的电路。在交流电源的作用下,整流二极管周期性地导通和截止,使负载得到脉动直流电。滤波是尽可能减小脉动的直流电压中的交流成分,保留其直流成分,使输出电压纹波系数降低。经过计算,选择变压器变比为18:1,选择型号1N4001二极管进行整流作用。选择电容2200f,0.1f以及470f进行滤波作用,选用LM7805进行稳压作用,而电阻起限流作用,通过这些形成电源原理图。设计图纸见附录B电源电路原理图。通过下载口对系统供电的电路如图3所示图3 电源电路图2.1.3 显示模块显示器采用LCD1602液晶屏显示。LCD1602是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。液晶显示模块如图4所示。 图4 液晶显示电路图2.1.4 振荡电路模块振荡电路由反相器以及并联外接的石英晶体和电容构成,用于产生振荡脉冲。AT89S52芯片中的高增益反相放大器,其输入端为引脚XTAL1,输出端为引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡回路和两只电容器(电容和一般取33pF)。石英晶体为一感性元件,与电容构成振荡回路,为片内放大器提供正反馈和振荡所需的相移条件,从而构成一个稳定的自激振荡器。振荡电路模块如图5所示。图5 振荡电路模块2.1.5 A/D 转换模块ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。内部由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换,可实现8路模拟信号的分时采集,以及相应的地址通道锁存与译码电路,输出锁存器用于存放和输出转换得到的数字量。A/D转换模块如图6所示。图6 A/D转换电路模块2.1.6 声光报警模块报警模块主要是由单片机的P2.5口,P2.2和P2.0口输出一个电平的高低决定。如果P2.5口输出电平为高,则三极管9012不导通,蜂鸣器没有启动电源,不会响起,P2.2口输出为低电平,则绿灯亮,没有报警。反之,P2.5口如果输出为低电平,则三极管导通,蜂鸣器接通电源响起,P2.0口输出为低电平,红灯亮,进行报警。声光报警模块电路如图7所示。图7 声光报警模块电路2.1.7 复位电路模块复位电路用于产生复位信号,通过RST引脚送入单片机,进行复位操作。设计采用手动复位,手动复位是通过按键来实现的,按键电平复位通过使复位端经电阻与Vcc电源接通来完成。复位电路工作原理:当复位电路的VCC工作,C充电,在1K的电阻上产生电压,来让得单片机复位。几个毫秒之后,电容C充满电,电阻上电流变成0,电压同时也变成0,让单片机进入工作状态。电容的特性通交流隔直流,所以电容选择22f,电阻选择1k和200来构成复位电路。复位电路模块如图8所示。图8 复位的电路模块2.1.8 下载电路模块下载电路是单片机导入程序的通道,同时也可以为单片机提供电源。下载电路模块如图9所示。图9 下载电路模块2.1.9 按键模块键盘作为危险气体报警器的输入部分,需要通过按键来对系统进行复位以及人为取消报警。独立式键盘电路为共阴极电路,当按键为按下状态的时候,单片机扫描发现相对应端口有低电平的时候,就会判断按键为按下状态,然后通过消抖,做出相应的响应动作。作为独立的键盘,每个按钮都与单片机的不同端口相连,所以按键是彼此独立的,不会互相干扰。键盘电路模块如图10所示。图10 键盘电路模块2.1.10 传感器模块MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。 MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。传感器模块电路如图11所示。图11 传感器模块电路2.2 硬件系统设计图2.2.1 危险气体报警器主板原理图 主板电路原理图使用Altium Designer summer 09软件完成,具体电路图见附录A。2.2.2 电源电路原理图电源电路原理图使用Altium Designer sunmmer 09软件完成,具体电路图见附录B。2.2.3 危险气体报警器实物图危险气体报警器实物图见附录C。2.2.4 电源实物图电源实物图见附录D。2.3 元器件清单 元器件清单见附录E。3 软件设计3.1 AT89S52单片机资源使用情况危险气体报警器设计除了使用单片机工作所必须的硬件资源(如连接晶振的引脚XTAL1和XTAL2,复位引脚RESET)外,还用了P1.0P1.7连接ADC0809的D0D7,P0.0P0.7与LCD1602的DB0DB7的连接,以及P2.5口与蜂鸣器的连接。3.2 各模块功能介绍 (1)系统主程序:系统初始化,设定起始浓度。 (2)键盘扫描程序:判断按键状态。 (3)A/D转换与比较程序:判断检测浓度值是否大于起始浓度。3.3 程序流程框图3.3.1 主程序流程图概述先制定主程序流程图,然后可分为各个子模块分别实现其功能。通过将检测值与设定起始浓度值相比较,如果大于起始浓度,则通过蜂鸣器发出报警,如果小于起始浓度,则不报警。主程序流程图如图12所示。图12 主程序流程图3.3.2 键盘扫描程序键盘处理程序通过判断按键状态来确定按键功能,还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,从而使系统开始工作。键盘扫描程序流程图如图13所示。图13 键盘扫描程序流程图 3.3.3 A/D转换与比较程序流程图通过A/D转换与比较程序,实现了通过气敏传感器,把空气中危险体浓度转化为电信号,通过ADC0809送入单片机中并且经过数据处理,实现对空气中危险气体的检测,如果空气中检测到的危险气体浓度大于设置起始浓度则通过蜂鸣器报警。A/D转换与比较程序流程图如图14所示。图14 A/D转换与比较程序流程图3.4 程序清单根据流程图使用Keil软件编写C语言程序完成危险气体报警器的各项功能。程序清单见附录F。4 设计结果及误差分析4.1 使用说明通过设计和实物的调试,危险气体报警器可以顺利完成各项功能。上电或按键复位后能自动显示符号“S”,有气体泄漏时能发出报警声,并且能通过按键取消报警。4.2 使用软件介绍 用汇编语言或C语言要使用编译器,以便把写好的程序编译为机器码,才能把HEX可执行文件写入单片机内。KEIL uVISION是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,甚至ARM,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。4.3 实物测试在Keil软件中只能编写程序和检查所写程序有没有语法错误,而不能知道将程序导入到单片机中后实物能不能正常运行,这就需要后续利用实物来验证以及一步步调试,以达到课程设计要求的指标。按下复位键,系统进入初始阶段,显示“S”。初始状态图如图15所示。图15 系统初始状态松开复位键后,系统进入准备阶段,绿灯亮,设置初始浓度30。准备阶段状态图如图16所示。图16 系统准备状态系统检测到危险气体并且浓度高于初始值时开始报警,绿灯熄灭,红灯亮,蜂鸣器报警。系统报警状态图如图17所示。图17 系统报警状态图系统报警后人为取消报警,红灯熄灭,绿灯亮,蜂鸣器关闭。人为取消报警状态如图18所示。图18 人为取消报警状态图4.4 误差分析及改进措施 通过实物测试发现危险气体报警器有时候检测气体的速度较慢,不够及时。通过分析发现这可能主要与设计的硬件系统和软件系统有关联。软件系统:时钟电路定时不够准确,汇编语言执行时需要一定的机器周期,与设计时计算的时间存在一定的误差。硬件系统:传感器不够灵敏,以及元件参数不够设计时计算的那么精确,存在误差,所以检测气体时速度较慢。减小方法:通过分析发现以上两个引起误差的原因。软件系统的误差可以在设计汇编语言时更精确的计算机器周期和时钟电路的定时以缩小误差;硬件系统则可以在设计时准确计算所需元件参数,选择最合适的元器件,以减小误差。4.5 设计体会经过一段时间的努力危险气体报警器达到了课程设计的技术指标要求。在整个设计过程中收获颇丰,不仅激发了学习兴趣,培养了动手能力,同时也巩固了所学的课程知识,还锻炼了设计实物的思维与能力。在设计的过程中还通过不断的查找资料以及阅读相关书籍,增加相关的专业知识,为以后的工作打下了良好的基础。结束语危险气体报警器设计是基于AT89S52单片机的的设计和应用,通过对单片机的功能和工作原理的了解,设计出危险气体报警器。通过对AT89S52单片机的扩展,利用MQ-2气体传感器以及ADC0809转换电路对环境中待测气体的浓度进行检测,将模拟电压转换为数字信号,送入单片机AT89C51中进行处理。通过设置报警值,用单片机控制发光二极管蜂鸣器同时报警。危险气体报警器的设计能够有效的预防火灾的发生,同时降低人民生活和财产风险,有效的保障了人民的生活安全。参考文献1李广弟等. 单片机基础M.第3版. 北京:北京航空航天大学出版社, 2003.6.7688 2李全利. 单片机原理及应用(C51编程)M.北京:高等教育出版社, 2012.12.5762 3马忠梅. 单片机的C语言应用程序设计M.第四版.北京:航空航天大学出版 社,2003.6.58634李光飞. 单片机C程序设计指导M.北京:航空航天大学出版社, 2003.01.41495李光飞. 单片机课程设计实例指导M.北京:航空航天大学出版社, 2004.9.84916何立民. 单片机高级教程M. 北京:北京航空航天大学出版社,2000, 126131 7罗克露,徐洁. 微型机原理与应用M.第二版.北京:电子工业出版社,2004.10158郭天祥. 新概念51单片机C语言教程M.北京: 电子工业出版社.2009, 3423499康华光.电子技术模拟部分(第五版) M.北京:高等教育出.2006,206110网站致 谢整个设计过程中,我得到了老师的精心指导,老师严谨的工作作风以及对事业的热爱,对学生的关心,给我留下了深刻的印象,在今后的工作、学习中我要以老师为榜样,把认真的工作态度和严谨的工作作风带到工作中去。在此,请允许我向培养我的老师表示深深地感谢和敬意,感谢他对我细心的教导,每当我遇到问题时,老师总会对我耐心解答,给我的课程设计提出了很多宝贵的意见,让我受益非浅,学到了很多东西,万分的感谢所有老师。最后,我还要感谢我的同学,当我在设计中遇到困难时,他们也会和我一起解决,给我信心和鼓励,相信没有他们对我的全力支持,单凭我一个人,是很难完成这个艰巨任务的,谢谢他们。附 录附录A 危险气体报警器主板原理图附录B 危险气体报警器电源原理图附录C 危险气体报警器实物图附录D 危险气体报警器电源实物图附录E 元件清单表1 危险气体报警器元件序 号元器件名称规 格数 目1AT89S52单片机40P12晶振12MHz13发光二极管24单排插针40P35三极管901216蜂鸣器17小按键28下载口座子19六脚按键电源开关110电阻200111电阻470212电阻10K113电阻5.1K114电阻1K615电解电容22µf116瓷片电容33pf217电解电容0.1f218电解电容2200f119电解电容470f120排阻10k421排阻470122USB下载线无需安装驱动程序123数/模转换器ADC0809124气敏传感器MQ-2125变压器18:1126整流二极管1N4001427稳压管LM7805128LCD16021附录F 程序清单/*项目名称:危险气体报警器编程作者:侯军完成时间:2015年7月项目功能:危险气体报警器上电或按键复位后能自动显示符号“S.”,进入准备工作状态。具备对室内烟雾或可燃气体等的传感检测功能,并能通过液晶屏显示出当前状态,有气体泄漏时可以发出警报声。用户可以通过按键来取消报警声等。对烟雾及防盗的检测反应速度不得超过5秒。*/*程序头函数*/#include <reg52.h>/*显示函数*/#include <display.h>/*宏定义*/#define uint unsigned int #define uchar unsigned char#define Data_ADC0809 P1/*管脚声明*/sbit LED_R= P22;/红灯sbit LED_G= P20;/绿灯sbit FENG = P25;/蜂鸣器/*ADC0809*/sbit ST=P33;sbit EOC=P36;sbit OE=P32;/*按键*/sbit Key1=P26;/设置键bit bdata flag;/报警标志位uchar set; /设置状态/*函数声明*/extern uchar ADC0809();extern void Key();/*气体含量变量*/uchar temp=0;uchar WARNING=30;/报警值void init() /初始化函数TMOD=0x01; /工作方式 TL0=0xb0; TH0=0x3c; /赋初值(12MHz晶振的50ms) EA=1; /打开中断总开关ET0=1; /打开中断允许开关 TR0=1; /打开定时器开关 void Delay_ms(uint xms)uchar i;while(xms-)for(i=0;i<50;i+);void main() /主函数 Init11602();/初始化显示Delay_ms(6000);Init1602();/初始化显示init(); /初始化定时器while(1) /进入循环temp=ADC0809();/读取气体浓度值if(set>=0)/只有在非设置状态时,Display_1602(temp,WARNING);/才刷新显示实时浓度值if(temp<WARNING&&set=0) /非设置时当浓度值小于报警值时flag=0; /报警标志位置0,不报警else if(temp>WARNING&&set=0) /非设置时当浓度值大于报警值时flag=1; /报警标志位置1,报警Key(); /扫描按键/*ADC0809读取信息*/uchar ADC0809()uchar temp_=0x00;/*初始化高阻太*/OE=0;/*转化初始化*/ST=0;/*开始转换*/ST=1;ST=0;/*外部中断等待AD转换结束*/while(EOC=0)/*读取转换的AD值*/OE=1;temp_=Data_ADC0809;/将0809的数值读入单片机OE=0;return temp_; /返回读到的数据void Key() /按键函数if(Key1=0)/设置键按下时while(Key1=0);/检测按键是否释放FENG=0;/蜂鸣器响set+;/设置状态标志加flag=0;/停止报警if(set=1)write_com(0x38);/屏幕初始化write_com(0x80+0x40+13);/选中报警值的位置 write_com(0x06);/当读或写一个字符是指针后一位FENG=1;/蜂鸣器停止鸣响else if(set>=2)/再按一下设置键时,退出设置set=0;/设置状态清零FENG=1;/蜂鸣器停止响flag=1;/报警标志位置1void time1_int(void) interrupt 1 /定时器函数uchar count;TL0=0xb0; TH0=0x3c;/重新赋初值 count+;/计时变量加if(count=10)/定时器定时是50ms,此处计数10次,正好是500ms,用于报警时 灯亮和蜂鸣器响if(flag=0) /报警标志为0时LED_G=0; /绿灯亮LED_R=1; /红灯灭FENG=1; /蜂鸣器不响if(flag=1) /报警标志位为1时LED_G=1; /绿灯灭LED_R=0; /红灯亮FENG=0; /蜂鸣器响 if(count=20) /计数到20时,正好是1000ms,就是1s,这里就是让灯灭,蜂鸣器不响,从而做出闪烁的效果 count=0; /计到1s时,将count清零,准备重新计数if(flag=0)LED_G=1;LED_R=1;FENG=1;/全部关闭if(flag=1)LED_G=1;LED_R=1;FENG=1;

    注意事项

    本文(《单片机技术》课程设计危险气体报警器.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开