K_A11_001 基于STM32等单片机驱动DHT11 串口与OLED0.96双显示

news2025/1/17 9:04:21

K_A11_001 基于STM32等单片机驱动DHT11 串口与OLED0.96双显示

  • 一、资源说明
  • 二、基本参数
    • 1.参数
    • 2.引脚说明
  • 三、驱动说明
    • 时序
    • 对应程序:
  • 四、部分代码说明
    • 1、接线说明
      • 1.1、STC89C52RC+DHT11模块
      • 1.2、STM32F103C8T6+DHT11模块
  • 五、基础知识学习与相关资料下载
  • 六、视频效果展示与程序资料获取
  • 七、注意事项
  • 八、接线说明
    • STC89C52RC
    • STM32F103C8T6

请添加图片描述

一、资源说明

单片机型号测试条件模块名称代码功能
STC89C52RC晶振11.0592MDHT11模块STC89C52RC驱动DHT11模块串口与OLED0.96双显示
STM32F103C8T6晶振8M/系统时钟72MDHT11模块STM32F103C8T6驱动DHT11模块串口与OLED0.96双显示

其他资料目录 直戳跳转

二、基本参数

1.参数

请添加图片描述
请添加图片描述

2.引脚说明

DHT11模块引脚说明
VCC(+)正极 5V供电
OUT串行数据,单总线
GND(-)负极 接GND

三、驱动说明

时序

请添加图片描述
请添加图片描述

请添加图片描述

对应程序:

以51为例

void start()//开始信号 
{ 

		DHT11_DAT=1; 

		delay1(); 

		DHT11_DAT=0; 

		DelayMs(25);// 主机把总线拉低必须大于18ms保证DHT11能检测到起始信号 

		DHT11_DAT=1;    //发送开始信号结束后拉高电平延时20-40us 

		delay1();//以下三个延时函数差不多为24us符合要求 

		delay1(); 

		delay1(); 

} 

uint8_t receive_byte()//接收一个字节// 

{ 

  uint8_t i,temp; 

  for(i=0;i<8;i++)//接收8bit的数据 

  { 

			while(!DHT11_DAT);//等待50us的低电平开始信号结束 

			delay1();//开始信号结束之后延时26us-28us以下三个延时函数 

			delay1(); 

			delay1(); 

			temp=0;//时间为26us-28us表示接收的为数据'0' 

			if(DHT11_DAT==1) 

			temp=1; //如果26us-28us之后还为高电平则表示接收的数据为'1' 

			while(DHT11_DAT);//等待数据信号高电平'0'为26us-28us'1'为70us 

			data_byte<<=1;//接收的数据为高位在前右移 

			data_byte|=temp; 

  } 

  return data_byte; 

} 

四、部分代码说明

1、接线说明

需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

1.1、STC89C52RC+DHT11模块

//DHT11模块引脚定义
sbit DHT11_DAT=P1^0;

//OLED0.96模块引脚定义
sbit SCL=P1^3; //串行时钟
sbit SDA=P1^2; //串行数据

1.2、STM32F103C8T6+DHT11模块

//DHT11模块引脚定义 GPIOB_5
#define  DHT11_DAT_1   		GPIO_SetBits(GPIOB,GPIO_Pin_5)
#define  DHT11_DAT_0   		GPIO_ResetBits(GPIOB,GPIO_Pin_5)
#define  DHT11_DAT_Read   	GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5)

//OLED0.96模块引脚定义					
	/*STM32F103C8T6芯片的硬件I2C: PB6 -- SCL; PB7 -- SDA */
	GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;//
	GPIO_Init(GPIOB, &GPIO_InitStructure);

五、基础知识学习与相关资料下载

1、STC89C52RC程序下载 直戳跳转
2、STM32F103C8T6程序下载
(1)串口下载 直戳跳转
(2)ST-LINK下载 直戳跳转
(3)J-LINK下载 直戳跳转
(4)DAP-LINK下载 直戳跳转
3、OLED0.96程序说明 直戳跳转

六、视频效果展示与程序资料获取

视频连接 直戳跳转
资料获取 直戳跳转

七、注意事项

1、VCC GND请勿接反,接反易烧
2、OLED显示异常时,排除接线接触不良

八、接线说明

STC89C52RC

/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : DHT11模块测试程序
//  测试条件   : STC89C52RC   晶振11.0592
接线
DHT11 ---------------------------------STC89C52RC
VCC------------------------------------5V
GND------------------------------------GND
OUT------------------------------------P1^0

