当前位置: 首页 > news >正文

dw简单网页制作代码seo标题生成器

dw简单网页制作代码,seo标题生成器,网站设计动画,手机网站建设分析目录 1.DHT11 温湿度传感器概述 2.检测DHT11温湿度传感器模块是否存在 3.通过编写代码读取温湿度数据​编辑 4.将读取到的温湿度数据通过串口上传 1.DHT11 温湿度传感器概述 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,应用领域&am…

目录

1.DHT11 温湿度传感器概述

2.检测DHT11温湿度传感器模块是否存在

3.通过编写代码读取温湿度数据​编辑

4.将读取到的温湿度数据通过串口上传


1.DHT11 温湿度传感器概述

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,应用领域:暖通 空调;汽车;消费品;气象站;湿度调节器;除湿器;家电;医疗;自动控制

特点:

  • 相对湿度和温度测量
  • 全部校准,数字输出
  • 长期稳定性
  • 超长的信号传输距离:20米
  • 超低能耗:休眠
  • 4 引脚安装:可以买封装好的
  • 完全互换 : 直接出结果,不用转化

接线:

  • VCC接5V
  • GND接GND
  • DATA接P3^3口

数据传送逻辑:

只有一根数据线DATA,上官一号发送序列指令给DHT11模块,模块一次完整的数据传输为40bit,高位先出

数据格式:

8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和 通讯过程时序图

2.检测DHT11温湿度传感器模块是否存在

根据如下时序图,做通信初始化,并检测模块是否存在,功能是否正常

时序逻辑分析:

  • a : dht = 1
  • b :dht = 0
  • 延时30ms
  • c: dht = 1
  • 在60us后读d点,如果d点是低电平(被模块拉低),说明模块存在!

代码示例:

#include "reg52.h"
#include "intrins.h"sbit ledOne = P3^7;
sbit dht = P3^3;//模块的data插在p3.3void 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 Delay1000ms()		//@11.0592MHz
{unsigned char i, j, k;_nop_();i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i);
}void check_DHT()
{//a :  dht = 1 dht = 1;//b :dht = 0dht = 0;//延时30msDelay30ms();//c: dht = 1dht = 1;//在60us后读d点,如果d点是低电平(被模块拉低),说明模块存在!Delay60us();if(dht == 0){ledOne = 0;//亮灯,说明模块存在}
}void main()
{ledOne = 1;Delay1000ms();Delay1000ms();check_DHT();while(1);
}

3.通过编写代码读取温湿度数据

  • a : dht = 1
  • b :dht = 0
  • 延时30ms
  • c: dht = 1
  • 卡d点;while(dht1);
  • 卡e点 while(!dht)
  • 卡f点:while(dht)
  • 卡g点:while(!dht)
  • 有效数据都是高电平,持续时间不一样,50us读,低电平0 高电平

DHT11传输0的时序分析:

DHT11传输1的时序分析:

代码示例:

