stc15w单片机 dht11

yy802399yy 2018-04-20 10:51:28
利用stc15w单片机,采集dht11温湿度传感器读数,在数码管显示
...全文
746 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
鱻鱼 2019-06-05
  • 打赏
  • 举报
回复
#include <STC15F2K60S2.H>
#include <intrins.h>
#include <math.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f
};
sbit wela = P2^7;
sbit dula = P2^6;
sbit dht = P3^7;
uchar RH_data,RL_data,TH_data,TL_data,CK_data;
uchar undata;
void Delay35us() //@11.0592MHz
{
unsigned char i;

_nop_();
i = 94;
while (--i);
}
void Delay8us() //@11.0592MHz
{
unsigned char i;

_nop_();
_nop_();
i = 19;
while (--i);
}
void Delay800us() //@11.0592MHz
{
unsigned char i, j;

_nop_();
_nop_();
_nop_();
i = 9;
j = 151;
do
{
while (--j);
} while (--i);
}
void Delay30us() //@11.0592MHz
{
unsigned char i;

_nop_();
_nop_();
i = 80;
while (--i);
}
void Delay18ms() //@11.0592MHz
{
unsigned char i, j, k;

i = 1;
j = 194;
k = 160;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
uchar read_8bit() //¶ÁÈ¡Ò»¸ö×Ö½Ú
{
uint i;
uchar temp = 0;
uchar dat;
for(i = 0;i < 8;i++)
{
while(!dht);
Delay30us();
temp = 0;
if(dht == 1)
{
temp = 1;
}
while(dht);
dat<<=1;
dat = dat|temp;
}
return dat;
}
uchar read_data()
{
uint i;
dht = 1;
Delay8us();
dht = 0;
Delay18ms();
dht = 1;
Delay35us();
if(!dht)
{
while(!dht);
while(dht);
RH_data = read_8bit();
RL_data = read_8bit();
TH_data = read_8bit();
TL_data = read_8bit();
CK_data = read_8bit();
undata = RH_data + RL_data + TH_data + TL_data;
}
if(CK_data == undata)
{
i = 1;
}
else
{
i = 0;
}
return i;
}
void main()
{
uchar i;
while(1)
{
i = read_data();
if(i == 1)
{
i = 0;
wela = 1;
P0=0xfe;
wela = 0;
dula = 1;
P0 = table[RH_data/10];
dula = 0;
Delay800us();

wela = 1;
P0=0xfd;
wela = 0;
dula = 1;
P0 = table[RH_data%10];
dula = 0;
Delay800us();

wela = 1;
P0=0xf7;
wela = 0;
dula = 1;
P0 = table[TH_data/10];
dula = 0;
Delay800us();

wela = 1;
P0=0xef;
wela = 0;
dula = 1;
P0 = table[TH_data%10];
dula = 0;
Delay800us();
}
}
}

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