1002024014马天翼基于单片机的居室安全报警系统的设计与实现

更新时间:2024-05-30 17:53:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

沈阳农业大学科学技术学院

题 目:院 系:专 业:班级学号:学生姓名:指导教师:成 绩:

毕业设计

基于单片机的居室安全

报警系统设计与实现

信息与控制学院 农业电气化与自动化 1002024014 马天翼 孔德尉 2014年 6 月 15 日

目 录

1 方案设计 ................................................................................................................................................ 1

1.1 设计任务要求 ........................................................................................................................... 1 1.2 整体方案设计框架 .................................................................................................................. 1 2 居室安全报警系统的硬件设计 ....................................................................................................... 3

2.1 红外传感器部分设计 .............................................................................................................. 3

2.1.1 热释电红外传感器的工作原理 ................................................................................ 3 2.1.2 菲涅耳透镜 ..................................................................................................................... 4 2.1.3 BISS0001集成电路介绍 ............................................................................................ 4 2.2 温度传感器部分 ....................................................................................................................... 5

2.2.1 温度传感器 ..................................................................................................................... 5 2.2.2 温度传感器工作原理 ................................................................................................... 6 2.3 烟雾传感器部分 ....................................................................................................................... 6 2.4 数码管部分 ................................................................................................................................ 8 2.5 声光报警提示电路 .................................................................................................................. 9

2.5.1 灯光提示电路 ................................................................................................................ 9 2.5.2 声音报警电路 ................................................................................................................ 9 2.6 无线遥控模块 .......................................................................................................................... 10 2.7 单片机部分设计 ..................................................................................................................... 11

2.7.1 STC89C52单片机 ...................................................................................................... 11 2.7.2 单片机的最小系统 ..................................................................................................... 12 2.7.3 按键控制电路、指示灯报警电路 .......................................................................... 15 2.7.4 电源模块 ....................................................................................................................... 16

3 居室安全报警系统的软件设计 .................................................................................................... 17

3.1 软件结构及功能 ..................................................................................................................... 17 3.2 软件程序调试 .......................................................................................................................... 18 参考文献 .................................................................................................................................................... 20 附录A 电路图 ....................................................................................................................................... 21 附录B 程序源代码 .............................................................................................................................. 21

I

附录C 实物图 ...................................................................................................................... 29

II

沈阳农业大学科学技术学院本科毕业设计 1 方案设计

1.1 设计任务要求

⑴设计包含了硬件设计和软件设计这两部分。模块分为数据采集、按键的设置、报警设备、无线遥控装置、数码管显示等等。

⑵居室安全报警系统是由红外热释电红外传感器、温度传感器、烟雾传感器、数码管电路、蜂鸣器、单片机控制电路、无线遥控电路和软件组件为主组成。

⑶居室安全主要分为防盗和防火,针对于此本文所设计系统主要实现如下功能:人们出行前,利用无线遥控器打开报警系统的保护状态,30秒后将传感器设置为工作状态进行布防。在布防期间,红外辐射探测器透过菲涅耳透镜建立一个监测区域,在该区域内任何人员活动都会触发红外辐射监测电路,激活报警电路,红色警示灯闪烁,数码管显示数字“1”,蜂鸣器长鸣报警;烟雾探测器会对室内烟雾浓度进行监控,当室内烟雾浓度过高,激活报警电路,黄色警示灯闪烁,数码管显示数字“2”,蜂鸣器长鸣报警;温度探测器会对室内温度进行监控,当室内温度过高,激活报警电路,绿色警示灯闪烁,数码管显示数字“4”,蜂鸣器长鸣报警。

1.2 整体方案设计框架

本设计所设计的居室安全系统主要包括以下结构:复位电路、报警电路、热释电红外传感器电路、温度传感器电路、烟雾传感器电路、无线遥控电路、数码管显示电路和相应的软件控制程序。

本设计所设计的居室安全系统以STC89C52单片机为中央数据处理单元,配以红外传感监测电路、温度传感监测电路和烟雾传感监测电路作为数据采集端,系统启动与关闭采用无线遥控技术,报警方式分为红、黄、绿彩灯闪烁和蜂鸣器长鸣以及数码管数字显示三种方式组合报警。

