温湿度传感器DHT11驱动程序 - 全文

来源:网络整理 作者:2018年01月22日 16:52

[导读] 本文开始介绍了驱动程序的定义与驱动程序的作用,其次介绍了DHT11温湿度传感器特性、引脚说明与封装详情,最后介绍了温湿度传感器DHT11驱动程序。

一、驱动程序介绍

驱动程序一般指的是设备驱动程序(Device Driver),是一种可以使计算机和设备通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。因此,驱动程序被比作“ 硬件的灵魂”、“硬件的主宰”、和“硬件和系统之间的桥梁”等。

驱动程序(Device Driver)全称为“设备驱动程序”,是一种可以使计算机和设备通信的特殊程序,可以说相当于硬件的接口,操作系统只能通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。正因为这个原因,驱动程序在系统中的所占的地位十分重要,一般当操作系统安装完毕后,首要的便是安装硬件设备的驱动程序。不过,大多数情况下,我们并不需要安装所有硬件设备的驱动程序,例如硬盘、显示器、光驱等就不需要安装驱动程序,而显卡、声卡、扫描仪、摄像头、Modem等就需要安装驱动程序。另外,不同版本的操作系统对硬件设备的支持也是不同的,一般情况下版本越高所支持的硬件设备也越多,例如笔者使用了Windows XP,装好系统后一个驱动程序也不用安装。

驱动程序的作用:

随着电子技术的飞速发展,电脑硬件的性能越来越强大。驱动程序是直接工作在各种硬件设备上的软件,其“驱动”这个名称也十分形象的指明了它的功能。正是通过驱动程序,各种硬件设备才能正常运行,达到既定的工作效果。

硬件如果缺少了驱动程序的“驱动”,那么本来性能非常强大的硬件就无法根据软件发出的指令进行工作,硬件就是空有一身本领都无从发挥,毫无用武之地。这时候,电脑就正如古人所说的“万事俱备,只欠东风”,这“东风”的角色就落在了驱动程序身上。如此看来,驱动程序在电脑使用上还真起着举足轻重的作用。

从理论上讲,所有的硬件设备都需要安装相应的驱动程序才能正常工作。但像CPU、内存、主板、软驱、键盘、显示器等设备却并不需要安装驱动程序也可以正常工作,而显卡、声卡、网卡等却一定要安装驱动程序,否则便无法正常工作。这是为什么呢?

这主要是由于这些硬件对于一台个人电脑来说是必需的,所以早期的设计人员将这些硬件列为BIOS能直接支持的硬件。换句话说,上述硬件安装后就可以被BIOS和操作系统直接支持,不再需要安装驱动程序。从这个角度来说,BIOS也是一种驱动程序。但是对于其他的硬件,例如:网卡,声卡,显卡等等 却必须要安装驱动程序,不然这些硬件就无法正常工作。

当然,也并非所有驱动程序都是对实际的硬件进行操作的,有的驱动程序只是辅助系统的运行,如android中的有些驱动程序提供辅助操作系统的功能,这些驱动不是linux系统的标准驱动,如ashmen,binder等。

二、DHT11温湿度传感器介绍

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最佳选择。产品为4针单排引脚封装,连接方便。

DHT11电气特性:

DHT11引脚说明:

DHT11封装详情:

三、温湿度传感器DHT11的驱动程序

#include “typedef.h”

#include 《msp430g2553.h》

#include “TemDHT11.h”

#ifndef _DHT11_TYPE

#define _DHT11_TYPE

//连接端口

#define DHT11_Dir P2DIR

#define DHT11_In P2IN

#define DHT11_Out P2OUT

#define DHT11_Bit BIT4

#endif

//8bit湿度+8bit湿度小数点

//8bit温度+8bit温度小数点

//数据位为0是高电平26~28us | 1高电平70us

u8 DHT11_Data[5] = {0}; //从DHT11中读到的数据

void read_DHT11(u8 *Data)

