毕业设计|基于51单片机的空气质量检测PM2.5粉尘检测温度设计

news2024/11/25 21:21:15

基于51单片机的空气质量检测PM2.5粉尘检测温度设计

  • 1、项目简介
    • 1.1 系统构成
    • 1.2 系统功能
  • 2、部分电路设计
    • 2.1 LED信号指示灯电路设计
    • 2.2 LCD1602显示电路
    • 2.3 PM2.5粉尘检测电路设计
  • 3、部分代码展示
    • 3.1 串口初始化
    • 3.1 定时器初始化
    • 3.2 LCD1602显示函数
  • 4 演示视频及代码资料获取

1、项目简介

  • 视频简介中包含资料
  • https://www.bilibili.com/video/BV1f14y1r7Hy/?spm_id_from=333.999.0.0

1.1 系统构成

本系统采用51/52单片机+LCD1602液晶显示屏+声光报警按键+0832模数转换芯片+PM2.5传感器设计而成。

1.2 系统功能

  • 1、51单片机作为主控芯片,由(GP2Y1010AU0F)粉尘传感器采集到信号,然后通过ADC0832将模拟信号转化为数字信号,传送给单片机读取并处理数据。
  • 2、LCD1602液晶屏幕上显示测到的PM2.5实际值,PM2.5浓度报警阀值
  • 3、通过按键可修改报警阈值
  • 4、使用LED与蜂鸣器进行报警,超出报警阈值,打开风扇

2、部分电路设计

2.1 LED信号指示灯电路设计

LED灯即发光二极管,它是半导体二极管的一种,可以把电能转化成光能。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。在电路中,电阻的作用是限流,保护LED灯。只要单片机的控制引脚拉低,则LED灯亮,否则,LED灯不亮。其具体电路原理图如下图所示。

2.2 LCD1602显示电路

LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。
一、LCD1602主要技术参数如下:
(1)显示容量为16×2个字符;
(2)芯片工作电压为4.5~5.5V;
(3)工作电流为2.0mA(5.0V);
(4)模块最佳工作电压为5.0V;
(5)字符尺寸为2.95×4.35(W×H)mm。
二、LCD1602采用标准的14脚,其接口的引脚说明如下:
(1)第1脚:VSS为地电源。
(2)第2脚:VDD接5V正电源。
(3)第3脚:V0为液晶显示器对比度调整端。
(4)第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
(5)第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
(6)第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
(7)第7~14脚:D0~D7为8位双向数据线。
(8)第15~16脚:空脚

2.3 PM2.5粉尘检测电路设计

粉尘浓度检测仪的核心部件是粉尘传感器[10]。它的选择直接影响到了量程的大小以及测量结果的准确程度。而考虑到它与单片机协同工作,因此在电源供电电压输出问题上也需谨慎。本设计中使用了SHARP(夏普)公司的GP2Y1010AU0F粉尘浓度传感器。如图

电路连接如下图

3、部分代码展示

3.1 串口初始化

void UART_Init(void)
{
  SCON  = 0x50;		// SCON: 模式 1, 8-bit UART, 使能接收  
  TMOD |= 0x20;     // TMOD: timer 1, mode 2, 8-bit 重装
  TH1   = 0xFD;     // TH1:  重装值 9600 波特率 晶振 11.0592MHz
  TL1 = TH1;  
  TR1   = 1;        // TR1:  timer 1 打开                         
  EA    = 1;        //打开总中断
  ES    = 1;        //打开串口中断
} 

3.1 定时器初始化

void Init_Timer0(void)
{
	TMOD |= 0x01;	  //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响		     
	TH0=(65536-10000)/256;		  //重新赋值 20ms
	TL0=(65536-10000)%256;
	EA=1;            //总中断打开
	ET0=1;           //定时器中断打开
	TR0=1;           //定时器开关打开
}

3.2 LCD1602显示函数

void L1602_char(uchar hang,uchar lie,char sign)
{
	uchar a;
	if(hang == 1) a = 0x80;
	if(hang == 2) a = 0xc0;
	a = a + lie - 1;
	enable(a);
	write(sign);
}

4 演示视频及代码资料获取

  • 视频简介中包含资料
  • https://www.bilibili.com/video/BV1f14y1r7Hy/?spm_id_from=333.999.0.0

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

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

相关文章

Java实现截取视频第一帧

目录 前言 一、通过Java借助第三方库实现 1.引用ffmpeg 使用maven,导入pom依赖: 工具类 2.引用jcodec 二、使用第三方存储自带的方法实现(如阿里云OSS、华为云OBS) 前言 在实际项目中,会遇到上传视频后&#xf…

SpringBoot轻松实现项目集成Knife4j接口文档

Knife4j 介绍 Knife4j 官网 Knife4j是一款基于Swagger生成API文档的增强工具,它简化了开发者构建和管理RESTful API文档的过程。通过自动扫描项目中的接口信息,Knife4j能够生成详细、易读的API文档,无需手动编写和维护。它提供交互式的接口调…

以太网传输距离以及延长办法

以太网传输距离与介质 以太网的标准传输距离取决于不同的以太网类型和传输介质。以下是一些常见的以太网类型和它们的标准传输距离: 以太网(Ethernet):传输距离最长为100米,使用双绞线作为传输介质。 快速以太网&…

我的Qt作品(19)使用Qt写一个轻量级的视觉框架---第2章,实现思维导图方式的流程图运行