第一个监测点上设置的红外传感器探测到身体散发的红外线辐射时,可以将其转换为电压信号,经过放大电路和一个比较器电路,最终由STC89C52单片机接收产生的TTL电平。在单片机内部,由软件来查询和鉴别以确定最终是否发出警报信号。一旦发出了入侵的警报信号,报警电路将运行并放大,使蜂鸣器、发光二极管等设备发出相应

1

沈阳农业大学科学技术学院本科毕业设计 的声音光线来配合。

第二个监测点上设置的温度传感器探测到室内高温时,可以将其转换为低电平信号,由STC89C52单片机接收产生的TTL电平。由软件来查询和鉴别以确定最终是否发出警报信号。一旦发出了高温警报信号,报警电路将运行并放大,使蜂鸣器、发光二极管以及数码管等设备发出相应的声音光线来配合。

第三个监测点上设置的烟雾传感器探测到室内烟雾浓度高时,可以将其转换为低电平信号,由STC89C52单片机接收产生的TTL电平。由软件来查询和鉴别以确定最终是否发出警报信号。一旦发出了烟雾警报信号,报警电路使蜂鸣器、发光二极管以及数码管等设备发出相应的声音光线来配合。

当人们出门后,报警系统变成运行部署状态,当有人闯入检测区域内,热释电红外传感器就可以检测到(或是出现高温、烟雾时),进而迅速转换输出方式,报警器启动,从而起到防盗防火作用。该报警器的最大特点是方便简单,用户操作灵活,智能化程度高,误报率低,易于安装和维护。随着现代科学技术的提高,人们的安全意识也飞速发展,在不久的将来报警系统将在更广泛的领域和层次得到应用。

2

沈阳农业大学科学技术学院本科毕业设计 2 居室安全报警系统的硬件设计

从设计需求角度来分析,此设计包括如下四个部分:无线遥控部分、传感器部分、数码管部分、单片机STC89C52和报警器的报警系统。电路原理如图2.1所示。

电源 STC89C52 报警电路 单片机LED指示灯 复位电路 按键控制 电源开关 红外传感器 温度传感器 烟雾传感器 无线遥控 数码管显示

图2.1 电路原理图

2.1 红外传感器部分设计

2.1.1 热释电红外传感器的工作原理

热释电红外传感器(简称PIR)是一种全新的高灵敏度的检测仪器。热电传感器是利用热电效应的传感器,具有敏感度高的特点。它是由一个电压晶体元件和陶瓷氧化物部分组成。在监测传感器表面温度变化时,元件表面的电极由于热电效应而会产生电荷,在两者之间形成弱电压。其输出阻抗高,具有一个阻抗转换效应晶体管FET。

当传感器表面温度恒定在监视范围内,传感器没有信号输出。当人体进入监视区域,室温和体温的温度差,造成环境温度变化的,此时传感器输出信号;如果身体不移动到监视区域中,则环境温度不发生变化,传感器不会输出信号。热释电红外传感器如图2.2所示。

3

沈阳农业大学科学技术学院本科毕业设计

图2.2 热释电红外传感器

2.1.2 菲涅耳透镜

菲涅耳透镜片由聚烯烃材料制作,反射镜的表面一侧是光滑的,另一侧是从小到大排列的同心圆。在许多情况下,菲涅耳透镜对于红外线和可见光透镜效果良好,但比很多镜片的平均价格都低。菲涅尔透镜可以根据光学设计或结构特点进行分类。菲涅耳透镜具有两种功能:一是聚焦作用,二是对所监视的区域内划分成多个小区域,包括亮区和暗区,如果一个运动物体进入监视区域,检测温度变化的热释电红外传感器将输出红外线信号。我们采用菲涅尔透镜的目的是和热释电红外传感器相结合使用,这样可以有效地集中监控红外感应区域[1],菲涅耳透镜如图2.3所示。

图2.3 菲涅耳透镜

2.1.3 BISS0001集成电路

BISS0001是一个很好的传感信号处理集成电路,具有非常高的性能,被动式热释电红外开关由BISS0001、热释电红外传感器和少量的外部元件构成。其结构新颖,性能可靠,3V~5V的电压范围,当电压为5V时,具有10mA的输出驱动电流。它是由16个管脚集成块体,BISS0001的内部框图如图2.4所示,红外传感电路实物如图2.5所示。

4

沈阳农业大学科学技术学院本科毕业设计

图2.4 BISS内部框图

