2 系统总体方案设计
通过上一章的火灾报警器的研究确定了设计火灾报警器的必要性,本章是火灾报警器的总体方案设计,确定了设计火灾报警器的硬件方案。
2.1 设计要求
熟悉51单片机的开发环境,用C语言编写程序;
能够自主设计基于单片机的最小系统,并且设计与之相关的硬件电路;
了解51单片机的内部构造,对相关的硬件和软件可以进行调试;
理解并运用火灾报警实现方法和系统的原理。
2.2 方案选择和论证
2.2.1 单片机的选择
选择的是STC89C52单片机,STC89C52单片机内置40个外线引脚,32个双向(I/O)端口,内部包含2个外部中断连线接口,3个16位可编程计数器(TIME),2个非双向全双工串行通信口,2个读写口线。
(1)主要功能特性
兼容MCSC51指令系统;
8kbat可反复擦写Flash ROM;
32个双向I/O口;
256x8 bit内部RAM空间 ;
3个16位可编程定时/计数器中断;
(2)80C51单片机的引脚功能
MCS-51单片机包含40个引脚,为双直插电路,使用HMOS工艺
① 电源引脚
VCC(40脚),+5V接电源正;
GND(20脚),+5V接电源地;
② 外接晶体和外接振荡器
XTAL1(19脚),单片机内部输入口兼具放大器端口,连接外部振荡器时外接端口。
XTAL2(18脚),震荡时钟电路的输入端,直连外部振荡器输出端。
③ 控制信号线
RESET(9脚),复位信号输入端口。
ALE(30脚),地址锁存(IO)输入口,波长脉冲,采用EPROM编程,内部电流转化为直流脉冲输入。
PSEN(29脚),仅低电平有效。
EA(31脚),EA为高电平,访问内部存储器;EA为低电平时,访问外部存储器。
④ 多功能I/O口引脚
8051单片机内部配备4个双向I/O口;(P0、P1、P2、P3)其中:
P0口(32~39脚)——标准双向口(三态)。
P1口(1~8脚)——拟双向口(三态)。
P2口(21~28脚)——拟双向口(三态)。
P3口(10~17脚)——拟双向口(三态)。该接口可驱动4个LSTTL门电路。功能方面双功能口使用时可看作P1口;电路作为第二功能时,每一口门都有相对应用途。
2.2.2 显示方案的选择
显示器液晶协议是市面上运用最广的显示装置,它兼具多项目优点,低体积、重量轻、功耗低等特点。目前几乎是最宽广的便携式电子配件。
系统采用宽泛字符液晶模块1602,它包括2x16字符,在这些范围内包括英文字母、阿拉伯宽泛符、number等,自定义字符可以拼写一些简单的汉字。
日常常见的通信系统模式,液晶模块1602主要工作环境包括各种常用家庭或者公用环境,字符型显示装置包括number或者简单性字符。液晶显示屏主要是显示ASCII字符,字符型显示装置采用汉字库的液晶类型显示。显示汉字方式为,第一步开始做汉文或者图形子模数据,但是使用子模数据软件无法直提取数据5×8点阵的子模块,因此采用手工模具提取汉字。第二步,取得的汉字子模数据后直接在液晶存储器内存取。LED1602液晶板包含背光模式和非背光模式,基带控制器标准沿用欧洲HD44780,因此背光模式下数据也不相同。1602液晶引脚编号不同其功能也不相同。
2.3整体方案设计
2.3.1 系统概述
主该系统采用STC89C52单片机作为核心架构,排线结合电容电阻晶振元器件,完成单片机的最小系统。此外,烟雾采集模块采用MQ-2传感器,由于MQ-2输出信号为模拟信号,在此使用模数转换芯片ADC0832,转化芯片可以将模拟信号转化为数字信号传递到单片机;温度模块使用DS18B20数字化温度传感器,直接使用总线与单片机接口相连;显示模块配备LED1602液晶,实时监控烟雾浓度、外界温度、气体阀值等信息;报警模块选用蜂鸣器和LED板,LED显示器可对烟雾各项信息直观显示。本设计包括3个按键用与调节报警阀值预设值,更改状态信息,本电路采用USB 5V电压供电。
2.3.2 系统框图
2-1 系统框图2.4 最小系统电路
单片机STC89C52系统电路分区模块部一般分为三部,定义为晶振电路、复位电路、电源电路。
晶振电路内部配备2个电阻大小均为30pF的电容C2和C3,内部连接一个12M的晶振。为了使晶振能正常工作,需要保持电容大小范围为15-33pF。这是因为晶振优良的工作环境与温度值得大小在一定单位内成正比。起振状态需要电容器的协作,保持电路工作环境始终起振,内部单位晶振片应当靠近单片机。
单片机复位电路在系统通电后容易受到外界环境干扰,因此给电路配备了复位键,点击复位键整个系统清零并重新开始。复位电路包含一个10uF的电容C1和一个电阻为10K的外界R4。电容电压值大小受外界电压大小影响,由于电容在电压变化中电子流动缓慢因此立刻清除电压,外界系统通电后,RESET脚连接高电平电路,而更改外界的RC值大小,电路高电平会随着RC的更改同样连续变化。51单片机的RESET脚外接高电平时,一般电路一次复位仅需电流值改变两个周期即可。因此RC的取值可以影响到电路复位的周期。
电源方面采用直流直接供电方式,电压设定为5V,可采用电池或者其他便携式充电工具直接供电。
STC89C52外接一个10K的排阻R1与单片机PO口,所以P0口兼容执行双向I/O口功能。
STC89C52单片机能在高电平或者低电平下运行,单片机通电后有高电压电路和低电压电路2种模式。复位键执行内部ROM的0000H;外接电源接低电平,直接进行电源复位改为外部ROM的0000H执行。31脚(EA)需要接高电平,只有EA接高时,通电后的单片机才可以直接从内部读写执行。(图3-3为系统分区电路)如下图2-2所示:
图2-2 单片机最小系统
3 软件设计
3.1 程序语言及开发环境
区别于人类交流的语言,程序也有属于它自己的语言,作为程序汇编语言,C语言兼具高级语言(BASE)与编程语言作用。最早将C语言运用到程序框架是美国贝尔实验室的Dennis M. Ritchie教授于1972年提出并完成这一创举的。一经问世,在短短5年多的时间内,C语言汇编从单一的程序读写开始向大范围的电子计算机,微型计算机程序创造中发展。它如同人类语言读写一般,作为程序工作交流的纽带,基于C语言程序开发设计的系统,它不仅可以作为工作语言,编写基于系统开发运行应用程序,而且可作为应用程序设计汇编语言,即使脱离计算机硬件的应用程序仍能正常运行,这种宽泛性和开放性使得C语言有很强的数据读写能力,在处理复杂的程序过程仍能游刃而余。时至今日,C语言的编写系统已经成为目前最广泛的系统编写语言。
本设计采用基于Keil C51开发的汇编系统,是美国Keil Software公司在前身51系列兼容C语言单片机基础下更新的第二代软件开发系统,该系统脱离单纯汇编程序框架,运用C语言的51系列单片机满足多项需求,例如在系统简易上、构架、只读与可读、可编写上有了更为完善的设计,而且非常适合新手。Keil软件集成了C语言编译器、宏汇编、连接器、运行库是一个完成的集成仿真调试系统。是一个完整的程序运行检测软件,集成开发仿真后通过汇编语言特性连接语言标识符。Keil软件集成运行环境很广,在WIN98、WIN2008、WINXP兼容LIUNX 都能流畅运行。
图3-1 Keil软件界面
3.2 程序流程图设计
3.2.1 总体程序流程图设计
本程序大体上是先开始点亮液晶,接着开始使液晶显示初始化,随后报警器设定值立即初始化。整个程序都是根据预设定程序处理。下图3-2主函数流程图:
图3-2主函数流程图
4 系统调试
4.1 元器件的选择
本设计模块组需要用到的材料包括:STC89C52单片机、共振晶振、阻值不同的电容、固定非温控电阻、三个按键、一个可调开关、一个电源组、三极管、蜂鸣震动器、温感器、烟感器、数模转换芯片、LED液晶显示板等。此类元器件直接在当地五金店或者在网上挑选购买,随后在校内实验室焊接完成。
4.2 元器件的焊接
本组装电路有焊接和插接组装法,在焊接过程中遵照以下方式 ;购买前精心挑选,保证器件正常工作; 焊接前先排好布线图,方便后续焊接;分好线圈排布,防止大器件占地面积太大影响焊接过程;采用电源线正负极分别焊接;分区,分块焊接,防止焊接过程中误触;拟定稿图。
4.3 电路调整测试
调试是指系统的调整、测试。调整在测试的基础上不改变元器件特性或参数,改变外界环境或者变量,以达到修改电路的目的。而测试是在电路组装完成后对电路状态进行测量。
4.3.1 调试方法
电路模块调试方法大致上分为两类。一类是边安装边调试,边安装边调试的过程是是把复杂的电路分不分模块单元依照整体电路图调试,即把复杂的电路图拆分为模块单元,依次对这些模块调试基础上进行整体扩大调试,整个模块结束后整机调试。这种方法适用于复杂电路调试。另一类是电路框架结合一起,确定整体完整框架后统一焊接,焊接检测无误后一次性调试,这种调试方式适用于简单的电路。本课题调试方式为边安装边调试。
4.3.2 调试步骤
(1)检查电路的安全性;初步完成电路板焊接后,不能直接通电,而是应当先排查电路是否有误焊、断焊的情况,对焊接过程中可能出现的错线,少线,多线,短路或断路进行系统性的排查和修改,查线时也可以采用万用表,调至“Ω×1”档,连接元器件器脚排查,杜绝接触不良的问题。
(2)通电观察;在完成通电检查的步骤之后,排除焊接问题后开始接通电源,此时不急于对整个电路工作状态的检测。而是应当观察整个电路是否有故障,例如电路是否有烟烧味,电路是否短触,有无明显漏电现象,一旦发现电路在通电过程中有以上现象产生,立刻断电后重复第一步直到通电后无上述现象,此时开始重新通电调试。通电过程中使用电压表对各元器件通过的电压测比,使电路在正常工作环境运行,以此保证数据的正确性。
(3)单元电路调试;通电调试过程中按照“一对一”标准,对确定的部件分区调试的。调试过程中电流指向不能与电路图标注有误差,串联电路中需要将流向下一级电流作为电信号的输出信号。
单元电路调试中静态调试指仅对当前模块定向电流调试,不允许有其他电流影响,保证数据的真实性,这种静态调试方式的好处是可以找出坏掉的元件。动态调试则是类似于分级电路形式,将上一处电流信号作为下一部分信号的原始信号,通过二级信号对一级信号的处理,可以依据示波器对信号的函数图像进行处理,找出幅值、峰值、临界点、频率等。因此一般情况下更能反映电路真实情况的动态指标作为主要参考资料。结合静态单元调试整个单元电路才更有说服力。
(4)整机联调;完成模块单元电路调试后,下一步应进行整体联调。整机联调区别于单元调试的是整机联调有着大局性,将整个电路的尽收眼底。同时对单元电路进行补充和对比,方便找出不足之处,解决了错误方向,利于最后电路完整形态表现满足设计要求。
各单元电路调试好后对整体电路调试方式主要是观察和测量动态性指数浮点,对比设计指标。
4.4 调试结果
经过不懈的努力,通过硬件电路设计以及软件设计最终完成设计。实物调试结果如下。如图4-1所示,接通电源按下电源开关,该火灾报警系统可以正常工作。显示屏第一行显示的是气体浓度和气体浓度报警值,第二行显示的是温度值和温度报警值报警值。
图4-1 接通电源
对火灾报警检测如图4-2所示:当有火焰的时候,温度对应的LDE灯便会变亮
图4-2 火焰报警
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。