news 2026/5/10 4:53:04

基于单片机家庭防盗防火报警器系统Proteus仿真(含全部资料)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于单片机家庭防盗防火报警器系统Proteus仿真(含全部资料)

全套资料包含:Proteus仿真源文件+keil C语言源程序+AD原理图+流程图+元器件清单+说明书等

资料下载:

通过网盘分享的文件:资料分享
链接:百度网盘 请输入提取码提取码: tgnu


目录

资料下载:

Proteus仿真功能

项目文件资料:

一、Proteus仿真源文件

二、AD原理图文件

二、报告说明书

三、系统流程图

四、Keil c语言程序源代码


项目功能:

家庭防盗防火报警器的设计
运用所学单片机、模拟和数字电路、以及测控系统原理与设计等方面的知识,设计出一个家庭防盗防火报警器,能对门窗未关闭进行报警、对室内烟火信号进行报警,可通过定时开关灯模拟主人在家,完成门窗开关信号、烟火信号的检测电路、显示及键盘接口电路等部分的软、硬件设计。
家庭防盗防火报警器要求如下:
1)2路门开报警;4路窗开报警;1路厨房火灾报警;烟火传感器输入;
2)手工解除报警;
3)能显示是哪一路报警;
4)手工打开和解除警戒;
5)每天晚上定时开灯,模拟主人在家,灯最大负载400W,定时时间可人工设置。


项目文件:

一、Proteus仿真源文件

二、AD原理图文件

二、报告说明书

三、系统流程图

四、器件清单

元件型号数量
单片机AT89C511
电容10uf1
电容30pf2
晶振12MHZ1
电阻10k1
按钮4
实时时钟DS13021
模数芯片ADC08321
电位器1k1
电阻1k2
三极管PNP2
蜂鸣器有源1
显示器LCD16021
排阻10k1
晶振32.768KHZ1
存储器24C021
继电器5V1
开关7

五、Keil c语言程序源代码(部分)

#include "reg51.h" #include "ADC0832.h" #include "ds1302.h" #include "i2c.h" #include "lcd1602.h" #define uchar unsigned char #define uint unsigned int sbit k1=P2^3;//按钮 sbit k2=P2^4; sbit k3=P2^5; sbit beep=P2^7;//蜂鸣器 sbit lamp=P3^0;//灯 sbit in1=P1^0;//传感器 sbit in2=P1^1; sbit in3=P1^2; sbit in4=P1^3; sbit in5=P1^4; sbit in6=P1^5; sbit in7=P1^6; uchar time=0,mode=0,safe=0;//系统变量 uchar shi1=18,fen1=0,shi2=6,fen2=0;//定时时间 uchar yan=0,yan_lim=20;//烟雾报警值 uchar disp1[]="00:00:00 Y:00%";//时间+烟雾 uchar disp2[]="00:00"; uchar disp3[]="Lim:00%"; uchar flag=0;//报警标志 //发送字符串 void send(uchar *p) { while(*p!='\0') { SBUF=*p; while(!TI); TI=0; p++; } SBUF=0x0d;while(!TI);TI=0; } //主函数 void main() { init_1602();//初始化LCD1602 //存储初始化 shi1=At24c02Read(0); if(shi1>23) shi1=18; fen1=At24c02Read(1); if(fen1>59) fen1=0; shi2=At24c02Read(2); if(shi2>23) shi2=6; fen2=At24c02Read(3); if(fen2>59) fen2=0; yan_lim=At24c02Read(4); if(yan_lim>99) yan_lim=20; SCON=0X50; //设置为工作方式1 TMOD=0X21; //设置计数器工作方式2 TH1=0XFD; //9600 TL1=0XFD; TR1=1; //打开计数器 TH0=0X3C; TL0=0XB0; ET0=1;//打开定时器0中断允许 EA=1;//打开总中断 TR0=1;//打开定时器 while(1) { //按键检测 if(!k1)//设置 { if(mode<5) mode++; else mode=0; write_string(1,0," ");//清零 write_string(2,0," "); while(!k1); } if(safe==0) flag=0;//关闭报警标志 if(mode==0) { if(!k2)//停止蜂鸣器 { safe=1; flag=1; } if(!k3)//布防撤防 { safe=!safe; while(!k3); } } else//设置模式 { if(mode==1) { if(!k2) { if(shi1<23)//启动,小时 shi1++; else shi1=0; At24c02Write(0,shi1); while(!k2); } if(!k3) { if(shi1>0)//启动,小时 shi1--; else shi1=23; At24c02Write(0,shi1); while(!k3); } } if(mode==2) { if(!k2) { if(fen1<59)//启动,分钟 fen1++; else fen1=0; At24c02Write(1,fen1); while(!k2); } if(!k3) { if(fen1>0)//启动,分钟 fen1--; else fen1=59; At24c02Write(1,fen1); while(!k3); } } if(mode==3) { if(!k2) { if(shi2<23)//停止,小时 shi2++; else shi2=0; At24c02Write(2,shi2); while(!k2); } if(!k3) { if(shi2>0)//停止,小时 shi2--; else shi2=23; At24c02Write(2,shi2); while(!k3); } } if(mode==4) { if(!k2) { if(fen2<59)//停止,分钟 fen2++; else fen2=0; At24c02Write(3,fen2); while(!k2); } if(!k3) { if(fen2>0)//停止,分钟 fen2--; else fen2=59; At24c02Write(3,fen2); while(!k3); } } if(mode==5)//设置报警值 { if(!k2) { if(yan_lim<99) yan_lim++; else yan_lim=0; At24c02Write(4,yan_lim); while(!k2); } if(!k3) { if(yan_lim>0) yan_lim--; else yan_lim=99; At24c02Write(4,yan_lim); while(!k3); } } } } } //定时器中断 void Timer0() interrupt 1 { uint i; uint j=0,k=0,m=0; if(time<10)//0.5s time++; else { time=0; i=ADC(1);//测量烟雾 yan=i*99/127; Ds1302ReadTime();//读取时间 //灯光控制 j=ds1302_time[2]*60+ds1302_time[1]; k=shi1*60+fen1-1; m=shi2*60+fen2+1; if((j>k)||(j<m)) lamp=0; else lamp=1; //显示 write_com(0x0c);//关闭光标 if(mode==0)//正常显示 { disp1[0]=ds1302_time[2]/10+0x30; disp1[1]=ds1302_time[2]%10+0x30; disp1[11]=yan/10+0x30; disp1[12]=yan%10+0x30; write_string(1,0,disp1); //报警模式 if(safe==0) { write_string(2,0," "); write_string(2,0,"off"); } else//报警显示 { write_string(2,0,"on "); i=0; if(in1) i=1; if(in2 && (i==0)) i=2; if(in3 && (i==0)) i=3; if(in4 && (i==0)) i=4; if(in5 && (i==0)) i=5; if(in6 && (i==0)) i=6; if(in7 && (i==0)) i=7; if((yan>yan_lim) && (i==0)) i=8; //蜂鸣器响 if((i>0)&&(flag==0)) beep=0; else beep=1; //显示报警信息 switch(i) { case 1:write_string(2,8,"door1 ");send("door1 ");break; case 2:write_string(2,8,"door2 ");send("door2 ");break; case 3:write_string(2,8,"window1");send("window1");break; case 4:write_string(2,8,"window2");send("window2");break; case 5:write_string(2,8,"window3");send("window3");break; case 6:write_string(2,8,"window4");send("window4");break; case 7:write_string(2,8,"fir! ");send("fir! ");break; case 8:write_string(2,8,"smoke! ");send("smoke! "); } } } else //设置显示 { disp2[0]=shi1/10+0x30; disp2[1]=shi1%10+0x30; disp2[3]=fen1/10+0x30; disp2[4]=fen1%10+0x30; write_string(1,0,"L:"); write_string(1,2,disp2); disp2[0]=shi2/10+0x30; write_string(2,0,disp3); //设置光标位置 switch(mode) { case 1:write_sfm(1,3);break; case 2:write_sfm(1,6);break; case 3:write_sfm(1,11);break; case 4:write_sfm(1,14);break; case 5:write_sfm(2,5); } write_com(0x0e); //开启光标 } } TH0=0X3C; TL0=0XB0; }

