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

基于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.0592MHzTL1 = TH1;  TR1   = 1;        // TR1:  timer 1 打开                         EA    = 1;        //打开总中断ES    = 1;        //打开串口中断
} 

3.1 定时器初始化

void Init_Timer0(void)
{TMOD |= 0x01;	  //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响		     TH0=(65536-10000)/256;		  //重新赋值 20msTL0=(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.mzph.cn/news/83147.shtml

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

相关文章

【Linux基础】第29讲 Linux用户和用户组权限控制命令(一)

1 useradd 添加新用户 (注意:当前用户必须有添加用户的权限) 1)基本语法 useradd 用户名(功能描述:添加新用户) 2)案例 rootsue-virtual-machine:/usr/local# useradd hadoop 2 …

【力扣每日一题】2023.9.10 打家劫舍Ⅳ

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目翻译有些烂,我来二次翻译一下,找出数组中k个两两互不相邻的数,求出它们的最大值。要求最大值尽可…

计算机竞赛 深度学习 python opencv 火焰检测识别

文章目录 0 前言1 基于YOLO的火焰检测与识别2 课题背景3 卷积神经网络3.1 卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV54.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 数据集准备5.1 数…

初识 python 装饰器

1.什么是装饰器? 装饰器(Decorator)是Python中一种用于修改函数或类的行为的设计模式。装饰器允许您在不修改原始函数或类的情况下,给它们添加新的功能,这使得代码更具可重用性和可扩展性。简而言之,就是一…

CAN - 基础

CAN 基础 概念分类特点物理层收发器线与编码方式通信方式采样点/位 常见故障 数据链路层CAN控制器数据帧分类数据帧格式数据帧DBC解析CRC校验远程帧 总线竞争与仲裁非破坏性仲裁机制 节点状态与错误处理机制节点状态错误处理机制错误帧 概念 分类 CANCAN FD高速CAN低俗容错CA…

Spring Boot 自动注入失败的原因

问题 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type com.sveinn.chatbotdomain.zsxq.service.ZsxqApi available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {ja…

QtCreator配置代码字体和颜色

文件路径 默认配色方案 This XML file does not appear to have any style information associated with it. The document tree is shown below. <style-scheme version"1.0" name"Default"> <style name"Text" foreground"#000…

Matlab信号处理:FFT频谱分辨率

频谱分辨率&#xff1a; 其中为采样间隔&#xff0c;为采样点数。 FFT分辨率&#xff1a; 其中为采样频率&#xff0c;为FFT点数。 有两正弦函数&#xff0c;频率分别为 f1 1Hz&#xff0c;f2 10Hz&#xff0c;f3 40Hz&#xff1b; 示例1&#xff1a; 采样频率 fs 1000H…

MySQL进阶篇3-视图和存储过程以及触发器的学习使用

视图/存储过程&#xff08;函数&#xff09;/触发器 视图&#xff1a;由表动态生成&#xff0c;虚拟的表&#xff0c;保存的是sql的逻辑。 创建视图&#xff1a; ​ create [or replace] view viewName【列名列表】 as select 语句 [with [cascaded|local] check option] 修…

国外发达国家码农是真混得好么?

来看看花旗工作十多年的码农怎么说吧! 美国最大的论坛 Reddit&#xff0c;之前有一个热帖&#xff1a; 一个程序员说自己喝醉了&#xff0c;软件工程师已经当了10年&#xff0c;心里有 好多话想说&#xff0c;“我可能会后悔今天说了这些话。”他洋洋洒洒写了 一大堆&#xff…

【Node.js】数据库配置与操作、Session实现原理、JWT实现原理:

文章目录 一、数据库配置与操作【1】 数据库的基本操作【2】 使用 mysql 模块操作 MySQL 数据库 二、Session实现原理【1】HTTP 协议的无状态性【2】Cookie【3】Session 的工作原理【3】在 Express 中使用 Session 认证 三、JWT实现原理【1】JWT 的工作原理【2】JWT 的组成部分…

Linux内核源码分析 (B.4) 深度剖析 Linux 伙伴系统的设计与实现

Linux内核源码分析 (B.4) 深度剖析 Linux 伙伴系统的设计与实现 文章目录 1\. 伙伴系统的核心数据结构2\. 到底什么是伙伴3\. 伙伴系统的内存分配原理4\. 伙伴系统的内存回收原理5\. 进入伙伴系统的前奏5.1 获取内存区域 zone 里指定的内存水位线5.2 检查 zone 中剩余内存容量…

powerDesigner 的基本使用

打开powerDesigner 新建 PDM(物理数据模型) 添加表字段 双击表&#xff0c;设置ID自增 选择导出数据库表SQL 导出成功 使用三方工具连接数据库&#xff0c;然后运行对应SQL文件即可 导入SQL文件数据到powerDesigner

如何用Postman做接口自动化测试

前言 什么是自动化测试 把人对软件的测试行为转化为由机器执行测试行为的一种实践。 例如GUI自动化测试&#xff0c;模拟人去操作软件界面&#xff0c;把人从简单重复的劳动中解放出来。 本质是用代码去测试另一段代码&#xff0c;属于一种软件开发工作&#xff0c;已经开发完…

Kafka 集群与可靠性

文章目录 Kafka集群的目标Kafka集群规模如何预估Kafka集群搭建实战Kafka集群原理成员关系与控制器集群工作机制replication-factor参数auto.leader.rebalance.enable参数 集群消息生产可靠的生产者ISR&#xff08;In-sync Replicas&#xff09;使用ISR方案的原因ISR相关配置说明…

python pycharm 下载 安装 自(1)

pycharm 官网 JetBrains: 软件开发者和团队的必备工具 python 官网 Python Release Python 3.11.5 | Python.org 软件安装 因为python需要借助pycharm所以需要安装 下边截图是重要的部分 pycharm python 终端安装 然后进行全局配置 打开pycahrm 可以在扩展里边搜索中…

docker安装es docker安装Elasticsearch windows linux

下载Elasticsearch和Kibana镜像docker pull elastic/elasticsearch:8.8.2 docker pull elastic/kibana:8.8.2 2. 设置max_map_countwindows&#xff1a; wsl -d docker-desktop sysctl -w vm.max_map_count262144 exit linux&#xff1a;cat /proc/sys/vm/max_map_count sys…

51单片机项目(13)——基于51单片机的智能台灯protues仿真

本次设计&#xff0c;使用protues软件进行仿真&#xff0c;详情如下&#xff1a; 1.输入部分:由热释电红外传感器、光敏传感器、超声波测距传感器所构成的子电路组成。 2.输出模块:由1602液晶显示及其蜂鸣器报警系统组成。 3.中央处理器:主要有AT89C52单片机构成。 4.工作过…

【Linux】进程控制

目录 一、进程创建初识fork函数fork函数返回值写时拷贝fork常规用法fork调用失败的原因 二、进程终止进程退出场景进程常见退出方法_exit函数与exit函数 三、进程等待进程等待必要性进程等待的方法waitwaitpid 获取子进程status非阻塞等待测试 四、进程程序替换替换原理替换函数…

Python WEB框架FastAPI (二)

Python WEB框架FastAPI &#xff08;二&#xff09; 最近一直在使用fastapi&#xff0c;随着使用的深入发现我对于它的了解还是太少了&#xff0c;以至于踩了一些坑。所以在这里记录一下&#xff0c;愿看到的小伙伴不迷路。 路径传参并发问题 一、路径传参 这是对上一个传参…