dht11测量温湿度基于stc89c52

2023-10-28 23:59

本文主要是介绍dht11测量温湿度基于stc89c52,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近的毕设好难啊!
DHT11是一款含有已校准数字信号输出的温湿度复合传感器,传感器包括一个电容式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。抗干扰能力强,有超长的信号传输距离,采用单总线的串行数据进行数据传输。
湿度量程范围:5~95%RH
温度量程范围:-20~60℃
典型电路如下图:
在这里插入图片描述
连线长度短于5m时采用4.7K上拉电阻,大于5m时可根据实际情况降低上拉电阻的阻值。
它的单总线格式定义为:在这里插入图片描述
下面是最重要的程序:

/***************************************STC89C52、DHT11、11.0592M晶振共阴数码管、74hc573锁存器
***************************************/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char;
#define uint unsigned int;
sbit s_data=P3^6;
sbit dula=P2^6;
sbit wela=P2^7;
uchar rshi,rge,tshi,tge,tshifen;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,     ///不带小数点0~90xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,     ///带小数点0~90x40};
void delayms(uint z)
{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);
} 
void delayus(uchar z)
{while(z--);
}
/*************************************主机呼叫从机
*************************************/
void dht_start()
{s_date=1;delayms(5);			//稍微延时一下s_date=0;delayms(23);		//最下18ms最大30ms,这里是20mss_date=1;delayus(0);			//约11us_nop_():
}
/************************************读一个字节的数据
************************************/
uchar read_byte()
{uchar a,i;for(i=8;i>0;i--){a<<=1;while(!s_date);delayus(3);             //延时越过低电平if(s_date==1){a=a|0x01;while(s_date);      //延时越过高电平}}return a;
}
/***********************************读取并处理全部数据:5个字节
***********************************/
void hole_data()
{uchar R_H,R_L,T_H,T_L,check;dhtstart();delayus(1);if(s_data==0){while(s_data==0);while(s_data==1);R_H=read_byte();R_L=read_byte();T_H=read_byte();T_L=read_byte();check=read_byte();delayus(8);		//延时60usif(R_H+R_L+T_H+T_L==check){rshi=R_H/10;rge=R_H%10;tshi=T_H/10;tge=T_H%10;tshifen=T_L%10;	}}
}
/***********************************数码管显示
***********************************/
void display(uchar rshi,uchar rge,uchar tshi,uchar tge,uchar tshifen)
{wela=0;P0=0x00;dula=1;P0=table[rshi];dula=0;P0=0xff;wela=1;P0=0xfe;                    ///消隐wela=0;delayms(1);P0=0x00;dula=1;P0=table[rge];               ///显示R个位dula=0;P0=0xff;wela=1;P0=0xfd;wela=0;delayms(1);P0=0x00;dula=1;P0=table[tshi];           ///显示T十位dula=0;P0=0xff;wela=1;P0=0xfb;wela=0;delayms(1);P0=0x00;dula=1;P0=table[tge+10];           ///显示T个位,带小数点dula=0;P0=0xff;wela=1;P0=0xf7;wela=0;delayms(1);P0=0x00;dula=1;P0=table[tshifen];           ///显示T十分位dula=0;P0=0xff;wela=1;P0=0xef;wela=0;delayms(1);
}/************************************主函数
************************************/
void main()
{uint i;delayms(1000);		//越过1S的不稳定状态	while(1){hole_data();for(i=900;i>0;i--){display(rshi,rge,tshi,tge,tshifen);}}
}

这篇关于dht11测量温湿度基于stc89c52的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/296851

相关文章

R语言统计分析——重复测量方差分析

参考资料:R语言实战【第2版】         所谓重复测量方差分析,即受试者被测量不止一次。本例使用数据集市co2数据集:因变量是二氧化碳吸收量(uptake),自变量是植物类型(Type)和七种水平的二氧化碳浓度(conc)。Type是组间因子,conc是组内因子。Type已经被存储为一个因子变量,还需要将conc转换为因子变量。分析过程如下: # 将conc变量转化为因子变量CO2$c

三维激光扫描点云配准外业棋盘的布设与棋盘坐标测量

文章目录 一、棋盘标定板准备二、棋盘标定板布设三、棋盘标定板坐标测量 一、棋盘标定板准备 三维激光扫描棋盘是用来校准和校正激光扫描仪的重要工具,主要用于提高扫描精度。棋盘标定板通常具有以下特点: 高对比度图案:通常是黑白相间的棋盘格,便于识别。已知尺寸:每个格子的尺寸是已知的,可以用于计算比例和调整。平面标定:帮助校准相机和激光扫描仪之间的位置关系。 使用方法 扫描棋盘:

【无线通信发展史⑧】测量地球质量?重力加速度g的测量?如何推导单摆周期公式?地球半径R是怎么测量出来的?

前言:用这几个问答形式来解读下我这个系列的来龙去脉。如果大家觉得本篇文章不水的话希望帮忙点赞收藏加关注,你们的鼓舞是我继续更新的动力。 我为什么会写这个系列呢? 首先肯定是因为我本身就是一名从业通信者,想着更加了解自己专业的知识,所以更想着从头开始了解通信的来源以及在每一个时代的发展进程。 为什么会从头开始写通信? 我最早是学习了中华上下五千年,应该说朝代史,这个算个人兴趣,从夏

X 射线测厚仪-高效精准,厚度测量的卓越之选

在现代工业的舞台上,对精准度和效率的追求从未停歇。而 X 射线测厚仪,宛如一颗璀璨的明星,以其高效精准的特质,成为厚度测量的卓越之选。 X 射线测厚仪,是科技与智慧的完美结晶。它凭借先进的 X 射线技术,如同一双透视万物的慧眼,能够轻松穿透各种材料,将厚度信息精准地呈现在人们面前。无论是坚硬的金属板材,还是柔软的塑料制品,亦或是富有弹性的橡胶制品,在它的审视下,厚度无处遁形。 高效,是它的另一

Flink全链路延迟的测量方式和实现原理

点击上方蓝色字体,选择“设为星标” 回复”面试“获取更多惊喜 本文已经加入「大数据成神之路PDF版」中提供下载。你可以关注公众号,后台回复:「PDF」 即可获取。 一、背景 Flink Job端到端延迟是一个重要的指标,用来衡量Flink任务的整体性能和响应延迟(大部分流式应用,要求低延迟特性)。 通过流处理引擎竞品对比,我们发现大部分流计算引擎产品,都在告警监控页面,集成了全链路时延指标

示波器测量晶振有没有起振

表笔打到10x 示波器打到10x 然后measure  频率即可得出

STM32+DHT11+OLED显示

前言 使用STM32和DHT11温湿度传感器对环境进行的温湿度进行监测,将监测到的数据通过OLED进行显示。 一、前期准备 软件环境:Keil5 硬件设备:STM32F103ZET6、四针OLED显示屏、温湿度传感器DHT11、ST-Link仿真器 二、接线表 STM32ST-LINKOLEDDHT113V33.3VSWOSWDIOSWCLKSWCLKGNDGNDPB6SDAPB7SC

openlayer的测量面积公式的改进

问题来源: 首先要注意到Polygon内可能含有内部线性环,所以在计算时需要减去环的面积,同时也会有MultiPolygon的存在。所以对之前的公式进行修改。 公式代码: formatArea: function(polygon) {var wgs84Sphere = new ol.Sphere(6362790); //6378137,取该值为了跟sql对应6362789.8747i

【科普】双轴测径仪是根据哪个测量值控制外径尺寸?

单轴测径仪与双轴测径仪都是自带闭环控制功能的在线外径测量设备,单轴测径仪只有一个测头,是根据该测头的检测数据进行控制,这点毋庸置疑,那双轴测径仪这种具备两组测头的设备又是如何控制的,本文就来简单的介绍一下。 JG02-DG系列双通道测径仪内置2组固定式光电测头,可对被测物两个方向的外径尺寸进行实时测量。主要应用于BV线、通讯电缆、塑胶线、电力电缆、光纤、漆包线、铝塑管、钢材、纤维等各类管材、棒材、

基于STM32设计的ECG+PPG人体参数测量系统(华为云IOT)(217)

文章目录 一、前言1.1 项目介绍【1】开发背景【2】项目实现的功能【3】项目硬件模块组成 1.2 设计思路【1】整体设计思路【2】整体构架【3】上位机开发思路【4】ESP8266工作模式配置 1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要【5】项目背景 1.4 开发工具的选择【1】设备端开发【2】上位机开发 1.5 系统框架图1.6 系统功能总结1.7 设备原