传感器课程设计-可燃气体泄漏报警器.doc_第1页
传感器课程设计-可燃气体泄漏报警器.doc_第2页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

可燃气体泄漏报警器 摘要随着社会的进步,现在大多数家庭都使用管道煤气(天然气),使我们的生活带来了很多方便。但是,管道煤气(天然气)一旦泄漏是非常危险的,当空气中的天然气到达了一定的浓度,只要遇到了明火,极易发生火灾,甚至发生爆炸。由于天然气的主要成分是甲烷,它是无色无味的气体,不易被察觉。因此,从安全、环保及经济上考虑,研制一种检测可燃性气体自动报警和自动打开排器装置的一种控制器是非常必要的。本设计利用gs系列传感器,将置于测试环境中待测气体的浓度转换为模拟电压,再通过adc0809将模拟电压转换为数字信号,送入单片机at89c51中进行处理。为了用户对气体浓度进行实时了解,将at89c51外接3片74ls164作为3位led显示器的静态显示接口,把单片机的rxd作为数据输出线,txd作为移位时钟脉冲。74ls164为ttl单向8位移位寄存器,可实现串行输入,并行输出,通过8位移位寄存器74ls164可进行静态显示。通过设置报警值,用单片机控制发光二极管和音乐ic同时报警。利用单片机控制技术,制作了程控一氧化碳报警器。该仪器对一氧化碳(co)进行实时监控,当一氧化碳的浓度超过允许值时,控制电路进行报警,并通过外接排风扇与电磁阀对其进行程控,以防事故的发生。另外为了防止程序陷入死循环,还利用x25045芯片组成的看门狗电路在程序陷入死循环时让单片机复位,而不用整个系统断电,从而保护了硬件电路。由于所设计的数字气体报警器采用单片机at89c51,其价格便宜,性能稳定,易于产品化。以gs气体传感器和at89c51 单片机为核心, 设计气体泄漏报警器,该报警器设计方法简单易行,使用效果良好,下面给出了气体泄漏报警器的总体设计原理,关键的硬件电路和所有的软件程序设计。关键词:气体泄漏报警器;可燃性气体,at89c51单片机,gs气体传感器目 录一、设计目的1二、设计任务与要求1 2.1设计任务1 2.1设计要求2三、设计步骤及原理分析2 3.1设计方法2 3.2设计原理及分析3 3.3设计步骤10四、课程设计小结与体会 18五、参考文献19一、设计目的本文所设计的数字气体报警器采用单片机at89c51,其价格便宜,易于产品化。本设计能将置于测试环境中的气体传感器输出的模拟电压通过a/d转换器送入单片机at89c51中进行处理并通过数码管显示,通过设置报警值,当检测到的浓度达到或者超过设定值时,用单片机控制发光二极管发光报警,同时打开喇叭发出声音报警,来达到报警的目的,并通过外接排风扇与电磁阀对其进行程控,以防事故的发生。而当系统出现故障时,黄色led亮启,便于用户及时对报警器进行维修。系统以mqk气体传感器和at89c51 单片机为核心, 设计气体泄漏报警器。实现:1准确测量周围环境中的可燃性气体、有毒有害气体的泄漏;2实现系统各个模块的功能控制;3实现单片机编程语言系统的控制及传感器电路的控制。4研究单片机各接口的作用及功能;5了解mqk气体传感器的具体功能;6实现对基本报警电路的控制。二、设计任务与要求2.1设计任务设计是利用单片机控制技术,制作了程控一氧化碳报警器。该仪器对一氧化碳进行实时监控,当一氧化碳的浓度超过允许值时,单片机控制电路进行报警,并通过外接排风扇进行程控,以防事故发生。基于at89c51性价比高的优势,主要运用了at89c51单片机进行控制。而对与报警器而言至关重要的部分是传感器,由于gs系列气敏元件采用半导体敏感材料,其灵敏度、选择性、稳定性、抗干扰性、响应时间及寿命等主要性能,均达到国内先进水平。用该系列元件组装成易燃易爆和有毒气体泄漏报警器及检测装置,可广泛运用于矿山、油田、化工、国防、医药及家庭,所以在设计中采用的是gs系列传感器。在模数转换这块,利用adc0809实现模数转换,adc0809是8位逐次渐进型的a/d转换器,它采用coms工艺20个引脚双列直插式封装,它有三态琐存器,直接驱动数据总线,与微机相连时不需要附加接口电路。为了方便用户了解浓度信息,好提前准备,还采用了显示环节。显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的i/o接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中cpu的开销小。可以提供单独锁存的i/o接口电路很多,这里运用了常用的74ls164 8位移位寄存器串并转换电路。总的来说,设计主要利用了以上的检测模块,a/d转换模块,显示模块,事故处理模块,控制模块五大模块,组成了可燃气体探测报警器。2.2设计要求(1)系统要求设置正常工作状态,除正常工作状态外,电磁阀要求处于关闭状态,以切断煤气通道,防止煤气外泄。(2)在非正常工作状态下,当室内一氧化碳的浓度达到100ppm时系统应启动音乐报警,若2min报警无效,系统应启动排风扇进行通风排气。(3)系统进入正常工作状态后,先启动排风扇进行通风,然后启动电磁阀供给煤气。(4)系统进入正常工作状态,自45min后,每隔10min音乐响起一次,用来提醒用户在工作完毕后,停止供气。(5)在正常工作状态下,当系统检测到一氧化碳的浓度达到300ppm时,应关闭电磁阀,切断煤气通道以防止意外事故的发生。三、设计步骤及原理分析3.1设计方法设计是利用单片机控制技术,制作了程控一氧化碳报警器。该仪器对一氧化碳进行实时监控,当一氧化碳的浓度超过允许值时,单片机控制电路进行报警,并通过外接排风扇进行程控,以防事故发生。基于at89c51性价比高的优势,主要运用了at89c51单片机进行控制。而对与报警器而言至关重要的部分是传感器,由于gs系列气敏元件采用半导体敏感材料,其灵敏度、选择性、稳定性、抗干扰性、响应时间及寿命等主要性能,均达到国内先进水平.用该系列元件组装成易燃易爆和有毒气体泄漏报警器及检测装置,可广泛运用于矿山、油田、化工、国防、医药及家庭,所以在设计中采用的是gs系列传感器。在模数转换这块,利用adc0809实现模数转换,adc0809是8位逐次渐进型的a/d转换器,它采用coms工艺20个引脚双列直插式封装,它有三态琐存器,直接驱动数据总线,与微机相连时不需要附加接口电路。为了方便用户了解浓度信息,好提前准备,还采用了显示环节。显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的i/o接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中cpu的开销小。可以提供单独锁存的i/o接口电路很多,这里运用了常用的74ls164 8位移位寄存器串并转换电路。总的来说,设计主要利用了以上的检测模块,a/d转换模块,显示模块,事故处理模块,控制模块五大模块,组成了可燃气体探测报警器。3.2设计原理及分析1. 系统的组成整个报警器由三个部分组成:浓度检测及显示模块。主控模块和报警及事故处理模块。系统的组成框图如图3-4所示。故障处理报警控制浓度显示at89c51气体浓度检测工作状态设置图3-4 系统组成框图2. 系统各模块的功能(1)气体浓度检测模块系统采用三点单独检测的方法,可用来巡回检测三个不同的房间;也可用来巡回检测同一个房间的不同方位.检测器件选用高温一氧化碳气体传感器(gs-a1),该传感器对一氧化碳具有很高的灵敏度,稳定性和抗湿性良好,加活性碳罩后,可防止乙醇等有机气体的干扰.检测结果经高精度运放器op07放大后,送入adc0809模p数转换芯片进行模)数转换,单个传感器检测电路图如图5。 (2)模数转换模块在本设计中,另一重要模块就是a/d模数转换模块。因为模拟信号不能直接送往单片机进行处理,必须进行a/d转换。模数转换的过程有四个阶段,即:采样,保持,量化和编码。本设计利用adc0809实现模数转换。adc0809是8位逐次渐进型的a/d转换器,它采用coms工艺20个引脚双列直插式封装,它有三态琐存器,直接驱动数据总线,与微机相连时不需要附加接口电路。adc0809的主要性能如下:1分辨率为8位。2最大转换误差为1lsb。3转换时间为100us。4逻辑点平与coms和ttl相兼容。5+5v单电源供电。6可对0到+5v的输入模拟信号进行转换。图3-5 a/d转换模块引脚图程序中预采用模数转换电路由adc0809芯片组成,三路检测结果从in0、in1、in2输入,转换顺序由adda、addb、addc控制,转换结果送单片机p0口供单片机进行数据处理。3.显示电路由p0口输入的数据,在单片机内部进行标度变换后,从单片机的串行口输出进行显示.系统的工作状态和气体浓度,采用led数码管显示,每30秒刷新一次.为了不再扩展ipo口,系统采用串行口的移位功能扩展为4位静态显示电路.第一位为系统工作状态显示,后三位为一氧化碳气体浓度显示.当第一位为“00”时,表示系统工作在三点巡回检测同一个房间状态;为“8”时表示系统工作在三点巡回检测同一个房间正常工作状态;为“1”、“2”、“3”时表示系统工作在单独检测状态,此时后三位显示的数据分别为第1号、第2号、第3号传感器所检测到的一氧化碳气体浓度。浓度显示单位为5ppm.74ls164为串行输入,并行输出寄存器,当p2.0=1且at89c51的txd端有输出时,74ls164接收串行数据,更新显示;当p2.0=0时,显示的内容不变。4.主控模块系统采用单片机进行控制,选用at89c51单片机.该单片机为atmel公司的产品,其指令系统完全与8031/8051兼容,内带4k字节的内存和程序保护系统,便于程序的调试修改和保密,各管脚的功能如下:1)ale端的功能:ale端与adc0809的clock相连,为adc0809输入时钟脉冲.2)p0口的功能:p0口与adc0809的数据输出口相连,接收apd转换结果.3)p1口的功能:p1.0端接工作状态控制开关,开关闭合时,系统进入正常工作状态;p1.1端外接的开关为三点巡回测量同一个房间控制开关,当开关闭合时有效;p1.2p1.4端接adc0809的adda、addb、addc三端,控制adc0809的八路模拟输入转换.4)p2口的功能:p2.1端与wr端通过外接的与门求反后与adc0809的start和ale相连,用以启动apd转换,且将8路地址锁存;p2.1端与rd端通过外接的与门求反后与adc0809的oe端相连,用以允许将apd转换结果输出,让单片机读取转换结果;p2.2端用作系统音乐报警信号控制端,高电平有效;p2.3端用作排风扇启动信号控制端,高电平有效;p2.4端用作电磁阀启动信号控制端,高电平有效。5)p3口的功能:p3.0、p3.1端和p2.0端用于控制系统的显示输出。5.报警与数据处理模块当气体浓度超过允许值时,该模块动作,发出警报信号并根据不同情况进行事故处理.p2.2端为音乐控制端,p2.3端为电磁阀启动控制端,p2.4为排风扇控制端,均为高电平有效.为防止市电对系统的干扰,p2.3和p2.4端都经过光电耦合管对电磁阀和排风扇进行控制.系统各模块之间的接线图如图6所示.图5 单个传感器电路图6系统主要器件的介绍(1)gs传感器介绍设计中所用到的气体传感器是gs系列传感器,下面具体介绍一下gs系列气体传感器:gs系列气敏元件采用半导体敏感材料,工艺独特为国内首创,其灵敏度、选择性、稳定性、抗干扰性、响应时间及寿命等主要性能,均达到国内先进水平.用该系列元件组装成易燃易爆和有毒气体泄漏报警器及检测装置,可广泛运用于矿山、油田、化工、国防、医药及家庭.gs系列传感器主要有以下特点:1)灵敏度高、功耗低,输出信号强.2)选择性好、对被检测的气体非常敏感,而对干扰气体则灵敏度很低3)稳定性、可靠性强4)具有抗高温、抗高湿性能5)元件不含任何贵金属催化剂,具有抗中毒及抗饱和性能.但由于气体传感器是使用半导体材料来制作,不可避免的是有温度漂移问题,如何处理好气体传感器温度补偿问题是报警器设计的关键(图3-1、图 3-2).以前的一般做法是把报警器的报警阀值电压作补偿,这样的电路会简单一些,但温度补偿的效果不太理想,主要是在低温环境里,气体传感器的表面温度降低导致气体传感器的性能变差,解决的方法是在低温环境里提高气体传感器的加热功率,使气体传感器的表面温度维持相对恒定,达到使气体传感器稳定工作的目的。图3-1 传感器输出特性曲线图图3-2 传感器加温度补偿所需的加热电压曲线气体传感器加热电源的原理见图 3-3,利用 pic 单片机的脉冲宽度调制输出功能(简称 pwm), 及 a/d 转换输入功能实现电源电压的稳定和自我调整。如图所示,是降压式开关电源(buck 式)的基本电路。其中,vin 为输入电压,vout 为输出电压,q1、q2 为开关三极管,r1、r2、r3 为电阻,l 为电感,d 为肖特基二极管;c 为电容,mqk 为气体传感器,通常有:,;。其中,n 为脉宽占空比,ton 为开关三极管导通时间,toff 为开关三极管关闭时间,rx 为开关电源的负载电阻,vp 为输出纹波电压.实际使用开关速度为 20khz,输出的电压为 2.250.01v,输出电流为 120ma,vp0.1v.该电路的工作原理是:预先设定目标工作电压值,输出 at89c51 单片机的 pwm,启动开关电源工作,通过a/d 转换电路将电源电压值读入单片机,如果电压值偏离给定值,则调整 pwm 输出,这样形成一个电压调整的闭合环路,直到电压值维持恒定,而环境温度将决定电压给定值的大小,达到随外界温度的改变而改变加热功率的目的,以补偿气体传感器的温度变化,同时使用开关电源减少了线性稳压电源的压降损耗.该开关电源电路的电压稳定精度取决于单片机 a/d 和 pwm 的精度,该 at89c51 单片机基本能够满足气体泄漏报警器的性能需求。图3-3 传感器加热电源原理图 (2)7ls164移位寄存器介绍74ls164 8 位移位寄存器(串行输入,并行输出) 简要说明 164 为 8 位移位寄存器,其主要电特性的典型值如下:当清除端(clear)为低电平时,输出端(qaqh)均为低电平。 串行数据输入端(a,b)可控制数据。当 a、b 任意一个为低电平,则禁 止新数据输入,在时钟端(clock)脉冲上升沿作用下 q0 为低电平。当 a、b 有一个为高电平,则另一个就允许输入数据,并在 clock 上升沿作用下决定 q0 的状态。 引出端符号 clock 时钟输入端 clear 同步清除输入端(低电平有效) a,b 串行数据输入端 qaqh 输出端逻辑及封装图双列直插封装极限值 电源电压7v 输入电压 5.5v 工作环境温度 54164 -070 储存温度 -65150真值表h高电平 l低电平 x任意电平 低到高电平跳变 qa0,qb0,qh0 规定的稳态条件建立前的电平 qan,qgn 时钟最近的前的电平时序图下面再介绍一下74ls164驱动数码管:在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的i/o接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中cpu的开销小。可以提供单独锁存的i/o接口电路很多,这里以常用的串并转换电路74ls164为例,介绍一种常用静态显示电路,以使大家对静态显示有一定的了解。 mcs-51单片机串行口方式0为移位寄存器方式,外接6片74ls164作为6位led显示器的静态显示接口,把8031的rxd作为数据输出线,txd作为移位时钟脉冲。74ls164为ttl单向8位移位寄存器,可实现串行输入,并行输出。其中a、b(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,共一个输入信号时可并接。t(第8脚)为时钟输入端,可连接到串行口的txd端。每一个时钟信号的上升沿加到t端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74ls164中。r(第9脚)为复位端,当r=0时,移位寄存器各位复0,只有当r=1时,时钟脉冲才起作用。q1q8(第3-6和10-13引脚)并行输出端分别接led显示器的hga各段对应的引脚上。在给出了8个脉冲后,最先进入74ls164的第一个数据到达了最高位,然后再来一个脉冲会有什么发生呢?再来一个脉冲,第一个脉冲就会从最高位移出,搞清了这一点,下面让我们来看电路,6片7ls164首尾相串,而时钟端则接在一起,这样,当输入8个脉冲时,从单片机rxd端输出的数据就进入到了第一片74ls164中了,而当第二个8个脉冲到来后,这个数据就进入了第二片74ls164,而新的数据则进入了第一片74ls164,这样,当第六个8个脉冲完成后,首次送出的数据被送到了最左面的164中,其他数据依次出现在第一、二、三、四、五片74ls164中。3.3设计步骤本设计的主要功能实现在于程序的编写,流程图如图4-1: 图4-1 软件流程图如图所示,整个报警器程序上分成中断取值转换、调零、报警、显示四大模块。1.主程序整个程序一共使用了两个中断,一个外部中断即int0中断,一个定时/计数器中断即it0中断.这两个中断各有其作用,int0中断是用来判断a/d转换器adc0809对模拟信号的转换是否完成,当a/d转换结束后,adc0809发出结束eoc(高电平)信号,该信号可供单片机查询,也可反相后作为向单片机发出中断信号,而本设计正是用的这个方法,使得程序进入中断取值程序.而程序中所用到的it0中断,是为产生一个周期为2s的方波而设计的,其作用是为看门狗产生喂狗子信号.具体程序如下: org 00h jmp start ;主程序入口地址 org 03h jmp into ;外中断into入口 org 0bh jmp itop ; 定时器0中断入口 org 0100hstart: mov ie,#10000001b ;int0中断使能 mov ip,#00000001b ;int0中断优先 mov tcon,#00000000b ;设置int0为电平触发 mov scon,#00000000b ;串行口发送,接收标志位请0 mov sp,#60h ;设堆栈指针 mov tmod,#01h ;设置t0为方式1 call pt0m0here: ajmp here ;自身跳转pt0m0: mov tl0,#0ch ;t0中断服务程序,t0重新置初值 mov th0,#0feh setb tr0 ;启动t0 setb et0 ;允许t0中断 setb ea ;cpu开中断 retitop: mov tl0,#0ch ;t0中断服务程序,t0置初值 mov th0,0feh cpl p1.0 ;p1.0状态取反 reti acall led ;调用led自检子程序 mov 33h,#00h ;设置中断完成标志为0 mov dptr,#0feffh ;adc0809的端口地址 movx dptr,a ;使bus为高阻抗,令adc0809开始转化wait:mov a,33h ;等待a/d转换完成信号 jnz intok jmp wait ;未完成则跳回等待intok: mov a,32h ;将最新的浓度值存入累加器中,(若a/d未工作,则a=0) jnz l1 mov a,30h jmp l2l1: mov 30h,31h mov a,31h ;将新浓度载入累加器l2: call bcd ;调用bcd码调整程序 call disp ;显示当前浓度 call adzero ;调用零点调整子程序 call alarm ;调用判断报警程序 call bcd call disp ;调用显示子程序 clr a ;清除累加器值 jmp start ;返回在主程序通过对33h中数值的判断断定a/d是否转换完成,当33h中为1时,转换完成,程序调用调零、报警、显示模块对输入数据进行处理。2.调零子程序由于未知问题,可能造成送入单片机中显示的模拟电压量与真实电压存在区别,这种误差可以通过在中断处理中对a/d转换的数值加上一个调整值来解决。这样,我们就能根据实际情况来对报警器输出的数值进行控制,使其记数更加精确,使用更方便。我们可以利用对端口的电平高低来判断是否需要进行调零处理,故可将按键开关接于端口p2.2.若开关按下,则说明有调零需要,于是进入调零处理程序;若开关没有按下,则说明没有调零需要,系统进入下一步.通过设置一个按键,既可保证程序顺利进行,又方便用户使用.具体程序如下:adzero:call delayjb p2.2,jmp1 ;判断调零按钮是否按下,没按则跳jmp1.jmp1:ret通过对p2.2位的判断来分辨是否有调零请求,若有则跳入调零模式,调零模式中程序如下:loop1:call delay jnb p2.2,$ ;消除抖动延时 mov a,40h ;将调零预设值40h送入 clr c ;清除进位标志 subb a,#01h ;调零值减1 jnc loop2 ;未借位则跳loop2 mov a,#05h ;有借位则重设调零值为5loop2:mov 40h,a ;将调零值送回40h保存 mov a,r3 ;将当前浓度值送入a jz xend dec a ;当前浓度值减1(响应调整变化)xend1 :mov 30h,a ;送回30h保存 mov 31h,a ;送回31h保存 call bcd ;调用bcd码调整 call disp ;调用显示子程序jmp loopxend: mov a,#63h jmp xend1进入调零模式后,若有按键则,led数码管示数响应按键变化。若3秒无任何按键,则退出调零模式返回主程序。3.显示子程序因为通过a/d转换进入单片机8051的浓度值以十六进制存在,为了让led显示需要转换为bcd码,其bcd码转换程序如下:bcd:mov 55h,#00h ;存放bcd转换中的百位数mov 56h,#00h ;存放bcd转换中的十位数clr c ;清除进位标志为下面的subb准备 mov r2,#00h ;清除r2chan:subb a,#64h ;减100jc chan1 ;不能减,转inc r1 ;百位值jmp chan ;循环判断百位chan1: add a,#64h ;还原百位数 clr c ;清除进位标志为下面的subb准备chan2: subb a,#0ah ;减10jc chan3 ;不够减,跳inc r2 ;够减十位加1jmp chan2 ;重复减10chan3: add a,#0ah ;还原十位数mov 60h,r2 ;把十位数放60h中mov 61h,a ;把个位数放61h中ret这样把转换成的bcd码,个位存于61h中,十位存入60h中,再编写显示模块如下:disp: mov r7,#03h mov r0,#60hled1: mov a,r0 mov dptr,#tableled2: movc a,a+dptr mov sbuf,a jnb ti,$ clr ti inc r0 djnz r7,led1 ret将数值送入到led显示74ls164驱动数码管的过程:在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的i/o接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中cpu的开销小。可以提供单独锁存的i/o接口电路很多,这里以常用的串并转换电路74ls164为例,介绍一种常用静态显示电路,以使大家对静态显示有一定的了解。 mcs-51单片机串行口方式0为移位寄存器方式,外接3片74ls164作为3位led显示器的静态显示接口,把8031的rxd作为数据输出线,txd作为移位时钟脉冲。74ls164为ttl单向8位移位寄存器,可实现串行输入,并行输出。其中a、b(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,共一个输入信号时可并接。t(第8脚)为时钟输入端,可连接到串行口的txd端。每一个时钟信号的上升沿加到t端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74ls164中。r(第9脚)为复位端,当r=0时,移位寄存器各位复0,只有当r=1时,时钟脉冲才起作用。q1q8(第3-6和10-13引脚)并行输出端分别接led显示器的hga各段对应的引脚上。在给出了8个脉冲后,最先进入74ls164的第一个数据到达了最高位,然后再来一个脉冲会有什么发生呢?再来一个脉冲,第一个脉冲就会从最高位移出,搞清了这一点,下面让我们来看电路,3片7ls164首尾相串,而时钟端则接在一起,这样,当输入8个脉冲时,从单片机rxd端输出的数据就进入到了第一片74ls164中了,而当第二个8个脉冲到来后,这个数据就进入了第二片74ls164,而新的数据则进入了第一片74ls164,这样,当第六个8个脉冲完成后,首次送出的数据被送到了最左面的164中,其他数据依次出现在第一、二、三片74ls164中。由于本设计采用的是机械按键,与地线想连,按键按下,输入为低电平,释放按键则输入为高电平。实际上,机械式按键的落片存在着轻微的弹跳现象其时间由操作员按键的动作所确定,为了确保cpu对按键的一次闭合仅做一次处理,必须去除抖动,一般通过调用子程序延时来解决,在键的稳定闭合或释放时才读出键的状态,具体程序如下:delay: movr 5,#60 设定30毫秒d1: mov r6,#248 ;设定0.5毫秒djnz r6,$ djnz r5,d1 ret因为石英晶体为12mhz,一个机器周期为1微秒,这样如上程序可达到延时30毫秒的目的。4.报警子程序本设计采用了声光报警,当探测器探测的浓度超过报警设定值时就会同时产生音乐报警和灯光报警,此时红灯亮启,喇叭发出音乐,而正常时,喇叭关闭,红灯关闭,而显示正常的绿色led亮启,本设计为了安全起见,还设置了事故处理装置,即出现危险使,探测器除了报警外,还会使排气扇的阀门打开,对室内进行排气,以免产生气体爆炸或是中毒.具体程序如下alarm: mov a,30h ;将当前浓度值送如累加器 clr c ;清除进位标志 subb a,50h ;与预警值进行判断 jnc good1 ;若无借位,则当前浓度值高于或者等于预警值,跳good1报警 setb p1.6 ;关闭声光报警 setb p1.7 clr p2.3 ;关闭排气阀门 setb p1.5 ;关闭黄色led clr p1.4 ;打开绿色led(显示正常) ret good1: clr p1.6 ;打开声光报警(危险报警) clr p1.7 clr p2.3 ;打开排气阀门 setb p1.5 ;关闭黄色led setb p1.4 ;关闭绿色led(显示不正常? ret5.中断取值子程序从硬件电路图可以看出,a/d0809的intr端通过反相器与单片机的外部中断int0相连,由a/d0809的管脚功能可知,当a/d开始转换送入的模拟电压时,intr端为低电平,转换完成后,intr端变成高电平,通过反相器变成低电平使单片机89c51产生外部中断,进入中断处理程序:;* * * * * * * * * * * * * * * * *into: push acc ;将累加器值压入堆栈保存 push psw ;将psw值压入堆栈保存 movx a,dptr ;将a/d转换好的值送入累加器 mov 32h,a ;将a/d读得的值存入32h保存 clr c subb a,51h ;判断获得的电压是否小于1v(50) jnc ok1 mov 32h,#00h ;当前a/d转换的电压小于1v,则a/d转换得的示数为00 jmp emp1 ok1: mov a,32h call adjust ;调用adjust将其调整为浓度对应的16进制 call addd ;调用addd将其与调零预设值相加,得到调整后的16进制 mov 31h,a ;将调整后的值送入31h保存 emp1: mov ie,#10000000b ;关闭int0中断使能,关闭中断 pop psw ;至堆栈取回psw值 pop acc ;至堆栈取回acc值 mov 33h,#01h ;中断完成,设置完成标记33h为1 reti;* * * * * * * * * * *

温馨提示

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

评论

0/150

提交评论