图2.5 红外传感器实物图

2.2 温度传感器部分

2.2.1 温度传感器

本文所使用温度传感器模块可以检测周围环境的温度,具有灵敏度可调的特点,其工作电压 3.3V~5V,输出形式为模拟量电压输出和数字开关量输出(0 和 1) 两种,本文所用输出形式为数字开关量输出。该模块接口为4 线制,其中VCC 外接 3.3V~5V 电压(直接与单片机相连),GND 外接 GND,D0为数字量输出接口(0 和 1),A0为模拟量输出接口。

5

沈阳农业大学科学技术学院本科毕业设计 2.2.2 温度传感器工作原理

热敏电阻模块对环境温度最敏感,一般用来检测周围环境的温度,模块在环境温度达不到设定阈值时,D0口输出高电平,当外界环境温度超过设定阈值时,模块 D0 输出低电平;该模块数字量输出D0与单片机直接相连,通过单片机来检测高低电平,由此来检测环境的温度改变;该模块数字量输出D0直接驱动继电器模块,由此组成一个温控开关;该模块模拟量输出A0和A/D模块相连,通过A/D 转换,可以获得环境温度更精准的数值[2];热敏电阻传感器原理如图2.6所示。

图2.6 热敏电阻传感器原理图

2.3 烟雾传感器部分

MQ-2型气体传感器用于以氢气为主要成分的城市煤气、天然气、液化石油的测量,而且它抗干扰能力强,水蒸气、烟等干扰气体对它的影响小。其主为要部件MQ-2型气敏元件,该气敏元件采用烧结半导体所形成的敏感烧结体,具有稳定的阻值(即器件在纯洁空气中的阻抗),从而保证了长期工作的稳定性,同时,该器件采用单电源供电,其功耗为0.7W左右,能够对所测试的气体有极高的灵敏度和信噪比。器件的灵敏度S=Ro/Rx为10~30。Rx为器件在丁烷浓度为0.2%时的阻抗,MQ-2气敏元件电路、结构和外形如图2.7、2.8所示。

6

沈阳农业大学科学技术学院本科毕业设计

图2.7 MQ-2型气体传感器电路图

图2.8 MQ-2型元件外形结构图

针对居室安全系统设计要求,本文所采用的烟雾传感器模块的主要芯片是LM393、ZYMQ-2气体传感器,其工作电压为直流5V,具有信号输出指示灯,能够提供双路信号输出(模拟量输出及TTL电平输出,本文采用TTL低电平输出),器件响应时间:Tr≤10s,恢复时间:Tn≤60s,加热电压:V﹢=5+0.2V,加热功率约0.7W,工作环境要求丁烷浓度在0.2%时,在湿度小于85%RH,在-10℃~+40℃温度下不会引起误报,能够满足居室安全系统设计要求,烟雾传感器实物、电路原理如图2.9、2.10所示。

图2.9 烟雾传感器实物图

7

沈阳农业大学科学技术学院本科毕业设计

图2.10 烟雾传感器模块电路原理图

2.4 数码管部分

当数码管特定的段加上电压后,这些特定的段就会发亮,以形成字样。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。本文所采用单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极组成共阳数码管。为了区分不同传感器报警,红外传感器对应数字1,温度传感对应数字2,烟雾报警对应数字4。本文所设计数码管显示电路原理、实物如图2.11、2.12所示。

图2.11 数码管显示电路原理图

8

沈阳农业大学科学技术学院本科毕业设计

图2.12 数码管显示电路实物图

2.5 声光报警提示电路

2.5.1 灯光提示电路

LED即发光二极管,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光;它改变了白炽灯钨丝发光与节能灯三基色粉发光的原理,而采用电场发光[3]。本设计利用不同颜色的LED指示不同传感器的报警,灯光提示电路如图2.13所示。

D1D2D3+5LEDRLEDYLEDGR42.2kR3R21k220 图2.13 灯光提示电路

2.5.2 声音报警电路

针对声音报警电路,本文采用蜂鸣器、限流电阻和晶体管组成的声音报警电路,蜂鸣器为发声元件,是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于报警器、汽车电子设备、定时器等电子产品中作发声器件[4]。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型,电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外

9

