基于STC89C52的室内火气安全检测装置_第1页
基于STC89C52的室内火气安全检测装置_第2页
基于STC89C52的室内火气安全检测装置_第3页
基于STC89C52的室内火气安全检测装置_第4页
基于STC89C52的室内火气安全检测装置_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、湖州师范学院课程设计总结报告课程名称 系统设计与实践 项目名称 基于STC89C52的室内火、 气安全检测装置 专 业 电子信息工程 班 级 20130824 姓 名 学 号 指导教师 报告成绩 信息与工程学院二一六年一月六日17系统设计与实践训练任务书基于STC89C52的室内火、气安全检测装置一、设计任务采用STC89C52单片机、DS18B20和烟雾、气体传感器MQ-2等设计室内火灾、有毒气体泄露等多功能检测装置;二、设计要求(1)能检测火灾事故,并报警。(2)能检测烟雾、有毒气体泄露事故,并报警。(3)能实时显示室内温度值,并通过键盘设置温度报警上下限值。(4)其它功能(自由发挥)三、

2、元器件清单类型 型号 数量单片机STC89C52RC(40脚DIP封装)1温度传感器DS18B20(DIP封装)1运算放大器LM358烟雾传感器MQ-21底座DIP401DIP81数码管共阳3连体1三极管85508晶振12MHZ1电容30PF422UF2电阻10K、101K104.7K10 47010电位器103、102各2个按键轻触按键10 蜂鸣器5V蜂鸣器1发光二极管红,绿色6排针20个排线20根万能板1基于STC89C52的室内火、气安全检测装置系统设计与实践总结报告一系统设计目标1. 使用温度传感器和烟雾传感器把环境温度和烟雾的浓度情况检测出来,显示温度。2. 设置温度上下限报警,烟雾

3、报警:利用发光二极管,蜂鸣器等报警二系统总体方案设计 DS18B20温度传感器温度单片机STC89C52气体传感器MO2烟雾处理电路(比较器)按键声光报警数码管显示三系统详细设计3.1 单片机最小系统89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路。STC89C52管脚功能图引脚说明:·VCC:电源电压·GND:地·P0口:P0口是一组8位漏极开路型双向I/O口,作为输

4、出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。·P1口:P1口是一带有内部上拉电阻的8位双向I/O口。P1口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。

5、3;P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。P2口的输出缓冲能驱动4个TTL逻辑门电路。当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX R1),P2口输出特殊功能寄存器的内容。当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。·P3口:

6、P3是一带有内部上拉电阻的8位双向的I/O端口。P3口的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P3口同时具有AT89C51的多种特殊功能,具体如下表1所示:端口引脚第二功能P3.0RXD (串行输入口)P3.1TXD(串行输出口)P3.2 (外部中断0)P3.3(外部中断1)P3.4T0(定时器0)P3.5T1(定时器1)P3.6(外部数据存储器写选通)P3.7(外部数据存储器都选通)表1 P3口的第二功能·RST:复位输入。当振荡器工

7、作时,RST引脚出现两个机器周期的高电平将使单片机复位。·ALE/:当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。当在Flash编程时还可以作为编程脉冲输出()。一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。·:程序存储允许时外部程序存储器的读选通信号。当AT89C52执行外部程序存储器的指令时,每个机器周期两次有效,除了当访问外部数据存储器时,将跳过两个信号。·/VPP:外部访问允许。为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指

8、令,必须同GND相连接。需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。当执行内部编程指令时,应该接到VCC端。·XTAL1:振荡器反相放大器以及内部时钟电路的输入端。·XTAL2:振荡器反相放大器的输出端。在本次设计中,采用89C51作为CPU处理器,充分利用其硬件资源,结合D触发器CD4013,分频器CD4060,模拟转换开关CD4051,计数器74LS90等数字处理芯片,主要控制两大硬件模块,量程切换以及显示模块。下面还将详细说明。3.2 气体检测模块气体传感器MQ-2MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传

9、感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。 部件材料1气体敏感层二氧化锡2电极金(Au)3测量电极引线铂(Pt)4加热器镍铬合金(Ni-Cr)5陶瓷管 三氧化二铝6防爆网100目双层不锈钢(SUB316)7卡环镀镍铜材(Ni-Cu)8基座胶木或尼龙9针状管脚镀镍铜材(Ni-Cu)MQ-2气敏元件的结构和外形如图3-2-1所示(结构 A 或

10、B), 由微型Al2O3陶瓷管、SnO2 敏感层,测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内,加热器为气敏元件提供了必要的工作条件。封装好的气敏元件有只针状管脚,其中个用于信号取出,个用于提供加热电流。基本电路如图3-2-2。图3-2-1结构和外形图3-2-2 MQ-2基本电路信号调理及放大整形模块, LM358芯片 LM358 内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。

11、特性:内部频率补偿;直流电压增益高(约100dB);单位增益频带宽(约1MHz);电源电压范围宽:单电源(330V);双电源(±1.5 一±15V);低功耗电流,适合于电池供电,低输入偏流,低输入失调电压和失调电流;共模输入电压范围宽,包括接地;差模输入电压范围宽,等于电源电压范围;输出电压摆幅大(0 至Vcc-1.5V)。图3-2-3 LM3583.3 温度检测模块DS18B20工作原理DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图3-3-1所示。 图3-3-1 DS18B20内部结构图64位ROM的位结构如图3-3-2所示。开始8位是产品类型

12、的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。非易失性温度报警器触发器TH和TL,可通过软件写入户报警上下限。图3-3-2 64位ROM结构图DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图3-3-3所示。头2个字节包含测得的温度信息,第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时按此寄存器中的分辨率将温度转换