#include "reg52.h"
#include "intrins.h"sbit ledOne = P3^7;
sbit dht = P3^3;//模块的data插在p3.3char datas[5];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 Delay1000ms()		//@11.0592MHz
{unsigned char i, j, k;_nop_();i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i);
}void DHT11_Start()
{dht = 1;dht = 0;//延时30msDelay30ms();dht = 1;//卡d点;while(dht1); 卡e点 while(!dht) 卡f点:while(dht)while(dht);while(!dht);while(dht);
}void Read_Data_From_DHT()
{int i;//轮int j;//每一轮读多少次char tmp;char flag;DHT11_Start();for(i= 0;i < 5;i++){//卡g点:while(!dht)       有效数据都是高电平,持续时间不一样,50us读,低电平0 高电平for(j=0;j<8;j++){while(!dht);//等待卡g点Delay60us();if(dht == 1){flag = 1;while(dht);}else{flag = 0;} tmp = tmp << 1;tmp |= flag;}datas[i] = tmp;}}void main()
{ledOne = 1;Delay1000ms();Delay1000ms();while(1){Delay1000ms();Read_Data_From_DHT();	}
}

4.将读取到的温湿度数据通过串口上传

代码示例:

#include "reg52.h"
#include "intrins.h"sbit ledOne = P3^7;
sbit dht = P3^3;//模块的data插在p3.3char datas[5];sfr AUXR = 0x8E;void UartInit(void)		//9600bps@11.0592MHz
{AUXR = 0x01;SCON = 0x40; //配置串口工作方式1,REN不使能接收TMOD &= 0xF0;TMOD |= 0x20;//定时器1工作方式位8位自动重装TH1 = 0xFD;TL1 = 0xFD;//9600波特率的初值TR1 = 1;//启动定时器
}
void sendByte(char data_msg)
{SBUF = data_msg;while(!TI);TI = 0;
}void sendString(char* str)
{while( *str != '\0'){sendByte(*str);str++;}
}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 Delay1000ms()		//@11.0592MHz
{unsigned char i, j, k;_nop_();i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i);
}void DHT11_Start()
{dht = 1;dht = 0;//延时30msDelay30ms();dht = 1;//卡d点;while(dht1); 卡e点 while(!dht) 卡f点:while(dht)while(dht);while(!dht);while(dht);
}
void Delay40us()		//@11.0592MHz
{unsigned char i;_nop_();i = 15;while (--i);
}void Read_Data_From_DHT()
{int i;//轮int j;//每一轮读多少次char tmp;char flag;DHT11_Start();for(i= 0;i < 5;i++){//卡g点:while(!dht)       有效数据都是高电平,持续时间不一样,50us读,低电平0 高电平for(j=0;j<8;j++){while(!dht);//等待卡g点Delay40us();if(dht == 1){flag = 1;while(dht);}else{flag = 0;} tmp = tmp << 1;tmp |= flag;}datas[i] = tmp;}}void main()
{ledOne = 1;UartInit();Delay1000ms();Delay1000ms();while(1){Delay1000ms();Read_Data_From_DHT();	sendString("H:");sendByte(datas[0]/10 + 0x30);//43 a sendByte(datas[0]%10 + 0x30);sendByte('.');sendByte(datas[1]/10 + 0x30);//43 a sendByte(datas[1]%10 + 0x30);	sendString("\r\n");	sendString("T:");sendByte(datas[2]/10 + 0x30);//43 a sendByte(datas[2]%10 + 0x30);	sendByte('.');sendByte(datas[3]/10 + 0x30);//43 a sendByte(datas[3]%10 + 0x30);			sendString("\r\n");		}
}

打开串口助手收到温湿度数据:

http://www.yidumall.com/news/29862.html

相关文章:

  • 网站怎么做数据备份互联网广告投放平台加盟
  • 番禺网站建设开发爱网站关键词查询工具长尾
  • 找人做网站设计 哪个平台可以找百度搜索引擎优化方式
  • 网站外链建设教程百度认证服务平台
  • 迪哥哪个网站上做游戏直播互联网营销师培训教程
  • 百度头条怎么做网站seo推广有哪些公司
  • 电脑系统做的好的网站好青岛网站建设与设计制作
  • 长安镇仿做网站外国搜索引擎登录入口
  • 二维码插件wordpress北京自动seo
  • 陕西网站制作qq群郑州网站优化公司
  • 青岛专业网站排名推广镇江关键字优化公司
  • 门户网站做baidu百度网盘
  • 自学网站开发要多久百度云登录入口官网
  • 支付宝签约网站如何做网站推广及优化
  • 电商类网站模板下载网站排名优化首页
  • dede多个网站怎么做经济新闻最新消息财经
  • 在网站中加入锚链接应该怎么做制作网站要多少费用
  • 芜湖做网站需要多少钱seo分析网站
  • 怎样在国外网站购买新鲜橙花做纯露网络推广公司加盟
  • 成都建设官方网站济南seo优化公司
  • 网站公司seo新闻最新消息10条
  • 北京注册公司网上申请入口小时seo加盟
  • 陈铭生杨昭原型杭州网络排名优化
  • 企业管理咨询服务合同seo排名平台
  • 药品在网站上做标签有哪些分类威海seo优化公司
  • qq代刷网站社区建设网络营销师报名入口
  • 做网站爱台湾永久免费加密一
  • 没有公司自己做网站注册域名在哪里注册
  • 做农产品的b2c网站百度账号是什么
  • 下列哪些属于营销型网站的基础建设网站推广优化排名教程