毕业论文基于AT89C51单片机的烟雾报警系统设计.docx

上传人:b****5 文档编号:8144260 上传时间:2023-01-29 格式:DOCX 页数:27 大小:508.54KB
下载 相关 举报
毕业论文基于AT89C51单片机的烟雾报警系统设计.docx_第1页
第1页 / 共27页
毕业论文基于AT89C51单片机的烟雾报警系统设计.docx_第2页
第2页 / 共27页
毕业论文基于AT89C51单片机的烟雾报警系统设计.docx_第3页
第3页 / 共27页
毕业论文基于AT89C51单片机的烟雾报警系统设计.docx_第4页
第4页 / 共27页
毕业论文基于AT89C51单片机的烟雾报警系统设计.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

毕业论文基于AT89C51单片机的烟雾报警系统设计.docx

《毕业论文基于AT89C51单片机的烟雾报警系统设计.docx》由会员分享,可在线阅读,更多相关《毕业论文基于AT89C51单片机的烟雾报警系统设计.docx(27页珍藏版)》请在冰豆网上搜索。

毕业论文基于AT89C51单片机的烟雾报警系统设计.docx

毕业论文基于AT89C51单片机的烟雾报警系统设计

基于AT89C51单片机的烟雾报警系统设计

摘要

本课题主要是做一个智能的烟雾报警系统,主要功能是能够自主的检测外部环境的烟雾浓度和环境温度,通过与预先设置的阈值进行比较,从而使系统报警。

由于系统所需完成的任务比较简单,所以我选用的是AT89C51单片机,加之51单片机成本也什么低,适合作为设计样品的材料选择。

本文主要分几个部分进行介绍毕业设计作品,先介绍了烟雾报警系统的使用价值,然后介绍烟雾报警系统的几个硬件部分的功能,主要包括按键功能、屏幕显示功能、AD转换功能等,每个部分都进行了相关的硬件介绍,其中对ADC0832和LCD1602做了详细的简介。

软件部分主要是对作品的几个工作流程进行介绍,主要有主程序流程、数据采集流程、LCD显示流程、ADC0832的数据转换流程,最后使用Protues对整个系统进行仿真,保证系统的运行可靠性。

关键词:

AT89C51单片机;烟雾报警器;A/D转换器;Proteus仿真

 

ABSTRACT

Themainpurposeofthispaperistomakeasmartsmokealarmsystem,themainfunctionisindependentofexternalenvironmentcandetectsmokeconcentrationandambienttemperature,comparedwiththepresetthreshold,sothatthealarmsystem.

Becausethesystemneedstocompletethetaskisrelativelysimple,soIchosetheAT89C51microcontroller,coupledwiththe51microcontrollerisalsowhatthecostislow,suitablefortheselectionofmaterialsasadesignsample.

Thispaperismainlydividedintoseveralpartsofthegraduationdesignworks,firstintroducedthesmokealarmsystemusevalue,thenintroducesseveralsmokealarmsystemhardwarefunction,includingthekeyfunction,thescreendisplay,ADconversionfunction,eachpartoftherelatedhardware,whichmadeadetailedintroductionofADC0832andLCD1602.

Thesoftwarepartismainlyonseveralworkingprocessworksareintroduced,mainlyincludemainprogram,dataacquisitionprogram,LCDdisplayprocedures,ADC0832dataconversionprocess,andfinallyusetheProtuestosimulatethewholesystem,toensurethereliabilityofthesystem.

KEYWORDS:

AT89C51Single-chipMicrocomputer;smoke alarm;

A/Dconverter;SimulationbyuseProteus

 

1绪论

1.1研究的背景及意义

随着中国经济的迅速发展和城市化进程的加快,在给人们带来快捷与方便的同时,也带来了不少麻烦。

尤其是在人口稠密的城市,用火用电的密度大,火灾的防范就变得愈发困难。

万一突发大火,随之而来的是对居民产生严重生命伤害和财物损害。

而且由于很多犯罪分子利用大多数居民防盗观念不强实施违法犯罪活动,这使得居民十分忧虑自身财物安全。

单片微型计算机作为微型计算机的一个重要分支,它成为今天控制领域、通信设备、信息处理以及日常生活中最广泛使用的计算机,其中单片机用于电子产品的设计是非常方便的[1]。

为了避免火灾带来的损失,就必须对这些情况下的火灾情形进行报警监测。

当前人们亟待解决的一个重要问题是对住户密度大的居民区的火情和盗情进行即时探测和预防警报,以便防患于未然。

基于此需求,自动报警系统在日常生活中展现的重要性与日俱增。

温度和烟雾监测及远程报警系统就是为了更好的为人类服务而研制开发的,并且顺应人们的需求,不断地在功能、构造、形式各方面来不断地进行完善。

