導航:首頁 > 裝置知識 > 溫濕度採集裝置dht11設計

溫濕度採集裝置dht11設計

發布時間:2021-03-01 03:09:37

❶ dht11溫濕度感測器的採集部分

溫濕度字元疊加器帶採集功能,你可以參考下。主要功能是將溫度濕度數據疊加到視頻信號中,跟隨視頻信號同步顯示在監控顯示器上。廣泛應用在彈葯庫、冷庫、工業大棚、審訊室、物聯網系統等一切有溫濕度要求的場所。

❷ 基於DHT11的實驗室多點溫濕度報警系統設計最好帶有存儲功能

於DHT11的實驗室多點溫濕度報警系統設計最好帶
對待好的

❸ 溫濕度測量系統設計中的DHT11感測器可不可以換成土壤溫濕度感測器進行應用改編成測量土壤的溫濕度!

一方面,DHT11是適合於空氣溫濕度測量的感測器,測量范圍20——90 %RH。土壤濕度測量通常要求的范版圍更大。 另一權方面認真觀察一下DHT11感測器感測器的結構就明白它不適合土壤水分的測量了:能有多少土壤樣本作用到濕敏電阻上去?這么少的樣本還有代表性嗎?

❹ 溫濕度檢測系統DHT11,SHT11 最近畢業設計做 一個溫濕度檢測系統,用的是DHT11感測器,51單片機,

溫度檢測,我能寫,可以分析家

❺ 基於單片機AT89C51的溫濕度採集系統,用的溫濕度模塊是dht11,顯示器是LCD1602,要 c程序模擬hex文件。

在淘寶買個模塊,他會教你怎麼編程序的。

❻ 基於單片機AT89C51的溫濕度採集系統的設計,用的溫濕度模塊是dht11,顯示器是LCD1602,誰有C程序

#include <reg51.h>
#include <intrins.h>
#include <delay.h>

#include<absacc.h>
//=====lcd1602===
#ifndef lcd_H
#define lcd_H

/************************************/
//common part
#define HIGH 1
#define LOW 0
#define TRUE 1
#define FALSE 0
#define ZERO 0
#define MSB 0x80
#define LSB 0x01
/************************************/
//lcd part
#define LINE1 0
#define LINE2 1
#define LINE1_HEAD 0x80
#define LINE2_HEAD 0xC0
#define DATA_MODE 0x38
#define OPEN_SCREEN 0x0C
#define DISPLAY_ADDRESS 0x80
#define CLEARSCREEN LCD_en_com(0x01)
/*************************************/
//change this part at different board
#define LCDIO P0
sbit LCD1602_RS=P2^;
sbit LCD1602_RW=P2^5;
sbit LCD1602_EN=P2^7;
/********************************************************************/
void LCD_Read_BF(void)
{
unsigned char read=0;
LCD1602_RS = LOW; //RS 0
LCD1602_RW = HIGH; //RW 1
LCD1602_EN = HIGH; //EN 1 Read BF
LCDIO = 0xFF;
do{
read = LCDIO;
}while(read&MSB);
}
void LCD_en_com(unsigned char command) //寫指令
{
LCD_Read_BF();
LCD1602_RS = LOW; //RS 0
LCD1602_RW = LOW; //RW 0
LCD1602_EN = HIGH; //EN --\|/__ Write command
LCDIO = command;
LCD1602_EN = LOW;
}
void LCD_en_dat(unsigned char dat) //寫數據
{
LCD_Read_BF();
LCD1602_RS = HIGH; //RS 1
LCD1602_RW = LOW; //RW 0
LCD1602_EN = HIGH; //EN --\|/__ Write data
LCDIO = dat;
LCD1602_EN = LOW;
}
void LCD_set_xy(unsigned char x,unsigned char y)
{
unsigned char address;
if(y == LINE1)
address = LINE1_HEAD + x; //0x80 第一行的開始位
else
address = LINE2_HEAD + x; //0xc0 第一行的開始位
LCD_en_com(address);
}
void LCD_write_char( unsigned x,unsigned char y,unsigned char dat)
{
LCD_set_xy(x,y);
LCD_en_dat(dat);
}
void LCD_write_string(unsigned char x,unsigned char y,unsigned char *s)
{
LCD_set_xy(x,y);
while(*s)
{
LCDIO = *s;
LCD_en_dat(*s);
s++;
}
}
void LCD_init(void)
{
LCD_en_com(DATA_MODE);
//set 8 bit data transmission mode
LCD_en_com(OPEN_SCREEN);
//open display (enable lcd display)
LCD_en_com(DISPLAY_ADDRESS);
//set lcd first display address
CLEARSCREEN;
//clear screen
}
#endif