OLED0.96(IIC) -------------------------STC89C52RC
VCC------------------------------------3.3V
GND------------------------------------GND
SCL------------------------------------P1^3
SDA------------------------------------P1^2
*************************************************************************************/

STM32F103C8T6

/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : DHT11模块测试程序
//  测试条件   : STM32F103C8T6   晶振8M  系统时钟72M
接线
DHT11 ---------------------------------STM32F103C8T6
VCC------------------------------------5V
GND------------------------------------GND
OUT------------------------------------PB5


OLED0.96-------------------------------STM32F103C8T6
VCC------------------------------------3.3V
GND------------------------------------GND
SCL -----------------------------------PB6 
SDA------------------------------------PB7;

*************************************************************************************/

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

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

相关文章

锁的分类,以及锁升级原理

1. 前言 锁在并发编程中非常重要&#xff0c;但是锁的种类有点多。这边文章的目的就是为了梳理锁的分类以及 锁升级的原理。 2. 锁的分类 种类\名称synchronizedReentrantLockReentrantReadWriteLock可重入锁√√√不可重入锁乐观锁①①①悲观锁√√√公平锁√√非公平锁√√√…

javaweb-Servlet基本使用

1&#xff0c; Servlet 1.1 简介 Servlet是JavaWeb最为核心的内容&#xff0c;它是Java提供的一门动态web资源开发技术。 使用Servlet就可以实现&#xff0c;根据不同的登录用户在页面上动态显示不同内容。 Servlet是JavaEE规范之一&#xff0c;其实就是一个接口&#xff0c…

关于分组函数(聚合函数)

分组函数&#xff1a;也叫"多行处理函数"或"聚合函数" &#xff08;特点&#xff1a;输入多行&#xff0c;最终输出一行&#xff09; 用于对表中指定字段下的内容进行统计的函数。 - count() 计数&#xff08;返回指定字段下内容不为null的数…

一文看懂Linux内存管理:虚拟内存、用户空间、内核空间、用户态、内核态、IPC通信原理

目录 一、虚拟内存地址 1.为什么要有虚拟内存地址&#xff1f; 2.虚拟地址好处 二、用户空间和内核空间 1.概念 2.用户态和内核态 3.IPC通信原理 一、虚拟内存地址 1.为什么要有虚拟内存地址&#xff1f; 因为如果CPU直接访问物理内存&#xff0c;那如果两个进程写入一…

MSF客户端渗透

利用Acrobat Reader漏洞执行payload ● 构造PDF文件 exploit/windows/fileformat/adobe_utilprintf仅支持8.1.2软件版本和XP系统&#xff1b; ● 构造恶意网站 exploit/windows/browser/adobe_utilprintf#同理&#xff0c;浏览器上运行pDF● 之后可以通过Meterpreter进行下一…

克罗格 Kroger EDI需求分析及注意事项

项目背景 Kroger&#xff08;美国克罗格公司&#xff09;是具有百年历史的名店之一。它虽然历史悠久&#xff0c;但并没有被变化的世界所淘汰&#xff0c;相反&#xff0c;它围绕着市场消费需求的变化&#xff0c;不断地进行创新&#xff0c;创造了世界零售百年史上的若干个第…

Linux物理内存管理:page、zone、node

基本概念页&#xff1a;struct page &#xff0c;如下图所示&#xff0c;x86架构下一般为4K为大小分区&#xff1a;struct zone &#xff0c;如下图所示&#xff0c;x86架构下分为三个区 ZONE_DMA,ZONE_NORMAL,ZONE_HIGHMEM内存节点&#xff1a;struct node。对于一个简单的嵌入…

杭州社保解读截止2023

杭州社保新政规定的社保内容以及缴费比例是怎样的? 1、养老保险&#xff1a;单位&#xff0c;14%;个人&#xff0c;8%。 2、医疗保险&#xff1a;单位&#xff0c;9.9%;个人&#xff0c;2% 。 3、失业保险&#xff1a;单位&#xff0c;0.5%;个人&#xff0c;0.5%。 4、工伤…

PC浏览器无法浏览网页的解决教程

前言 在浏览Potplayer官网和Github官网时&#xff0c;无论是火狐浏览器还是Edge浏览器&#xff0c;都无法正常链接到网站。以下教程不纠结具体原理&#xff0c;只介绍具体步骤&#xff0c;以便以后自查。而且以下教程以Github官网为例。 具体步骤 打开Chinese Firewall Test…

