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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1337|回復: 0
收起左側

dht11時序問題

[復制鏈接]
ID:944797 發表于 2021-6-28 16:48 | 顯示全部樓層 |閱讀模式
網上找到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];
//延時函數
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()//讀一個字節—八位
{
  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()//讀出溫濕度數據 并放入數組里
{
  Start();
  if(Check==HH+HL+TH+TL)//數據校驗
  {
    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=";
/***************************
          主函數
***************************/
void main(void)
{
  // Delay_ms(1000);//讓設備穩定
   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);

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

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

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

}

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



回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区电影在线观看 | 日韩不卡一区二区 | 亚洲欧洲成人在线 | 久久精品欧美一区二区三区不卡 | 成人免费在线视频 | 伊人狠狠| 人人爽日日躁夜夜躁尤物 | 国产精品一区一区 | 日韩在线不卡 | 一区二区视频 | 999国产精品视频免费 | 亚洲精品乱码久久久久久蜜桃91 | 黄色一级大片视频 | www.9191| 国产丝袜人妖cd露出 | 久久综合久| 羞羞视频在线观免费观看 | 成人国产在线视频 | www.狠狠干 | 国产精品高清在线 | 97久久精品午夜一区二区 | 欧美不卡一区二区三区 | 国产精品国产精品国产专区不卡 | 天天色av| 精品欧美一区二区三区免费观看 | 国产成人久久精品 | 欧产日产国产精品视频 | 男人天堂久久 | 在线 丝袜 欧美 日韩 制服 | 久久精品成人一区 | 国产精品视频在线播放 | 久久精品一区二区 | 91伦理片 | 久久精品一区 | 日本在线视频一区二区 | 黄网站免费在线观看 | 国产在线一区二区 | 国产一区二区中文字幕 | 国产在线观看一区二区 | 99久久国产综合精品麻豆 | 综合国产在线 |