基于51单片机气体检测报警系统-proteus仿真-源程序

news2024/11/24 9:50:36

一、系统方案
1、本设计采用51单片机作为主控器。
2、MQ5采集气体值送到液晶1602显示。
3、按键设置报警阀值,声光报警。
在这里插入图片描述

二、硬件设计
原理图如下:
在这里插入图片描述

三、单片机软件设计
1、首先是系统初始化
void init_1602() //初始化
{
lcdwc(0x01);
lcdwc(0x38);
lcdwc(0x0c);
lcdwc(0x06);
}

2、液晶显示程序
void lcdwc(uchar lcd_cmd) //液晶命令
{
lcden=0;
lcdrs=0;
lcdrw=0;
datlcd=lcd_cmd;
delay(1);
lcden=1;
delay(1);
lcden=0;
}
void lcdwd(uchar lcd_data) //液晶数据
{
lcden=0;
lcdrs=1;
lcdrw=0;
datlcd=lcd_data;
delay(1);
lcden=1;
delay(1);
lcden=0;
}
void lcdxy(uchar hlcd,uchar addlcd,uchar dtlcd) //定位写数据
{
if (hlcd1)
{
lcdwc(0x80+addlcd);
lcdwd(dtlcd);
}
else
{
lcdwc(0xc0+addlcd);
lcdwd(dtlcd);
}
}
3、按键程序
void key()//按键扫描
{
if(key1
0)//手动开关灯
{
delay(10);//延时消除按键抖动
if(key10)// 再次判断
{
while(!key1);// 等待按键释放
led=!led;
}
}
if(key2
0)//报警值加1
{
delay(10);
if(key20)
{
while(!key2);
MAX=MAX+1;
if(MAX>100)
MAX=0;
}
}
if(key3
0)//报警值减1
{
delay(10);
if(key30)
{
while(!key3);
if(MAX>=1)
MAX–;
}
}
if(key4
0)//取消报警
{
delay(10);
if(key4==0)
{
while(!key4);
flag=1;
}
}

}
4、核心算法程序
//
// 获取指定通道的A/D转换结果
/
/
uchar Get_ADC0832()
{
uchar i;
uchar dat1=0;
uchar dat2=0;

ADC_CLK = 0;				// 电平初始化
ADC_DAT = 1;
_nop_();
ADC_CS = 0;
WavePlus();					// 起始信号 
ADC_DAT = 1;
WavePlus();					// 通道选择的第一位
ADC_DAT = 0;      
WavePlus();					// 通道选择的第二位
ADC_DAT = 1;

for(i=0;i<8;i++)		// 第一次读取
{
	dat1<<=1;
	WavePlus();
	if(ADC_DAT)
		dat1=dat1|0x01;
	else
		dat1=dat1|0x00;
}

for(i=0;i<8;i++)		// 第二次读取
{
	dat2>>= 1;
	if(ADC_DAT)
		dat2=dat2|0x80;
	else
		dat2=dat2|0x00;
	WavePlus();
}

_nop_();						// 结束此次传输
ADC_DAT = 1;
ADC_CLK = 1;
ADC_CS  = 1;   

if(dat1==dat2)			// 返回采集结果
	return dat1;
else
	return 0;

}

四、 proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1043924.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ArcGIS实战教程

ArcGIS实践教程&#xff08;1&#xff09;通过ArcMap把mxd格式转换为dwg格式 ArcGIS实践教程&#xff08;2&#xff09;ArcMap将excel数据转换为shp ArcGIS实践教程&#xff08;3&#xff09;ArcMap导入Excel属性数据 ArcGIS实践教程&#xff08;4&#xff09;利用ArcGIS进行…

NPDP证书,为什么这么多人考?

NPDP证书至2016年引进国内&#xff0c;考试人数就持续增长&#xff0c;不仅是新产品开发唯一 的职业证书&#xff0c;在产品管理这一领域的知名度也在前列&#xff0c;那么这个证书的作用在哪里呢&#xff1f; 想考npdp证书&#xff0c;npdp干货可下载&#xff1a; 1、就业范围…

YOLOV1论文精度

YOLOV1&#xff1a;You only look once 1.介绍 1.1 简介&#xff1a; 传统的目标检测算法如R-CNN都是先生成候选框&#xff0c;然后在分类器上进行分类&#xff0c;由于每个部分都是分开训练&#xff0c;所以很难去优化而且速度比较慢。而yolov1把目标检测当成一个回归问题&…

2023年融资融券费率最低的证券公司,佣金万一,融资利率5%永久

2023年信用账户新开户&#xff0c;融资利率最低5%&#xff0c;专项融券2.99%起&#xff01; 了解融资利息之前先看看融资融券业务开通要求: ①在任意券商交易时间满半年。 ②在开户券商连续20个交易日日均资产超过50W。如&#xff1a;账户保持100w&#xff0c;只需要10个交易日…

消息中间件(二)——kafka

文章目录 Apache Kafka综述什么是消息系统&#xff1f;点对点消息类型发布-订阅消息类型 什么是Kafka?优点关键术语Kafka基本原理用例 Apache Kafka综述 在大数据中&#xff0c;会使用到大量的数据。面对这些海量的数据&#xff0c;我们一是需要做到能够收集这些数据&#xf…

【HCIE】10.EVPN

