版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、家用安全保护装置的研究与设计设计总说明伴随着社会发展、科技进步,人们生活水平逐步提高。大量现代家用电器和厨房设施的使用,家庭中存在的安全隐患也越来越多,传统的安全防范措施已无法适应现代化社会的需求,于是各种新型智能报警系统应运而生 。本文研究了基于89C51的家用安全装置,对家庭日常生活中发生的烟雾及燃气进行了监测。利用89C51高性能16位单片机设计主控核心,以门磁开关,燃气烟雾传感器,以LED和蜂鸣器为声光信号警示,对传统的安防装置进行了改进,希望改善我们日常生活安防不足的情况。设计先通过Protues软件进行仿真,再通过硬件来实现以上功能。关键词:气体传感器,单片机,烟雾,燃气,报警目录
2、1 绪论1.1 设计说明书研究目的和意义12智能家居的国内外现状1.3 本设计主要任务2 家用安全保护装置总体设计2.1 设计要求 烟雾、燃气泄漏检测的功能 系统设计框图烟雾、燃气泄漏检测的各个功能模块2.2 设计原理 气体传感器介绍 气体传感器的选定3 硬件设计3.1AT89C51单片机介绍3.1.1 AT89C51简介主要性能参数T89C51各引脚说明3.2 ADC0808转换器介绍转换器ADC0808构成转换器ADC0808工作原理3.3 报警电路声报警电路 光报警电路3.4 LED数码管显示及按键控制电路4 软件设计4.1 主程序4.2A/D转换程序4.3 外部中断1服务程序4.4 软
3、件调试与仿真程序调试步骤调试中的问题及解决方法4.4.3运行结果分析5 硬件电路的搭建及调试5.1 硬件电路主要元器件5.2 搭建硬件面包板注意事项5.3 硬件调试1.绪论 1.1 设计说明书研究目的和意义可燃性气体通常指城市煤气、石油液化气、汽油蒸汽、酒精蒸汽、天然气以及煤矿瓦斯等1。这些气体主要含有烷类、烃类、烯类、醇类、苯类以及一氧化碳和氢气等成分,易燃、易爆、贮存和使用这些气体的过程中,如违反操作规程和设备密封不好,都有可能发生可燃气体泄漏现象,进而酿成火灾或爆炸事故,给国家和人民的生命财产造成损失。可燃性气体检测报警装置是能够检测环境中的可燃性气体浓度并具有报警功能的仪器。该报警装置
4、是石油化学工业、有可燃性气体泄漏可能的生产工厂及家庭防火防爆必备的仪器。可燃性气体报警器属于中华人民共和国强制检定的工作计量器具目录中第46项,它归类于物理化学计量器具。建筑设计防火规范(GBJ16-87)第条明确规定:“散发可燃气体、可燃蒸汽的甲类厂房和场所,应设置可燃性气体浓度检测报警装置”。2003年12月,国家执行新的可燃性气体探测器标准(GB15322-2003)可燃气体探测器,2004年10月国家颁布可燃气体检测报警器规程JJG693-2004,研究新型、性能稳定、准确监测可燃性气体,并合乎国家相关规定的报警器具有极其重要得意义。目前我国已有许多城市铺设了煤气管道,使用人口约达二亿
5、人,煤气发生基地及中转站也达几千家。如果这些家用燃气和煤气基地及中转站的报警率按10%计算,可燃性气体检测报警器的需求量就达2000万台以上。随着全社会对防火防爆及人身安全的重视程度的提高,这个数字会继续增长。近十年来,农村的沼气使用也得到了极大的发展。到2006年底,全国沼气池数量已达近1300万座,这就为检测沼气(主要成分是甲烷)浓度的仪器提供了市场。可见,可燃性气体报警器具有十分广阔的市场前景。12智能家居的国内外现状自1984年世界上第一幢智能建筑在美国出现后,“智能家居”逐步走入人们的视野。美国、加拿大、欧洲、澳大利亚和东南亚等经济比较发达的国家先后提出了各种智能家居方案。并在美国、
6、德国、新加坡、日本等国得到应用5。我国的智能家居始于20世纪90年代末。1999年,建设部勘察设计司、建设部住宅产业化办公室联合实施全国住宅小区智能化术示范工程,该示范工程的启动,标志着我国智能化住宅小区的建设进入了新的发展阶段5。智能家居进人中国发展已有近十年的时间,随着人们从陌生到熟悉,从误解到理解,智能家居的发展道路可谓非常坎坷。它经过了早期的概念普及期到现在开始进入快速的发展期。目前,国内智能家居行业结构较为复杂,主流智能家居厂家主要由对讲安防类、传统家电类和网络通信类厂家发展而来。也有专业从事智能家居生产的厂家。各类厂家结合自家特色推出的智能家居产品在功能上各有侧重点。专业智能家居生
7、产厂家对控制功能单一的智能家居产品进行功能组合,把发展的主要目标放在智能控制系统的研发上。对传统家电类企业在其家电产品中置人通信接口,使其成为网络家电,此类智能家居产品的推广受到家电品牌选择的限制。网络通信类厂家侧重在数码产品和信息家电产品中植入某些智能家居控制功能。智能家居的出现对传统的安防装置进行了改进,改善了我们日常生活安防不足的情况。1.3 本设计主要任务本文主要是基于89C51单片机的家用安全装置,对家庭日常生活中发生的烟雾及燃气进行了监测。利用89C51高性能16位单片机设计主控核心,以门磁开关,燃起烟雾传感器为监测器,以LED和蜂鸣器为声光信号警示,以达到监测的目的,避免不必要的
8、事故发生。2 家用安全保护装置总体设计2.1 设计要求 烟雾、燃气泄漏检测的功能在本设计中,烟雾及其燃气泄露测试装置的主要功能就是快速准确的检测被测气体中有害气体的含量(主要是CO气体和甲烷气体),通过LED显示屏将CO等气体浓度显示出来,当气体浓度达到一定门限值时发出声光报警。为了实现以上功能:系统应该具备气体传感器、数据采集、A/D转换电路、单片机、LED数码显示、声光报警单元。 系统设计框图传感器时钟电路AT89C51复位电路声光报警驱动电路LED显示A/D转换图2-1 系统框图系统工作流程为:由装在室内的CO传感器和QM-N5传感器获得被测量对象(室内CO甲烷浓度)原始信号,经过温度补
9、偿和取样放大得到矫正后的可匹配信号,进入A/D转换,得到被测对象的数字量信号,再由单片机进行数据处理,得到最终的室内环境CO及甲烷浓度值(本次设计中我利用可变电阻模拟烟雾燃气传感器),将此数据通过数码管显示并保存,同时根据系统设定的限值参数判断环境浓度是否超标,如果超标立即启动预警信号进行声光报警提示,提示室内人员打开门窗、关闭气源并迅速撤离事故现场。CO具体技术指标如下:应用范围:工业生产和人民生活中的CO检测;检测对象:CO及他们的混合气体;检测范围:CO:01000ppm;检测精度:CO优于20ppm;报警浓度:100ppm300ppm响应时间:30ms;电池电压:+12V;工作温度范围
10、:-20+70;工作湿度范围:1095%RH。QM-N5传感器适用范围:用于检测CH4、C4H10、H2等技术指标:加热电压(Vh)AC或DC 5±0.2V 响应时间(trec) 10S回路电压(Vc)最大DC 24V恢复时间(trec) 30S负载电阴(Rl)2K元件功耗0.7W检测范围5010000ppm灵敏度(S=Ra/Rdg)4(在1000ppmC4H10中)烟雾、燃气泄漏检测的各个功能模块在本设计中,煤气泄露测试装置的主要功能就是快速准确的检测被测气体中有害气体的含量(主要是CO甲烷气体),通过LED显示屏将CO甲烷气体浓度显示出来,当气体浓度达到一定门限值时发出声光报警,
11、在我的设计中我采用可变电阻模拟了传感器,在检测过程中通过检测可变电阻两端的电压来实现,为了实现以上功能:系统应该具备气体传感器、数据采集、A/D转换电路、单片机、LED数码显示、声光报警单元。2.2 设计原理 气体传感器介绍1. 气体传感器是气体与气味检测的关键元件。根据其气敏特性,气体传感器可以分为六大类:(1) 半导体气体传感器。(2) 固体电解质气体传感器。(3) 接触感染式气体传感器。(4) 电化学式气体传感器。(5) 光学式气体传感器。(6) 高分子气体传感器。2. 气体传感器应满足的基本条件一个气体传感器可以是单功能的,也可以是多功能的;可以是单一的实体,也可以是由多个不同功能传感
12、器组成的阵列。但是,任何一个完整的气体传感器都必须具备以下条件:(1) 能选择性地检测某种单一气体,而对共存的其它气体不响应或低响应。(2) 对被测气体具有较高的灵敏度,能有效地检测允许范围内的气体浓度。(3) 对检测信号响应速度快,重复性好。(4) 长期工作稳定性好。(5) 使用寿命长。(6) 制造成本低,使用与维护方便。气体传感器的选定气体传感器是本系统检测的起点也是系统的核心和重点,选择合适的传感器成为决定系统成功的关键。CO气体传感器和QM-N5传感器属于气敏传感器,通过A/D转换电路将模拟量转换成数字量后送到单片机,进而由单片机完成数据处理、浓度处理及报警控制等工作。传感器作为煤气泄
13、露测试装置报警器的信号采集部分,是仪表的核心组成部分之一。由此可见,传感器的选型是非常重要的。由于监控系统最关键的部分在于室内一氧化碳气体浓度的检测,本系统考虑到室内空气中一氧化碳含量的大致范围,结合国家环境空气质量标(GB30951996)规定的一氧化碳分级标准,我们选用了Motorola生产的一种专门用于家庭用途的MGS1100型一氧化碳气体传感器, MGS1100一氧化碳传感器是一种应用全微电子工艺制成的半导体气体传感器,作为CO敏感元件,对CO响应的选择性好,并具有灵敏度高,稳定性好等特点在信号采集的同时加以温度补偿。它是在微型硅桥结构中嵌入的加热器上制作一层SnO2薄膜,这种结构不仅
14、使得SnO2薄膜对CO气体在很宽的温度范围内具有敏感性,而且硅膜减少热传导的热损失,从而大大降低了功耗。最终设计采用可变电阻模拟上述所用传感器,通过改变阻值得到不同的电压来实现本次设计的功能。图2-2传感器管脚与基本测量电路图其中2、4端为加热器的电源接线端,1、3为传感器输出端,其工作原理是把传感器置于CO气体环中,SnO2薄膜层的电阻会随着CO浓度的变化而变化,CO浓度越大,SnO2薄膜层阻值越小。图22(b)为取得传感器输出信号的基本电路图,Vh为加热电压,传感器电阻RS与负载电阻RL串联接到工作电压VCC两端, 由此可得关系:VRL=RL·VCC/(RL+RS)传感器阻值RS
15、随着CO浓度的增大而减小时,输出负载电压VRL逐渐变大,所以通过测量负载电压即可反应出被测对象的CO浓度。MGS1100型一氧化碳气体传感器的特点:测量浓度范围为0-1000PPM,测量精度为3%,分辨率为1PPM,工作温度-2070°,零点漂移为PPM<10。3 硬件设计3.1AT89C51单片机介绍3.1.1 AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C51是一种带2K字节闪
16、烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要性能参数·与MCS-51 兼容 ·4K字节可编程闪烁存储器 ·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储
17、器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源 ·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路 功能特性概述:AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时器,一个5向量两级中断机构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0HZ的静辑操作,并支持两种软件可选的节电工作模式,空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信中断系统继续工作。掉电方
18、式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。T89C51各引脚说明VCC:供电电压,接+5V电源正端。VSS:接地, 接+5V电源地端。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输
19、入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信
20、号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口同时为闪烁编程和编程校验接收一些控制信号。P3口除了做一般的I/O口线外,更重要的用途是它的第二功能表3-1 P3口第二功能引脚备选功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXD(串行输入口)TXD(串行输出口)/INT0(外部中断0)/INT1(外部中断1)T0(记时器0外部输入)T1(记时器1外部输入)/WR(外部数据存储器写
21、选通)/RD(外部数据存储器读选通)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,
22、置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。图3-1 AT89C51管脚图/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。时钟振荡器:AT89C51中有一个用
23、于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端,这个放大器与作为反馈元件的片外石英晶体或陶瓷振荡器一起构成自激振荡器。用户还可以采用外部时钟,在这种情况下,外部时钟脉冲接到XTAL1部时钟发生器的输入端,XTAL2则悬空。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.2 ADC0808转换器介绍转换器ADC0808构成ADC0808转换器是带有8位A/D转换器、8路多路开关及微处理机兼容的控制逻辑的76CMOS组件,它是逐次逼近式A/D转换器,可以和单片机直接连接。ADC0808构
24、成:由一个8路模拟开关、一个地址锁存与译码器以及一个A/D转换器和一个三态输出锁存器组成。多路开关可选通过8个模拟通道,允许8路模拟量分时输入,公用A/D转换器进行转换。三态输出锁存器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。ADC0808引脚图如图3-2所示。图图3-2-1(a) ADC0808芯片引脚图 3-2-1(b) ADC0808电路引脚转换器ADC0808工作原理模拟量输入通道共计8条,即IN0IN7。ADC0808引脚图如图3-2(a)所示。ADC0808对输入模拟量的要求是信号单极性;电压范围为05V,若信号太小,必须进行放大;输
25、入的模拟量在转换过程中应保持不变,若模拟量变换太大,则需在输入前增加采样保持电路。 地址输入和控制线共计4条,ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A、B、C三条地址线的地址信号进行锁存,经译码器后被选中的通道的模拟量进转换器进行转换。A、B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择见表3-2。表3-2 ADC0808通道选择表CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7如下图3-2-2所示ADC0808工作电路,ADC0808 A/D转换设计时,待转换的模拟量
26、是通过IN2输入,由可调变阻器控制模拟量的输入。数字量输出及控制线共计11条。ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换,在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=“ 1 ”,输出转换得到的数据;OE=“ 0 ”,输出数据呈高阻状态。D7D0为数字量输出线。CLK为时钟输入信号。因ADC0808的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500kHz,VREF+、VREF-为参考电压输入引
27、脚。图3-2-2 ADC0808工作电路3.3 报警电路燃气在泄漏并达到一定浓度后,出于安全考虑,单片机处理从传感器收集到的信息,通过软件编程输出控制信号给声光报警电路。以便于及时通知相关人员注意,及时检查。下面,我将对声光报警电路及其原理进行详细解释声报警电路图3-3-1. 声音报警电路如图3-3-1所示为声音报警电路原理图。图中的蜂鸣器采用压电式(约需10mA驱动电流),在这里我们采用一个晶体三极管驱动。当P3.5输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V的电压而鸣叫;当P3.5输出低电平“0”时,三极管截止,蜂鸣器停止发声。 光报警电路如图3-3-2所示为光报警电路原理图
28、。其中,“灯指示”为红色电路的功能是当燃气泄漏后,在声音报警的同时进行的光报警。即P3.6输出为低电平“0”时,发光二极管导通。“灯指示”为绿色的电路功能,当燃气泄漏并达到声光报警的浓度,指示灯点亮。 图3-3-2.光报警电路3.4 LED数码管显示及按键控制电路在本设计中,我们采用LED数码管显示电路实现显示功能,采用一个四位共阳数码管,其中,前三位数码管显示从单片机传出的浓度大小,以便于进行跟踪监控。它显示的范围为“000999”,因为当浓度到达100(即万分之一)时,就自动报警,第四位数码管显示通道号,确保在某一路燃气泄漏时,能及时发现泄漏位置,在最短的时间内采取措施。在本次设计中我利用
29、键盘来对两路显示浓度进行转换。图3-4-1为LED数码管显示,图3-4-2为键盘转换控制电路。图3-4-1 LED数码管显示图3-4-2键盘转换控制电路驱动LED的时候,应该分二种情况比如用共阳接法和共阴接法,共阳的时候LED正端接正电源,负端通过一个限流电阻接P口,这时不用接上拉电阻,只要这个限流电阻取合适就可以了发光管亮的时候电流就是从电源正LED限流电阻P口,P口为低电位发光管灭的时候没有电流流过,P口为高电位或高阻状态共阴接法,LED负端接地,正端直接P口,这时候要接上拉电阻,这个上拉电阻是提供LED发光用的,发光管亮的时候电流是从电源正上拉电阻LED 地。这时上拉电阻也是限流用的。P
30、口为高电位或高阻状态发光管暗的时候电流是从电源正上拉电阻P口,这时LED无电流流过,P口为低电位,限流电阻上流过电流全部从P口流入。 要从单片机的输出驱动能力开始讲起。单片机输出驱动分为高电平驱动和低电平驱动两种方式,所谓高电平驱动,就是端口输出高电平时的驱动能力,所谓低电平驱动,就是端口输出低电平时的驱动能力,当单片机输出高电平时,其驱动能力实际上是靠端口的上拉电阻来驱动的,实际测试表明,51单片机的上拉电阻的阻值在 330K左右,也就是说如果靠高电平驱动,本质上就是靠330K的上拉电阻来提供电流的,当然该电流是非常小的,小的甚至连发光二极管也难以点亮,如果要保证LED正常发光,必须要外接一
31、个1K左右的上拉电阻,如果是一个led还好,要是10个、20个led的话,就要接10个、20个1K的上拉电阻,接电阻的本身是可以的,问题是接了上拉电阻以后,每当端口变为低电平0的时候,那么就有10个、20个上拉电阻被无用的导通,假设每个电阻的电流为5mA计算,20个电阻就是100mA,这将造成电源效率的严重下降,导致发热,纹波增大,以至于造成单片机工作不稳,因此很少有采用高电平直接驱动led的,高电平驱动led 实际上就是共阴。低电平驱动就不同了,端口为低电平0时,端口内部的开关管导通,可以驱动高达30多毫安的驱动电流,可以直接驱动led等负载,当端口为低电平0时,尽管内部的上拉电阻也是消耗电
32、流的,但是由于内部的上拉电阻很大,有330K,因此消耗电流极小,基本上不会影响电源效率,不会造成无用功的大量消耗,因此51单片机是不能用高电平直接驱动led的,只能用低电平直接驱动led,即只能用共阳数码管,而不能直接用共阴数码管本设计通过观察LED数码显示器显示CO、甲烷浓度值(即可变电阻两端的电压),判断CO浓度值是否超过上限值,如果超过,自动报警并使发光二极管点亮。 4 软件设计4.1 主程序本次设计的软件部分主要由转换子程序,报警子程序和中断1服务程序组成。主程序流程图如下:开始初始化是否按下转换开关否数码管显示第1路信息是数码管显示第0路信息采样数据是否大于设定值否关闭蜂鸣器灯灭结束
33、ReFlag=0打开蜂鸣器灯亮是否是4.2 A/D转换程序在本次设计中所采集到的信号是模拟信号,所以我们必须先把它转换为数字信号再送入单片机进行计算和处理。ADC0808具体工作为:当START启动脉冲输入信号为高电平“1”时开始转换,EOC,A/D转换结束信号为高电平“1”时转换结束,数据输出允许信号OE为高电平“1”时打开输出三态门,输出数字量。其流程图如下:Start=1初始化开始EOC=1等待转换开始转换是 否是等待转换结束转换结束OE=1否返回数字量是输出数字量结束4.3 外部中断1服务程序在这次的设计中报警产生的脉冲由定时器1定时,定时器1中断函数实现声光报警。流程图如下:中断1返
34、回关声报警声报警检测P3.5为低电平调用延时程序延时中断1 N调用延时程序延时检测P3.6为低电平Y关光报警 NY等待4.4 软件调试与仿真程序调试步骤(1)打开Keil u Vision 4,新建Project工程,选择AT89C51单片机作为CPU,新建C源文件,编写程序,并将其导入到“Source Group 1”中。在"Option for Target"对话框中,选中”Output“选项卡中的”Create HEX File"选项和“Debug”选项卡中的“Use:Proteus VSM Simula”选项。编译C源程序,改正程序中的错误。(2)在Pri
35、teus ISIS中,选中ADT89C51并单击鼠标左键,打开“Edition Component”对话框中,设置单片机晶振频率为12MHZ,在此窗口中的“program file”栏中,选择先前用KEIL生成的.HEX文件。在PROteus ISIS的菜单栏中选择“file”并“Save Design“选项,保存设计。在Priteus ISIS 的菜单栏中,打开”Debug“下拉菜单,在菜单中选中”Use Remote Debug Monitor“选项,以支持与keil的联合调试.(3)在 Keil的菜单栏中选择”Debug”并“Start/stop Debug Session”选项,或者直
36、接单击工具栏中的“Debug>Start/stop Debug Session”图标,进入程序调试环境。按“F5”键,顺序运行程序。调出Priteus ISIS 界面,.4.2运行结果分析调节滑动变阻器,使其相应阻值发生变化,例如图中此时的电阻占比为92%。由ADC0808通过28号引脚采集滑动变阻器两端电压值的电信号转换成8位二进制数通过引脚OUT1-OUT8输出给单片机P2口,此时将此信号传输给P2.0-P2.7,在时钟信号的作用下,LED循环显示转换结果为此时可变电阻两端的电压值和当前哪一路的信息。满足4位数码管的前三位显示A/D转换后的电压值,后一位显示通道数,所以程序和设计的软
37、件符合设计的要求。5 硬件电路的搭建及调试5.1 硬件电路主要元器件表5-1主要元器件清单序 号名 称型 号数 量1单片机AT89S5112瓷片电容33pF23瓷片电容10414按键15晶振12M16三极管NPN47三极管PNP18电阻10K19可变电阻1K210排阻1K111电解电容10uF112蜂鸣器113二极管114转换器ADC0808115定时器NE555116LED四位8段数码管15.2 搭建硬件面包板注意事项(1).明确面模板上所插引脚开通与关断,竖直方向为开通,但是就两层格子的模块则恰好相反,横向为开通方向。(2).为了分布各器件的最佳布置,应该先对器件在整个面模板上进行整体布局
38、,以便达到各器件合理分布的良好视觉效果,然后再根据电路原理图将导线连接到相应的引脚。(3).各芯片正常工作需要给每个芯片加电源,本次实验所加电压为+5V,一般芯片最左下角的引脚接电源,而芯片最左上角接地。但是需要特别强调的是AD0808转换器则不同,需要在引脚11号和引脚13号分别接电源和接地。建议参考芯片引脚正确连接各引脚。(4).原理图中AD0808转换器的时钟信号是外输入的,本次模拟所用的是TMDM-1型数电模电试验箱所提供的频率发生器,注意当所给的信号频率越低采集信号转换的速度越慢,经过试验得出频率在500HZ以上转换速度较为明显。5.3 硬件调试接通所选的+5V电源以及外加频率发生器
39、,如果发现LED与发光二极管没有显示,仔细对照原理图与芯片引脚,比较对照各引脚直到故障排除。值得提出的是当反复检查引脚没有错误时,是否芯片与面模板接触完好。当改变滑动变阻器的阻值后显示也应随之改变。由调试结果可看到4位数码管的前三位显示A/D转换后的电压值,后一位显示通道数,所以程序和设计的软件符合设计的要求。6 毕业设计的收获及心得通过近三个多月的毕业设计,让我对自己以前所学的知识有了很好的回顾同时对以前没有能懂得知识也一一破解。在电路分析上也有很大的提高。使对集成芯片的管脚和工作原理更加牢固。通过本次课程设计,又使我学到了许多书本上无法学到的知识,也深刻体会到单片机技术应用领域的广泛,不仅
40、使我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。在做本次课程设计的过程中,我感触最深的当属查阅了大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十方必要的,同时是必不可少的。其次,我学会了在网络中查找有关的各硬件的资源,为本次课程设计提供一定的资料。这次设计使我认识到怎样把所学的知识连贯起来,分析需要将产品有充足的了解,需要有足够的耐心。当你遇到困难时要敢于克服。在认真、持之以恒的态度下一定能取得设计成功。通过本次设计我还熟悉掌握了Proteus和klieC软件。总之,这次毕业设计让我受益匪浅。这对我将来工作一定带来很大帮助。致谢在这次设计过程
41、中,我得到了组里各位老师的支持和帮助,特别是张晓群和稽启春老师,更是在毕业论文设计的整个过程中,认真指出我设计的不足之处,耐心指导我如何完善,还帮助我解决我不懂的地方,使我们少走了很多弯路。在此,诚心感谢我的指导老师成老师!没有你们的指导也不会有今天的我,再次真诚的感谢我的指导老师,在本次设计中您给我的良言我会谨记在心,您给我的不仅是单独的知识,您还教会了我在生活中的一些细节,给我传达了谨慎、认真、仔细做事的精神,老师您辛苦了!在此还要感谢所有在我学习遇到困难时帮助我的老师们和我们组的同学,和他们一起设计,相互鼓励,共同面对困难,共同解决困难,这才使得我能够顺利完成学业。附录图1系统原理图源程
42、序:#include <reg51.h>/系统宏定义#define ucharunsigned char#define uint unsigned int #define LConP1#define DataP0#define SWITCH_KEY 1#define NO_KEY0#define DOWN0#define UP/0808管脚定义#define DataPortP2/0808的数据输出口,注意引脚接线。sbit ADDA=P33;/输入选择口sbit start=P30; / AD开始信号,与ALE 连接在一起用sbit eoc=P32;sbit oe=P31;uch
43、ar X2;/端口引脚定义sbit Speaker=P35;sbit ClockPin=P17;sbitSysLed=P36;sbit SwitchKey=P34;/数码管软件译码unsigned char const s=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/数码管软件译码unsigned char code seg=1,2,4,8;/数码管片选信号/系统变量定义static uchar index,sam_index;/当前采样通道static uchar SpeakState;/扬声器状态uint AlarmLimit2;/
44、报警输入值,在初始化函数中配置uchar SampleValue2;/采样获取值,AD的采样值uchar ShowControl;/显示的采样通道uchar RefFlag;/数码显示更新标识/外部引用函数extern uchar ad_search(uchar k);extern void StartTran(uchar ID);extern uchar GetSampleValue(void);extern uchar ADC0808(unsigned char id);extern uchar GetSampleNowait(uchar *val);void delayl(uint n)
45、uint i,j;for(i=n;i>0;i-)for(j=114;j>0;j-);void delays(unsigned int cnt) while(-cnt);uchar ad_tr(void)/AD 模拟量转换成数字量函数uchar val;oe=0;start=0;delayl(1);start=1;delayl(1);start=0;/开始转换delayl(1);while(!eoc);/等待转换结束oe=1;delayl(1);DataPort = 0xff;val=DataPort;/读入转换的数字量oe=0;return val;uchar ad_search(
46、uchar k)/IN0,IN1,IN2模拟量的分时转换if (k>1) return 0;switch(k) case 0:ADDA=0;delayl(5);X0=ad_tr();return X0 ;break;case 1:ADDA=1;delayl(5);X1=ad_tr();return X1 ;break;/case 2:ADDA=0;ADDB=1;ADDC=0;ad_tr();IN2=val;i=0;break;default:k=0;break;void StartTran(uchar ID)oe=0;ADDA = ID;delays(4);start=0;delays(
47、2);start=1;delays(2);start=0;/开始转换delays(2);/获取采样的值 uchar GetSampleValue(void) uchar val; while(!eoc); oe=1; delayl(2); val=P1; oe=0;return val;uchar ADC0808(unsigned char id)/0808的转换 unsigned char val; if(id = 0) ADDA = 0;elseADDA = 1; start=1;/开始 来一个脉冲 start=0; while(eoc=0); oe=1;/允许输出 val = DataP
48、ort;/到0808 oe=0; return val; /功能 : 将整数转化成字符串输入 : value 需要转化的整数uchar BufTemp4;/数码管需要显示的值就在这里取的void IntToChar(uint value)if(value>999)BufTemp0=9;BufTemp1=9;BufTemp2=9;BufTemp0 = value/100;value = value%100;BufTemp1 = value/10;BufTemp2 = value%10;BufTemp3= ShowControl; /打开扬声器输出,扬声器输出靠PWM脉冲驱动,脉冲由定时器1
49、产生void OpenSpeaker(void)if(SpeakState = 0)SpeakState =1;elsereturn; TMOD |= 0x11; ET1=1; TR1 = 1;/关闭扬声器输出void ClosedSpeaker(void) SpeakState = 0; ET1=0; TR1 = 0;/定时器1中断函数void Timer1() interrupt 3 TR1=0; Speaker=Speaker; TH1= 0xF2; TL1= 0xDA; TR1=1;/初始化系统变量void InitSystem(void)AlarmLimit0 = 321;/电压值3
50、.21V,输入321AlarmLimit1 = 250;ShowControl = 0;SampleValue0 = 0;SampleValue1 = 0;sam_index = 0;index = 0;RefFlag = 0;/转化成采样值AlarmLimit0 = (unsigned long)AlarmLimit0*51/100;AlarmLimit1 = (unsigned long)AlarmLimit1*51/100;EA = 1;/按键扫描uchar scan_key()SwitchKey = 1;if(SwitchKey = DOWN )delays(35);/去抖if(SwitchKey =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地产顾问佣金合同范本
- 垃圾清运合同补充协议
- 备案合同仲裁结算协议
- 回收家具销售合同范本
- 固体饮料包装合同范本
- 外墙防漏工程合同范本
- 墙壁租给广告合同范本
- 外线电工雇佣合同范本
- 外包技术开发合同范本
- 回收过期饼干合同范本
- DL∕T 797-2012 风力发电场检修规程
- 北京市海淀区2023-2024学年七年级下学期期末地理试卷
- 2024年江西省公安机关警务辅助人员条例训练题库321题及答案
- (二级)道路客运驾驶员职业鉴定考试题库(精练400题)
- 2069-3-3101-002WKB产品判定准则-外发
- (高清版)DZT 0216-2020 煤层气储量估算规范
- 港口安全事故培训课件
- 电脑知识培训课件
- 轻医美针剂培训课件
- 起重吊装、常用吊具简易计算
- 压缩机的检修与维护课件
评论
0/150
提交评论