13、为相应精度的数值。该字节各位的定义热图3-3-4所示。低5位一直为1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要改动,R1和R0决定温度转换得精度位数,即用来设置分辨率。图3-3-3 高速暂存RAM结构图图3-3-4 配置寄存器由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要,系统对DS18B20的各种操作必须按协议进行.操作协议为:初始化DS18B20发ROM功能命令发存储器操作命令处理数据.图3-3-5 DS18B20测温原理图 DS18B20可以采用两种方式供电,一种是采用电源供电方式

14、,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源.另一种是寄生电源供电方式,如图3-3-6所示.单片机端口接单线总线,为为保证有效DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉.图3-3-6 DS18B20采用寄生电源的电路图当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us.采用寄生电源供电方式时Vdd和GND端均接地.由于单线制只有一根线,因此发送接口必须是三态的3.4 数码管驱动模块 (电路图, 描述)图3-4数码管驱动模块电路图3.5按键部分设计图3-5 按键部分电路图3.6总的电路图图3

15、-6电路原理图四软件设计4.1主程序流程图图4.1主程序流程图4.2按键子程序流程图图4.2 按键子程序流程图六参考文献主要参考文献:1 周立功.ARM&WinCE实践与实验:基于S3C2410M北京:北京航空航天大学出版社,2007.2 李朝青.PC机及单片机数据通信技术M.北京:北京航空航天大学出版社,20003 马春华,于莉莉.SMS方式远程监控软件的设计与实现J.广东通信技术,2003,23 (4):39-41.4 肖冬荣,殷传军.鲁棒GMC 控制及其工程应用J微计算机信息2007,30(3):21-23附录:(1) main.c#include <reg52.h>

16、#include "DS18B20.h"#include "keyscan.h"#define uint unsigned int#define uchar unsigned charextern uchar flag;sbit Yanwu=P00;sbit Warn=P14;ucharcodenum16=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xc6,0xc7,0x89;uchar disbuf3;uint Wendu=0,t_h=40,t_l=1;void delay_ms(int ms)

17、 /延时1ms子程序 char i; while (ms-) for(i = 110; i > 0; i-);/延时1秒钟 void delay(uint s)uint n,m;for(n=0;n<s;n+)for(m=0;m<123;m+);void display()P1=0XDF;/第一位 P2=numdisbuf0;delay(1); P2=0XFF; /消隐P1=0XBF;/第二位 P2=numdisbuf1;delay(1);P2=0XFF;/消隐P1=0X7F;/第三位 P2=numdisbuf2;delay(1);P2=0XFF;void main()P2 =

18、 0x00;P1 = 0x00;delay_ms (2000); while(1) keyscan(); Wendu=Get_Tmp(); if(Wendu<t_l*100)|(Wendu>t_h*100)|Yanwu) Warn=0; else Warn=1; if(mode=0) disbuf0=Wendu/1000%10; disbuf1=Wendu/100%10; disbuf2=10;/C if(mode=1) disbuf1=t_l/10%10; disbuf2=t_l%10; disbuf0=11;/Lif(flag=1)t_l+;if(t_l=20)t_l=0;fl

19、ag=0; if(mode=2) disbuf1=t_h/10%10; disbuf2=t_h%10; disbuf0=12;/Hif(flag=1)t_h+;if(t_l=80)t_l=30;flag=0; display(); (2) keyscan.c#include "keyscan.h"#define uint unsigned int#define uchar unsigned charuchar mode=0;uchar flag;void keyscan()static uchar keybuff2;static uchar key_Time_Num;key

20、buff1=keybuff0;keybuff0=P1&0x03;if(keybuff0!=keybuff1)return ;if(keybuff0=0x03)key_Time_Num=0;if(keybuff0=0x02)&&(key_Time_Num=0)mode+;mode%=3;key_Time_Num=1;if(keybuff0=0x01)&&(key_Time_Num=0)flag=1;key_Time_Num=1;(3) keyscan.h#ifndef _KEYSCAN_H_#define _KEYSCAN_H_#include <r

21、eg52.h>#define uchar unsigned char #define uint unsigned intextern uchar mode,jia,jian;extern bit set_lh;void keyscan(void);extern void delay(uint ii);#endif(4) DS18B20.c#include <reg52.h>#include "DS18B20.h"/*变量定义*/uint temp;/测得室温/ds18b20温度传感器/ void delay6(unsigned char i)while(-

22、i);/DS18B20初始化void Init_Ds18b20(void) DQ = 1; /DQ复位,不要也可行。delay6(1); /稍做延时DQ = 0; /单片机拉低总线delay6(250); /精确延时,维持至少480usDQ = 1; /释放总线,即拉高了总线delay6(100); /此处延时有足够,确保能让DS18B20发出存在脉冲。/读取一个字节的数据 /读数据时,数据以字节的最低有效位先从总线移出uchar Read_One_Byte() uchar i = 0; uchar dat = 0; for(i=8;i>0;i-) DQ = 0; /将总线拉低,要在1u

23、s之后释放总线 /单片机要在此下降沿后的15us内读数据才会有效。 _nop_(); /至少维持了1us,表示读时序开始 dat >>= 1; /让从总线上读到的位数据,依次从高位移动到低位。 DQ = 1; /释放总线,此后DS18B20会控制总线,把数据传输到总线上 delay6(1); /延时7us,此处参照推荐的读时序图,尽量把控制器采样时间放到读时序后的15us内的最后部分 if(DQ) /控制器进行采样 dat |= 0x80; /若总线为1,即DQ为1,那就把dat的最高位置1;若为0,则不进行处理,保持为0 delay6(10);/此延时不能少,确保读时序的长度60us。return (dat); /写一字节的数据函数void Write_One_Byte(uchar dat)uchar i=0;for(i=8;i>0;i-)DQ=0;_nop_();

温馨提示

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

评论

0/150

提交评论