標題: 溫度傳感器 [打印本頁]
作者: adwszxc1 時間: 2021-1-5 23:06
標題: 溫度傳感器
本程序使用于 STC12C5 系列單片機,使用其他單片機特別注意時序問題
#include <reg51.h>
#include <intrins.h>
unsigned char TH_data; // 溫度高 8 位
unsigned char TL_data; // 溫度低 8 位
unsigned char RH_data; // 濕度高 8 位
unsigned char RL_data; // 濕度低 8 位
unsigned char CK_data;
sbit DHT11_Data = P2^0; // DHT11 數(shù)據(jù)線
void delay_us(unsigned char us) //@12.000MHz
{
while(us--)
{
_nop_();
_nop_();
}
}
void delay_ms(unsigned char ms) //@12.000MHz
{
unsigned char i, j;
while(ms--)
{
_nop_();
_nop_();
i =12;
j =168;
do
{
while (--j);
}
while (--i);
}
}
/****************************************************************************/
// 函數(shù)名稱 : DHT_Read
// 函數(shù)功能 : DHT11 讀取數(shù)據(jù)
/****************************************************************************/
unsigned char DHT_Read()
{
unsigned char i; // 定義變量,用于循環(huán)
unsigned char temp; // 定義變量,用于臨時返回值
unsignedchar com_data; // 定義變量,用于返回值
unsigned char respond; // 定義變量,用于響應處理
for(i=0;i<=7;i++) // 接收 8bit 數(shù)據(jù)
{
respond=0;
while((!DHT11_Data)&& respond<100)// 等待 50us 低電平開始信號結束
{
respond++;
delay_us(1);
}
delay_us(28);//開始信號結束后延時 26us-28us
if(DHT11_Data)
{
temp=1;
respond=0;
while((DHT11_Data)&& respond<100)
{
respond++;
delay_us(1);
}
}
else
{
temp=0;
}
com_data<<=1;
com_data|=temp;
}
return(com_data);
}
/****************************************************************************/
/****************************************************************************/
// 實現(xiàn)功能: DHT11 采集溫濕度
/***************************************************************************/
void DHT11_Gets(void)
{
unsigned char respond;// 定義變量,用于響應處理
unsigned charTH_temp,TL_temp,RH_temp,RL_temp,CK_temp;
DHT11_Data=0;
delay_ms(20);// 主機拉低總線必須大于 18ms, 保證 DHT11 能檢測到信號
DHT11_Data=1;// 發(fā)送信號結束,拉高電平延時 20-40us
delay_us(30);// 延時大約 30us
if(!DHT11_Data) // 判斷 DHT11 是否低電平響應信號
{
respond=0;
while((!DHT11_Data)&& respond<80)
{
respond++;
delay_us(1);
}
respond=0;
while((DHT11_Data)&&respond<100)
{
respond++;
delay_us(1);
}
RH_temp = DHT_Read();
RL_temp = DHT_Read();
TH_temp = DHT_Read();
TL_temp = DHT_Read();
CK_temp = DHT_Read();
DHT11_Data=0;
delay_us(50);
DHT11_Data=1;
if((RH_temp+RL_temp+TH_temp+TL_temp)==CK_temp)
{
RH_data = RH_temp;
RL_data = RL_temp;
TH_data = TH_temp;
TL_data = TL_temp;
}
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
91久久电影
|
一级a性色生活片久久毛片
一级特黄a大片
|
国产精品久久国产精品久久
|
亚洲国产一区二区三区,
|
久久噜|
亚洲一卡二卡
|
av黄色在线
|
国产欧美在线观看
|
国产激情视频在线观看
|
精品视频一二区
|
久久久蜜臀国产一区二区
|
国产精品久久久久久婷婷天堂
|
久久久久国产精品一区三寸
|
国产电影一区二区
|
国内自拍第一页
|
一级黄色片网站
|
精品久久久久久中文字幕
|
日韩福利
|
男人的天堂亚洲
|
在线观看中文字幕一区二区
|
久久久男人的天堂
|
av色站
|
91精品一区
|
av日日操|
国产精品久久久久久久久久妞妞
|
中文字幕一区二区三区四区
|
欧洲视频一区
|
狠狠做六月爱婷婷综合aⅴ
国产精品视频网
|
国产黄色在线
|
日韩插插
|
在线视频日韩
|
国产一级特黄aaa大片评分
|
久久精品视频一区二区三区
|
精品美女视频在线观看免费软件
|
少妇无套高潮一二三区
|
国产三级精品三级在线观看四季网
|
性高朝久久久久久久3小时
av一区二区三区四区
|
亚洲国产一区视频
|
女女百合av大片一区二区三区九县
|
中文字幕一级
|
自拍偷拍中文字幕
|