久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1357|回復: 0
打印 上一主題 下一主題
收起左側

dht11時序問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:944797 發(fā)表于 2021-6-28 16:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
網(wǎng)上找到cc2530讀取DHT11的溫濕度源代碼,由于是基于8051內核,需要改成cc2530的內核鏈接12864屏幕,更改之后DHT11時序不對,不知道問題所再,再次請教大佬問題所再。附上代碼
DHT11.C



#include <ioCC2530.h>
#include "DHT.h"

#define DHT11 P0_6
int Check;
uchar TL,TH,HL,HH,temp[2],hum[2];
//延時函數(shù)
void Delay_us() //1 us延時
{
    asm("nop");
    asm("nop");
    asm("nop");
    asm("nop");
    asm("nop");   
    asm("nop");
    asm("nop");
    asm("nop");   
    asm("nop");
}
void Delay_10us() //10 us延時
{
  Delay_us();
  Delay_us();
  Delay_us();
  Delay_us();
  Delay_us();
  Delay_us();
  Delay_us();
  Delay_us();
  Delay_us();
  Delay_us();   
}
void Delay_ms(uint Time)//n ms延時
{
    unsigned char i;
    while(Time--)
    {
        for(i=0;i<100;i++)
            Delay_10us();
    }
}

void DHT11Input()
{
  P0SEL &= ~0X40; //設置 P06 為普通 IO 口
  P0DIR &= ~0x40; //重新配置IO口方向
}
void DHT11Output()
{
  P0SEL &= ~0X40; //設置 P06 為普通 IO 口
  P0DIR |= 0x40; //重新配置IO口方向
}
/***********************
   溫濕度傳感
***********************/
uchar Read_Byte()//讀一個字節(jié)—八位
{
  uchar i,data;
  DHT11Input();
  for(i=0;i<8;i++)
  {
    while(!DHT11);
    Delay_10us();
    Delay_10us();
    Delay_10us();
   // Delay_10us();
   // Delay_10us();
    data<<=1;
    if(DHT11)
    {
      data|=0x01;
      while(DHT11);
    } else  data|=0x00;
    //data<<=1;
  }
  return data;
}

void Start()//起始信號
{
  DHT11Output();
  DHT11=0;
  Delay_ms(20);
  DHT11=1;
  Delay_10us();
  Delay_10us();
  Delay_10us();
  Delay_10us();
  DHT11Input();
  if(!DHT11)
  {
    while(!DHT11);
    while(DHT11);
    HH=Read_Byte();
    HL=Read_Byte();
    TH=Read_Byte();
    TL=Read_Byte();
    Check=Read_Byte();
    DHT11=1;

  }

}

void Temp()//讀出溫濕度數(shù)據(jù) 并放入數(shù)組里
{
  Start();
  if(Check==HH+HL+TH+TL)//數(shù)據(jù)校驗
  {
    temp[0]=TH/10+48;temp[1]=TH%10+48;
    hum[0]=HH/10+48;hum[1]=HH%10+48;
  }
  else
  {
    temp[0]=0;temp[1]=0;
    hum[0]=0;hum[1]=0;
  }
}





main.c

/**************************************/
/*           WeBee團隊                */
/*         Zigbee學習例程             */
/*例程名稱:溫濕度傳感器DHT11         */
/*建立時間:2012/10/2                 */
/*描述:將采集到的溫濕度信息通過串口打印到
        串口調試助手。
**************************************/
#include <ioCC2530.h>
#include <string.h>
#include "UART.H"
#include "DHT.h"
extern uchar hum[2];
extern uchar temp[2];
uchar temp1[5]="temp=";
uchar humidity1[9]="humidity=";
/***************************
          主函數(shù)
***************************/
void main(void)
{
  // Delay_ms(1000);//讓設備穩(wěn)定
   InitUart();    //串口初始化
   while(1)
    {         
     Temp();
  /*******信息通過串口打印********/
     Uart_Send_String(temp1,5);
     Uart_Send_String(temp,2);
     Uart_Send_String("\n",1);
     Uart_Send_String(humidity1,9);
     Uart_Send_String(hum,2);
     Uart_Send_String("\n",1);

     Delay_ms(2000);  //延時,使周期性2S讀取1次

    }
}




UART.C

#include <ioCC2530.h>

#define uchar unsigned char
#define uint unsigned int
void InitUart();              //初始化串口
void Uart_Send_String(unsigned char *Data,int len);

/****************************************************************
   串口初始化函數(shù)     
***********************************************************/
void InitUart()
{
    CLKCONCMD &= ~0x40; // 設置系統(tǒng)時鐘源為 32MHZ晶振
    while(CLKCONSTA & 0x40);                     // 等待晶振穩(wěn)定
    CLKCONCMD &= ~0x47;                          // 設置系統(tǒng)主時鐘頻率為 32MHZ

    PERCFG = 0x00;        //位置1 P0口
    P0SEL = 0x3c;        //P0_2,P0_3,P0_4,P0_5用作串口,第二功能
    P2DIR &= ~0XC0;      //P0 優(yōu)先作為UART0 ,優(yōu)先級

    U0CSR |= 0x80;       //UART 方式
    U0GCR |= 11;           //U0GCR與U0BAUD配合     
    U0BAUD |= 216;       // 波特率設為115200
    UTX0IF = 0;          //UART0 TX 中斷標志初始置位0

}

/****************************************************************
串口發(fā)送字符串函數(shù)   
****************************************************************/
void Uart_Send_String(uchar *Data,int len)
{
{
  int j;
  for(j=0;j<len;j++)
  {
    U0DBUF = *Data++;
    while(UTX0IF == 0);
    UTX0IF = 0;
  }
}
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人免费影院 | 乱码av午夜噜噜噜噜动漫 | 九九九久久国产免费 | 国产亚洲精品一区二区三区 | 亚洲精品二区 | 亚洲精久久久 | 国产一区精品 | 羞羞羞视频 | 欧美二区在线 | 欧美精品在线观看 | 美日韩中文字幕 | 午夜小电影 | 91天堂网 | www天天操 | 在线国产一区二区 | 污视频免费在线观看 | 99re99| 91视频国产一区 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 精品视频一区二区三区四区 | 精品视频在线观看 | 欧美一区二 | 日韩免费高清视频 | 亚洲性视频 | 日韩三| 精品av | 日韩精品成人一区二区三区视频 | 日韩一区二区三区精品 | 中文字幕二区 | 日韩欧美中文字幕在线观看 | 成人精品区 | av黄色在线观看 | 成人在线中文字幕 | 国产精品 欧美精品 | 丁香六月伊人 | 9久9久9久女女女九九九一九 | 欧美美女爱爱视频 | 视频一区二区在线 | 亚洲成av人影片在线观看 | 欧美精品一区在线 | 九九综合 |