C51--DHT11数据读取

DHT11传输0的时序分析:
在这里插入图片描述
DHT11传输1的时序分析:
在这里插入图片描述
用while(dht)卡点,当不满足while时,信号拉低
用while(!dht)卡点,当不满足while时,信号拉高

传输0和1时有效数据都是高电平,但持续时间不一样

在50um后读取数据,低电平为0,高电平为1

数据格式:

 8bit湿度整数数据+8bit湿度小数数据
+8bi温度整数数据+8bit温度小数数据
+8bit校验和

由数据格式可知:
读数据:读5轮,一轮读8次

检测到模块之后进行数据读取:

#include "reg52.h"
#include <intrins.h>sbit ledOne = P3^7;
sbit DHT = P3^3;			//模块的data接在c51的P3.3口char datas[5];void Delay1000ms()		//@11.0592MHz
{unsigned char i, j, k;_nop_();i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i);
}void Delay30ms()		//@11.0592MHz
{unsigned char i, j;i = 54;j = 199;do{while (--j);} while (--i);
}void Delay60us()		//@11.0592MHz
{unsigned char i;i = 25;while (--i);
}//开始
void DTH11_Start()
{DHT = 1;			//开始处于 1 位DHT = 0;			//拉低至少18ms,这里给它30msDelay30ms();		DHT = 1;			//vcc拉高20-40us//DHT响应信号,将高电平拉低持续80us(在40--80us之间读取:低电平——模块存在)//所以在60us的时候读取Delay60us();		while(DHT);		//卡点,当不满足while时,信号拉低while(!DHT);		//卡点,当不满足while时,信号拉高while(DHT);			//卡点,当不满足while时,信号拉低while(!DHT);		//卡点,当不满足while时,信号拉高
}//传输数据
void Read_Data_From_DHT()
{//读取数据需要,读5轮,一轮读8次int i;		//轮int j;		//一轮多少次char tmp;	//tmp移位获取数据char flag;DTH11_Start();				//每次读取都需要发送开始for(i = 0;i < 5;i++){for(j = 0;j < 8;j++){while(!DHT);		//卡点,当不满足while时,信号拉高Delay60us();		//在60um后读取数据,低电平为0,高电平为1。if(DHT == 1){flag = 1;while(DHT);}else{flag = 0;}tmp = tmp << 1;		//tmp左移一位tmp |= flag;}datas[i] = tmp;}
}void main()
{ledOne = 1;			//灭灯Delay1000ms();Delay1000ms();while(1){Delay1000ms();Read_Data_From_DHT();}
}

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

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

相关文章

【数据结构】—AVL树(C++实现)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 &#x1f49c;本文前置知识&#xff1a; 搜索二叉树 ♈️今日夜电波&#xff1a;Letter Song—ヲタみん 1:36━━━━━━️&#x1f49f;──────── 5:35 …

C 语言超全练习题(一): 初识C语言

文章目录 一、问答题1.1 C语言开发过程是怎样的&#xff1f;1.2 C语言的应用领域有哪些&#xff1f; 二、上机题2.1 第一个C语言程序2.2 一个完整的C语言程序2.3 输出名言2.4 计算出正方形的周长 一、问答题 1.1 C语言开发过程是怎样的&#xff1f; 问题描述&#xff1a;C语言…

10kv配电室无人值守系统

10kv配电室无人值守系统是一种自动化控制系统&#xff0c;依托电易云-智慧电力物联网可以实现对配电室的监测、控制、保护和故障诊断等功能&#xff0c;从而实现配电室的无人值守。该系统主要由控制器、传感器、执行机构、通信模块等组成&#xff0c;可以实现对电力设备的自动化…

【Windows】内网穿透实现hMailServer远程发送邮件

目录 前言1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 前言 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpolar内网…

mongoDB非关系型数据库学习记录

一、简介 1.1Mongodb是什么 MongoDB是一个基于分布式文件存储的数据库,官方地址https://www.mongodb.com/ 1.2数据库是什么 数据库(DataBase)是按照数据结构来组织、存储和管理数据的应用程序 1.3数据库的作用 数据库的主要作用就是管理数据,对数据进行增©、删(d)、…

会员管理系统的意义何在?

在当今的商业环境中&#xff0c;会员管理系统已经成为企业运营的重要组成部分。会员管理系统的意义在于不仅能够帮助企业提高效率&#xff0c;提升用户体验&#xff0c;进行数据分析&#xff0c;营销推广&#xff0c;还能够帮助企业增加收入。下面&#xff0c;我们将详细探讨会…

【HTTP协议】简述HTTP协议的概念和特点

&#x1f38a;专栏【网络编程】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 &#x1f970;欢迎并且感谢大家指出小吉的问题 文章目录 &#x1f33a;概念&#x1f33a;特点&#x1f384;请求协议&#x1f384;响应协议…

Everything结合内网穿透搭建在线资料库并实现随时随地远程访问

Everythingcpolar搭建在线资料库&#xff0c;实现随时随地访问 文章目录 Everythingcpolar搭建在线资料库&#xff0c;实现随时随地访问前言1.软件安装完成后&#xff0c;打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 前…

为何要隐藏IP地址?代理ip在网络安全和隐私保护中的作用是什么?

目录 前言 一、为何要隐藏IP地址&#xff1f; 1. 保护隐私。 2. 防止网络攻击。 3. 避免限制和审查。 二、网络上哪些行为需要隐藏IP和更换IP&#xff1f; 1. 下载种子文件。 2. 访问受限网站。 3. 保护网络隐私。 4. 避免被封禁。 三、代理IP在网络安全和隐私保护中…

kali学习

目录 黑客法则&#xff1a; 一&#xff1a;页面使用基础 二&#xff1a;msf和Windows永恒之蓝漏洞 kali最强渗透工具——metasploit 介绍 使用永恒之蓝进行攻击 ​编辑 使用kali渗透工具生成远程控制木马 渗透测试——信息收集 域名信息收集 黑客法则&#xff1a; 一&…

R语言30分钟上手

文章目录 1. 环境&安装1.1. rstudio保存工作空间 2. 创建数据集2.1. 数据集概念2.2. 向量、矩阵2.3. 数据框2.3.1. 创建数据框2.3.2. 创建新变量2.3.3. 变量的重编码2.3.4. 列重命名2.3.5. 缺失值2.3.6. 日期值2.3.7. 数据框排序2.3.8. 数据框合并(合并沪深300和中证500收盘…

理解Gamma传递函数

对于任何认真从事色彩工作或电影和电视母带处理的人来说&#xff0c;掌握Gamma编码是一项重要的知识&#xff0c;但它也可能是最令人困惑的主题之一&#xff0c;因为我们人类的视力与大多数电子设备的工作方式截然不同。 Gamma编码和传递函数的全部工作都是基于向我们的人眼提供…