找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 166292|回复: 5
打印 上一主题 下一主题
收起左侧

基于单片机的火灾报警系统毕业设计(论文)下载

  [复制链接]
跳转到指定楼层
楼主

    毕业设计(论文)




题    目:基于单片机的火灾报警系统设计

学    院:       电子信息学院        

专业班级:电气工程及其自动化2010级2班

指导教师:XXXX职称:助理工程师

学生姓名:XXXXXX

学    号:   41003040XXX




西安工程大学本科毕业设计(论文)



摘 要

随着经济与技术的迅速发展,火灾成为当今世界各国人民所面临的一个共同的灾难性问题。它给人类社会造成严重的生命、财产损失,为了避免火灾和减少火灾所造成的损失,预防和监测成为重中之重。良好的监控系统和及时的报警机制可以大大降低人员的伤亡,为社会减少不必要的损失。监控系统中各种传感器的使用越来越多。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。
    为了提高对传感器的认识和了解,尤其是对火灾监测相关传感器的深入研究以及其用法与用途的了解,基于实用、广泛和典型的原则而设计了本系统。本文利用单片机结合传感器技术以及无线传输技术而开发设计了这一火灾监控系统。
    本文是以单片机技术和无线传输技术为核心并与其他电子技术相结合, 设计而出的一种技术水平较好的火灾报警系统。以烟雾传感器、火焰传感器、温度传感器监测环境状态,将监测信息发送至单片机,单片机对数据处理之后在LCD1602液晶上显示,并通过无线传输模块传送监测数据,在接受测将数据与预设值对比,超出范围则进行声光报警。
以STC89C52单片机和NRF24L01无线传输模块为核心设计的火灾报警器可实现声光报警、温度显示等功能。是一种结构简单、性能稳定、使用方便、价格低廉、智能化的火灾报警器。具有一定的实用价值。


目  录

第1章 绪 论
1.1 目的和意义
1.2 研究概况及发展现状
1.3 本系统主要研究内容
第2章 总体方案论证与设计
2.1主控模块的选型和论证
2.2显示模块的选型和论证
2.3温度检测模块的选型和论证
2.4 无线传输模块的选型和论
2.5系统整体设计概述
第3章 系统硬件电路设计
3.1主控模块
3.1.1 STC89C52单片机主要特性
3.1.2 STC89C52单片机的中断系统
3.1.3 单片机最小系统设计
3.2 LCD液晶显示器简介
3.2.1 液晶原理介绍
3.2.2液晶模块简介
3.2.3液晶显示部分与STC89C52的接口
3.3无线传输模块简介
3.3.1模块性能及特点
3.3.2 NRF24L01应用领域
3.3.3 NRF24L01技术参数
3.3.4 NRF24L01工作方式及工作原理
3.4声光报警模块设计
3.4.1蜂鸣器报警
3.4.2灯光报警
3.5温度检测模块设计
3.5.1温度传感器工作原理
3.5.2 DS18B20使用中的注意事项
3.5.3 DS18B20硬件电路设计
3.6烟雾传感器模块介绍
3.6.1烟雾检测报警器设计思路
3.6.2 MQ-2型烟雾传感器的工作原理
3.7 火焰传感器模块介绍
3.7.1火焰传感器用途
3.7.2火焰传感器模块特
3.7.3火焰传感器模块使用
3.6.3 MQ-2型传感器的特性
3.8电源稳压模块设计
3.8.1 5V电源稳压
3.8.2 3.3V电源稳压
第4章 系统软件设计
4.1系统软件设计
4.1.1主程序设计
4.1.2传感器程序设计
4.1.3无线传输程序设计
4.2程序设计原理
第5章 系统调试
5.1硬件调试
5.2软件调试
5.3调试结果
第6章 结论与展望
参考文献
附  录
系统整体原理图
系统源程序
发送侧部分程序
接受测部分程序
致  谢

第1章 绪 论

1.1 目的和意义
随着科技的发展,越来越多的火灾隐患由于工业生产和人们的日常生活而产生。为了早期发现和通报火灾,防止和减少火灾危害,保护人身和财产安全,保卫社会主义现代化建设,防止火灾引起燃烧、爆炸等事故,造成严重的经济损失,甚至危及生命安全。
为了减少这类事故的发生,就必须对烟雾、温度以及火光进行现场实时检测,采用先进可靠的安全检测仪表严密监测,及早发现事故隐患,采取有效措施,避免事故发生,才能确保工业安全和家庭生活安全。因此,研制火灾报警器就成为传感器技术发展领域的一个重要课题。
1.2 研究概况及发展现状
探测器朝新探测技术的发展进一步拓展了火灾检测的应用领域,为一些传统检测技术无法胜任的环境提供了有效的手段。相关技术的发展,如傅立叶近红外光谱技术弱信号处理技术、低功耗MCU技术进一步促进了传统探测技术的改进,使得传统探测器在技术和性能上有了显著的提高。火灾着极早期探测、多传感器复合探测和探测器小型化、智能化的方向发展迈出了更快的步伐。
近几年来,单片机已逐步深入应用到工农业生产各部门及人们生活的各个方面。各种类型的单片机也根据社会的需求而开发出来。单片机是器件级计算机系统,实际上它是一个微控制器或微处理器。由于它功能齐全,体积小,成本低,因此它可以应用到任何电子系统中去,同样,它也可以广泛应用于报警技术领域,使各类报警装置的功能更加完善,可靠性大大提高,以满足社会发展的需要。
我国火灾报警系统起步较发达国家晚几十年,从上世纪 70 年代我国才开始研制生产火灾报警系统产品。进入80年代后,国内主要厂家也多是模仿国外产品,或是引进国外技术进行生产,没有真正意义上的核心技术,并且市场也刚刚开始发育。火灾报警产品真正发展是在 90 年代以后,随着政府逐渐开放国门,国外企业开始大量进入中国消防市场,带来先进技术的同时也促进了市场的成熟。这时期,我国生产火灾报警产品的企业也得到了快速发展,部分企业进行了合资生产、技术合作,取得了不菲的成绩,也造就了现今市场上许多有实力的商家,部分技术已接近或赶上了国际水平。
1.3 本系统主要研究内容
本系统设计制作一个基于单片机的火灾报警器。包括有以下几种功能:
              (1)由检测模块检测温度值、烟雾信号和火光信号并通过24L01无线传输模块收发。