上次写的第1章介绍了主界面的设计。 https://blog.csdn.net/libaineu2004/article/details/130277151 本次是第2章,主要介绍流程图的运行。 本作品采用的是QtOpenCV组合方式开发。流程图的设计思想其实就是数据结构的【图】。通过遍历每个节点来执行各个算法。 1…

深度学习数据集的文本制作和读取

文章目录 制作数据集的文本文件读取文本文件 制作数据集的文本文件 import os from os.path import join import random import config args config.argsclass SplitDataset:def __init__(self):self.data_root_path args.data_root_pathself.dataset_split_rate args.data…

【网络应用与安全】第一次作业

文章目录 一、熟悉实验室运行环境1 - 登录2 - 熟悉Linux环境3 - 远程登录4 - 使用Git 二、网络延迟三、网络应用四、HTTP五、Network Port六、TCP Protocol七、实验室系统1 - LDAP2 - Kerberos3 - Ansible 八、Linux运行环境和Nginx1 - 安装Ubuntu22.04.3LTS版本2 - 安装Nginx3…

Linux:基础开发工具之yum,vim,gcc的使用

文章目录 yumvimgcc 本篇主要总结的是Linux下开发工具 yumvimgcc/g yum 什么是yum? 不管是在手机移动端还是pc端,不管是什么操作系统,当用户想要下载一些内容或者工具的时候,都需要到一个特定的位置进行下载,例如在…

图片格式大全

青春不能回头,青春也没有终点。 大全介绍 图片格式有多种,每种格式都有其独特的特性和用途。以下是一些常见的图片格式以及它们的介绍: JPEG(Joint Photographic Experts Group): 文件扩展名:…

Whisper + NemoASR + ChatGPT 实现语言转文字、说话人识别、内容总结等功能

引言 2023年,IT领域的焦点无疑是ChatGPT,然而,同属OpenAI的开源产品Whisper似乎鲜少引起足够的注意。 Whisper是一款自动语音识别系统,可以识别来自99种不同语言的语音并将其转录为文字。 如果说ChatGPT为计算机赋予了大脑&…

解决flutter不识别yaml里面配置的git项目

解决办法找到相应的 git路径,然后手动 git pull 暂时先用这个笨方法,后面有更好的解决办法了再说 studio 自己拉取的项目里面没有ios 和lib包

知识付费平台开发技术实践:构建数字学习的未来

引言 知识付费平台的兴起正在塑造着数字学习的未来。本文将介绍一些关键的技术实践,帮助开发者构建强大的知识付费平台,提供出色的数字学习体验。 1. 选择适当的技术栈 在开始知识付费平台的开发之前,首要任务是选择适当的技术栈。这包括…

App测试中iOS和Android的差异

1、系统版本: iOS和Android系统版本的更新速度、使用人数比例以及功能的不同都可能导致应用程序在不同操作系统版本上的表现和兼容性存在区别。 例如,在iOS平台上,很多用户会更快地升级到最新版本的iOS系统,而在Android平台上&a…

如何用C语言实现 IoT Core

涂鸦 IoT Core SDK 使用 C 语言实现,支持涂鸦设备模型协议,适用于开发者自主开发硬件设备逻辑业务接入涂鸦。 功能概述 涂鸦 IoT Core SDK 提供设备激活、发送上下行 DP 和固件 OTA 升级等基础业务接口封装。SDK 不依赖具体设备平台及操作系统环境&…

Java毕业设计-基于SpringBoot的租房网站的设计与实现

大家好,今天为大家打来的是基于SpringBoot的租房网站的设计与实现 博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 一、前言介绍二、主…

如何理解高效IO

目录 前言 1.如何理解高效的IO 2.五种IO模型 3.非阻塞IO 4.非阻塞代码编写 总结 前言 哈喽,很高兴和大家见面!今天我们要介绍的关于IO的话题,在计算机中IO是非常常规的操作,例如将数据显示到外设,或者将数据从主…

将本地前端工程中的npm依赖上传到Nexus

【问题背景】 用Nexus搭建了内网的依赖仓库,需要将前端工程中node_modules中的依赖上传到Nexus上,但是node_modules中的依赖已经是解压后的状态,如果直接机械地将其简单地打包上传到Nexus,那么无法通过npm install下载使用。故有…

安防监控系统/视频云存储/监控平台EasyCVR服务器解释器出现变更该如何修改?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

软件测试/测试开发丨利用人工智能ChatGPT批量生成测试数据

点此获取更多相关资料 简介 测试数据是指一组专注于为测试服务的数据,既可以作为功能的输入去验证输出,也可以去触发各类异常场景。 测试数据的设计尤为重要,等价类、边界值、正交法等测试用例设计方法都是为了更全面地设计对应的测试数据…

Immutable.js API 简介

Immutable-js 这个库的实现是深拷贝还是浅拷贝?immutable 来源immutable.js三大特性: 持久化数据结构结构共享惰性操作 Immutable.js 的几种数据类型 immutable 使用 使用 npm 安装 immutable: 常用API介绍 MapListList.isList() 和 Map.isMa…

【Linux】页表讲解(一级、二级) 和 vm_area_struct ## 对于我前面博客内容的补充

对于前5篇进程相关知识的补充 前言正式开始页表讲解缺页中断页表是如何映射的页表的真正面目 vm_area_structmm_structvm_area_stuct 前言 前面我的博客中讲了很多关于进程的知识,但是有一些内容需要做一点补充,补充完后我的下一篇博客就开始讲线程相关…