文章目录

  • 一、基本功能
  • 二、原理图
  • 三、程序
    • 1、头文件及相关定义
    • 2、主函数
  • 总结

一、基本功能

1、检测设置点的烟雾、温度参数并用LCD1602实时显示;
2、手动设置阈值;
3、当检测参数超过限度时能及时进行声光报警;

二、原理图

系统采用AT89C51作为系统主控。
单片机P0口连接锁存器,锁存器连接8255A作为单片机的扩展。
P1口连接ADC0808 模数转换器,模拟烟雾传感器情况。
P2口连接各组件,包括报警指示灯、阈值调节按键读取…
P3口作为控制各端口。
8255A PA口连接LCD1602显示温度及烟雾数值。
PC口作为点阵的输入(未实现)。

三、程序

1、头文件及相关定义

//程序头函数
#include <reg52.h>
#include <display.h>
#include<intrins.h>
#include<ds18b20.h>
#include<absacc.h>
//宏定义
#define uint unsigned int
#define uchar unsigned char
#define Data_ADC0809 P1 //定义P1口为Data_ADC0809
#define D8255  XBYTE[0x7f03] //8255控制口地址
#define D8255A XBYTE[0x7f00] //8255 PA口地址
#define D8255B XBYTE[0x7f01] //8255 PB口地址
#define D8255C XBYTE[0x7f02] //8255 PC口地址
//管脚声明
sbit LED_yanwu= P2^1;       //烟雾报警灯
sbit LED_wendu= P2^2;
sbit baojing= P2^3;             //蜂鸣器接口
//ADC0808
sbit ST=P3^4;
sbit EOC=P3^5;
sbit OE=P2^0;
//按键
sbit Key1=P2^4;                 //设置键
sbit Key2=P2^5;                 //加按键
sbit Key3=P2^6;                 //减按键
//含量变量
uchar temp_wendu;
uchar temp_yanwu;
uchar yushe_wendu=45;       //用于读取ADC数据
uchar yushe_yanwu=45;       //烟雾预设值4//按钮模式|
uchar Mode=0;  //1是设置温度阀值  2是设置烟雾阀值
//函数声明
extern uchar ADC0809();
extern void Key();
//ADC0809读取信息
uchar ADC0809()
{uchar temp_=0x00;//初始化高阻态OE=0;//转化初始化ST=0;//开始转换ST=1;ST=0;//外部中断等待AD转换结束while(EOC==0)//读取转换的AD值OE=1;temp_=Data_ADC0809;OE=0;return temp_;
}
void Key()
{//模式选择if(Key1==0)      //设置按键{while(Key1==0);if(Mode>=3) Mode=0;else{write_com(0x0f);//打开显示 无光标 光标闪烁Mode++;         //模式加一switch(Mode)  //判断模式的值{case 1:{write_com(0x80+7);//为1时 温度阀值的位置闪烁break;             //执行后跳出switch}case 2:                 //当模式加到3时{write_com(0x80+13);break;}case 3:                    //当模式加到3时{write_com(0x0c);//打开显示 无光标 无光标闪烁Mode=0;          //模式清零break;}}}}if(Key2==0 && Mode==1)// 给温度加一{while(Key2==0);yushe_wendu++;                       //同温度阀值设置write_com(0x80+7);write_data(0x30+yushe_wendu/100);write_data(0x30+yushe_wendu%100/10);write_data(0x30+yushe_wendu%10);write_com(0x80+7);}if(Key2==0 && Mode==2)//给烟雾加一{while(Key2==0);yushe_yanwu++;                     //同温度阀值设置write_com(0x80+13);write_data(0x30+yushe_yanwu/100);write_data(0x30+yushe_yanwu%100/10);write_data(0x30+yushe_yanwu%10);write_com(0x80+13);}if(Key3==0&&Mode==1)//温度减一{while(Key3==0);yushe_wendu--;                           //同上if(yushe_yanwu<=0)yushe_yanwu=0;write_com(0x80+7);write_data(0x30+yushe_wendu/100);write_data(0x30+yushe_wendu%100/10);write_data(0x30+yushe_wendu%10);write_com(0x80+7);}if(Key3==0&&Mode==2)//烟雾减一{while(Key3==0);yushe_yanwu--;                              //同上if(yushe_yanwu<=0)yushe_yanwu=0;write_com(0x80+13);write_data(0x30+yushe_yanwu/100);write_data(0x30+yushe_yanwu%100/10);write_data(0x30+yushe_yanwu%10);write_com(0x80+13);}
}

2、主函数


/*******主函数*********/
void main()
{Init1602();              //调用初始化显示函数Init_Ds();while(1)           //进入循环{temp_yanwu=ADC0809();   //读取烟雾值temp_wendu=Get_Tem();Key();             //调用按键函数  扫描按键if(Mode==0)         //只有当模式为0时才会执行以下的阀值判断部分{Display_1602_wendu(yushe_wendu,temp_wendu);Display_1602_yanwu(yushe_yanwu,temp_yanwu);  //显示预设烟雾,烟雾值if(temp_yanwu>=yushe_yanwu){LED_yanwu=0;        //烟雾指示灯亮baojing=0;    }if(temp_yanwu<yushe_yanwu){LED_yanwu=1;}if(temp_wendu>=yushe_wendu)     {LED_wendu=0;baojing=0;}if(temp_wendu<yushe_wendu){LED_wendu=1;}if(temp_yanwu<yushe_yanwu && temp_wendu<=yushe_wendu){baojing=1;              //停止报警}}}
}

总结