温度和烟雾监测及远程报警系统能将火灾现场的信息及时、准确的采集到,并通过电信号将火警信息发送给监控中心或监测点,能够最大限度的保护人类的财产以及生命安全。

1.2本文研究的主要内容

本实验室数据采集系统由六个大模块组成,它们是单片机、烟雾传感器、温度传感器、键盘电路、显示电路、报警电路。

通过烟雾传感器及温度传感器对现场的环境进行实时监测,监测数据经过A/D转换器送入单片机进行信号处理,根据数据分析结果确定是否报警及发送报警信息[2]。

系统启动之时,可以通过键盘设置温度和烟雾浓度的上限值,显示电路实时显示温度值,当被测点的温度或烟雾浓度超过设置值时,报警器开始报警,从而实现了对该点温度和烟雾的实时监控。

2烟雾报警系统总体设计方案

本设计中的烟雾报警主要由硬件系统设计和软件系统设计两部分组成。

硬件系统包括烟雾传感器、温度传感器、显示屏、AD转换电路、按键输入电路、声光报警电路等几部分的设计,通过简单的无源晶振电路提供时钟,通过中断产生定时采集烟雾信号和温度信号,烟雾浓度[3]以及时间都会显示在显示屏上。

系统中有按键可以进行烟雾浓度的阈值和温度阈值的设置。

一旦烟雾浓度超过阈值且者温度超过阈值时,报警电路就会及时产生刺耳的报警声。

软件系统主要包括主程序、烟雾信号和温度信号采集程序、定时中断程序、显示程序、阈值设置程序等。

硬件系统部分采用四个开关来控制烟雾系统的工作状态,分别为:

K1、切换显示页面;K2、增加烟雾和温度阈值;K3、减少烟雾和温度阈值;K4、系统复位。

如下图2-1所示:

图2-1:

按键的功能说明

硬件系统部分设计思路如图2-2所示:

图2-2:

硬件系统部分设计思路

软件系统部分主要通过Keil和Proteus软件绘制仿真电路[5]并编写程序进行联合仿真模拟。

软件系统主要包括主程序、信号采集程序、显示程序、按键扫描程序和中断程序。

3硬件系统部分设计

该系统总体电路由AT89C51控制的单片机最小系统,A/D转换模块,独立按键控制电路,LCD1602液晶显示电路,声光报警电路共同组成[6],系统总体设计的电路图如图3-1所示,下面介绍系统硬件中几个模块:

图3-1:

系统总体设计电路图

3.1单片机最小系统

单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:

单片机、晶振电路、复位电路。

下面给出一个51单片机的最小系统电路图[7],如图3-2所示:

51单片机最小系统电路介绍:

1)51单片机最小系统复位电路的极性电容C1、C2的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。

2)51单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振[8]的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。

3)51单片机最小系统起振电容C1、C2一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好

4)P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10kΩ。

图3-2:

单片机的最小系统图

设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。

计数值N乘以机器周期Tcy就是定时时间t。

设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器[9]。

在每个机器周期的S5P2期间采样T0、T1引脚电平。

当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。

由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。

当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2ms。

3.2A/D转换电路

在单片机应用系统中,被测量对象的有关变化量,如温度、压力、流量、速度等非电物理量,须经传感器转换成连续变化的模拟电信号(电压或电流),这些模拟电信号必须转换成数字量后才能在单片机[10]中用软件进行处理。

实现模拟量转换成数字量的器件称为A/D转换器(ADC)。

A/D转换器大致分有三类:

一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近型A/D转换器,精度、速度、价格适中;三是∑-△A/D转换器。

本文中采用的是ADC0832属第二类,是8位A/D转换器。

通过三线接口与单片机连接,功耗低,性能价格比较高,适宜在袖珍式的智能仪器仪表中使用。

ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。

芯片具有双数据输出可作为数据校验[11],以减少数据误差,转换速度快且稳定性能强。

独立的芯片使能输入,使多器件连接和处理器控制变得更加方便。

通过DI数据输入端,可以轻易的实现通道功能的选择。

其主要特点如下:

1)8位分辨率,逐次逼近型,基准电压为5V;

2)5V单电源供电;

3)输入模拟信号电压范围为0~5V;

4)输入和输出电平与TTL和CMOS兼容;

5)在250KHZ时钟频率时,转换时间为32us;

6)具有两个可供选择的模拟输入通道;

7)功耗低,15MW。

3.2.1ADC0832的引脚及功能

芯片采用的是ADC0832,以下介绍ADC0832的引脚及功能,如图3-3所示。

图3-3ADC0832的引脚示意图

各引脚说明如下:

CS——片选端,低电平有效。

CH0,CH1——两路模拟信号输入端。

DI——两路模拟输入选择输入端。