VPLS技术&#xff0c;公共网络中的一个L2VPN VPN一共有8种类&#xff0c;三大属性是&#xff1a;MPLS(IP)&#xff0c;L2(L3),P2P(P2MP) MPLS VPN的属性是&#xff1a;MPLS,L3,P2MP VPLS和EVPN的属性是&#xff1a;MPLS L2 P2MP L3vpn是两个不在同一网段的网络互通 L2vpn是…

【必看】自动化测试:selenium(环境部署和元素定位)

一、什么是selenium&#xff1f; > 一个web自动化测试工具&#xff1b; 二、主流的自动化工具&#xff1a; > QTP:收费 支持&#xff08;支持web、桌面软件自动化&#xff09; > selenium:免费&#xff0c;开源 只支持web项目 > Robot frameword: 基于Python扩…

VM装Windows虚拟机扩容

1.进入服务器CMD模式&#xff0c;输入diskpart&#xff0c;回车 2.查看卷 list volume 3.指定扩容的磁盘 select volume 1 4.查看磁盘 list disk 5.查看逻辑分区 list parttition 6.选择需要扩展的逻辑分区 select partition 1 7.扩展 extend 8.退出并查看磁盘大小

Linux系统离线安装Python

目录 一、简介 二、前提准备 三、下载Python源码 四、将离线python包传输到Linux主机 五、编译以及创建软链接 一、简介 由于工作原因&#xff0c;我们经常会在内网环境下使用Linux&#xff0c;不过这样会让我们安装一些软件变得困难&#xff0c;例如需要安装Python。虽然…

工业静电控制ESD防静电手环监控看板的优势

在现代工业生产中&#xff0c;静电问题一直是令人头痛的难题。静电不仅会对产品质量造成严重影响&#xff0c;还可能导致设备故障和生产线停工。为了解决这一问题&#xff0c;一种新型的防静电监测系统应运而生——ESD防静电手环监控看板。该系统采用全自动智能测量、预警和提示…

2023《生信知识库》订阅

写在前面 自2021年11月末&#xff0c;我们开始通过《小杜的生信笔记》分享自己的学习笔记。我们的教程也受到很多同学的关注。我们的分享主要基于小杜自己的学习笔记&#xff0c;如画图&#xff0c;分析等。在知乎中&#xff0c;我们推出一期R语言绘图总汇https://zhuanlan.zhi…

【工具使用】Audition软件导入.sesx文件报错问题

一&#xff0c;简介 本文主要介绍了在使用Audition导入新的wav文件后&#xff0c;保存&#xff0c;然后再打开.sesx文件时报错&#xff1a;“ 错误: 文件已损坏或使用了不受支持的格式 XML FATAL ERROR: (line: 2835, col: 69) [ D:\Project\AE_Y2311\16channel_test\16_chann…

2023-9-26 JZ22 链表中倒数最后k个结点

题目链接&#xff1a;链表中倒数最后k个结点 import java.util.*;/** public class ListNode {* int val;* ListNode next null;* public ListNode(int val) {* this.val val;* }* }*/public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xf…

多协议远程管理 Termius for Mac中文

Termius是一款功能全面、易于使用的远程访问和SSH客户端软件&#xff0c;提供了许多有用的功能和工具&#xff0c;适用于开发人员、系统管理员和网络工程师等需要远程管理和访问服务器的用户。 跨平台支持&#xff1a;Termius可在多个操作系统上运行&#xff0c;包括Windows、…

autojs项目搭建和入门实践

Auto.js 是一款无需root权限的javascript自动化软件&#xff0c;它可以帮助用户在手机上自动执行各种任务&#xff0c;比如自动填写表单、自动点击按钮、自动切换应用等&#xff0c;并且可以通过图形用户界面来管理和编辑脚本。 软件环境 操作系统&#xff1a;win10 VSCODE&…

seata的启动与使用

1 下载seata 下载地址&#xff1a;https://github.com/seata/seata/releases/v0.9.0/ 1.1 修改配置文件 将下载得到的压缩包进行解压&#xff0c;进入conf目录&#xff0c;调整下面的配置文件&#xff1a; registry.conf registry {type "nacos"nacos {serverA…

ARM IIC总线实现温湿传感器

IIC.h #ifndef __IIC_H__ #define __IIC_H__ #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h"/* 通过程序模拟实现I2C总线的时序和协议* GPIOF ---> AHB4* I2C1_SCL ---> PF14* I2C1_SDA ---> PF15** */#define SET_SDA_OUT do{G…

VR全景如何助力乡村振兴,VR全景推动农业发展

引言&#xff1a; 乡村振兴是当前我国发展的重要战略&#xff0c;而VR全景技术作为一种创新的数字技术&#xff0c;帮助乡村增加曝光率&#xff0c;为乡村发展提供了机遇&#xff0c;助力乡村振兴。 一.促进乡村文化传承与旅游发展 1.通过VR全景技术&#xff0c;传承乡村文化…

如何评估商城源码的安全性和稳定性?

评估商城源码的安全性和稳定性是选择合适的商城源码的关键一步。以下是一些方法和指标&#xff0c;可用于评估商城源码的安全性和稳定性。希望对大家有所帮助(仅供参考)。 1、源码质量 商城源码的质量是评估其安全性和稳定性的重要指标之一。我们技术可以检查源码的编码规范、…

数据库导入文字不乱吗 CSV

phpMyadmin建立数据库&#xff06;设置外键&#xff06;导入csv文件 - 知乎