excel统计函数:应用广泛的动态统计之王OFFSET 上篇

【前言】OFFSET函数是判断Excel函数使用者是否进阶的一个重要函数之一。在实际工作中&#xff0c;如果你需要对工作中的数据文件进行系统化、自动化的建模&#xff0c;那么势必会使用这个函数。【功能及语法】OFFSET函数的功能是&#xff0c;以指定的引用为参照系&#xff0c;通…

你一定要知道这6个,高质量图片素材库

其实图片素材网站已经分享过很多次了&#xff0c;除了大家非常熟悉的 Pixabay、Pexels之外&#xff0c;其实还有很多优质的图片素材网。今天再给大家推荐几个&#xff0c;对你有帮助记得点赞、收藏哦&#xff01; 1、潮点视频 https://shipin520.com/shipin-tp/0-1329-0-0-0-…

轻松掌握Jenkins

Jenkins一、docker安装Jenkins1.linux2.web二、流水线1.gitlab连接jenkins1.jenkins服务器创建密钥2.将密钥添加到gitlab上3.创建gitlab访问令牌4.安装jenkins插件5.配置 GitLab 凭据2.创建流水线1.新增凭证配置 Username with password2.创建任务3.构建触发器4.构建5.配置gitl…

MySQL的卸载下载安装,都一条龙服务了,你还不快来???

目录 MySQL的卸载 第一步、停止 MySQL 服务 第二步、卸载有关 MySQL 的程序 第三步、删除相关 MySQL 相关文件 第四步、删除 MySQL 残留文件 MySQL的下载 MySQL的安装 由于我的 MySQL 之前安装的版本太低&#xff0c;导致在 DataGrip 里面用不了 check 约束&#xff0c;…

Android设计模式详解之桥接模式

前言 桥接模式也称为桥梁模式&#xff0c;是结构型设计模式之一&#xff1b; 定义&#xff1a;将抽象部分与实现部分分离&#xff0c;使它们都可以独立地进行变化&#xff1b; 使用场景&#xff1a; 如果一个系统需要在构建的抽象化角色和具体化角色之间增加更多的灵活性&a…

laravel5.5.50之权限(laravel-permissions)的使用

目录 一、安装laravel-permissions扩展 二、生成数据库迁移文件 三、执行数据迁移 四、php artisan migrate 生成的表 五、生成配置信息 六、在user模型下加载角色相关信息 七、测试角色、权限 一、安装laravel-permissions扩展 #不指定安装版本的命令 composer requir…

提升舆情监测软件技术方法解读,舆情监测技术逻辑?

舆情监测是指通过技术手段&#xff0c;对网络舆情进行监测、分析、挖掘和可视化展示的工作。舆情监测可以帮助企业、政府、组织等了解社会舆论&#xff0c;掌握社会动态&#xff0c;协助决策&#xff0c;提升社会影响力。TOOM舆情监测系统介绍提升舆情监测软件技术方法解读&…

Zabbix与乐维监控对比分析(七)——网络功能篇

前面我们详细介绍了Zabbix与乐维监控在架构与性能、Agent管理、自动发现、权限管理、对象管理、告警管理、可视化及图形图表方面的对比分析&#xff0c;接下来我们将对二者网络功能方面进行对比分析。 本篇是Zabbix与乐维监控对比专题系列文章的第七篇——网络功能篇&#xff…

gitlab+jenkins+docker持续集成环境搭建实战

介绍 什么是持续集成&#xff1f; 持续集成&#xff08;CI&#xff09;是在源代码变更后自动检测、拉取、构建和&#xff08;在大多数情况下&#xff09;进行单元测试的过程。持续集成是启动管道的环节&#xff08;尽管某些预验证 —— 通常称为 上线前检查(pre-flight checks)…

2023 数据结构复习

函数编程题 7-1 交换二叉树中每个结点的左孩子和右孩子 #include<stdio.h> #include<stdlib.h> typedef struct Node {char data;struct Node *left, *right; } Node, *Tree;Tree create() {char ch;Tree tree NULL;if (scanf("%c", &ch)) {//当有…

P5015 [NOIP2018 普及组] 标题统计————C++

题目 [NOIP2018 普及组] 标题统计 题目描述 凯凯刚写了一篇美妙的作文&#xff0c;请问这篇作文的标题中有多少个字符&#xff1f; 注意&#xff1a;标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字 符数时&#xff0c;空格和换行符不计算在内。 输入…