六、全套资料包含

七:项目资源获取

需要完整的资料可以点击下面的名片关注,回复“资料”!

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 20:16:28

新手入门必看:AUTOSAR软件组件建模基础教程

从零开始搞懂AUTOSAR软件组件建模&#xff1a;新手也能轻松上手的实战指南你是不是刚接触汽车电子开发&#xff0c;看到“AUTOSAR”、“SWC”、“RTE”这些术语就头大&#xff1f;是不是在项目里被要求画几个软件组件、连几根端口线&#xff0c;却完全不知道背后的逻辑是什么&a…

作者头像 李华
网站建设 2026/5/9 13:00:38

如何使用PyTorch-CUDA-v2.6镜像快速搭建AI训练平台

如何使用 PyTorch-CUDA-v2.6 镜像快速搭建 AI 训练平台 在深度学习项目中&#xff0c;最让人头疼的往往不是模型设计本身&#xff0c;而是环境配置——“代码在我机器上明明能跑&#xff01;”这种对话几乎成了算法团队的日常。尤其当团队成员使用的操作系统、CUDA 版本或 PyTo…

作者头像 李华
网站建设 2026/5/8 20:00:19

Multisim主数据库访问被拒的权限修复方法

Multisim主数据库访问被拒&#xff1f;一文搞懂权限修复全流程你有没有遇到过这样的情况&#xff1a;打开Multisim准备做电路仿真&#xff0c;结果提示“无法连接到主数据库”&#xff0c;元件库一片空白&#xff0c;连最基础的电阻都找不到&#xff1f;更离谱的是&#xff0c;…

作者头像 李华
网站建设 2026/4/29 15:02:00

深度剖析I2C HID协议在智能手环中的实现机制

智能手环里的“神经脉络”&#xff1a;I2C HID如何让传感器与主控无缝对话&#xff1f;你有没有想过&#xff0c;当你抬腕唤醒智能手环屏幕时&#xff0c;背后到底发生了什么&#xff1f;是加速度计感知了手臂的动作&#xff0c;还是陀螺仪判断了旋转方向&#xff1f;这些数据又…

作者头像 李华
网站建设 2026/5/9 12:46:24

电源设计中PCB线宽与电流对照表的全面讲解

电源设计中PCB线宽与电流关系的深度解析&#xff1a;从原理到实战你有没有遇到过这样的情况&#xff1f;一块精心设计的电源板&#xff0c;在实验室测试时一切正常&#xff0c;可一到满载老化阶段&#xff0c;某段走线就开始发烫、变色&#xff0c;甚至冒烟烧毁。拆开一看&…

作者头像 李华