沈阳农业大学科学技术学院本科毕业设计 壳等组成,接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互缠绕,在其两端施加直流电压(有源蜂鸣器)或者方波(无源蜂鸣器)就可以发声,本设计采用电磁式有源蜂鸣器,其中三极管Q1起开关作用,其基极的低电平使三极管饱和导通,使蜂鸣器发声;而基极高电平则使三极管关闭,蜂鸣器停止发声,声音报警电路如图2.14所示。

VCCP34R41kQ18550 蜂鸣器图2.14 声音报警电路

2.6 无线遥控模块

本设计利用PT2272模块构成的无线接收电路,在居室安全系统中加入了无线遥控功能,该功能能够实现对居室安全系统的布防、解除布防、停止报警等基础功能。PT2272无线接收电路、无线遥控实物如图2.15、2.16所示。

图2.15 PT2272无线接收电路

10

沈阳农业大学科学技术学院本科毕业设计

图2.16 无线遥控电路实物图

2.7 单片机部分设计

2.7.1 STC89C52单片机

STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89C52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。单片机引脚如图2.17所示。

11

沈阳农业大学科学技术学院本科毕业设计 U11234567891011121314151617181920P10P11P12P13P14P15P16P17RESETP30/RXDP31/TXDP32/INT0P33/INT1P34/T0P35/T1P36WRP37/RDX2X1GNDSTC89C52VCCP00P01P02P03P04P05P06P07EA/VPALE/PPSENP27P26P25P24P23P22P21P204039383736353433323130292827262524232221 图2.17 单片机引脚图

STC89C52引脚介绍如下:

⑴主电源引脚(2根)。VCC(Pin40):电源输入,接+5V电源;GND(Pin20):接地线。

⑵外接晶振引脚(2根)。XTAL1(Pin19):片内振荡电路的输入端;XTAL2(Pin20):片内振荡电路的输出端。

⑶控制引脚(4根)。RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位;ALE/PROG(Pin30):地址锁存允许信号;PSEN(Pin29):外部存储器读选通信号;EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。

⑷可编程输入/输出引脚(32根)。STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。 2.7.2 单片机的最小系统

最小系统包括单片机及其所需的必要的电源、时钟、复位等部件,能使单片机始终处于正常的运行状态。电源、时钟等电路是使单片机能运行的必备条件,可以将最小系统作为应用系统的核心部分,通过对其进行存储器扩展、A/D扩展等,使单片机完成较复杂的功能。

12

沈阳农业大学科学技术学院本科毕业设计 STC89C52是片内有ROM/EPROM的单片机,因此这种芯片构成的最小系统简单、可靠。用STC89C52单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可。单片机最小系统原理框图如图2.18所示。

时时时时 STC89C5时时时 2时时时时 I/O

图2.18 单片机最小系统原理框图

⑴时钟电路。STC89C52单片机的时钟信号通常是内部时钟方式和外部时钟方式两种方式。内部时钟方式如图2.19所示。

C21830pFY1C311.0592MHz19图2.19 STC89C52内部时钟电路

30pF 在STC89C52单片机内部有一振荡电路,只要在单片机的XTAL1(18)和XTAL2(19)引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号

[5]

。图中电容C1和C2的作用是稳定频率和快速起振,电容值在5~30pF,典型值为30pF。

晶振CYS的振荡频率范围在1.2~12MHz间选择,典型值为12MHz和6MHz。

⑵复位电路。当在STC89C52单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作,若该引脚持续保持高电平,单片机就处于循环复位状态。复位电路工作就是确定单片机的完整的微控制器启动时的初始状态。单片机产生复位信号电源后,确定完成单芯片微控制器开始工作条件,以确定初始状态。当运行外部环境干扰单片机系统的运行发生失控时,按程序中的复位按钮会自动重新启动[6]。

一般有上电复位和外部手动复位按钮,单片机在时钟电路的工作电源启动后,鉴于RESET持续的高级别周期就可以完成复位操作。本设计采用一个外部手动复位电路按钮,您需要连接一个上拉电阻,以提高输出的电平值,STC89C52的复位电路如图2.20所示。

13

沈阳农业大学科学技术学院本科毕业设计 VCCS49C1R110uF10k 图2.20 STC89C52复位电路

⑶STC89C52中断技术概述。中断技术主要用于实时监测与控制,要求单片机能及时地响应中断源提出的服务请求,并作出快速响应、及时处理。这是由片内的中断系统来实现的。当中断请求源发出中断请求时,如果中断请求被允许,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求[7]。中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序,中断响应和处理过程如图2.21所示。