//========dht11=====

typedef unsigned char U8;
typedef unsigned int U16;
U8 U8FLAG;
U8 U8count,U8temp;
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;
sbit P2_0 = P2^4 ;
sbit P2_1 = P2^1 ;
sbit P2_2 = P2^2 ;
sbit P2_3 = P2^3 ;
unsigned char str1[]="ShiDu=";
unsigned char str2[]="WenDu=";
unsigned char str3[]="%";
unsigned char str4[]=0xdf;
unsigned char str5[]="C";
void Delay(U16 j)
{ U8 i;
for(;j>0;j--)
{
for(i=0;i<27;i++);
}
}
void Delay_10us(void)
{
U8 i;
i--;
i--;
i--;
i--;
i--;
i--;
}
void COM(void)
{
U8 i; //定義一個8位無符號數字。最大256
for(i=0;i<8;i++)
{
U8FLAG=2;
//----------------------
P2_1=0 ; //T
P2_1=1 ; //T
//----------------------
while((!P2_0)&&U8FLAG++);
Delay_10us();
Delay_10us();
// Delay_10us();
U8temp=0;
if(P2_0)U8temp=1;
U8FLAG=2;
while((P2_0)&&U8FLAG++);

//----------------------
P2_1=0 ; //T
P2_1=1 ; //T
//----------------------
//超時則跳出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)
{
//主機拉低18ms
P2_0=0;
Delay(180);
P2_0=1;
//匯流排由上拉電阻拉高 主機延時20us
Delay_10us();
Delay_10us();
Delay_10us();
Delay_10us();
//主機設為輸入 判斷從機響應信號
P2_0=1;
//判斷從機是否有低電平響應信號 如不響應則跳出,響應則向下運行
if(!P2_0) //T !
{
U8FLAG=2;
//判斷從機是否發出 80us 的低電平響應信號是否結束
while((!P2_0)&&U8FLAG++);
U8FLAG=2;
//判斷從機是否發出 80us 的高電平,如發出則進入數據接收狀態
while((P2_0)&&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;
P2_0=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;
}//fi
}//fi
}
void main()
{
U8 shi_shi,shi_ge,wen_shi,wen_ge;
LCD_init();
delay_nms(2);
LCD_write_string(0,LINE1,str1);
LCD_write_string(0,LINE2,str2);
while(1)
{
RH();
shi_shi=0x30+U8RH_data_H/10; //為什麼要加0x30?
shi_ge=0x30+U8RH_data_H%10;
// shi_xs=0x30+U8RH_data_L/10;
wen_shi=0x30+U8T_data_H/10;
wen_ge=0x30+U8T_data_H%10;
//wen_xs=0x30+U8T_data_L/10;
LCD_write_char(6,0,shi_shi);//第6位第1行寫濕度的十位
LCD_write_char(7,0,shi_ge);
//LCD_write_char(9,0,shi_xs);
LCD_write_char(6,1,wen_shi);
LCD_write_char(7,1,wen_ge);
//LCD_write_char(9,1,wen_xs);
delay_nms(100);
//delay_nms(200);
LCD_write_string(8,LINE1,str3);
LCD_write_string(8,LINE2,str4);
LCD_write_string(9,LINE2,str5);

}
}

閱讀全文

與溫濕度採集裝置dht11設計相關的資料

熱點內容
供熱管道穿人防如何加閥門 瀏覽:16
數控機床攻螺紋用什麼代碼 瀏覽:298
250公斤設備怎麼辦 瀏覽:91
想撬棍這樣的簡單機械叫做什麼 瀏覽:109
儀表盤上燈亮時表示什麼 瀏覽:127
練拳擊的器材不倒翁叫什麼 瀏覽:523
電動工具管理規程 瀏覽:753
力邦通信設備有限公司怎麼樣 瀏覽:345
玻璃幕牆檢測裝置價格 瀏覽:267
軸承珠子沒有了怎麼回事 瀏覽:783
用來溶解鹽的實驗裝置有哪些 瀏覽:618
餘姚市山豐閥門廠 瀏覽:761
減速箱軸承旁螺栓為什麼用c級的 瀏覽:411
瑞風車儀表盤石英錶怎麼調 瀏覽:985
銀峰鑄造怎麼樣 瀏覽:476
設備上有碘伏怎麼清洗 瀏覽:435
寶馬液晶儀表盤顯示什麼信息 瀏覽:730
直線軸承如何保養直線滾珠導軌 瀏覽:10
斧子鍛打和鑄造怎麼區分 瀏覽:766
名義製冷量怎麼換算冷噸 瀏覽:494