帮我看一下我的程序哪里出问题了dht11+stc12c5a60s2+1602,温湿度显示保持不变并且是错误的数据

帮我看一下我的程序哪里出问题了dht11+stc12c5a60s2+1602,温湿度显示保持不变并且是错误的数据,第1张

把dht11传感器所有延迟程序加大10倍看看如:

delay_ms(20)改成 delay_ms(200)

delay_us(70)改成delay_us(700)

sbit DHT11_1 = P2^4

void COM1()

{

U8 i

for(i=0i<8i++)

{

U8FLAG=2

while((!DHT11_1)&&U8FLAG++)

Delay_10us()

Delay_10us()

Delay_10us()

U8temp=0

if(DHT11_1)U8temp=1

U8FLAG=2

while((DHT11_1)&&U8FLAG++)

//超时则跳出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 RH1()

{

//主机拉低18ms

DHT11_1=0

Delay(180)

DHT11_1=1

//总线由上拉电阻拉高 主机延时20us

Delay_10us()

Delay_10us()

Delay_10us()

Delay_10us()

//主机设为输入 判断从机响应信号

DHT11_1=1

//判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行

if(!DHT11_1) //T !

{

U8FLAG=2

//判断从机是否发出 80us 的低电平响应信号是否结束

while((!DHT11_1)&&U8FLAG++)

U8FLAG=2

//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态

while((DHT11_1)&&U8FLAG++)

//数据接收状态

COM1()

U8RH_data_H_temp=U8comdata

COM1()

U8RH_data_L_temp=U8comdata

COM1()

U8T_data_H_temp=U8comdata

COM1()

U8T_data_L_temp=U8comdata

COM1()

U8checkdata_temp=U8comdata

DHT11_1=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

}

温度传感器 DHT11 的程序是从网上找的吧?那 都是为AT89C51单片机写的,即是按传统的51单片机的时序写的。你用STC12C5A60S2单片机,这可是1T单片机啦,比AT89C51单片机快12倍多呢。那时序肯定是不对啦,需要按STC12C5A60S2单片机重改写才行的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7806381.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存