时时时时时时时时时时时时时时时时时时时时时时时时时时时时时

图2.21 中断响应和处理过程

如果单片机没有中断系统,单片机的大量时间可能会浪费在查询是否有服务请求发生的定时查询操作上。采用中断技术完全消除了单片机在查询方式中的等待现象,大大地提高了单片机的工作效率和实时性。最小系统图如图2.22所示。

14

沈阳农业大学科学技术学院本科毕业设计 VCCK013RESET+C110uF241234567891011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTP3.0(RXD)P3.1(TXD)P3.2(INT0)P3.3(INT1)P3.4(T0)P3.5(T1)P3.6(WR)P3.7(RD)XTAL2XTAL1GND89C52VCC(AD0)P0.0(AD1)P0.1(AD2)P0.2(AD3)P0.3(AD4)P0.4(AD5)P0.5(AD6)P0.6(AD7)P0.7EA/VPPALE/PROGPSEN(A15)P2.7(A14)P2.6(A13)P2.5(A12)P2.4(A11)P2.3(A10)P2.2(A9)P2.1(A8)P2.04039383736353433323130292827262524232221VCCC211.0592MHzR710K30Y1C33089C52

图2.22 单片机最小系统原理图

2.7.3 按键控制电路、指示灯报警电路

该电路的设计是为了不同类型的控制电路和武装以及紧急的状态下的工作,当你进入布防状态,按下布防键30秒后,当有人走近时,热释电红外传感器感应到的信号通过微控制器,单片机进入报警状态。当遇到特殊紧急情况,立即按下紧急报警按钮,蜂鸣器报警。在单片机(MCU)的I/O其中,电平P20、P21、P22连接到LED指示灯,P23连接到蜂鸣器外接一个外部晶体管8550,起到开关的作用,当第三晶体管饱和时,立即启动蜂鸣器,按键控制电路、指示灯报警电路如图2.23、图2.24所示。

P23 C R3 VC2K 855 0Q1 蜂鸣器 + B1 GN

D

图2.23 按键控制电路 图2.24 指示灯报

15

沈阳农业大学科学技术学院本科毕业设计 2.7.4 电源模块

外部电源采用直流干电池,利用电池盒串接而成,每个干电池1.5V左右,共计电压约4.5V左右,通过电源连接线连到电源接口处。

16

沈阳农业大学科学技术学院本科毕业设计 3 居室安全报警系统的软件设计

3.1 软件结构及功能

功能说明:按开关按钮,遥控来控制布防,取消布防。红外报警时红灯亮,数码管显示1111;烟感报警时,黄灯亮,数码管都显示2222;温度报警时,绿灯亮,数码管都显示4444。主程序工作流程如图3.1所示。

时时时时时时时30时时时时时时时时时时时N时时时时时时时时时时时时时时时Y时时时时时时时时时时时时时时时时时时时时时时时

图3.1 主程序工作流程图

17

沈阳农业大学科学技术学院本科毕业设计 操作说明:先打开电源开关,摁遥控器1,此时电子屏显示0000。按遥控器2,取消布防,电子屏无显示。红外报警时红灯亮,数码管都显示1;烟感报警时,黄灯亮,数码管都显示2;温度报警时,绿灯亮,数码管都显示4。存在两种报警时显示的是电子管亮暗的相加。例如,测试时注意尽量让一个报警,就是如果单独是红外正在报警,显示1111,如果此时烟感在报警,就会是反写的6,就是上面数的电路相加,不是数字相加。如果避免这种情况,在显示1111时,取消布防,开启布防,如此反复,知道显示0000时,再测另外一个报警。

3.2 软件程序调试

调试过程中首先要检测的就是硬件电路的设计原理是否正确、能否达到预期效果以及实现方法是否简便等等;其次在焊接好电路之后,认真检查电路的焊接情况。采用分块调试的方法,烟雾探测电路、红外检测电路、温度检测电路、无线遥控电路、数码管显示电路和单片机控制电路进行调试。在对每个模块的进行调试过程中又采用了由局部到整体,由简单到复杂的调试方法,最后再将各个模块总和成一个整体[8]。程序烧录运行,如图3.2所示。

