• 大小: 60KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: 其他
  • 标签: DHT11  MSP430  

资源简介

用MSP430F149单片机成功控制DHT11温湿度传感器产生温湿度信息,调试成功,可用

资源截图

代码片段和文件信息

#include 
#include “dht11.h“
#include “uart0.h“
#include 

char s[40];
void delayus(unsigned int n);
typedef unsigned int    U16;
typedef unsigned char   U8;
unsigned char  U8FLAGk;
unsigned char  U8countU8temp;
unsigned char  U8T_data_HU8T_data_LU8RH_data_HU8RH_data_LU8checkdata;
unsigned char  U8T_data_H_tempU8T_data_L_tempU8RH_data_H_tempU8RH_data_L_tempU8checkdata_temp;
unsigned char  U8comdata;
unsigned char  outdata[5];  //定义发送的字节数    
unsigned char  indata[5];
unsigned char  count count_r=0;
unsigned int   U16temp1U16temp2;
/*******************************************
函数名称:delay
功    能:延时约15us的时间
参    数:无
返回值  :无
********************************************/
void delayus(unsigned int i)   //delay 2.5us at 8M
{  
   unsigned int ii;
   for(ii =i;ii > 0;ii--)
   { 
      _NOP();_NOP();_NOP();_NOP();   
      _NOP();_NOP();_NOP();_NOP();
      _NOP();_NOP();_NOP();_NOP();
      _NOP();_NOP();_NOP();_NOP();   
   }    
}
/****************************************************************************
* 名    称:ClkInit
* 功    能:时钟系统初始化  MCLK为8MHz,SMCLK为1MHz
* 入口参数:无
* 出口参数:无
****************************************************************************/
void ClkInit()
{
    char i;
   /*------选择系统主时钟为8MHz-------*/
    BCSCTL1 &= ~XT2OFF;                 //打开XT2高频晶体振荡器
    do
    {
        IFG1 &= ~OFIFG;                 //清除晶振失败标志
        for (i = 0xFF; i > 0; i--);     //等待8MHz晶体起振
    }
    while ((IFG1 & OFIFG));             //晶振失效标志仍然存在?
    BCSCTL2 |= SELM_2 + SELS;           //MCLK和SMCLK选择高频晶振
    
    TACTL |= TASSEL_2 + ID_3;           //计数时钟选择SMLK=8MHz,1/8分频后为1MHz    
}
 //////////////////////DHT11///////////////////////////////////////////////////////
void COM(void)
{
    U8 i;
    DHT11_INPUT;
    
for(i=0;i<8;i++)    
{
U8FLAG=2;
while( (!DHT11_IN) && U8FLAG++ );
                delayus(15); //40us
U8temp=0;

if(DHT11_IN)          //26-28us高电平表示‘0‘30us后若还为高电平则表示为‘1‘
   U8temp=1;
   U8FLAG=2;
while( (DHT11_IN) && U8FLAG++ );        //超时则U8FLAG到255后变为0又自加一次变为1退出while
                                        //超时则跳出for循环   
if(U8FLAG==1)
break;//判断数据位是0还是1   
// 如果高电平高过预定0高电平值则数据位为 1 
         U8comdata<<=1;
          U8comdata|=U8temp;        //0
}//rof
}
//--------------------------------
//-----湿度读取子程序 ------------
//--------------------------------
//----以下变量均为全局变量--------
//----温度高8位== U8T_data_H------
//----温度低8位== U8T_data_L------
//----湿度高8位== U8RH_data_H-----
//----湿度低8位== U8RH_data_L-----
//----校验 8位 == U8checkdata-----
//----调用相关子程序如下----------
//---- Delay(); Delay_10us();COM(); 
//--------------------------------

void RH(void)
{
        DHT11_OUTPUT;
DHT11_L;
delayus(8000);                   //主机拉低18ms 
        DHT11_H;                        //总线由上拉电阻拉高 主机延时20-40us
        delayus(15);                    //40us;
DHT11_H;                       //主机设为输入 判断从机

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-03-13 22:15  DHT11完成程序\
     文件       17879  2011-08-27 23:39  DHT11完成程序\Backup (2) of MMA7455.ewd
     文件       47373  2011-08-27 23:41  DHT11完成程序\Backup (2) of MMA7455.ewp
     文件       17879  2011-08-27 23:39  DHT11完成程序\Backup (3) of MMA7455.ewd
     文件       47373  2011-08-27 23:41  DHT11完成程序\Backup (3) of MMA7455.ewp
     文件       17879  2011-08-27 23:39  DHT11完成程序\Backup of MMA7455.ewd
     文件       47373  2011-08-27 23:41  DHT11完成程序\Backup of MMA7455.ewp
     目录           0  2012-05-15 22:10  DHT11完成程序\Debug\
     目录           0  2012-05-16 10:45  DHT11完成程序\Debug\Exe\
     文件       38880  2013-03-13 21:26  DHT11完成程序\Debug\Exe\MMA7455.d43
     目录           0  2012-05-15 22:10  DHT11完成程序\Debug\List\
     目录           0  2013-03-13 22:02  DHT11完成程序\Debug\Obj\
     文件       29440  2013-03-13 21:26  DHT11完成程序\Debug\Obj\main.r43
     文件         183  2013-03-13 22:01  DHT11完成程序\Debug\Obj\MMA7455.pbd
     文件         798  2012-05-16 09:56  DHT11完成程序\Debug\Obj\MMA7455.r43
     文件        5662  2011-08-27 23:39  DHT11完成程序\Debug\Obj\mylib.r43
     文件        6768  2012-05-15 16:48  DHT11完成程序\Debug\Obj\UART0.r43
     文件         747  2012-05-15 16:58  DHT11完成程序\dht11.h
     文件        5206  2013-03-13 22:15  DHT11完成程序\main.c
     文件        1515  2012-05-16 09:56  DHT11完成程序\MMA7455.c
     文件        4912  2013-03-13 22:02  DHT11完成程序\MMA7455.dep
     文件       15441  2012-03-10 20:57  DHT11完成程序\MMA7455.ewd
     文件       46648  2012-05-16 10:10  DHT11完成程序\MMA7455.ewp
     文件         161  2011-08-27 23:35  DHT11完成程序\MMA7455.eww
     目录           0  2012-05-15 22:10  DHT11完成程序\settings\
     文件        1563  2012-03-13 20:14  DHT11完成程序\settings\dht11.wsdt
     文件        2722  2013-03-13 22:01  DHT11完成程序\settings\MMA7455.cspy.bat
     文件        7276  2013-03-13 22:02  DHT11完成程序\settings\MMA7455.dbgdt
     文件        1156  2013-03-13 22:02  DHT11完成程序\settings\MMA7455.dni
     文件        5530  2013-03-13 22:02  DHT11完成程序\settings\MMA7455.wsdt
     文件        2902  2012-05-15 16:48  DHT11完成程序\UART0.c
............此处省略1个文件信息

评论

共有 条评论