文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者

一、功能简介

本项目使用Proteus8仿真51单片机控制器,使用声光报警模块、LCD1602显示模块、DS18B20温度、烟雾传感器模块、按键模块、PCF8591 ADC模块、红外检测模块等。

主要功能:
系统运行后,LCD1602显示温度和MQ2烟雾传感器检测的温度及烟雾浓度;当检测温度或烟雾浓度高于设置的温度或烟雾阈值,则声光报警。可通过按键K3进入阈值设置模式,K1和K2进行加减调节,K4确定。在正常模式下,K1键开启布防,K2键关闭布防,当系统处于布防状态时,红外检测有人则声光报警,且LCD显示对应YES表示有人,否则取消报警,LCD显示No表示无人。若在布防状态下检测有人声光报警,也可通过K2键撤防取消报警。

主要功能如下:
1、温度/烟雾/红外检测
2、LCD1602液晶显示
3、布防/撤防/阈值设置
4、检测异常声光报警


二、软件设计

/*
作者:嗨小易(QQ:3443792007)
*///系统数据获取
void sys_data_get(void)
{static u8 i=0;while(1){//温度获取i++;if(i%10==0)sys_ctrl.temp=ds18b20_read_temperture();//烟雾浓度获取sys_ctrl.smoke=pcf8591_read_adcvalue(0);sys_ctrl.smoke=cal_map(sys_ctrl.smoke,0,255,0,99);//检测是否有人if(IRED==0)sys_ctrl.man=1;else sys_ctrl.man=0;   break;}
}//系统数据显示
void sys_data_show(void)
{while(1){//温度显示lcd1602_show_nums(3,0,sys_ctrl.temp,2,0);//烟雾浓度显示lcd1602_show_nums(3,1,sys_ctrl.smoke,2,0);//温度阈值显示lcd1602_show_nums(10,0,sys_ctrl.temph,2,0);//烟雾浓度阈值显示lcd1602_show_nums(10,1,sys_ctrl.smokeh,2,0);    //阈值设定,数据位置闪烁switch(sys_ctrl.mode){case 0://布防撤防显示if(sys_ctrl.fortify==1)lcd1602_show_string(14,0,"BF");elselcd1602_show_string(14,0,"CF");break;case 1://温度lcd1602_show_string(10,0,"  ");delay_ms(100);lcd1602_show_nums(10,0,sys_ctrl.temph,2,0);break;case 2://烟雾浓度lcd1602_show_string(10,1,"  ");delay_ms(100);lcd1602_show_nums(10,1,sys_ctrl.smokeh,2,0);break; }//有人显示if(sys_ctrl.man==1)lcd1602_show_string(13,1,"Yes");else lcd1602_show_string(13,1," No");break;         }
}//系统数据设置
void sys_data_set(void)
{u8 key=0;key=key_scan(0);//模式设置if(key==KEY3_PRESS){sys_ctrl.mode++;if(sys_ctrl.mode>=3)sys_ctrl.mode=1;}//在设置模式下,加else if(key==KEY1_PRESS){    switch(sys_ctrl.mode){case 0://设防sys_ctrl.fortify=1;break;case 1://温度阈值 sys_ctrl.temph++;if(sys_ctrl.temph>99)sys_ctrl.temph=0;break;case 2://烟雾浓度阈值 sys_ctrl.smokeh++;if(sys_ctrl.smokeh>99)sys_ctrl.smokeh=0;break;}             }//在设置模式下,减else if(key==KEY2_PRESS){switch(sys_ctrl.mode){case 0://撤防sys_ctrl.fortify=0;break;case 1://温度阈值 sys_ctrl.temph--;if(sys_ctrl.temph<0)sys_ctrl.temph=99;break;case 2://烟雾浓度阈值 sys_ctrl.smokeh--;if(sys_ctrl.smokeh<0)sys_ctrl.smokeh=99;break;}}//确定else if(key==KEY4_PRESS){sys_ctrl.mode=0;       }
}//应用控制系统
void appdemo_show(void)
{u8 i=10;sys_parm_init();//系统参数初始化lcd1602_init();ds18b20_init();//间隔一段时间,等待数据稳定while(i--){//温度获取sys_ctrl.temp=ds18b20_read_temperture();//烟雾浓度获取sys_ctrl.smoke=pcf8591_read_adcvalue(0);sys_ctrl.smoke=cal_map(sys_ctrl.smoke,0,255,0,99);delay_ms(100); }sys_open_show();//系统开机界面显示while(1){    sys_data_get();//系统数据获取sys_data_show();//系统数据显示sys_data_set();//系统数据设置sys_fun_ctrl();//系统功能控制}
}

三、实验现象

B站演示视频:https://space.bilibili.com/444388619






联系作者

专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

【Proteus仿真】【51单片机】基于51单片机防火防盗设计相关推荐

  1. 基于51单片机的智能家居防火防盗系统设计

    基于51单片机的智能家居防火防盗系统设计 自动开关灯,温度,烟雾浓度报警,数值可调节等:附赠资料包含原理图,仿真,代码(C语言),实物的元件清单及功能演示视频.适合课设. CSDN内下载地址:下载地址 ...

  2. 【Proteus仿真】利用74LS148扩展单片机中断

    [Proteus仿真]利用74LS148扩展单片机中断 Proteus仿真 74LS148:8 线-3 线优先编码器 74LS148是带有扩展功能的8-3线优先编码器,它有8个信号输入端,3个二进制码 ...

  3. 51、基于51单片机洗衣机控制系统(带水位)系统设计(程序+原理图+PCB源文件+Proteus仿真+参考论文+开题报告+任务书+流程图+元器件清单等)

    摘 要 随着数字技术的快速发展,数字技术被广泛应用于智能控制的领域中.单片机以体积小.功能全.价格低廉.开发方便的优势得到了许多电子系统设计者的青睐.它适合于实时控制,可构成工业控制器.智能仪表.智能 ...

  4. 51系列—基于51单片机的校园教室打铃系统(代码+仿真+电路图超级全)

    基于51单片机的校园教室打铃系统(代码+仿真+电路图超级全) 本文主要介绍基于51单片机实现的校园打铃系统设计,实现了基本的上下课打铃功能.本设计基于51单片机,使用单片机定时计数器及LCD1602接 ...

  5. matlab ds18b20 单片机,基于51单片机ds18b20温度检测————设计报告.doc

    基于51单片机ds18b20温度检测----设计报告 课程名称: 微机原理课程设计 题 目: 温度检测课程设计 摘要 随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为 ...

  6. 51、基于51单片机的GPS定位系统(GSM短信)

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.程序 六.资料包括 摘要 1978年2月22日第一颗GPS试验卫星的入轨运行,开创了以 ...

  7. 【51】基于51单片机的蓝牙控制小车的简单实现(有源代码,无图)

    原文地址:http://bbs.elecfans.com/forum.php?mod=viewthread&tid=544143 此帖子现在有一个后续版本,实现了手机端的蓝牙程序控制小车运动以 ...

  8. c语言stm32串口控制单片机,基于STM32F103C8T6单片机电脑串口通讯控灯设计(原理图+程序+论文)...

    题目:基于STM32F103C8T6单片机电脑串口通讯控灯设计 内容要求: 一. 任务 通信是指不同的独立系统利用线路互相交换数据,它的主要目的是将数据从一端传送到另一端,实现数据的交换.在现代工业控 ...

  9. 恒温控制系统单片机仿真c语言,基于51单片机的恒温控制系统

    #include void main()//主函数 { init();//初始化函数 while(1) { temp_control();//控制按键函数 unnormal_proccessing(g ...

最新文章

  1. 计算机教案word格式模板,用自定义模板编辑教案
  2. 迅为4418/6818开发板实现最小Linux系统自动挂载SD/TF卡/U盘等存储设备
  3. javase基础复习攻略《三》
  4. 介绍Visual Studio的Android模拟器
  5. noip模拟赛 遭遇
  6. 什么叫做罗列式_项目起盘的时候,如何确定自己该做什么社群?
  7. 详解电脑蓝屏怎么回事
  8. Angular官方教程采坑
  9. Noip2011提高组 聪明的质监员
  10. 【行业专题报告】 汽车、二手车-专题资料
  11. MATLAB数据拟合学习总结
  12. MySQL的自定义函数
  13. Deep Stream Ai落地--初体验
  14. 牛客练习赛101 B-荒神在此
  15. 微分方程建模(人口预测,捕食者猎物)
  16. rgb sw 线主板接口在哪_华硕ROG STRIX LC 360 RGB一体式水冷:与ROG主板更配
  17. 王思聪吃翔项目 - 共享充电宝 - 经营、销售分析系统DB设计实践
  18. pam模块之faillock
  19. 关于Kaggle竞赛
  20. 云计算如何推动园区建设智慧升级?

热门文章

  1. 笔记本电脑突然自动关机怎么回事?
  2. SAP EPIC_PROC增加按钮
  3. 从硬件到软件,教你从零搭建智慧农业大脑
  4. 【机器学习】生成对抗网络 GAN
  5. 如何在Mac或iPhone上设置 iCloud 钥匙串?
  6. iphone 屏幕转动 字体变化
  7. oracle12C--DG FAR SYNC 部署(前提为搭建好12C的DG)
  8. CC00151.bigdatajava——|JavaMySQL.高级.V23|——|MySQL.v24|EXPLAIN_key_lenref字段介绍|
  9. 你是个靠谱的程序员吗?
  10. Java代码引用flink报错:java.lang.NoClassDefFoundError: org/apache/flink/streaming/util/serialization/Deseri