打印

Msp430驱动dht11温湿度传感器

[复制链接]
3288|10
手机看帖
扫描二维码
随时随地手机跟帖
沙发
shenmu2012| | 2013-9-22 22:26 | 只看该作者
来做第一个沙发了,很好的资料的收下

使用特权

评论回复
板凳
shibalihuandao| | 2013-9-23 20:02 | 只看该作者
多谢楼主分享

使用特权

评论回复
地板
zgsxhzac| | 2013-9-23 20:18 | 只看该作者
学习一下

使用特权

评论回复
5
sishangcine| | 2013-9-23 20:38 | 只看该作者
现在什么都能通过传感器检测了

使用特权

评论回复
6
heibaiyinjiag| | 2013-9-23 20:49 | 只看该作者
值得学习学习

使用特权

评论回复
7
taihezhibanh| | 2013-9-23 21:09 | 只看该作者
收藏了 楼主辛苦

使用特权

评论回复
8
firstblood| | 2013-9-23 23:36 | 只看该作者
温湿度的采集的方案,我这正好用的上的,谢谢啦

使用特权

评论回复
9
丁永亮| | 2014-1-2 11:10 | 只看该作者
不负责任,,这种也上传  。。。错的程序

使用特权

评论回复
10
gaoyang9992006|  楼主 | 2014-1-2 12:05 | 只看该作者
丁永亮 发表于 2014-1-2 11:10
不负责任,,这种也上传  。。。错的程序

#include <ioCC2530.h>
#include "OnBoard.h"
#define uint unsigned int
#define U8 unsigned char


#define DATA_PIN P0_6

/*******函数声明*********/
void Delay_us(void); //1 us延时
void Delay_10us(void); //10 us延时
void Delay_ms(uint Time);//n ms延时
void COM(void);        // 温湿写入
void DHT11(void) ;  //温湿传感启动


//温湿度定义
U8 U8FLAG,U8temp;
U8 ShiDu_H,ShiDu_L;//定义湿度存放变量
U8 WenDu,ShiDu;//定义温度存放变量
U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
U8 U8comdata;


/****************************
//延时函数
*****************************/
void Delay_us(void) //1 us延时

{
    MicroWait(1);   
}

void Delay_10us(void) //10 us延时
{
   MicroWait(10);
}

void Delay_ms(uint Time)//n ms延时
{
  unsigned char i;
  while(Time--)
  {
    for(i=0;i<100;i++)
     Delay_10us();
  }
}


/***********************
   温湿度传感
***********************/
void COM(void)        // 温湿写入
{     
    U8 i;         
    for(i=0;i<8;i++)   
    {
     U8FLAG=2;
     DATA_PIN=0;
     DATA_PIN=1;
     while((!DATA_PIN)&&U8FLAG++);
     Delay_10us();
     Delay_10us();
     Delay_10us();
     U8temp=0;
     if(DATA_PIN)U8temp=1;
     U8FLAG=2;
     while((DATA_PIN)&&U8FLAG++);   
     if(U8FLAG==1)break;   
     U8comdata<<=1;
     U8comdata|=U8temp;
     }   
}

//--------------------------------   
//-----湿度读取子程序 ------------   
//--------------------------------   
//----以下变量均为全局变量--------   
//----温度高8位== U8T_data_H------   
//----温度低8位== U8T_data_L------   
//----湿度高8位== U8RH_data_H-----   
//----湿度低8位== U8RH_data_L-----   
//----校验 8位 == U8checkdata-----   
//----调用相关子程序如下----------   
//---- Delay();, Delay_10us();COM();   
//--------------------------------

void DHT11(void)   //温湿传感启动
{
    DATA_PIN=0;
    Delay_ms(19);  //主机拉低18ms
    DATA_PIN=1;     //总线由上拉电阻拉高 主机延时40us
    P0DIR &= ~0x40; //重新配置IO口方向
    Delay_10us();
    Delay_10us();                                               
    Delay_10us();
    Delay_10us();  
    //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行
     if(!DATA_PIN)
     {
      U8FLAG=2; //判断从机是否发出 80us 的低电平响应信号是否结束
      while((!DATA_PIN)&&U8FLAG++);
      U8FLAG=2;//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
      while((DATA_PIN)&&U8FLAG++);
      COM();//数据接收状态
      U8RH_data_H_temp=U8comdata;
      COM();
      U8RH_data_L_temp=U8comdata;
      COM();
      U8T_data_H_temp=U8comdata;
      COM();
      U8T_data_L_temp=U8comdata;
      COM();
      U8checkdata_temp=U8comdata;
      DATA_PIN=1;
      //数据校验
      U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
       if(U8temp==U8checkdata_temp)
      {
          U8RH_data_H=U8RH_data_H_temp;
          U8RH_data_L=U8RH_data_L_temp;
          U8T_data_H=U8T_data_H_temp;
          U8T_data_L=U8T_data_L_temp;
          U8checkdata=U8checkdata_temp;
       }
       WenDu=U8T_data_H;
       ShiDu=U8RH_data_H;
    }
    else
    {  
      WenDu=0;
      ShiDu=0;
    }
    P0DIR |= 0x40;
}

/***********************这个也是TI的MCU,肯定能用,我都在项目中使用两年了*****用到430上修改一下#内容/

使用特权

评论回复
11
公子小白兔| | 2016-5-3 12:03 | 只看该作者
有没有完整的压缩包呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:西安公路研究院南京院
简介:主要工作从事监控网络与通信网络设计,以及从事基于嵌入式的通信与控制设备研发。擅长单片机嵌入式系统物联网设备开发,音频功放电路开发。

1898

主题

15642

帖子

199

粉丝