標題:
STC15W單片機顯示DHT11采集源碼
[打印本頁]
作者:
yyhhyyhh
時間:
2018-4-25 10:41
標題:
STC15W單片機顯示DHT11采集源碼
單片機源程序如下:
#include "DHT11.h"
#include "yejingLCD.h"
#include <stdio.h>
#include<absacc.h>
#include<string.h>
uchar U8FLAG,k;
uchar U8count,U8temp;
uchar U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
uchar U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
uchar U8comdata;
uchar count, count_r=0;
uchar dht_dat[5];
uint U16temp1,U16temp2;
uchar Ubitflag;
void Delay20ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 1;
j = 216;
k = 35;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void Delay20us() //@11.0592MHz
{
unsigned char i;
_nop_();
_nop_();
_nop_();
i = 52;
while (--i);
}
void Delay1000ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 43;
j = 6;
k = 203;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void COM(void)
{
uchar i;
for(i=0;i<8;i++)
{
U8FLAG=2;
while((!P2_0)&&U8FLAG++);
Delay20us();
Delay20us();
U8temp=0;
if(P2_0)U8temp=1;
U8FLAG=2;
while((P2_0)&&U8FLAG++);
//超時則跳出for循環(huán)
if(U8FLAG==1)break;
//判斷數(shù)據(jù)位是0還是1
// 如果高電平高過預(yù)定0高電平值則數(shù)據(jù)位為 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-----
//----調(diào)用相關(guān)子程序如下----------
//---- Delay();, Delay_10us();,COM();
//--------------------------------
void RH(void)
{
//主機拉低18ms
P2_0=0;
Delay20ms();
P2_0=1;
//總線由上拉電阻拉高 主機延時20us
Delay20us();
Delay20us();
//判斷從機是否有低電平響應(yīng)信號 如不響應(yīng)則跳出,響應(yīng)則向下運行
if(!P2_0) //T !
{
U8FLAG=2;
//判斷從機是否發(fā)出 80us 的低電平響應(yīng)信號是否結(jié)束
while((!P2_0)&&U8FLAG++);
U8FLAG=2;
//判斷從機是否發(fā)出 80us 的高電平,如發(fā)出則進入數(shù)據(jù)接收狀態(tài)
while((P2_0)&&U8FLAG++);
//數(shù)據(jù)接收狀態(tài)
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;
//數(shù)據(jù)校驗
U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
if(U8temp==U8checkdata_temp)
{
Ubitflag=1;
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;
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
STC15W DHT通過.rar
(69.43 KB, 下載次數(shù): 80)
2018-4-25 10:40 上傳
點擊文件名下載附件
通過
下載積分: 黑幣 -5
作者:
hy1611192142
時間:
2018-7-20 16:14
顯示是用的什么液晶???
作者:
15706816080
時間:
2020-12-2 10:20
這是51的 不是15的!
作者:
man1234567
時間:
2021-1-12 13:20
15706816080 發(fā)表于 2020-12-2 10:20
這是51的 不是15的!
15是stc單片機中的一個系列代號,隸屬于51單片機,所以這個既是15的更是51的
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1