图3.2 程序烧录运行图

在完成对程序的调试及烧录之后,还需要对其进行演示,把开发板与电脑连上,设

18

沈阳农业大学科学技术学院本科毕业设计 置好对应的接口,完成供电及下载。分别对烟雾探测电路、红外检测电路、温度检测电路、无线遥控电路、数码管显示电路和声光报警电路进行测试。测试能否达到报警。经过测试,完全可行。因而简单的实现了对无线遥控、温度、烟雾、红外和报警的控制。

19

沈阳农业大学科学技术学院本科毕业设计

参考文献

[1] 胡萍.串口通信的红外报警器的研制[J].计算机与现代化,2010:15-16. [2] 唐德琴.电子温度测量仪器技术发展战略研究[J].电子科学技术,2009:1-8. [3] 杨志忠.数字电子技术[M].北京:高等教育出版社,2003:12-15.

[4] 沙占友.单片机及外围电路设计[M].北京:电子工业出版社,2003:114~128. [5] 汪文,陈林.单片机原理及应用[M].湖北:华中科技大学出版社,2007:1-10. [6] 李行善.基于串口组件的体系结构[J].电子串口与仪器学报,2010:15-16. [7] 康华光.电子技术基础数字部分[M].北京:高等教育出版社,2008:3-6. [8] 李庆亮.C语言程序设计实用教程[M].北京:机械工业出版社,2005:17-22.

20

附录A 电路图

沈阳农业大学科学技术学院本科毕业设计 图A1 电路汇总图

21

沈阳农业大学科学技术学院本科毕业设计 附录B 程序源代码

#include //调用单片机头文件

#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int //无符号整型 宏定义 变量范围0~65535

#define key_io P1 uchar key_can;

// 红外热释电平时为0 有输出为1

sbit beep = P2^3; //蜂鸣器定义

sbit red = P2^2; //红色发光二极管定义 sbit green = P2^1; //绿色发光二极管定义 sbit yellow = P2^0; //黄色发光二极管定义 sbit hw = P1^3; //红外热释传感器定义 bit flag_300ms = 0; sbit yaokong1 = P2^4; sbit yaokong2 = P2^5; //sbit RST = P2^6;

sbit yw = P3^2; //烟雾 sbit gw = P3^3; //高温

sbit S1 = P1^7;//千位的位选信号 sbit S2 = P1^6;//百位 sbit S3 = P1^5;//十位 sbit S4 = P1^4;//个位 sbit a = P0^0; sbit b = P0^1; sbit c = P0^2; sbit d = P0^3; sbit e = P0^4; sbit f = P0^5; sbit g = P0^6; sbit p = P0^7;

//sbit key1 = P2^4; //sbit key2 = P2^5; //sbit key3 = P2^6; //sbit key4 = P2^7;