(2)单片机读取接收到的烟雾传感器电位变化获取烟雾信息并在LCD1602上进行显示。
(3)单片机读取接收到的火焰传感器电位变化获取火光信息并在LCD1602上实时显示。
(4)通过温度传感器实时监测环境温度并在液晶显示屏上实时显示。
(5)单片机将接收数据与预设值比较判定,若超出预设范围则驱动报警电路进行声光报警。


第2章 总体方案论证与设计
              根据所要实现的功能划分,系统一共需要以下几个模块:主控模块、显示模块、检测模块和无线传输模块和声光报警模块,以下就针对这几个模块的选型和论证进行讨论。
2.1主控模块的选型和论证
方案一:
              采用MSP430系列单片机,该单片机是TI公司1996年开始推向市场的一种16位超低功耗的混合信号处理器。其内部集成了很多模拟电路、数字电路和微处理器,提供强大的功能。不过该芯片昂贵不适合一般的设计开发。
方案二
              采用51系列的单片机,该单片机是一个高可靠性,超低价,无法解密,高性能的8位单片机,32个IO口,且STC系列的单片机可以在线编程、调试,方便地实现程序的下载与整机的调试。
因此选用方案二中的51系列单片机作为主控芯片。
2.2显示模块的选型和论证
方案一:
              采用LED数码管动态扫描,LED数码管价格虽适中,对于显示数字也最合适,而且采用动态扫描法与单片机连接时,占用单片机口线少。但是由于数码管动态扫描需要借助74LS164移位寄存器进行移位,该芯片在电路调试时往往有很多障碍,所以不采用LED数码管作为显示。
方案二:
              采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,对于本设计而言一个LCD1602的液晶显示屏即可,价格也还能接受,需要的接口线较多,但会给调试带来诸多方便。
所以本设计中方案二中的LCD1602液显示屏作为显示模块。
2.3温度检测模块的选型和论证
方案一:
AD590是美国ANALOG DEVICES公司的单片集成两端感温电流源,其输出电流与绝对温度成比例。在4 V至30 V电源电压范围内,该器件可充当一个高阻抗、恒流调节器,调节系数为1 μA/K。片内薄膜电阻经过激光调整,可用于校准器件,使该器件在298.2K (25°C)时输出298.2 μA电流。由于该芯片输出为模拟量还同时需要AD转换器对其进行采集。因此不适用于本设计。
方案二:
              DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
因此本设计采用方案二中的DS18B20芯片进行温度采集。
2.4 无线传输模块的选型和论
方案一:
NRF905是美国Nordic VLSI公司设计而成,体积小,传输距离远,同时抗干扰能力强,通信稳定,且为微功率模块。
方案二:
NRF24L01具有NRF905基本特点,并且成本更低,编程更加容易。            
因此本设计选择方案二中的NRF24L01模块进行无线传输。
2.5系统整体设计概述
本系统以单片机为控制核心,对系统进行初始化,主要完成对火光、烟雾信号的采集、液晶显示、测温且由无线收发模块传输采集数据等功能的控制,起到总控和协调各模块之间工作的作用。
根据以上设计需要,系统拟采用以下技术方案,系统的结构框图如下图所示。

图2-1 发送侧系统结构框图

图2-2 接收侧系统结构框图

系统由STC89C52,LCD1602,火焰传感器,烟雾传感器, DS18B20等组成,系统由两部分组成分别是火灾检测部分和火灾报警部分,通过调整烟雾传感器的灵敏度来控制烟雾浓度的上限值,通过程序设定温度值的上限,当超过浓度后,或者温度超过后,单片机会进行声光报警。

第3章 系统硬件电路设计
3.1主控模块
主控模块模块在整个系统中起着统筹的作用,需要检测键盘,时间检测、烟雾浓度检测、语音报警等功能,同时驱动液晶显示相关参数,在这里我们选用了51系列单片机中的STC89C52单片机作为系统的主控芯片。
51系列单片机最初是由Intel 公司开发设计的,但后来Intel 公司把51 核的设计方案卖给了几家大的电子设计生产商,譬如SST、Philip、Atmel 等大公司。因此市面上出现了各式各样的均以51 为内核的单片机。这些各大电子生产商推出的单片机都兼容51 指令、并在51 的基础上扩展一些功能而内部结构是与51一致的。
STC89C52有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。STC89C52的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。
STC89C52单片机的基本组成框图见图3-1。

图3-1 STC89C52单片机结构图

