关闭
关闭
首页 > 嵌入式硬件 > 驱动开发

#include "typedef.h"

本文引用地址: http://embed.21ic.com/hardware/drivers/201801/50398.html

#include

#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;

}

换一批

延伸阅读

[疯狂史] 电子研发低成本方案导致的灾难性后果

电子研发低成本方案导致的灾难性后果

作为电子研发的老兵,面对各种纷繁复杂的问题,加班加点是家常便饭,绞尽脑汁甚至抓狂是常态。经常发现当项目进展到你想砸掉设备的时候,再坚持一步你就成功了。但是有一个项目却因为坚持,到现在每每想起我都心痛郁闷不已。......

关键字:电子研发 低成本方案 后果

[真心话] 做硬件9年了,心好累,当初就应该做软件!

做硬件9年了,心好累,当初就应该做软件!

在当今的时代,「三百六十行,行行出状元」这样的谚语,适合送给那些百分之两百热爱自己专业又埋头苦干的朋友们。......

关键字:硬件 软件
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi&#174;和蓝牙&#174;combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14