资源获取:https://download.csdn.net/download/weixin_51306846/87134504?spm=1001.2014.3001.5501
或者
https://item.taobao.com/item.htm?ft=t&id=693838763431

基于AT89C51及Proteus仿真的室内火灾监测装置相关推荐

  1. 单片机原理与应用—基于C51及Proteus仿真 答案

    复习思考题 8051单片机指令系统有哪几种寻址方式? 1. 寄存器寻址2. 直接寻址3. 立即寻址4. 寄存器间接寻址5. 变址寻址6. 相对寻址7. 位寻址 2.写出下列指令的寻址方式 (1) JZ ...

  2. 基于51单片机实现LED模拟交通灯(Proteus仿真)

    wechat:[嵌入式工程师成长日记] 具体功能实现 南北红灯亮,东西绿灯亮:南北绿灯亮,东西红灯亮:在红绿灯转换过程中,黄灯闪烁5次. 使用器件: 若干电阻.4只LED红灯.4只LED绿灯.4只LE ...

  3. 【Proteus仿真8086】将IO接口电路封装成子电路CCT001

    本次实验内容来自于顾晖老师<微机原理与接口技术 基于8086和Proteus仿真 第3版>的[例7-2],但老师使用的方法是将IO接口电路封装成子电路CCT001,这部分在章节没有讲述,于 ...

  4. 【Proteus仿真8086】简单IO接口实验——无条件传输和查询方式

    本次实验内容来自于顾晖老师<微机原理与接口技术 基于8086和Proteus仿真 第3版>的[例7-1]和51CTO课程的讲解内容第七章输入输出接口0704程序查询方式 https://e ...

  5. 【Proteus仿真8086实验一】RAM存储器62256

    建议把存储器设计和简单IO接口放在第一次实验,重点了解锁存器273和缓冲器373是怎样将数据和地址线进行分离的,具体Proteus的实验操作比如设置内存大小和快速命名接口(属性赋值工具)可以参考这个老 ...

  6. 【Proteus仿真】Arduino UNO+PCF8574+LCD1602+MPX4250电子秤

    [Proteus仿真]Arduino UNO+PCF8574+LCD1602+MPX4250电子秤 基于VSM Studio Proteus仿真演示 原理图 所需库 可以在Arduino IDE管理库 ...

  7. 【Proteus仿真】Arduino UNO+继电器控制照明设备

    [Proteus仿真]Arduino UNO+继电器控制照明设备 -基于 VSM Studio Proteus仿真演示 示例代码 /* Main.ino file generated by New P ...

  8. 基于51单片机火灾监测自动灭火装置Proteus仿真

    资料编号:167   下面是相关功能视频演示: 167-基于51单片机火灾监测自动灭火装置Proteus仿真(源码+仿真+全套资料) 功能讲解: 采用51单片机作为控制CPU,采用ADC0832采集火 ...

  9. 基于stm32单片机室内环境温湿度光照强度检测系统Proteus仿真

    资料编号:178    下面是仿真功能视频演示: 180-基于stm32单片机室内环境温湿度光照强度检测系统Proteus仿真 功能讲解: 采用stm32单片机最为控制CPU,DS1302时钟芯片,d ...

  10. 13、基于51单片机防火防盗烟雾温度人体红外感应检测设计(程序+原理图+PCB图+Proteus仿真+参考论文+开题报告+元器件清单等)

    摘要     随着社会和经济的发展,防火工作越来越重要,但是目前国内的许多研发都侧重于大型场所的火灾报警.因此,我们就有必要研制一种结构简单.经济实用的家庭烟雾温度人体感应检测报警器以适应市场的需求. ...

最新文章

  1. Java泛型应用详解
  2. mysql 找不到hdfs文件_hadoop判断文件是否存在
  3. Ubuntu下安装 imagej 和 Fiji
  4. 四元素的真面目..........简单粗暴
  5. Team Foundation Server 2010 安装、部署与配置(三):安装 .
  6. 2018-2019-2 网络对抗技术 20162329 Exp5 MSF基础应用
  7. GDB同步显示源代码——layout
  8. swift Tablview中cell 的用withtag方法绑定里面的button
  9. 不想用宝塔面板建站,如何手动搭建LAMP环境安装wordpress
  10. 上传图片就能建模?!一个人人可用的在线三维大场景重建云平台
  11. 罗永浩 AR 创业公司估值 10 亿;​苹果宣布加大 AppStore 广告推送量;​Node.js 19 发布|极客头条...
  12. Windows部分软件乱码教你快速解决
  13. 使用点云数据创建数字高程模型(DEM)
  14. python 怎么算l2范数_向量范数与矩阵范数(L0, L1, L2)
  15. Node.js:npm install时出错 check python checking for Python executable “python2“ in the PATH
  16. 基于Vue封装酷炫进度条插件
  17. 上班没事做gai这么办
  18. JAVA SHA-1加密及DES加解密
  19. java项目第8期-在线游戏商城系统【毕业设计】
  20. keycloak项目代码

热门文章

  1. android 代码中切换输入法,在Android系统中切换输入法的相关教程
  2. 下载电驴屏蔽资源办法
  3. 学英语查单词:快乐英语,简单生活,why not Bing EngKoo!?
  4. Java小白 学习笔记(二)——2020版Java语言基础
  5. openbmc开发30:webui开发—基础
  6. HTML文件mhl,比HDMI更强!MHL与HDMI技术解析
  7. 计算机无法识别苹果6手机软件,电脑无法识别iphone6怎么解决
  8. vps windows php,windows 搭建 apache + php
  9. python 中的 Fraction 模块
  10. 经典贪吃蛇大战逆向 去广告+游戏内购