電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

電子發(fā)燒友網(wǎng)>電子技術(shù)應用>實驗中心>編程實驗>溫濕度傳感器DHT11驅(qū)動程序 - 全文

溫濕度傳感器DHT11驅(qū)動程序 - 全文

  三、溫濕度傳感器DHT11的驅(qū)動程序

  #include “typedef.h”

  #include 《msp430g2553.h》

  #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濕度小數(shù)點

  //8bit溫度+8bit溫度小數(shù)點

  //數(shù)據(jù)位為0是高電平26~28us | 1高電平70us

  u8 DHT11_Data[5] = {0}; //從DHT11中讀到的數(shù)據(jù)

  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( ?。―HT11_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的握手協(xié)議模擬和數(shù)據(jù)的讀取

  u8 DHT11_GetData(void)

  {

  u8 o,sum;

  DHT11_Dir |= DHT11_Bit;

  DHT11_Out &= ~DHT11_Bit; //拉低,發(fā)出開始信號

  delay_ms(18); //拉低18ms

  DHT11_Out |= DHT11_Bit; //拉高20us等待

  delay_us(20);

  DHT11_Dir &= (~DHT11_Bit);

  if( ?。―HT11_In & DHT11_Bit) ) //DHT11響應

  {

  while( ?。―HT11_In & DHT11_Bit) ); //80us低電平,等待DHT11的響應信號

  while( (DHT11_In & DHT11_Bit) ); //DHT11準備發(fā)送數(shù)據(jù)

  read_DHT11(DHT11_Data); //主機接收數(shù)據(jù)

  sum = 0;

  for(o = 0; o 《 4; o++) //數(shù)據(jù)校驗

  {

  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;

  }

上一頁12全文
收藏5

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

評論

请按住滑块,拖动到最右边
了解新功能

查看更多

相關(guān)推薦

DHT11數(shù)字溫濕度傳感器主要參數(shù)

一.DHT11介紹 DHT11 數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器,采用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),無需復雜的電路處理。傳感器包括一個電阻式感濕元件和一個
2023-09-11 11:17:04645

DHT11驅(qū)動通過串口打印采集到的環(huán)境溫濕度數(shù)據(jù)

DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度綜合傳感器,常用于暖通空調(diào)、汽車、除濕、自動控制等領(lǐng)域。
2023-06-13 15:25:20377

Linux+Qt驅(qū)動dht11溫濕度傳感器實驗過程遇到的問題及解決辦法

最近想要做一個基于嵌入式Linux+Qt驅(qū)動dht11溫濕度傳感器的實驗。想要實現(xiàn)的功能是通過野火的imx6ull開發(fā)板控制dht11傳感器,然后使用Qt做一個上位機,在上位機上面把數(shù)據(jù)顯示出來。
2023-05-23 15:54:171258

使用ESP8266驅(qū)動DHT11溫濕度傳感器

DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度綜合傳感器,在Arduino提高篇中已對其進行了介紹,本篇使用ESP8266來驅(qū)動IOT Kit板載DHT11溫濕度傳感器,并通過OLED進行顯示。
2023-05-19 14:20:121827

DHT11數(shù)字溫濕度傳感器驅(qū)動設(shè)計與實現(xiàn)

與DS18B20一樣DHT11也是采用單總線,但所不同的是DHT11可同時實現(xiàn)溫度和濕度的檢測。在我們的產(chǎn)品中經(jīng)常使用它來檢測環(huán)境的溫濕度信息。這一篇我們將設(shè)計并封裝DHT11驅(qū)動程序,以方便重復使用。
2022-12-09 14:53:031347

基于MCU的DHT11數(shù)字溫濕度傳感器設(shè)計

  DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器,采用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),無需復雜的電路處理。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。
2022-09-09 16:46:461682

DHT11溫濕度傳感器無小數(shù)部份

請高手指教為什么:基于51單片機的溫濕度測量,溫濕度傳感器的型號為:DHT11,用1602顯示測量值,所顯示的測量值小數(shù)部份全為零?
2012-11-05 21:27:47

數(shù)字溫濕度傳感器DHT11產(chǎn)品手冊

數(shù)字溫濕度傳感器DHT11產(chǎn)品手冊
2022-02-14 11:17:0969

使用STM32F103ZET6采集DHT11溫濕度串口顯示

STM32采集DHT11溫濕度關(guān)于DHT11相關(guān)參數(shù)代碼篇接線和實驗結(jié)果總結(jié)關(guān)于DHT11DHT11是一款數(shù)字溫濕度傳感器,DHT11是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器。它應用專用的數(shù)字
2021-12-24 19:10:4134

DHT11溫濕度+OLED顯示

DHT11溫濕度傳感器1、DHT11簡介DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器。它應用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期
2021-12-17 18:24:2447

STM32學習之傳感器篇——DHT11溫濕度傳感器

1、DHT11傳感器簡介DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器,它應用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性和卓越的長期穩(wěn)定性。傳感器包括
2021-12-17 18:24:039

Stm32 DHT11

DHT11 數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器。它應用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。Stm32 驅(qū)動DHT11讀取環(huán)境溫濕度
2021-12-17 18:23:4369

正在加载...