【012】基于51单片机的可燃气体报警装置proteus仿真与实物设计
一、资料内容
- (1)、基于51单片机的可燃气体报警器proteus仿真设计一份;
- (2)、基于51单片机的可燃气体报警器proteus仿真设计keli源代码一份;
- (3)、基于51单片机的可燃气体报警器设计Altium designer 原理图一份;
- (4)、基于51单片机的可燃气体报警器设计Altium designer PCB一份;
- (5)、基于51单片机的可燃气体报警器设计元器件清单一份;
- (6)、基于51单片机的烟雾报警系统proteus仿真设计视频讲解一份;
二、设计要求
- 1、完成51单片机最小系统的设计与仿真搭建;
- 2、通过单片机编程实现ADC0832模数转换功能;
- 3、通过模数转换功能实现可燃气体检测;
- 4、超过阈值启动声光报警功能;
- 6、根据上述要求完成实物制作与仿真;
三、相关资料截图
图1. 系统proteus仿真界面截图
图2. 系统Keil编程界面源代码截图
图3. 系统原理图工程文件
图4. PCB工程文件
图5. 系统实物照片
四、视频讲解
部分代码:
#include<reg51.h> //包含单片机寄存器的头文件
#include<intrins.h> //包含_nop_()函数定义的头文件
unsigned char flag=0; //紧急报警标示位
unsigned char flag1=0; //传感器检测报警标示位
sbit CS=P1^0; //将CS位定义为P3.4引脚
sbit CLK=P1^1; //将CLK位定义为P1.0引脚
sbit DIO=P1^2; //将DIO位定义为P1.1引脚
sbit K1=P2^4;
sbit LED1=P2^0; //警情指示灯
sbit LED2=P2^1; //正常指示灯
sbit BEEP=P2^2;
/*****************************************************
函数功能:延时1ms
(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒
***************************************************/
void delay1ms()
{unsigned char i,j; for(i=0;i<10;i++)for(j=0;j<33;j++); }/*****************************************************
函数功能:延时若干毫秒
入口参数:n
***************************************************/void delaynms(unsigned char n){unsigned char i;for(i=0;i<n;i++)delay1ms();}/*****************************************************
函数功能:按键控制子程序******************************************************/
void key()
{if(K1==0){delaynms(5);if(K1==0){while(!K1);flag++;if(flag==2)flag=0;}}
}
/*****************************************************函数功能:报警子程序*****************************************************/
void baojing()
{if(flag==1||flag1==1){LED2=1;LED1=0;BEEP=0;delaynms(500);BEEP=1;delaynms(500);}if(flag==0&&flag1==0){LED2=0;LED1=1;BEEP=1;}
}/*****************************************************
函数功能:将模拟信号转换成数字信号
***************************************************/
unsigned int A_D()
{unsigned char i,dat;CS=1; //一个转换周期开始CLK=0; //为第一个脉冲作准备CS=0; //CS置0,片选有效DIO=1; //DIO置1,规定的起始信号 CLK=1; //第一个脉冲CLK=0; //第一个脉冲的下降沿,此前DIO必须是高电平DIO=1; //DIO置1, 通道选择信号 CLK=1; //第二个脉冲,第2、3个脉冲下沉之前,DI必须跟别输入两位数据用于选择通道,这里选通道CH0 CLK=0; //第二个脉冲下降沿 DIO=0; //DI置0,选择通道0CLK=1; //第三个脉冲CLK=0; //第三个脉冲下降沿 DIO=1; //第三个脉冲下沉之后,输入端DIO失去作用,应置1CLK=1; //第四个脉冲for(i=0;i<8;i++) //高位在前{CLK=1; //第四个脉冲CLK=0; dat<<=1; //将下面储存的低位数据向右移dat|=(unsigned char)DIO; //将输出数据DIO通过或运算储存在dat最低位 } CS=1; //片选无效 return dat; //将读书的数据返回 }
/*****************************************************函数功能:警情检测子程序*****************************************************/
void jq()
{unsigned int AD_val; //储存A/D转换后的值AD_val=A_D(); //进行A/D转换if(AD_val>=100)flag1=1;elseflag1=0;
}
/*****************************************************
函数功能:主函数
***************************************************/
【012】基于51单片机的可燃气体报警装置proteus仿真与实物设计相关推荐
- 【011】基于51单片机的低频信号发生proteus仿真与实物设计
一.资料内容 (1).基于51单片机的低频信号发生proteus仿真设计一份: (2).基于51单片机的低频信号发生proteus仿真设计keli源代码一份: (3).基于51单片机的低频信号发生A ...
- 基于51单片机的LCD1602电子钟闹钟proteus仿真设计
本设计是基于51单片机的LCD1602电子钟闹钟proteus仿真设计 源码+仿真+原理图+器件清单 仿真软件版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编 ...
- 【004】基于51单片机的音乐播放器proteus仿真设计
一.压缩包资料内容(私信获取) (1).基于51单片机的音乐播放器proteus仿真设计一份: (2).基于51单片机的音乐播放器proteus仿真设计keli源代码一份: (3).基于51单片机的音 ...
- 【006】基于51单片机的简易电子计算器Proteus仿真设计
一.压缩包资料内容(私信获取) (1).基于51单片机的简易电子计算器proteus仿真设计一份: (2).基于51单片机的简易电子计算器proteus仿真设计keli源代码一份: (3).基于51单 ...
- 基于51单片机的八路电压表采集Proteus仿真(源码+仿真+原理图+全套资料)
资料编号:110 程序语言:C语言 仿真软件:Proteus8.9版本 功能讲解如下: 利用单片机及其外围器件(A/D转换器等)实现一款简易电压表,实现以下功能: 1 电压表能够进行8路模拟电压测 ...
- 基于51单片机火灾监测自动灭火装置Proteus仿真
资料编号:167 下面是相关功能视频演示: 167-基于51单片机火灾监测自动灭火装置Proteus仿真(源码+仿真+全套资料) 功能讲解: 采用51单片机作为控制CPU,采用ADC0832采集火 ...
- 基于51单片机的音乐盒播放器proteus仿真
资料编号:092 下面是相关功能视频演示: 92-基于51单片机的音乐盒播放器proteus仿真(源码+仿真+全套资料) 功能介绍:使用51单片机,采用蜂鸣器进行音乐播放,提供了音乐代码生成器软件, ...
- 基于51单片机智能导盲拐杖Proteus仿真
功能介绍: 采用51单片机作为主控CPU,采用HC-SR04超声波模块测量障碍物距离,LCD1602显示屏显示当前的障碍物距离,并且可以设置报警的阈值,通过传感器测量障碍物的距离的远近来进行相关报警, ...
- 基于51单片机的自动售货机Proteus仿真(源码+仿真+设计报告)
资料编号:137 视频讲解: 137-基于51单片机的自动售货机Proteus仿真(源码+仿真+设计报告) 功能介绍: 基本原理:通过矩阵键盘来选择货物的种类与数量过后自动售货机提示投币.自动售货机的 ...
- 基于51单片机的简易数字计算器Proteus仿真(源码+仿真+全套资料)
资料编号:115 全套资料齐全,功能说明: 该计算器系统51 系列的单片机进行的数字计算器系统设计,可以完成计算器的键盘输入, 进行加. 减.乘.除的简单四则运算,并在 LCD屏幕上相应的显示结果. ...
最新文章
- leetcode 122 买卖股票的最佳时机II
- V3S文件系统基本构架
- 面向对象写单片机程序-程序分层
- asp将新闻内容写入mysql数库据_在ASP.net中保存/取出图片入/从SQL数据库
- CGRect vs CGPoint vs CGSize
- idea shell 中的函数 跳转_SpringBoot项目打包+shell脚本部署实践,太有用了
- 【EOJ Monthly 2019.01 - E】唐纳德先生与假骰子(假概率问题)
- 神马专车喊话特斯拉:修不修、赔不赔、认不认?
- 集群节点基于Hadoop集群的HBase集群的配置【2】
- JavaScript 小技巧之数组合并
- 通过两点求圆心的公式
- 如何实现和提升软件易用性
- Codeforces Round #739 (Div. 3) ABCDEF1F2 解题思路
- 阿里云网关签名特殊字符无法通过
- BP神经网络原理及Python实现
- 电脑c盘满了怎么清理,快速清理,用这5招
- 论文阅读——Updatable Learned Index with Precise Positions(VLDB‘21)
- nginx网页地址重定向
- 千峰教学视频(官方)
- php生成vcf,php简单读取.vcf格式文件的方法示例
热门文章
- vs picturebox 图片缩放
- linux c语言俄罗斯方块,C语言俄罗斯方块游戏解析(图文+源码)
- 计算机桌面图标乱码,电脑软件上的文字变乱码怎么办?怎么修复?
- java工具类–自动将数据库表生成javabean
- AES加密解密C语言实现
- 我的世界服务器bug修复,我的世界服务器bug大全以及修复方法汇总
- Softmax和关于它的交叉熵损失函数详细求导过程
- BZOJ---4484:[Jsoi2015]最小表示【bitset】
- AutoCAD 系统变量
- 云平台是什么、什么是云、云平台的分类、主流公有云平台有哪些、云的三种服务、PaaS、SaaS、IaaS