基于51单片机烟雾报警器数码管显示( proteus仿真+程序+设计报告+讲解视频)

基于51单片机烟雾报警器数码管显示( proteus仿真+程序+设计报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0067

1. 主要功能:

基于51单片机的烟雾报警器proteus仿真设计

1.LED数码管显示烟雾报警值和检测到的烟雾值;

2.可以通过按键调整烟雾报警浓度值;

3.烟雾浓度低于报警值工作指示灯绿灯亮。

烟雾浓度高于阈值蜂鸣器报警,工作指示灯红灯亮;

4.通过ADC0832采集滑动变阻器模拟MQ-2电压变化。

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

2. 讲解视频:

讲解视频包含仿真运行讲解和代码讲解

3. 仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

imgimgimg

4. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

img

完整代码见文章下载链接
#include "reg51.h"
#include "intrins.h"
sbit CLK=	P1^1;//时钟,初始状态为0
sbit DI=	P1^2;//数据输入
sbit DO=	P1^3; // 数据输出
sbit CS=	P1^0;
sbit LED_RED=P3^4;	 //红灯
sbit LED_GREEN=P3^5; //绿灯
sbit beep=P3^0;//蜂鸣器
unsigned char code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int num=0;//烟雾
unsigned int limit=1500;//阀值
unsigned char beepflag;
unsigned int cnt=0;
/*********************************************
读取ADC
**********************************************/
unsigned char ADC()//通道ch0
{unsigned char temp0,temp1,i;CS=0;temp0=0;temp1=0;_nop_();_nop_();DI=1;//开始位_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=0;_nop_();_nop_();DI=0;_nop_();_nop_();
//选择通道0DI=1;_nop_();CLK=1;//上升沿DI=1_nop_();CLK=0;//1个下降沿DI=1_nop_();DI=0;_nop_();CLK=1;_nop_();CLK=0;//第3个上升沿DI=0_nop_();DI=1;
//********通道选择结束开始读取转换后的二进制数****
//下降沿读数,一下进行判断和处理,共8次
for(i=0;i<8;i++){temp0=temp0<<1;CLK=1;if(DO)temp0++;_nop_();CLK=0;}
for(i=0;i<8;i++){temp1=temp1>>1;CLK=1;if(DO)temp1=temp1 +0x80;_nop_();CLK=0;}CS=1;return temp0;
}
void delay(unsigned int i)//延时
{while(i--);
}void main()
{TMOD|=0X01;TH0=0X3C;TL0=0XB0;	EX0=1;//打开外部中断0EX1=1;//打开外部中断1IT0=1;//下降沿触发IT1=1;//下降沿触发ET0=1;//打开定时器0中断允许EA=1;//打开总中断TR0=1;//打开定时器beepflag = 0;while(1){P0=smgduan[num/1000];//显示烟雾度P2=0xfe;delay(100);P2=0xff;P0=smgduan[num%1000/100];//显示烟雾度P2=0xfd;delay(100);P2=0xff;P0=smgduan[num%100/10];//显示烟雾度
//		 	P0 =P0|0x80; //加小数点P2=0xfb;delay(100);P2=0xff;P0=smgduan[num%10];//显示烟雾度P2=0xf7;delay(100);P2=0xff;P0=smgduan[limit/1000];//显示烟雾度阀值P2=0xef;delay(100);P2=0xff;							 P0=smgduan[limit%1000/100];//显示烟雾度阀值P2=0xdf;delay(100);P2=0xff;P0=smgduan[limit%100/10];//显示烟雾度阀值P2=0xbf;delay(100);P2=0xff;P0=smgduan[limit%10];//显示烟雾度阀值P2=0x7f;delay(100);P2=0xff;  }
}
void Timer0() interrupt 1//定时器中断
{TH0=0X3C; //50ms中断TL0=0XB0;if(cnt==20){//1秒一次cnt = 0;
//		if(num>limit){//报警
//			if(beepflag<10)beepflag++;//10秒计数
//		}else{
//			beep=1;
//			beepflag = 0;
//		}
//		
//		if(beepflag<10&&num>limit*10){//响10秒
//			beep=0;
//		}else{
//			beep=1;
//		}if(num>limit){//报警beep=0;LED_RED=0;	 //红色报警灯 亮LED_GREEN=1;  //绿色报警灯 灭}else{beep=1;LED_RED=1;	    //红色报警灯  灭LED_GREEN=0;  //绿色报警灯  亮}}	cnt++;}	void jia() interrupt 0//按键 外部中断0处理函数
{if(limit<2500)limit=limit+10;elselimit=0;
}
void jian() interrupt 2//按键 外部中断1处理函数
{if(limit>0)limit=limit-10;elselimit=2500;
}

5. 设计报告

4947字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

img

6. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

1、仿真图

2、程序源码

3、功能要求

4、开题报告

5、设计报告

6、软硬件流程框图

7、讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

img

资料下载链接(可点击):

https://docs.qq.com/doc/DS1VFWmlRSVRCR3Rl

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

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

相关文章

Spring中 Unsupported class file major version 61 报错

初学Spring时遇到的一个错误&#xff1a;Unsupported class file major version 61 &#xff0c;如图所示&#xff1a; 网上查了一下大概是JDK的版本与Spring的版本不一致导致的错误&#xff1b;刚开始我用的Spring版本是&#xff1a; <dependencies><dependency>…

PostgreSQL教程(十一):SQL语言(四)之数据类型

一、数值类型 数值类型由 2 字节、4 字节或 8 字节的整数以及 4 字节或 8 字节的浮点数和可选精度的十进制数组成。 下表列出了所有可用类型。 数值类型 名字存储长度描述范围smallint2 字节小范围整数-32768 到 32767integer4 字节常用的整数-2147483648 到 2147483647bigi…

个人建站前端篇(七)vite + vue3企业级项目模板

一、vite命令行创建项目 npm create vitelatest根据提示选择模板&#xff0c;选择vite vue3 ts即可。 二、项目连接远程仓库 git init git remote add origin https://gitee.com/niech_project/vite-vue3-template.git git pull origin master git checkout -b dev三、项目…

【GPU驱动开发】-mesa简介

前言 不必害怕未知&#xff0c;无需恐惧犯错&#xff0c;做一个Creator&#xff01; 一、mesa介绍 Mesa是OpenGL、Vulkan和其他图形API规范的开源实现。主要由Intel和AMD为其各自的硬件开发和资助。 AMD 在已弃用的AMD Catalyst上推广其 Mesa 驱动程序 Radeon 和 RadeonSI &…

C# 学习第四弹——字符串

一、char类型的使用 字符使用单引号&#xff0c;单个字符 转义字符是一种特殊的字符变量&#xff0c;以反斜线开头&#xff0c;后跟一个或多个字符。 输出多级目录可以使用 二、字符串的声明和初始化 1、引用字符串常量 引用字符串常量初始化——字符使用单引号&#xff0…

【达梦8】达梦8不支持联机恢复数据库和表空间

达梦8不支持联机恢复数据库和表空间&#xff0c;只支持联机恢复表。 恢复数据库和表空间仅支持脱机恢复。 各备份工具功能如下&#xff1a;

统计分析笔记3

文章目录 统计检验选择正确的统计检验统计检验是做什么的&#xff1f;何时进行统计检验选择参数化测试&#xff1a;回归、比较或相关性选择非参数检验 假设检验的假设条件skewness什么是零偏度right skewleft skew计算skewnesswhat to do if your data is skewed kurtosis怎么计…

移动Web系统中无监督KPI异常检测的监督式微调

简介 本文介绍由清华大学、南开大学、中国移动研究院与必示科技共同合作的论文&#xff1a;移动Web系统中无监督KPI异常检测的监督式微调。该论文已被The Web Conference 2024&#xff08;International World Wide Web Conference&#xff09;会议录用&#xff0c;论文标题为&…

VUE3搭载到服务器

1.搭建服务器 使用 Windows 自带的 IIS 作为服务器。 步骤如下&#xff1a;https://blog.csdn.net/qq_62464995/article/details/130140673 同时&#xff0c;上面的步骤中&#xff0c;还使用了 cpolar 将 IIS 本地网址映射到公共网址。 注&#xff1a; cpolar客户端&#xf…

微服务架构 SpringCloud

单体应用架构 将项目所有模块(功能)打成jar或者war&#xff0c;然后部署一个进程--医院挂号系统&#xff1b; > 优点: > 1:部署简单:由于是完整的结构体&#xff0c;可以直接部署在一个服务器上即可。 > 2:技术单一:项目不需要复杂的技术栈&#xff0c;往往一套熟悉的…

选择何种操作系统作为网站服务器

选择操作系统时&#xff0c;需考虑稳定性、安全性、成本、兼容性和技术支持等因素&#xff0c;常见选项有Windows Server和Linux发行版。 选择网站服务器的操作系统是一个关键的决策&#xff0c;因为它将影响到网站的性能、稳定性、安全性以及未来的扩展性&#xff0c;目前市场…

LabVIEW最佳传输系统设计

LabVIEW最佳传输系统设计 介绍了基于LabVIEW软件开发的最佳基带传输系统和最佳带通传输系统的设计。通过软件仿真实现了脉冲成形滤波器和匹配滤波器的设计&#xff0c;证明了系统在消除码间干扰和抗噪声方面的优异性能。此设计不仅激发了学生的学习兴趣&#xff0c;还有助于提…

kafka消费者接收不到消息

背景&#xff1a; 对kafka消息进行监听&#xff0c;生产者发了消息&#xff0c;但是消费端没有接到消息&#xff0c;监听代码 消费端&#xff0c;kafka配置 spring.kafka.bootstrap-serverskafka.cestc.dmp:9591 spring.kafka.properties.sasl.jaas.configorg.apache.kafka.…

《系统架构设计师教程(第2版)》第5章-软件工程基础知识-05-净室软件工程(CSE)

文章目录 1. 概述2. 理论基础2.1 函数理论2.2 抽样理论 3. 技术手段3.1 增量式开发3.2 基于函数的规范与设计3.3 正确性验证3.4 统计测试 (Statistically Based Testing) 和软件认证 4. 应用与缺点1&#xff09;太理论化2&#xff09;缺少传统模块测试3&#xff09;带有传统软件…

table展示子级踩坑

##elemenui中table通过row中是否有children进行判断是否展示子集&#xff0c;通过设置tree-prop的属性进行设置&#xff0c;子级的children的名字可以根据自己的子级名字进行替换&#xff0c;当然同样可以对数据处理成含有chilren的子级list。 问题&#xff1a; 1.如果是根据后…

香港服务器选择指南(挑选香港服务器的几个标准)

​  随着全球化的加速和互联网的普及&#xff0c;跨境访问和外贸活动越来越频繁。在这个背景下&#xff0c;香港服务器作为一种国际化的基础设施&#xff0c;受到了广泛欢迎。本文将探讨企业在选择香港服务器时应关注的几个标准事项。 1.可靠性和正常运行时间 停机可能会给企…

LeetCode 0938.二叉搜索树的范围和:深度优先搜索(可中序遍历)

【LetMeFly】938.二叉搜索树的范围和&#xff1a;深度优先搜索&#xff08;可中序遍历&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/range-sum-of-bst/ 给定二叉搜索树的根结点 root&#xff0c;返回值位于范围 [low, high] 之间的所有结点的值的和。…

LVS负载均衡服务器

简介: LVS (Linux Virtual Server):四层路由设备&#xff0c;是由中国人章文松研发的(阿里巴巴的副总裁)根据用户请求的IP与端口号实现将用户的请求分发至不同的主机。 工作原理: LVS工作在一台server上提供Directory(负载均衡器)的功能&#xff0c;本身并不提供服务&#xff…

【QT+QGIS跨平台编译】之五十三:【QGIS_CORE跨平台编译】—【qgssqlstatementparser.cpp生成】

文章目录 一、Bison二、生成来源三、构建过程一、Bison GNU Bison 是一个通用的解析器生成器,它可以将注释的无上下文语法转换为使用 LALR (1) 解析表的确定性 LR 或广义 LR (GLR) 解析器。Bison 还可以生成 IELR (1) 或规范 LR (1) 解析表。一旦您熟练使用 Bison,您可以使用…

2024年留学基金委(CSC) 青年骨干教师出国研修项目公布(附建议)

2月27日&#xff0c;国家留学基金委&#xff08;CSC&#xff09;公布了2024年青年骨干教师出国研修项目通知&#xff0c;知识人网小编现将项目指南、申请材料及说明、常见问题解答等原文转载并提出建议。 知识人网建议 一、2024年的通知精神与2023年相比变化不大。 二、建议 …