{

u8 re,m,n,Time_out;

DHT11_Dir &= (~DHT11_Bit); //引脚为输入

for(n = 0; n 《 5; n++)

{

for(m = 0; m 《 8; m++)

{

while( !(DHT11_In & DHT11_Bit) ); //每1bit以50us低电平时限开始,直到高电平到来

delay_us(30);

re = 0;

if((DHT11_In & DHT11_Bit)) //30us后还是高电平说明是1

{

re = 1;

}

TIme_out = 2;

while((DHT11_In & DHT11_Bit) && (TIme_out++ ));

if(TIme_out == 1) //超时处理

{

break;

}

*Data 《《= 1;

if(re)

{

*Data |= 0x01;

}

}

Data++;

}

}

//DHT11的握手协议模拟和数据的读取

u8 DHT11_GetData(void)

{

u8 o,sum;

DHT11_Dir |= DHT11_Bit;

DHT11_Out &= ~DHT11_Bit; //拉低,发出开始信号

delay_ms(18); //拉低18ms

DHT11_Out |= DHT11_Bit; //拉高20us等待

delay_us(20);

DHT11_Dir &= (~DHT11_Bit);

if( !(DHT11_In & DHT11_Bit) ) //DHT11响应

{

while( !(DHT11_In & DHT11_Bit) ); //80us低电平,等待DHT11的响应信号

while( (DHT11_In & DHT11_Bit) ); //DHT11准备发送数据

read_DHT11(DHT11_Data); //主机接收数据

sum = 0;

for(o = 0; o 《 4; o++) //数据校验

{

sum += DHT11_Data[o];

}

if(sum != DHT11_Data[4])

{

return 0;

}

else

{

return 1;

}

}

return 0;

}

//对温度湿度进行格式化(如果获取温度成功)

void DHT11_format(char *Des_str)

{

Des_str[0] = DHT11_Data[0]/10 + 0x30;

Des_str[1] = DHT11_Data[0] + 0x30;

Des_str[2] = ‘。’;

Des_str[3] = DHT11_Data[1]/10 + 0x30;

Des_str[4] = DHT11_Data[1] + 0x30;

Des_str[5] = ‘%’;

Des_str[6] = ‘ ’;

Des_str[7] = DHT11_Data[2]/10 + 0x30;

Des_str[8] = DHT11_Data[2] + 0x30;

Des_str[9] = ‘。’;

Des_str[10] = DHT11_Data[3]/10 + 0x30;

Des_str[11] = DHT11_Data[3] + 0x30;

Des_str[12] = ‘C’;

Des_str[13] = 0;

}