3.1.1 STC89C52单片机主要特性
1. 一个8 位的微处理器(CPU)。
2. 片内数据存储器RAM(128B),用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89 系列单片机最多提供1K 的RAM。
3. 片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31 等。目前单片机的发展趋势是将RAM 和ROM 都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。SST 公司推出的89 系列单片机分别集成了16K、32K、64K Flash 存储器,可供用户根据需要选用。
4. 四个8 位并行I/O 接口P0~P3,每个口既可以用作输入,也可以用作输出。
5. 两个定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的52 系列单片机都会提供3 个16 位定时器/计数器。
6. 五个中断源的中断控制系统。现在新推出的单片机都不只5 个中断源,例如SST89E58RD 就有9 个中断源。
7. 一个全双工UART(通用异步接收发送器)的串行I/O 口,用于实现单片机之间或单机与微机之间的串行通信。
8. 片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率为12MHz。SST89V58RD 最高允许振荡频率达40MHz,因而大大的提高了指令的执行速度。

图3-2 STC89C52单片机管脚图

部分引脚说明:
1.时钟电路引脚XTAL1 和XTAL2:
XTAL2(18 脚):接外部晶体和微调电容的一端;片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。
要检查振荡电路是否正常工作,可用示波器查看XTAL2 端是否有脉冲信号输出。
XTAL1(19 脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。
2.控制信号引脚RST,ALE,PSEN 和EA:
RST/VPD(9 脚):RST 是复位信号输入端,高电平有效。当此输入端保持备用电源的输入端。当主电源Vcc 发生故障,降低到低电平规定值时,将+5V 电源自动两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。RST 引脚的第二功能是VPD,即接入RST 端,为RAM 提供备用电源,以保证存储在RAM 中的信息不丢失,从而合复位后能继续正常运行。
ALE/PROG(30 脚):地址锁存允许信号端。当8051 上电正常工作后,ALE 引脚不断向外输出正脉冲信号,此频率为振荡器频率fOSC 的1/6。CPU 访问片外存储器时,ALE 输出信号作为锁存低8 位地址的控制信号。
平时不访问片外存储器时,ALE 端也以振荡频率的1/6 固定输出正脉冲,因而ALE 信号可以用作对外输出时钟或定时信号。如果想确定8051/8031 芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出。如有脉冲信号输出,则8051/8031 基本上是好的。
ALE 端的负载驱动能力为8 个LS 型TTL(低功耗甚高速TTL)负载。
此引脚的第二功能PROG 在对片内带有4KB EPROM 的8751 编程写入(固化程序)时,作为编程脉冲输入端。
PSEN(29 脚):程序存储允许输出信号端。在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引肢接EPROM的OE 端(见后面几章任何一个小系统硬件图)。PSEN 端有效,即允许读出EPROM/ROM 中的指令码。PSEN 端同样可驱动8 个LS 型TTL 负载。要检查一个8051/8031 小系统上电后CPU 能否正常到EPROM/ROM 中读取指令码,也可用示波器看PSEN 端有无脉冲输出。如有则说明基本上工作正常。
EA/Vpp(31 脚):外部程序存储器地址允许输入端/固化编程电压输入端。当EA 引脚接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的指令,但当PC(程序计数器)的值超过0FFFH(对8751/8051 为4K)时,将自动转去执行片外程序存储器内的程序。输入信号EA 引脚接低电平(接地)时,CPU 只访问外部EPROM/ROM 并执行外部程序存储器中的指令,而不管是否有片内程序存储器。对于无片内ROM 的8031或8032,需外扩EPROM,此时必须将EA 引脚接地。此引脚的第二功能是Vpp 是对8751 片内EPROM固化编程时,作为施加较高编程电压(一般12V~21V)的输入端。
3.输入/输出端口P0/P1/P2/P3:
P0口(P0.0~P0.7,39~32 脚):P0口是一个漏极开路的8 位准双向I/O口。作为漏极开路的输出端口,每位能驱动8 个LS 型TTL 负载。当P0 口作为输入口使用时,应先向口锁存器(地址80H)写入全1,此时P0 口的全部引脚浮空,可作为高阻抗输入。作输入口使用时要先写1,这就是准双向口的含义。在CPU 访问片外存储器时,P0口分时提供低8 位地址和8 位数据的复用总线。在此期间,P0口内部上拉电阻有效。
P1口(P1.0~P1.7,1~8 脚):P1口是一个带内部上拉电阻的8 位准双向I/O口。P1口每位能驱动4 个LS 型TTL 负载。在P1口作为输入口使用时,应先向P1口锁存地址(90H)写入全1,此时P1口引脚由内部上拉电阻拉成高电平。
P2口(P2.0~P2.7,21~28 脚):P2口是一个带内部上拉电阻的8 位准双向I/O口。P口每位能驱动4个LS 型TTL 负载。在访问片外EPROM/RAM 时,它输出高8 位地址。
P3口(P3.0~P3.7,10~17 脚):P3口是一个带内部上拉电阻的8 位准双向I/O口。P3口每位能驱动4个LS型TTL负载。P3口与其它I/O 端口有很大的区别,它的每个引脚都有第二功能,如下:
P3.0:(RXD)串行数据接收。
P3.1:(RXD)串行数据发送。
P3.2:(INT0#)外部中断0输入。
P3.3:(INT1#)外部中断1输入。
P3.4:(T0)定时/计数器0的外部计数输入。
P3.5:(T1)定时/计数器1的外部计数输入。
P3.6:(WR#)外部数据存储器写选通。
P3.7:(RD#)外部数据存储器读选通。
3.1.2 STC89C52单片机的中断系统
STC89C52系列单片机的中断系统有5个中断源,2个优先级,可以实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;由中断优先级寄存器IP安排各中断源的优先级;同一优先级内各中断同时提出中断请求时,由内部的查询逻辑确定其响应次序。
在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定时扫描等;也经常要对外部事件进行计数。STC89C52单片机内集成有两个可编程的定时/计数器:T0和T1,它们既可以工作于定时模式,也可以工作于外部事件计数模式,此外,T1还可以作为串行口的波特率发生器。
3.1.3 单片机最小系统设计

图3-3 单片机最小系统电路图

              图3-3为单片机最小系统电路图,单片机最小系统有单片机、时钟电路、复位电路组成,时钟电路选用了12MHZ的晶振提供时钟,作用为给单片机提供一个时间基准,其中执行一条基本指令需要的时间为一个机器周期,单片机的复位电路,按下复位按键之后可以使单片机进入刚上电的起始状态。图中10K排阻为P0口的上拉电阻,由于P0口跟其他IO结构不一样为漏极开路的结构,因此要加上拉电阻才能正常使用。
3.2 LCD液晶显示器简介
由于本设计中要求显示界面显示一些参数,因此这里选用了LCD1602作为界面显示,可以把一些相关的参数进行显示。
3.2.1 液晶原理介绍
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。
显示接口用来显示系统的状态,命令或采集的电压数据。本系统显示部分用的是LCD液晶模块,采用一个16×2的字符型液晶显示模块。
点阵图形式液晶由 M 行×N 列个显示单元组成,假设 LCD 显示屏有64行,每行有 128列,每 8列对应 1 个字节的 8 个位,即每行由 16 字节,共 16×8=128个点组成,屏上 64×16 个显示单元和显示 RAM 区 1024 个字节相对应,每一字节的内容和屏上相应位置的亮暗对应。一个字符由 6×8 或 8×8点阵组成,即要找到和屏上某几个位置对应的显示 RAM区的 8 个字节,并且要使每个字节的不同的位为‘1’,其它的为‘0’,为‘1’的点亮,为‘0’的点暗,这样一来就组成某个字符。但对于内带字符发生器的控制器来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在LCD 上开始显示的行列号及每行的列数找出显示 RAM对应的地址,设立光标,在此送上该字符对应的代码即可。
3.2.2液晶模块简介
LCD1602液晶模块采用HD44780控制器,hd44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的对应关系, CGRAM是为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写入IR,则IR自动把地址码装入AC,同时选择DDRAM或CGRAM,LCD1602液晶模块的引脚图如图3-4所示。

图3-4 LCD1602引脚图

LCD1602引脚接口说明:
第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。
3.2.3液晶显示部分与STC89C52的接口
如图3-5所示。用STC89C52的P0口作为数据线,用P2.2、P2.3、P2.7分别作为LCD的RS 、RW、EN。其中EN是下降沿触发的片选信号,RW是读写信号,RS是寄存器选择信号本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为8位,显示行数为1行,字型为5×7点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。向LCD的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示.首先取一个要显示的字符或数据送到LCD的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据。

图3-5 LCD1602与STC89C52的接口

3.3无线传输模块简介
              本设计的核心是通过无线收发模块NRF24L01发送检测到的数据,并在接收端进行实时显示,在火灾发生时进行声光报警。NRF24L01 是一款工作在2.4~2.5GHz 世界通用ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockBurstTM 模式控制器、功率放大器、晶体振荡器、调制器、解调器。输出功率、频道选择和协议的设置可以通过SPI 接口进行设置。它具有极低的电流消耗:当工作在发射模式下发射功率为-6dBm 时电流消耗为9mA,接收模式时为12.3mA。掉电模式和待机模式下电流消耗更低。
3.3.1模块性能及特点
(1)2.4GHz全球开放ISM频段免许可证使用;
(2最高工作速率2Mbps,高效GFSK调制,抗干扰能力强,特别适合工业控制场合;     
(3)125频道,满足多点通信和跳频通信需要;   
(4)内置硬件CRC 检错和点对多点通信地址控制 ;
(5)低功耗1.9-3.6V工作,待机模式下状态为22uA;掉电模式下为900nA ;
(6)模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件编程非常方便;
(7)标准 5*2 DIP间距接口,便于嵌入式应用 ;
(8)工作于 Enhanced Shock Burst,具有可选的内置包应答机制,极大的降低丢包率;
(9)NRF24L01配PCB内置天线,无阻挡传输距离20-50米。
(10)与51系列单片机P0口连接时候,需要加10K的上拉电阻,与其余口连接不需要。
(11)其他系列的单片机,如果是5V的,请参考该系列单片机IO口输出电流大小,如果超过10mA,需要串联电阻分压,否则容易烧毁模块。如果是3.3V的,可以直接和RF24L01模块的IO口线连接。比如AVR系列单片机如果是5V的,一般串接2K的电阻。

图3-6 无线传输模块原理图

3.3.2 NRF24L01应用领域
无线鼠标,键盘,游戏机操纵杆,无线数据通讯,无线门禁,安防系统,遥控装置,遥感勘测,智能运动设备,工业传感器,玩具。
3.3.3 NRF24L01技术参数

表3-1  NRF24L01快速参考数据

参数

数值

单位

最低供电电压

1.9

V

最大发射频率

0

dBm

最大数据传输率

2000

kbps

发射模式下电流消耗(0dBm)

11.3

mA

接收模式下电流消耗(2000kbps)

12.3

mA

温度范围

-40~+85

数据传输率为1000kbps下的灵敏度

-85

dBm

掉电模式下的电流消耗

900

nA

3.3.4 NRF24L01工作方式及工作原理
NRF2401有工作模式有四种:发送模式,接受模式,空闲模式,掉电模式。工作模式由PWR_UP register 、PRIM_RX register 和CE 决定,详见表3-2。

表3-2  NRF24L01工作模式

模式

PWR_UP

PRIM_RX

CE

FIFO寄存器状态

接受模式

1

1

1

--

发送模式

1

0

1

数据在TX FIFO寄存器中

发送模式

1

0

1→0

停留在发送模式,直至数据发完

空闲模式Ⅱ

1

0

1

TX FIFO为空

空闲模式Ⅰ

1

--

0

无数据传输

掉电模式

0

--

--

--

工作原理:发射数据时,首先将NRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入NRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么NRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便再次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则NRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。
接收数据时,首先将NRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则NRF24L01进入空闲模式1。
3.4声光报警模块设计
安全情况下,三色灯熄灭,喇叭无声;一旦监测到发生火灾,即触发报警器进入报警状态,三色灯循环闪烁,喇叭发出警报声。
3.4.1蜂鸣器报警
声音报警电路如下图所示。由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。声报警电路由单片机的P20引脚进行控制,当P2.0输出的电平为低电平时,三极管导通,蜂鸣器的电流形成回路,发出声音报警;否则,三极管截止,蜂鸣器不发出声音。

图3-7 蜂鸣器报警电路

3.4.2灯光报警
光报警电路路如图3.5,由单片机的P2.1、P3.4、P3.5口进行控制,分别控制3个发光二极管,予以光报警,如图所示。当监测到火灾发生时,单片机控制的三个端口循环依次输出低电平时,对应的信号灯便会循环闪烁发出光报警。

图3-8 灯光报警电路

3.5温度检测模块设计
              本设计还带有一个温度检测的功能,系统可以通过读取DS18B20的温度数据并在LCD1602上显示,当系统监测到火灾发生时,会驱动声光报警系统报警。
3.5.1温度传感器工作原理
DALLAS 最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55~+125摄氏度,可编程为9位~12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3 根或2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
DS18B20有4个主要的数据部件:
a. 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
b. DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以 0.0625℃/LSB形式表达,其中S为符号位。
c. DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器 TH、TL和结构寄存器。
d. 配置寄存器。
DS18B20内部结构及功能:
DS18B20的内部结构如图3-15所示。主要包括:寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分。

图3-10  DS18B20内部结构

3.5.2 DS18B20使用中的注意事项
DS18B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:
1)DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示85。
2)在实际使用中发现,应使电源电压保持在5V 左右,若电源电压过低,会使所测得的温度精度降低。
3)较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。
4)在DS18B20的有关资料中均未提及单总线上所挂DS18B20 数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此,当单总线上所挂DS18B20 超过8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
5)在DS18B20测温程序设计中,向DS18B20 发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20 接触不好或断线,当程序读该DS18B20 时,将没有返回信号,程序进入死循环,这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。
3.5.3 DS18B20硬件电路设计

图3-11 DS18B20温度检测电路设计

图3-16为DS18B20的硬件设计电路图,其中DQ口为该芯片的数据口,单片机通过读取改口的信息可以得出实时的温度值,由于DS18B20是单线通信,即发送和接收都是通过通信脚来进行。其接收时高阻输入,其发送时是开漏输出,即输出0时通过三极管下拉为低电平,而输出1时,则为高阻,需要外接上拉电阻将其拉为高电平,因此是需要外接上拉电阻,否则无法输出1。
3.6烟雾传感器模块介绍
3.6.1烟雾检测报警器设计思路
此次设计是针对于单片机原理及其应用展开的。其中包含了大学四年中所学到的相关知识,运用所学的传感器技术,单片机技术去设计基于单片机的烟雾报警系统。烟雾报警器的最基本组成部分包括:烟雾传感电路、模数转换电路、单片机控制电路。单片机紧紧联系着传感器和报警电路设备,给烟雾报警器设定一个值,当外界环境达到预先设定的数值时,烟雾传感器把被测的物理量作为输入参数,转换为电量输出。为了简化整个系统的设计在本设计中不采用前置放大器而是选择数值符合A/D转换器的输入等级。模数转换电路将从烟雾传感电路送出的模拟信号转换成单片机可识别的数字信号后送入单片机。这里选择单片机的P1.0为输入方式,接收到信号的单片机经过程序的设定会由P2.0作为单片机的输出电路,单片机对该数字信号进行滤波处理,并对处理后的数据进行分析,是否大于或等于某个预设值,如果大于则启动报警电路发出报警声音,反之则为正常状态。烟雾传感器及单片机是可燃烟雾检测报警器的两大核心,根据报警器功能的需要,选择合适、精确、经济的烟雾传感器及单片机芯片是至关重要的。
3.6.2 MQ-2型烟雾传感器的工作原理
半导体烟雾传感器包括用氧化物半导体陶瓷材料作为敏感体制作的烟雾传感器以及用单晶半导体器件制作的烟雾传感器。按敏感机理分类,可分为电阻型和非电阻型。半导体气敏元件也有N型和P型之分。N型在检测时阻值随烟雾浓度的增大而减小;P型阻值随烟雾浓度的增大而增大。
本设计中采用的MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体[7]。当处于200~300°C温度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒受到该烟雾的调制而变化,就会引起表而电导率的变化。利用这一点就可以获得这种烟雾存在的信息。

图3-12 烟雾传感器原理图

传感器在感烟时,当监测电离室遇到可燃烟雾时,原来吸附的氧脱附,而由可燃烟雾以正离子状态吸附在二氧化锡半导体表面;氧脱附放出电子,烟雾以正离子状态吸附也要放出电子,从而使二氧化锡半导体导带电子密度增加,电阻值下降[8]。而当空气中没有烟雾时,二氧化锡半导体又会自动恢复氧的负离子吸附,使电阻值升高到初始状态。
3.7 火焰传感器模块介绍
火焰传感器是专门用来检测火源的传感器,当然火焰传感器也可以用来检测光线的亮度,只是本传感器对火焰特别灵敏。火焰传感器利用红外线对对火焰非常敏感的特点,使用特制的红外线接受管来检测火焰,然后把火焰的亮度转化为高低变化的电平信号,输入到中央处理器中,中央处理器根据信号的变化做出相应的程序处理。
3.7.1火焰传感器用途
各种火焰、火源探测。
3.7.2火焰传感器模块特
1.可以检测火焰或者波长在760纳米~1100纳米范围内的光源,打火机测试火焰2.距离为80cm,对火焰越大,测试距离越远;
3.探测角度60度左右,对火焰光谱特别灵敏;
4.灵敏度可调;
5.比较器输出,信号干净,波形好,驱动能力强,超过15mA;
6.配电位器调节灵敏度;
7.工作电压3.3V-5V;
8.输出形式 :数字开关量输出(0和1);
9.使用宽电压LM393比较器;
3.7.3火焰传感器模块使用
1.火焰传感器对火焰最敏感,对普通光也是有反应的,一般用做火焰报警等用途;
2.小板输出接口可以与单片机IO口直接相连;
3.传感器与火焰要保持一定距离,以免高温损坏传感器。

图3-13火焰传感器原理图

火焰传感器利用红外线对火焰非常敏感的特点,使用特制的红外线发射管来检测火焰,然后把火焰的亮度转化为高低变化的电平信号,输入到单片机,单片机根据信号的变化做出相应的程序处理。
3.6.3 MQ-2型传感器的特性
a、MQ-2型传感器的主要特点
MQ-2型传感器主要有三个特点:
(1)对天然气、液化石油气等烟雾有很高的灵敏度,尤其对烷类烟雾更为敏感。
(2)具有良好的重复性和长期的稳定性。初始稳定,响应时间短,长时间工作性能好。
(3)具有良好的抗干扰性,可准确排除有刺激性非可燃性烟雾的干扰信息,例如酒精和烟雾等。

b、MQ-2型传感器的基本特性

MQ-2型传感器的基本特性包括灵敏度特性、初期稳定特性、加热特性。
(1)灵敏度特性:烟雾传感器在最佳工作条件下,接触同一种烟雾,其电阻值RS随气体浓度变化的特性称之为灵敏度特性,用K表示。K=RS / R0 (2-1)式中,R0为烟雾传感器洁净空气条件下的电阻值[9],RS为烟雾传感器在一定浓度的检测烟雾中的电阻值 。
(2)初期稳定特性:半导体烟雾传感器在不通电状态存放一段时间后,再通电时,器件并不能立即投入正常工作。这是因为烟雾传感器中的二氧化锡在不通电的状态下会吸附空气中的水蒸气,当再次通电时需要预热几分钟使水蒸气蒸发后,气敏电阻才能正常工作。再通电工作时气敏电阻值达到稳定时所需要的时间,定义为初期稳定时间。一般情况下,不通电时间越长,初期稳定时间也越长,当不通电存放时间达到15天左右时,初期稳定时间一般需要5分钟左右。
(3)加热特性:半导体烟雾传感器一般要在较高的温度(200~450°C)下工作,所以需要对其加热。由于传感器一般工作在易燃易爆环境下,若加热丝直接与电源相接,当加热丝局部短路造成器件过热或放电时,可能引发事故。所以必须使用传感器生产厂家推荐的加热电压,使其工作在较安全的范围内。MQ-2型烟雾传感器加热电压为5±0.2V。当加热丝断路时,由于热惰性缘故,烟雾传感器的气敏特性并不立即消失,此时检测必出现较大的误差。为避免出现这种情况,并及时发现气敏元件的故障,需要设计加热丝故障诊断报警电路。
c、MQ-2型传感器的特性参数
(1)回路电压:(Vc) 5~24V
(2)取样电阻:(RL) 0.1~20K
(3)加热电压:(VH)5±0.2V
(4)加热功率:(P)约750mW
(5)灵敏度:以甲烷为例R0(air)/RS (0.1%CH4)>5
(6)响应时间:Tres<10秒
(7)恢复时间:Trec<30秒
3.8电源稳压模块设计
3.8.1 5V电源稳压
为了得到输出稳定的直流电压,经电源适配器输出的直流电压必须采取一定的稳压措施才能适合电子设备的需要。
本设计选用固定式三端稳压器。选用LM7805三端正电源稳压电路,输出稳定+5v电压。它有一系列固定的电压输出,应用非常的广泛。每种类型由于内部电流的限制,以及过热保护和安全工作区的保护,使它基本上不会损坏。如果能够提供足够的散热片,它们就能够提供大于1.5A的输出电流。虽然是按照固定电压值来设定的,但是当接入适当的外部器件后,就能获得各种不同的电压和电流。

图3-14 5V稳压电路图

LM7805具有如下特点:
(1)短路电流230mA,峰值电流2.2A,但是当输出电流超过1.5A时,就需要提供足够的散热片;
(2)输入电压极限值35v,输出电压典型值为5V,最大值5.25V;
(3)热过载保护;
(4)短路保护;
(5)输出晶体管安全工作区保护;
78xx系列在降压电路中应注意以下事项:
(1)输入输出压差不能太大,太大则转换效率急速降低,而且容易击穿损坏;
(2)输出电流不能太大,1.5A是其极限值。大电流的输出,散热片的尺寸要足够大,否则会导致高温保护或热击穿;
(3)输入输出压差也不能太小,大小效率很差。
其中,对于LM7805:1端为输入端,2端为公共端,3端为输出端。其中,正常时,输入与输出之间的电压不得低于1.5v。
电容104用于实现频率补偿,防止稳压器产生高频自激和抑制电路引入的高频干扰。
3.8.2 3.3V电源稳压
NRF24L01要求输入电压为1.9~3.6V,推荐电压为3.3V,因而本系统选用1117-3.3三端稳压器。电路图如下:

图3-15 3.3V稳压电路图



第4章 系统软件设计
4.1系统软件设计
4.1.1主程序设计
为了便于系统维护和功能扩充,采用了模块化程序设计方法,系统各个模块的具体功能都是通过子程序调用实现的。本系统主要包括主程序、温度数据采集子程序、烟雾数据采集子程序、火焰信号采集子程序、火灾判断与报警子程序等。主程序首先对液晶初始化,对无线传输模块进行配置,再验证无线传输是否正常,若正常则可对采集数据无线传输,相应延时之后,对采集数据进行更新,液晶进行显示。主程序的流程图如图4-1所示。

图4-1主程序流程图

4.1.2传感器程序设计
传感器程序设计流程图如图4-2所示。在主控程序完成初始化以后,传感器首先对环境状态进行采集,并将采集到的数据进行处理。程序对处理后的数据与当前设定的预警范围进行比较,当采集值超出这一预警范围后便会发出报警信号,主控程序对这一报警信号处理后发出声光报警信息。

图4-2 三种传感器程序流程图

4.1.3无线传输程序设计
无线模块之间进行通讯需要先对单片机进行相应的初始化,然后根据程序的处理要求进行实行。
      

图 4-3无线传输程序流程图


4.2程序设计原理            
软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。
软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等,另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。
软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。在各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。
各执行模块规划好后,就可以监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比较难了。
软件任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延误几十ms甚至几百ms也没关系,故通常将监控程序,显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断(如掉电中断)。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。

第5章 系统调试
5.1硬件调试
火灾报警器的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出现一处错误,就会对检测造成很大麻烦,而且电路的交线较多、焊点稠密,很容易造成短路现象。
在本火灾报警器的设计调试中遇到了很多的问题。回想这些问题只要认真都是可以避免的,以下为主要的问题:
(1)程序调试初期液晶一直没有正常显示。
解决:经调查发现液晶电路接线错误,修改之后,液晶显示正常。
(2)开始时程序下载后没有达到设计要求,不能报警。
解决:检查、修改报警模块电路接线,问题解决,达到了预设要求。
(3)无线模块不能正常收发。
解决:由于未焊接滤波电路,导致无法正常收发,补焊之后,可以正常运行。
5.2软件调试
火灾报警器是多功能的数字型设备,程序较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件调试方面的问题。在软件的调试过程中主要遇到的问题如下:
1.屏幕上只显示部分预设信息,其他显示位置不能正常显示。
解决:经过分析初步确认是液晶在显示时不能重复占用同一显示地址,否则会乱码,经过修改程序,最终显示正常。
2.硬件确认没有问题,但是无线模块还是不能正常收发数据。
解决:重新检查无线收发模块程序,对其程序作出调整、修改,使得无线模块正常收发数据。
5.3调试结果
经过一系列的问题查找后系统最终能正常工作,并完成所有的功能。调试结果如下图所示。

第6章 结论与展望
通过这次毕业设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。经过我长时间的设计及调试,本系统基本能实现预设要求。但由于初步设计未能考虑全面,烟雾和火焰信息只能在液晶上显示到电位变化。不足之处有:1.整体系统不够人性化,2.系统稳定性有待进一步提升。
我的综合设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获得了提高。首先,基本了解了电子产品的开发流程和所要做的工作。掌握了Proteus原理图绘制的方法。通过开发板的设计和硬件搭建的过程,使我对51系单片机的接口有了更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法。并且我学会了分析问题解决问题的能力,加深了对所学理论知识的理解和运用。我的动手能力得到了很大的提高,创新意识得到了锻炼。


参考文献

[1] 薛纪文等.C语言程序设计教程[M].北京:北京邮电大学出版社,2010年
[2] 康华光.电子技术基础[M].北京:高等教育出版社,2006年
[3] 阎石.数字电子技术基础[M].第五版.北京:高等教育出版社,2004年
[4] 温宗周.单片机原理及接口技术[M].北京:中国电力出版社,2009年
[5]赖寿宏.微型计算机控制技术[M].北京:机械工业出版社,2009年
[6] 李建忠.单片机原理及应用[M].西安:西安电子科技大学,2002年
[7] 韩志军等.单片机应用系统设计[M].北京:机械工业出版社,2004
[8] 周润景等. Proteus在MCS-51&ARM7系统中的应用百例[M].电子工业出版社,2006年
[9] 马忠梅等.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2006年
[10] 刘树中等.单片机和液晶显示驱动器串行接口的实现[J].微计算机信息,2007年
[11] V. Yu. Teplov,A. V. Anisimov.  Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier Effect[J] ,2002
[12]  Yeager Brent.How to troubleshoot your electronic scale[J].. Powder and Bulk Engineering. 1995
[13] Meehan Joanne,Muir Lindsey.SCM in Merseyside SMEs:Benefits and barriers[J]. TQM Journal. 2008


致  谢

本设计在卢嫚老师的悉心指导和严格要求下业已完成,从课题选择、方案论证到具体设计和调试,无不凝聚着卢老师的心血和汗水。在这四年的本科学习和生活期间,也始终感受着各位老师的精心指导和无私的关怀,我受益匪浅。本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业设计顺利完成,在此向电气系老师表示深深的感谢和崇高的敬意。


西安工程大学

本科毕业设计(论文)

诚信声明


禀承学校优良传统学风,保持我校学生一贯诚信风尚,本人郑重声明:所呈交毕业设计(论文)是在指导老师的指导下独立完成的,无抄袭和剽窃现象。

特此声明。



学生签名:

指导教师签名:

日  期:




附  录
系统整体原理图

系统源程序
发送侧部分程序:
  1. #include
  2. #include"24l01.h"
  3. #include"1602.h"
  4. #include"18b20.h"
  5. #include"delay.h"
  6. #include"sensor.h"
  7. void main(void)
  8. {
  9.               uchar i;
  10.               LCD_Init();
  11.               TX_Mode();
  12.               LCD_Str(0,0,"TX");
  13.               while(NRF24L01_Check())   //检测24L01
  14.               {
  15.                             LCD_Str(3,0,"Failed!");
  16.                             delay_ms(200);
  17.                             LCD_Str(3,0,"Check! ");
  18.                             delay_ms(200);
  19.               }
  20.               LCD_Str(3,0,"Ready! ");
  21.               delay_ms(500);                                                          //显示Ready! 500ms后清空显示
  22.               LCD_Str(3,0,"      ");
  23.               TX_Mode();
  24.               while(1)
  25.               {                           
  26.                             Check_Sensor_Sta( );
  27.                                                         for(i=15;i<18;i++)                                          //发送传感器信号
  28.                                           Buff[i]=SENSOR_STA[i-15]+0x30;
  29.                             Buff[i]='';
  30.                             for(i=0;i<8;i++)                                                           //发送温度数
  31.                             Buff[i]=str[i];                                                                                   
  32.                             Temp_Change(++i);                                         
  33.                             if(NRF24L01_TxPacket(Buff)==TX_OK)
  34.                             {
  35.                                           LCD_Str(12,1,"ok! ");
  36.                                           LCD_Str(3,0,"DO0:");
  37.                                           LCD_Str(0,1,"DO1:");
  38.                                           LCD_Str(6,1,"DO2:");
  39.                                           LCD_Char(7,0,Buff[15]);
  40.                                           LCD_Char(4,1,Buff[16]);
  41.                                           LCD_Char(10,1,Buff[15]);
  42.                             }
  43.                             else
  44.                             {
  45.                                           LCD_Str(12,1,"Fail");
  46.                             }
  47.                             delay_ms(30000);
  48.               }
  49. }
  50. 接受测部分程序
  51. #include
  52. #include"24l01.h"
  53. #include"1602.h"
  54. #include"delay.h"
  55. #include"warn.h"
  56. #define uint unsigned int
  57. uchar Buff[32];
  58. uchar Num[5];
  59. sbit LED0=P0^0;
  60. void Display_Num(uchar x,uchar y,uint num);
  61. void main(void)
  62. {
  63.               uint t;
  64.               LCD_Init();            
  65.               LCD_Str(0,0,"RX");
  66.               RX_Mode();
  67.               while(NRF24L01_Check())//检测不到24L01
  68.               {
  69.                             LCD_Str(3,0,"Failed!");
  70.                             delay_ms(200);
  71.                             LCD_Str(3,0,"Check! ");
  72.                             delay_ms(200);
  73.               }
  74.               LCD_Str(3,0,"Ready! ");
  75.               delay_ms(500);                           
  76.               LCD_Str(3,0,"                    ");
  77.               while(1)
  78.               {
  79.                             if(NRF24L01_RxPacket(Buff)==0)//一旦接收到信息,则显示出来.
  80.                             {
  81.                                           LCD_Str(9,1,"T:");
  82.                                           LCD_Str(3,0,"DO0:");                                         
  83.                                           LCD_Str(9,0,"DO1:");
  84.                                           LCD_Str(3,1,"DO2:");
  85.                                           LCD_Str(12,1,&Buff[9]);
  86.                                           LCD_Char(7,0,Buff[15]);
  87.                                           LCD_Char(13,0,Buff[16]);
  88.                                           LCD_Char(7,1,Buff[17]);
  89.               if(Buff[15]==48||Buff[16]==48||Buff[17]==48||Buff[9]>=4+0x30)
  90.                                           warn(2);
  91.                             }
  92.                             else delay_ms(1);               
  93.                             t++;
  94.                             if(t==100)//大约1s钟改变一次状态


  95. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

完整论文下载地址(word格式可编辑):



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:460726 发表于 2019-1-5 11:18 来自手机 | 只看该作者
楼主能发一下头文件吗?急用
回复

使用道具 举报

板凳
ID:460726 发表于 2019-1-7 21:03 来自手机 | 只看该作者
头文件能发一下吗,不然运行不出来
回复

使用道具 举报

地板
ID:481306 发表于 2019-3-16 22:20 | 只看该作者
感谢分享
回复

使用道具 举报

5#
ID:505520 发表于 2019-4-5 22:03 | 只看该作者
楼主最后做实物了吗
回复

使用道具 举报

6#
ID:642152 发表于 2019-11-22 20:33 | 只看该作者
LCD显示不了呀  温度烟雾传感器在工作。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表