DO——模数转换结果串行输出端。

CLK——串行时钟输入端。

Vcc/REF——正电源端和基准电压输入端。

GND——电源地。

3.2.2单片机对ADC0832的控制原理

一般情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。

但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。

当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。

当要进行A/D转换时,须先将CS端置于低电平并且保持低电平直到转换完全结束。

此时芯片开始转换工作,同时由处理器向芯片[12]时钟输入端CLK提供时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。

在第1个时钟脉冲到来之前DI端必须是高电平,表示启动位。

在第2、3个时钟脉冲到来之前DI端应输入2位数据用于选择通道功能,其功能项见表3-1。

表3-1:

ADC0832配置位

输入形式

配置位

选择通道

CH0

CH1

CH0

CH1

差分输入

0

0

+

-

0

1

-

+

单端输入

1

0

+

1

1

+

如表3-1所示,当配置位2位数据为1、0时,只对CH0进行单通道转换。

当配为1、1时置2位数据,只对CH1通道转换。

当配置2进行单位数据为0、0时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。

当配置2位数据为0、1时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。

图3-3:

ADC0832时序图

到第3个时钟脉冲到来之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。

从第4个时钟脉冲开始由DO端输出转换数据最高位D7,随后每一个脉冲DO端输出下一位数据。

直到第11个脉冲时发出最低位数据D0,一个字节的数据输出[13]完成。

也正是从此位开始输出下一个相反字节的数据,即从第11个时钟脉冲输出D0。

随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。

最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。

图3-3为ADC0832时序图。

3.2.3ADC0832连线图

ADC0809与单片机的连线图如图3-4,CS连接到P1.4,CLK连接到P1.5,DO、DI一起连接到P1.6,因为DO、DI不会一起工作,一个在高电平情况下运行,一个在低电平下运行,这样的连接方式可以保证它时钟只有一种工作模式。

图3-4:

ADC0832的连线图

3.3LCD1602液晶显示电路

LCD1602A是一种工业字符型液晶,能够同时显示16x02即32个字符(16列2行)。

在日常生活中,我们对液晶显示器并不陌生。

液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。

在单片机的人机交流界面中,一般的输出方式有以下几种:

发光管、LED数码管[14]、液晶显示器。

发光管和LED数码管比较常用,软硬件都比较简单。

在单片机系统中应用晶液显示器作为输出器件有以下几个优点:

(1)由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。

因此,液晶显示器画质高且不会闪烁。

(2)液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。

(3)液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。

(4)相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。

引脚说明:

第1脚:

VSS为地电源。

第2脚:

VDD接5V正电源。

第3脚:

VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

R/W为读写信号线,高电平时进行读操作[15],低电平时进行写操作。

当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线。

第15脚:

背光源正极。

第16脚:

背光源负极。

本设计的灰度调节是采用10k的电位器,液晶显示电路如图3-5所示:

图3-5:

液晶显示电路

3.4按键电路

本设计采用按键接低的方式来读取按键,单片机初始时,为高电平,当按键按下的时候,会给单片机一个低电平,单片机对信号进行处理。

单片机键盘有独立键盘和矩阵式[16]键盘两种:

独立键盘每一个I/O口上只接一个按键,按键的另一端接电源或接地(一般接地),这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占用的I/O少。

根据本设计的需要这里选用了独立式键盘接法。

图3-6:

按键电路

独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。

将常开按键的一端接地,另一端接一个I/O口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。

当有键按下时,此I/O口与地短路迫使I/O口为低电平。

按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。

我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。

在用单片机对键盘处理的时候涉及到了一个重要的过程,那就是键盘的去抖动。

这里说的抖动是机械的抖动,是当键盘在未按到按下的临界区产生的电平不稳定正常现象,并不是我们在按键时通过注意可以避免的。

这种抖动一般10~200毫秒之间,这种不稳定电平的抖动时间对于人来说太快了,而对于时钟是微秒的单片机而言则是慢长的。

硬件去抖动就是用部分电路对抖动部分加之处理,软件去抖动不是去掉抖动,而是避抖动部分的时间,等键盘稳定了再对其处理。

所以这里选择了软件去抖动,实现法是先查寻按键当有低电平出现时立即延时10~200毫秒以避开抖动(经典值为20毫秒),延时结束后再读一次I/O口的值,这一次的值如果为1表示低电平的时间不到10~200毫秒,视为干扰信号。

当读出的值是0时则表示有按键按下,调用相应的处理程序。

3.5声光报警电路

本文用LED灯进行灯光指示。

LED是一种发光二极管,能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。

图3-7:

声光报警电路

采用蜂鸣器进行的声音报警,蜂鸣器采用直流电压供电。

蜂鸣器驱动电路一般都包含以下几个部分:

一个三极管、一个蜂鸣器、一个限流电阻。

蜂鸣器为发声元件,在其两端施加直流电压(有源蜂鸣器)或者方波(无源蜂鸣器)就可以发声,其主要参数是外形尺寸、发声方向、工作电压、工作频率、工作电流、驱动方式(直流/方波)等。

这些都可以根据需要来选择。

本设计采用有源蜂鸣器。

三极管Q1起开关作用,其基极的低电平使三极管饱和导通,使蜂鸣器发声;而基极高电平则使三极管关闭,蜂鸣器停止发声。

 

4软件系统部分设计

4.1编程软件的介绍

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

我们就是利用KeilC51软件依据程序流程图进行C语言的编程,从而控制硬件实验所需要的功能。

4.2程序流程图

4.2.1主程序流程图

主程序的功能主要是完成初始化和相应的子程序的调用,其中包括寄存器和标志位初始化、定时器、计数器的赋初值以及A/D转换初始化,按键扩展初始化,中断处理初始化等。

主程序流程图图4-1所示:

图4-1:

主程序流程示意图

4.2.2数据采集子程序流程图

A/D转换子程序流程图如下图4-2所示。

ADC0832初始化后,把传感器采集到的信号通过外部中断引脚引入单片机,然后进行数据处理,处理后的数据送到缓冲器,准备给下一程序的调用。

该子程序将0通道采集到的0-5V的模拟信号转换为对应的数字量,转化为单片机能读取的信息量,然后将对应数值存储到内存单元。

图4-2:

数据采集子程序流程图

4.2.3LCD程序流程图

单片机在主程序中完成对LCD进行初始化,使其LCD能顺利进入正常工作状态。

程序运行时首先判断LCD是否处于忙碌状态,如果是,则继续不断扫描判断,若不是,则将经ADC转换后计算出来的结果,通过输出指令输出,并判断计算出的结果处于哪种状态,将状态输出供操作者阅读。

流程图如图4-3所示:

图4-3:

LCD流程图

4.3软件编译

选择CPU型号窗口中选择CPU生产厂家及芯片型号,这里选择的是AT89C51芯片,程序代码编写完后需要编译、链接、生成目标代码,然后进行硬件调试或模拟仿真,编译代码可以点击或键盘的快捷键F7。

编译后的结果如图4-4所示。

图4-4编译后的结果显示

编译软件后,要对代码进行下载到AT89C51单片机中,所编写的程序见附录。

4.4.Proteus仿真模拟

Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

它是目前最好的仿真单片机及外围器件的工具。

虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。

其仿真界面如图4-5所示:

图4-5Proteus软件仿真界面

把完整的电路图在Proteus上画好后,导入已经写好的程序,便可以得到相应的仿真结果图。

烟雾报警系统仿真结果如图4-6所示:

图4-6:

烟雾报警器系统仿真模拟结果显示

5实物的调试与检测

5.1系统软件调试

打开软件,将写好的调试程序代码在计算机上输入、汇编、修改、产生代码,形成输入输出口实验.HEX文件。

先把线路连接好,并将调试程序代码(注释电压到酒精浓度转换关系代码烧写到单片机上后,接上+5V电源开始调试。

先进行每一个模块程序的调试,看看单一的模块程序能不能实现出来,如果不能实现出来,就进行程序和电路图的检查,查出问题所在,从而进行修改。

当每一个模块程序的调试能实现出来,在把整个程序导入,进行整体调试。

在调试中,采集温度数据和烟雾浓度数据,采用100HZ的频率采集数据,每采集一秒钟对数据进行取平均数,然后再与预先设置的阈值进行比较,到达报警设置值的话声光报警电路就会进行报警。

然而再也不能进行下次数据采集检查,必须重启电源才能进行下一次检查。

经对程序的检查,看出没有数据采集的循环部分,对程序修改后,能实现数据连续检查功能了。

5.2系统硬件的调试

调试过程中首先要检测的就是硬件电路的设计原理是否正确,焊接前对电阻、电容的量值要进行测量、筛选,选择与电路中参数值一致的元器件,在选择芯片时,要注意芯片与设计要求的型号、规格和安装是否一致。

其次在焊接好电路之后,认真检查电路的焊接情况,主要看各个端口是否连接正确以及有些元器件的正负极是否接反,。

这次采用的是分块调试的方法,控制电路以及单片机控制电路进行调试。

在对每个模块的进行调试过程中又采用了由局部到整体,由简单到复杂的调试方法,最后再将各个模块总和成一个整体。

在调试过程中遇到的问题有:

(1)对数模转换芯片的不了解,采样电路的设计走了很大的弯路;

(2)对烟雾报警器的没有使用经验,所以写程序的时候逻辑不是很清晰。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1