序
🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机的火灾报警系统的设计
第1章 系统硬件设计
1.1单片机STC89C52
(1) 概述
STC89C52单片机具有8k的闪存空间,以及512字节的RAM存储空间,它本身只需采用3.3V电压进行驱动,同时可以进行复杂的运算逻辑和数字计算,同时单片机与51 指令相兼容,装处理器为8位通用型,因此可以通过单片机实现较为复杂的控制过程。
单片机本身具有40个引角,其中具有32个输入输出型引脚,两个中断引脚以及3个16位编程计数器引脚和两个全双工串行通信引脚。
(2) 8051单片机的引脚功能
8051单片机具有40个引脚,其相关设置如图2.2所示。
图1.2 STC89C52引脚图
管脚说明:STC89C52 单片机外部有32个端口可供用户使用,其部分引脚功能如表2.1所示:
表1.1 STC89C52并行I/O接口
1.1.1 最小系统电路
如图1.3所示为单片机的晶振电路,复位电路和电源电路。其中晶振电路主要包含晶振和外围电容。晶振电路的主要作用是产生固定的系统工作频率,作为单片机不同单元的工作频率基准。通过晶振和电容能够产生,写着同时由于电容采用30pF以及12M的晶振型号,因此系统的工作频率已经被固定,当晶振值取值越高时固定频率则会越高。因此需要根据单片机不同功能单元的需求频率进行晶振电路的参数设计。
复位电路主要是用于在系统产生故障时或完成工作后对系统进行重置。例如当系统跑飞或进入死循环使则可以通过复位电路中的按键进行系统的复位。通常研究人员在系统开始工作时,也会按下复位键,确保系统能够重新开始运行。
复位电路中主要包含电容和电阻,由于电容电压不能产生突变,因此在系统的电源电路通电时,其中RESET引脚则会出现高电平,高电平的导通时间由系统电路的时间常数决定,也就是电容和电阻值所决定,在单片机中设置,如果RESET的引脚保持高电平,在两个工作周期以上则系统程序则会自动进行复位设置。因此通过复位电路的电容电阻值设置,能够确保系统进行可靠的复位。
电源电路采用5V的电压直接输入,同时有电压调理电路,对输入的电压信号进行稳压和滤波功能。
图1.3 单片机最小系统
1.2 显示电路
1.2.1 显示方案的选择
方案一:利用LED数码管进行显示。LED数码管本身具有价格成本低,能够显示相关数字以及便于跟单片机连接的特点。但是LED数码管在显示时需要通过74LS164寄存器进行数据的移位,这一芯片的引入会增加较多的数字电路,同时会影响与DSP的连接,因此对整个系统造成麻烦。
方案二:通过LCD液晶显示屏进行数据和报警信号的显示。LCD液晶显示屏可以显示相关的文字和图形,同时具有较大的内容量,在本次研究过程中,一块显示屏即可将相关信息进行全部显示,因此本文采用LCD1602显示屏作为显示模块的主体。
1.2.2 1602液晶显示
LCD1602显示屏可以进行总共两行16个字符的显示显示内容包含数字字母,符号等,同时也可以通过程序设置进行少量的中文显示。
本次研究系统采用了LCD1602显示屏,本身的价格较低,同时只需一块屏幕即可对全部信息进行展示,因此在工业的自动化控制和显示过程中广受欢迎。他工作的原理是将接收的数字信号进行ASCII码的转换。当编程人员,利用LCD1602进行汉字显示时需要首先得到汉字的转换库,利用转换库则可以根据显示屏点阵的构造进行汉字字体的显示。第二步是将中文子模块数据存储在LCD存储器中。
1.2.3 液晶显示模块电路
液晶屏的相关外围电路如图1.4所示,其中1,2引脚分别与电路的地和电源进行连接。通过1,2引脚的连接能够确保液晶屏得到有效的电源输入。3引脚则通过一个10k的电阻进行GND的连接,这个音效可以通过电压信号的不同,对液晶的不同对比度进行显示。4引角主要通过单片机p27引脚的连接来进行计算器控制。5引脚是用于控制液晶屏的读写功能。6引脚是对液晶屏进行使能。7~14引脚,用于进行液晶屏的数据输入和输出。15 16引脚则为液晶屏的背光电源引脚与系统的电源和地直接相连。
图1.4 液晶模块连接图
1.3 烟雾检测模块
1.3.1 烟雾传感器的选型
烟雾传感器主要是通过检测装置中的化学材料将周围环境的气体信号转换为电压或者电流信号。这种转换器能够通过化学材料的粒子的变化进行气信号与电信号之间的转换,然后利用传感器中集成的模拟与数字量转换电路将电路信号转换为数字信号并传输到单片机中。单片机根据得到的数字信号进行,注意环境信息的判断以及报警信号的输出。传感器的灵敏度以及稳定性,直接决定了整个系统的稳定性和工作性能。
烟雾传感器通常可以被分成三种,首先是物理化学性质的烟雾传感器,其次是物理性质的烟雾传感器,最后是只具有电化学性质的烟雾传感器。
烟雾传感器不仅可以进行周围环境的检测,并将其转化为电信号,同时还可以具备其他的检测功能。通过相关电路的集成传感器可以实现,除了周围环境气体的检测外的其他检测功能。因此目前对于烟雾传感器的要求通常为:能够对周围环境的特定气体信息进行检测,同时不会影响其他气体的含量;对设定的检测气体具有高的灵敏度,并且能够保证在设定范围内进行烟雾浓度的准确测量;具有较快的检测反应以及信号的持续输出;具有高的检测成功率以及长时间的工作时间;具有较低的应用成本和高效的维护方式。
根据不同环境下报警系统对于不同气体检测的要求,因此需要采用不同的传感器来检测不同的气体通常一种传感感器只能对1~2种气体进行检测。图表1-2为研究的各种传感器以及对应的气体检测类型。
表1-2各种烟雾传感器可检测的烟雾种类
半导体烟雾传感器能够更加及时的检测环境中产生的烟雾信号,同时不会受到周围磁场电场的干扰,并且具有很快的响应速度,而且随着目前技术的发展,其应用和维护成本也逐渐降低。所以本次研究过程中,半导体烟雾传感器成为整个报警系统的核心装置,设计过程中MQ-2型传感器具有格外的高灵敏性、低损耗因此被作为此次的应用型号。
1.3.2 烟雾检测模块电路
下图1.5所示即为系统烟雾检测模块电路,由于MQ-2输出的是模拟量,因此需要把检测结果通过芯片ADC0832转换为数字量,然后传送到单片机进行处理。ADC0832芯片属于典型的串行接口8位A/D转换器,设计生产厂商为美国国家半导体公司,具备经济实用、结构简单、低功耗等诸多优点,在便携式智能仪器领域得到了大规模的应用。
该转换芯片最高支持256位分辨率,能够很好的满足绝大多数情况下的模拟量转化需求,并且兼具双数据输出功能,可对数据进行校验,有效的确保了数据的准确性,数据转换效率及工作稳定性也都远超同类芯片。再加上独立芯片的使用极大降低了多设备连接和处理器控制难度,di数据输入的模式也为通道选择提供了便利。
图1.5 烟雾检测模块电路图
1.4 温度传感器电路
1.4.1 DS18B20简介
(1) 概述
DS18B20是全球首款支持“一线总线”功能的温度传感器,生产设计厂商为美国DALLAS半导体公司。自面世之后基于其微型化、高性能、抗干扰、低功耗及较强的实用性在各大设备传感器领域得到了广泛的应用。其温度测量范围宽达-55~125℃,在极端条件下仍能保持0.5℃的测量误差,可编程分辨率涵盖9~12位,分别对应0.5℃、0.25℃以及0.125℃、0.0625℃。能够直接将温度信息转换为数字信号并传递给处理器,和传统热电偶传感器相比测温精度具备明显优势。下图1.6即为其实物图。
图1.6 DS18B20图
(2) 特性
◆1-Wire总线接口只需一个通信管脚即可满足通信功能;
◆所有设备内部ROM均烧蚀单独的64位序列号作为区分;
◆高效稳定的多路温度采集能力有效降低了分布式采集难度;多路采集能力使得分布式温度采集应用更加简单;
◆不需单独配置额外的外围元件;无需外围元件;
◆供电电压宽度3.0V-5.5V;
◆系统温度检测:-55℃-+125℃(-67℉至+257℉);
◆-10℃-85℃的极端温度条件下精度仍能保持±0.5℃;
◆自定义温度采集精度(9-Bits-12-Bits);
◆温度转换时间最高不超过750ms(转换精度12-Bits时出现);
◆温度报警设置可根据用户需求自定义且长期保持
(3) 管脚定义
Pin1:(VDD),可选电源引脚;
Pin2:(DQ),单线运用的数据输入/输出引脚;
Pin3:(VDD),接地端,电源负极。
1.4.2 DS18B20模块电路图
DS18B20的模块电路图如图1.7所示:
图1.7 DS18B20模块连接图
1.5 按键输入模块
键盘是系统人机交互的核心设备。从软件设计的角度上,单纯进行键盘扫描获取扫描时键盘状态是很难满足系统需求的。特别是在误操作及系统失控方面。单片机工程开发领域使用较多的是独立键盘和矩阵键盘两种类型的键盘,其优缺点都比较突出。独立键盘结构简单,软件程序设计也比较便捷,性能稳定,特别适用于硬件需求不高的简单电路上;矩阵键盘无论是软件还是硬件设计上都要比独立键盘复杂,但其能实现的功能也多,对端口资源占用也小,更适用于多按键电路应用。除此之外的另一个问题就是按键过程中“毛刺”现象的消除。本设计采用通用的延时重复扫描法来处理毛刺,其原理是系统出现“毛刺”的脉冲持续时间基本上都在10ms以内,而人执行按键动作的时间则远超该时间。因此单片机系统会在检测到按键脉冲后延时一定时间再次检测该电平是否处于保持状态,以此来区分是“毛刺”还是人为按键动作。若延时检测到电平保持则为按键动作执行,反之则不是。
本文设计按键仅有“设置”、“加”、“减”三个,所以使用独立键盘。下图1.8所示即为连接图:
图1.8 按键电路
1.6 报警模块
本毕设同时兼具检测和报警功能。系统可根据事先设定的烟雾及温度报警阀值来进行对比判断,超过阀值则蜂鸣器鸣叫,LED指示灯点亮,达到声光报警的效果。
1.6.1 蜂鸣器的介绍
蜂鸣器属于直流供电的一体化电子讯响器,基于其高效稳定的性能和结构简单、经济实用的特性,在计算机、定时器、报警器等多个机电设备领域得到了大规模的应用,在其中承担重要的发声功能。
现阶段市面应用较广的蜂鸣器包括压电式、电磁式两种。其中压电式蜂鸣器结构包括多谐振荡源以及压电蜂鸣片、共鸣箱、阻抗匹配器及外壳。在电源供电后,多谐振荡器开始振荡并输出频率为1.5-2.5kHZ的音频信号,阻抗匹配器则驱动压电蜂鸣片开始发声。另一种电磁式蜂鸣器的结构包括电磁线圈、振荡器以及磁铁、振动膜片、外壳等。系统通电后振荡器输出音频信号经电磁线圈转化为磁场,然后电磁线圈和磁场共同驱动震动膜片周期性震动发声。在考虑性能、结构、成本的前提下本文选择电磁式蜂鸣器。
蜂鸣器的另一个重要区分就是震荡源的有无。若蜂鸣器内部自带震荡源,则只要对其供电就会开始工作发声,这种是有源蜂鸣器,另一种无源蜂鸣器则直流电信号无法驱动其鸣叫时,必须借助2-5K方波来驱动其鸣叫,稳定性较差,结构相对复杂。因此本设计选取有源蜂鸣器。
1.6.2 蜂鸣器报警电路
下图2.9所示即为系统蜂鸣器电路图。考虑到系统单片机IO口输出电流难以直接带动蜂鸣器工作,因此借助三极管开关管功能实现蜂鸣器发音功能的控制。综合考虑性能、参数、成本等多方面因素,本文选定PNP型S8850三极管。本设计蜂鸣器为内置震荡电路的有源蜂鸣器,仅需单片机输出高或低电平就能驱动,无需连续发出高低电平,对程序及系统设计简化起到了极大作用。并且PNP型三极管不受单片机上电时IO口高电平影响,因此上电阶段不会触发蜂鸣器工作。
图1.9蜂鸣器电路
1.6.3 发光二极管
发光二极管主要成分包含镓(GA)、砷(as)、磷(P)以及氮(n)等多种化合物。其原理是带电粒子和空穴结合是发出可见光,广泛应用于电路和仪表领域做指示灯或组成文字、字符或图案显示,即LED。
发光二极管属于典型的电能转化为光能的半导体二极管材料。多数情况下其在使用时需要和普通二极管沟通构成PN结,其具备明显的单向导电性,反向击穿电压一般不低于5V,具备较陡的正向伏安特性曲线,因此在工作过程中一定要串联限流电阻来对二极管进行保护。由电源对其施加正向电压的时候,P区注入N区空穴会和PN结附近几微米范围的N区电子结合,散发出自发性荧光,同样的N区注入P区的电子也会和PN结附近的空穴结合散发荧光。鉴于不同半导体材料内电子及空穴能态存在差异,不同材料的电子及空穴复合过程中释放能量大小不同,也就导致散发荧光颜色的不同。业界通常借助该特性来控制器二极管发光颜色。能量越高波长越短,因此砷化镓、磷化镓、碳化硅、氮化镓四种材料依次发射红、绿、黄、蓝四种颜色的光。发出红光,磷化镓发出绿光,碳化硅发出黄光,氮化镓发出蓝光。
1.6.4 报警模块电路
LED报警模块电路如下所示,将LED正极串联阻值为1K的电阻后接入电源正极,负责直接和单片机IO口连接,只要LED灯接收到单片机IO口输出的低电平就可以点亮起到报警作用。
图1.10 LED灯电路
第2章 系统软件设计
2.1 程序流程图设计
2.1.1 总体程序流程图设计
下图3.1所示即为本报警系统的整体软件流程图。系统开始工作后,首选对液晶功能及其显示内容进行初始化,然后对报警值进行初始化,将整个系统置于源点。之后则开始循环检测处理,将传感器检测到的烟雾浓度和温度值以此显示到1602液晶上,并对数值进行综合判定,对比报警值进行判断,若超过报警值则开始声光报警,然后检测设置按键是否被激活,是则重新调整报警值,否则归零继续重复检测、判断、报警。
2.1.2 液晶程序设计
液晶程序内容显示的重要前提就是将内容显示位置确定并发送给液晶。也就是告诉液晶接下来准备在哪个位置开始显示内容,比如说第3行第6列,位置确定之后才能显示内容。需要注意的是,液晶内容显示只能一位一位进行,如字符串“world”,先显示第一个字符“w”,然后逐个显示直到最后一位“d”,数字同理。从第一次到最后一次显示完成,视为一次显示任务执行完毕。每次显示任务仅需在最开始进行定位,显示过程中间,即字符逐个显示的时候液晶会自动跳转无需再次定位。
2.1.3 模数转换程序设计
读取ADC0832芯片的采集数据之前,单片机要先发一个起始信号给ADC芯片,由于ADC0832有两路AD转换通道,因此还需要发一个通道选择信号,告诉ADC芯片要选择哪个通道进行转换。之后就进行采集结果的读取,ADC芯片会返回2字节数据,第1字节是进行正向传输,第2字节是反向传输,之所以要进行两次的传输,是因为可以把这两字节数据进行校验,以判断传输是否出错。最后把读取的AD结果返回给主函数。
2.1.4 温度传感器程序设计
系统温度值读取功能的实现流程见下图3.4。在系统运行过程中首先对温度传感器执行初始化操作,即复位。鉴于本设计仅安装一个传感器,所以直接对其发布0xcc指令跳过ROM寻找即可,无需在系统中对传感器序列号进行区分和二次查找。传感器复位之后发送0x44指令开启温度转换功能,然后再次对传感器执行复位操作,并同样0xcc跳过ROM,之后以0xbe指令至读取传感器温度检测结果,结束一次温度读取流程。
图2.1主函数流程图
图2.2液晶显示流程图
图2.3模数转换流程图
图2.4 温度传感器程序流程图
如果你需要帮助、建议或解决问题,不要犹豫,可以随时向老师提问或寻求支持。专注于单片机的解决方案可以为你提供有关电子设计、嵌入式系统、编程和硬件方面的宝贵信息。无论你的问题涉及到哪个方面,都可以向老师咨询,以获得有针对性的建议和指导。祝愿你在单片机设计领域取得成功!