基于51单片机的火灾检测设计(仿真+程序+原理图+论文报告)

2025年4月2日 6点热度 0人点赞

本设计:
基于51单片机的火灾检测设计(仿真+程序+原理图+论文报告)
Proteus仿真版本:proteus7.8
原理图:Altium Designer
程序编译器:keil 4
编程语言:C语言
编号C0017

【腾讯文档】C0017 网盘链接 https: 

整个系统以STC89C52单片机为核心器件,配合电阻电容晶振等器件,构成单片机的最小系统。
1.烟雾采集传感器选用MQ-2,由于该传感器输出的是模拟信号,因此需要模数转换芯片ADC0832,把模拟信号转为数字信号再传给单片机;
2.温度采集使用DS18B20数字传感器,该传感器通过单总线和单片机相连;
3.火焰检测使用火焰检测模块,该模块完成了信号的检测、放大、比较等处理,最终输出高低电平信号给单片机;
4.显示设备使用1602液晶,可以在屏幕上显示实时烟雾浓度值、温度值,以及报警值等信息;
5.报警模块则采用蜂鸣器和LED灯组成,三个LED分别代表了火焰报警指示、烟雾报警指示和温度报警指示,无论哪个检测元素超标,蜂鸣器都会鸣叫报警;
6.3个按键作为操作输入设备,可以用来调节报警阈值的大小;
7.供电采用常用的USB 5V进行供电。
在这里插入图片描述

仿真图(提供源文件):
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

原理图(提供源文件):
在这里插入图片描述

源程序(提供源文件):

void main(void) { int temp;  uchar num;  uchar i;  LcdInit();  LcdShowInit();  gMqAlarm=EEPROM_Read(0x2000);  if((gMqAlarm==0)||(gMqAlarm>100))  gMqAlarm=30; LcdGotoXY(0,11);  LcdPrintNum1(gMqAlarm);  gTempAlarm=EEPROM_Read(0x2001)-55;  if((gTempAlarm<=-55)||(gTempAlarm>125))  gTempAlarm=40; LcdGotoXY(1,11);  LcdPrintNum2(gTempAlarm);  while(DS18B20_ReadTemp()==85)  { DelayMs(10); } while(1) { num=Get_ADC0832();  num=num/2.2;  if(num>100) num=100; LcdGotoXY(0,5);  LcdPrintNum1(num);  temp=DS18B20_ReadTemp();  LcdGotoXY(1,5);  LcdPrintNum2(temp);  AlarmJudge(num,temp);  for(i=0;i<15;i++)  { KeyScanf();  DelayMs(10);  } } } 

论文/报告:
在这里插入图片描述

资料清单如下:
在这里插入图片描述

温馨提示:
1、拿到压缩包文件之后先解压,再运行!!压缩名称带有特殊符号的,要把特殊符号删除再解压,例如⭐;

2、单片机芯片是通用的,无论51还是52、无论stc还是at都一样,引脚功能都是一样的,程序也是一样的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片;

3、仿真原理图和硬件原理图会有着些许区别,如果要做硬件请参照硬件原理图,硬件原理图中的. Sch .pcb等格式要用altium designer 打开;

4、如果没有装KEIL软件:.c .h结尾的文件即为程序,可以选择记事本、Notepad++、Source Insight 4.0、或其他C语言软件打开,打开的就是程序了。其他后缀的文件是写程序编译时自动生成的,没什么用的,不用管;

5、仿真时请打开“.pdsprj”工程文件或“.DSN”工程文件,“.pdsprj”是proteus8版本画的,“.DSN”是proteus7版本画的,版本是向上兼容的,理论上proteus8可以打开“.DSN”工程文件,proteus7打不开“.pdsprj”工程文件;

6、后缀.hex结尾的文件为烧录文件,仿真时一定要记得烧录程序(.hex)。

注:
请大家将keil安装在默认路径,C:\Keil,不要安装在其他盘上,以免重新配置工具文件路径。
遇到问题先上网查找答案,大部分问题都能在网上找到解决办法。