uchar code N[10] = {0xC0, 0xf9 ,0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; //共阳极

22

沈阳农业大学科学技术学院本科毕业设计 段码0, 1, 2, 3, ...8, 9

/****************独立按键处理函数************************/ void key() {

static uchar key_new = 0,key_old = 0,key_value = 0; if(key_new == 0) //按键松开 { if((key_io & 0x07) == 0x07) key_value ++; else key_value = 0; if(key_value >= 5) //按键松开松手检测 { key_value = 0; key_new = 1; //按键松开后进入等待按键状态 } } else { if((key_io & 0x07) != 0x07) //按键按下 key_value ++; else key_value =0; if(key_value >= 5) //按键按下消抖 { key_value = 0; key_new = 0; //按键松开后进入等待松开按键状态 } }

key_can = 20;

if((key_new == 0) && (key_old == 1)) { switch(key_io & 0x07) { case 0x06: key_can = 1; break; //得到按键值 case 0x05: key_can = 2; break; //得到按键值 case 0x03: key_can = 3; break; //得到按键值 } }

key_old = key_new; }

23

沈阳农业大学科学技术学院本科毕业设计

/*************定时器0初始化程序***************/ void time_init() {

EA = 1; //开总中断

TMOD = 0X01; //定时器0工作方式1 ET0 = 1; //开定时器0中断 TR0 = 1; //允许定时器0定时 }

uchar flag_alarm ; //报警标志位 uchar flag_bufang ; //布防标志位 uchar flag_yanwu; uchar flag_wendu;

uchar flag_bufang_en ; //布防标志位使能 uint flag_value; //用做定时器的变量

/******************红外报警处理**********************/ void hongwai_dis() {

if(flag_alarm == 1) //报警 { red = ~red; //红灯报警 beep = ~beep; //蜂鸣器报警 }

if(flag_bufang_en == 1) //准备开始布防 { green = ~green; //绿灯闪 }

if(flag_bufang == 1) //确认布防 { green = 0; //如果延时布防成功 绿灯长亮 if(hw == 1) //红外有输出 { flag_alarm = 1; } } }

24

沈阳农业大学科学技术学院本科毕业设计 /******************对应不同按键处理**********************/ void key_with() {

if(key_can == 1) //按键紧急报警 { flag_alarm = 1; //报警标志位 ; }

if(key_can == 2) //布防按键 { flag_bufang_en = 1; }

if(key_can == 3) //取消报警 把变量清零 { flag_alarm = 0; flag_bufang = 0; flag_bufang_en = 0; flag_value = 0; P2 = 0xff; } }

/******************主程序**********************/ void main() {

// time_init(); while(1) {

// key(); if(yaokong1==1) { if(flag_alarm==0&&flag_yanwu==0&&flag_wendu==0) { S1=S2=S3=S4=0; P0=N[0]; } if(hw == 1) {

25

沈阳农业大学科学技术学院本科毕业设计

flag_alarm = 1; }

if(flag_alarm==1) { S1=S2=S3=S4=0; P0=N[1]; red = ~red; //红灯报警 beep = ~beep; //蜂鸣器报警 // beep = ~beep; }

if(yw==0) { flag_yanwu=1; }

if(flag_yanwu==1) { S1=S2=S3=S4=0; P0=N[2]; yellow=~yellow; beep =~beep;

} if(gw==0) { flag_wendu=1; } if(flag_wendu==1) { S1=S2=S3=S4=0; P0=N[4]; green=~green; beep=~beep; } }

if(yaokong2==1) { flag_alarm=0; flag_yanwu=0; flag_wendu=0; // RST=1;

26

沈阳农业大学科学技术学院本科毕业设计 S1=S2=S3=S4=1; red=1; yellow=1; green=1; beep = 1; }

// yellow = ~hw; //红外热释电指示灯 有输出就亮黄灯 // if(key_can < 10) // { // key_with(); //按键设置函数 // }

// if(flag_300ms == 1) // { // flag_300ms = 0; // hongwai_dis(); //红外报警函数 // } } }

/*************定时器0中断服务程序***************/ void time0_int() interrupt 1 {

static uint value; TH0 = 0x3c;

TL0 = 0xb0; // 50ms value ++;

if(value % 6 == 0) { flag_300ms = 1; }

if(flag_bufang_en == 1) { flag_value ++; if(flag_value >= 600) //30秒 { flag_bufang = 1; flag_bufang_en = 0; flag_value = 0; } } }

27

沈阳农业大学科学技术学院本科毕业设计

为了进一步调试烟雾传感器模块,编译了如下测试程序。

/******************************************************************** 说明:1、 当测量浓度大于设定浓度时,单片机IO口输出低电平

*********************************************************************/ #include //库文件

#define uchar unsigned char//宏定义无符号字符型 #define uint unsigned int //宏定义无符号整型

/******************************************************************** I/O定义

*********************************************************************/ sbit LED=P1^0; //定义单片机P1口的第1位 (即P1.0)为指示端

sbit DOUT=P2^0; //定义单片机P2口的第1位 (即P2.0)为传感器的输入端 /******** 延时函数***********************************/ void delay()//延时程序 {

uchar m,n,s;

for(m=20;m>0;m--) for(n=20;n>0;n--) for(s=248;s>0;s--); }

/********主函数************************************/ void main() { while(1) //无限循环 { LED=1; //熄灭P1.0口灯 if(DOUT==0)//当浓度高于设定值时 ,执行条件函数 { delay();//延时抗干扰 if(DOUT==0)//确定 浓度高于设定值时 ,执行条件函数 { LED=0; //点亮P1.0口灯 } } } }

/*******结束*****************************/

28

沈阳农业大学科学技术学院本科毕业设计 附录C 实物图

图C1 实物图

29

本文来源:https://www.bwwdw.com/article/o796.html

Top