湿度检测仪输入示数计算机编程,温湿度传感器DHT11驱动程序 - 全文相关推荐

  1. 【Arduino】温湿度传感器(DHT11)控制设计 四位数码管,LCD1602,带蜂鸣器、LED灯报警,串口输入设定阈值

    @[TOC]( [Arduino]温湿度传感器(DHT11)控制设计 四位数码管,LCD1602,带蜂鸣器.LED灯报警,串口输入设定阈值 ) 一.实验器材 UNO控制板:1块 共阳极四位数码管:1个 ...

  2. 有关温湿度传感器DHT11的C语言编程,数字温湿度传感器DHT11 操作C语言源代码

    1.数字温湿度传感器DHT11 操作C语言源代码 2.带校验 3.带读操作超时处理 //IO定义 #defineP_DataIN_DHT11PB0_IN #defineP_DataOUT_DHT11P ...

  3. STM32应用(八)数字温度传感器DS18B20、数字温湿度传感器DHT11(软件模拟I2C)

    文章目录 1.DS18B20 数字温度传感器实验 1.1 DS18B20简介 1.2 硬件与IO口配置 1.3 实物图与接线 1.4 工程配置 1.5 驱动和检测代码编写 1.5.1 ds18b20. ...

  4. Arduino基础入门之十三 温湿度传感器DHT11

    一 硬件 DHT11这款温湿度传感器,精度湿度±5%RH, 温度±2℃,如下图所示[1] 4个引脚接线一目了然,2号data用于传感器与微控制器之间的通信,接UNO的某数字引脚,3号NC空置即可.目前 ...

  5. zigbee CC2530 系列教程 15 温湿度传感器DHT11实验

    所有课程见此链接: zigbee CC2530 系列教程 0 课程介绍 4.12温湿度传感器DHT11实验 4.12.1 实验目的 学习使用温湿度传感器DHT11,并在串口显示温湿度数据. 4.12. ...

  6. 【FPGA】Verilog代码实现温湿度传感器DHT11

    #今天也是咸鱼的一天~ 因为参加Robei 杯 是要做一个机器人,先不说这个机器人具体怎么机器法,但是和外界互通的传感器肯定少不了,通过获取外界环境数据,进行处理,然后做出各种各样的功能. 先来讲个简 ...

  7. 温湿度传感器DHT11介绍

    温湿度传感器DHT11简介 DHT11数字温湿度传感器是一种出厂时经过校准的数字信号输出的温湿度数字温湿度传感器.DHT11数字温湿度传感器应用温湿度传感技术和数字采集技术,确保其具有极高的可靠性和卓 ...

  8. 温湿度传感器——DHT11学习总结

    一.DHT11的简单介绍 DHT11是一款有已校准数字信号输出的温湿度传感器. 其精度湿度±5%RH, 温度±2℃, 量程湿度20-90%RH, 温度0~50℃--百度百科 注解:相对湿度(RH)是指 ...

  9. CC2530——温湿度传感器DHT11

    DHT11是一款有已校准数字信号输出的温湿度传感器. 其精度湿度±5%RH,温度±2℃,量程湿度5~95%RH,温度-20~+60℃. 电路图 DHT11一次通信时序(开始发送数据流程) 1.用户主机 ...

最新文章

  1. java进制转化_【Java学习笔记之四】java进制转化
  2. 能源枯竭?在能源互联网时代不存在!
  3. jvm十二:自定义类加载器
  4. java search 不能使用方法_elasticsearch(七)java 搜索功能Search Request的介绍与使用...
  5. 记录docker开发hadoop,解决bug Datanode denied communication with namenode because hostname cannot be
  6. 切莫开一块地荒一块地
  7. C#(.net)中的一次连接数据库执行多条sql语句
  8. AFNetworking 3.0源码阅读 - AFURLResponseSerialization
  9. 【译】微型ORM:PetaPoco
  10. 4.3. aliases
  11. pdf文件的处理(弄成小容量大小的文本文件)
  12. centos 安装mysql-proxy_详解在Centos 5.2下安装最新Mysql Proxy LUA教程
  13. java编译过程_Java编译运行过程
  14. C盘清理方法汇总:SpaceSniffer与Windows.edb
  15. docker-compose 启动微服务项目时,nacos容器一直无限重启Restarting (1) Less than a second ago
  16. Python控制AutoCAD画换热器,一下解决一个班的课设绘图
  17. uni-app 引入线上的阿里 iconfont图标库
  18. 小白萌新笔记——鼠标失灵
  19. 城市交通治安卡口系统解决方案
  20. 高中优质计算机课ppt课件ppt课件ppt课件ppt课件ppt课件,高中数学课一等奖课件.ppt...

热门文章

  1. android的50个优秀的UI界面设计例子
  2. 我的第二个Python趣味项目,来了!
  3. python socket通信 PC和树莓派
  4. 数学中最神奇的常数-无理数e
  5. Git-命令行-使用 Tag 标记你的代码
  6. Linux登录界面输入正确密码却显示认证失败
  7. 计算机运筹学pdf,【计算题专题7】运筹学计算上(典型考题思路讲解).pdf
  8. 记录-微信小程序picker多级联动级别不固定-又是令人头冷的一天
  9. 硅谷性别歧视案女高管鲍康如败诉
  10. JAVA大数据(一)简介-Hadoop环境配置,伪分布式模式架构学习用