dht11的c语言程序_c语言程序简单例子

2020-02-27 其他范文 下载本文

dht11的c语言程序由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言程序简单例子”。

#include

#define uint unsigned int

#define uchar unsigned char

sbit TRH = P1^0;//温湿度传感器DHT11数据接入 uchar str[]={0,0,0,0,0,0,0,0};

uint TH,TL,RH,RL,CK;

uint THc,TLc,RHc,RLc,CKc;

uint xh,sum;

// void delay(uchar s)//延时10us // { // uchar v;// for(;s>0;s--)// for(v=25;v>0;v--);// } void delay(uchar b)

//误差 0us {

unsigned char a;

for(;b>0;b--)

for(a=2;a>0;a--);}

//void delay1()// 延时20ms //{

//uchar x,y,z;//for(x=15;x>0;x--)//for(y=4;y>0;y--)//for(z=248;z>0;z--);//} void delay1(uchar c)

//误差 0us {

unsigned char a,b;

for(;c>0;c--)

for(b=142;b>0;b--)

for(a=2;a>0;a--);}

void delay2()//数码管显示用的延时 {

uchar l,j,k;for(l=2;l>0;l--)for(j=4;j>0;j--)for(k=100;k>0;k--);}

void start(){

TRH=1;

delay(2);

TRH=0;//主机拉低18ms

delay1(20);

TRH=1;//DATA总线由上拉电阻拉高主机延时20

delay(3);}

uchar receive()

{

uchar i,temp;

xh=0;

while(TRH);

for(i=0;i

{ while(!TRH);

delay(3);

if(TRH)

{ temp=1;while(TRH);}

else

temp=0;

xh

xh|=temp;

}

return(xh);

}

void display(){ uchar a[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};uchar m,n,s,i;

m= str[3];//数码管显示部分

n= str[4];

s= str[5];

while(1)

{ for(i=0;i

m=a[i];}

P0=m;

P2=0x10;

delay2();

for(i=0;i

n=a[i];}

P0=n-0X80;

P2=0x20;delay2();

for(i=0;i

s=a[i];

}

P0=s;

P2=0x40;delay2();

P0=0X9C;

P2=0x80;delay2();}

}

void main()

{

while(1){

start();

TRH=1;

// 读取数据并写入指令

if(!TRH)

{

while(!TRH);//判断DHT11发出 80us 的低电平响应信号是否结束

while(TRH);

delay(8);

RHc = receive();//数据接收状态

RLc = receive();

THc = receive();

TLc = receive();

CKc = receive();

}

TRH=1;

sum=(RHc+RLc+THc+TLc);//数据校验

if(sum==CKc)

{

RH = RHc;

RL = RLc;

TH= THc;

TL = TLc;

CK = CKc;

str[0] =RH/10;//湿度整数部分

str[1] =RH%10;

str[2] = RL/10;

str[3] = TH/10;

//温度整数部分

display();}

}

str[4] = TH%10;

str[5] = TL/10;

}

《dht11的c语言程序.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
dht11的c语言程序
点击下载文档
相关专题 c语言程序简单例子 语言 程序 c语言程序简单例子 语言 程序
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文