基于AT89C51单片机的温湿度监控系统传感器用SHT11,求电路图,仿真,程序

基于AT89C51单片机的温湿度监控系统传感器用SHT11,求电路图,仿真,程序,第1张

用一个电源开关模拟水位传感器接入单片机的某个I/O口线,设高电平表示水位超限,低电平表示水位正常,当检测到高电平时,控制I/O口线输出高或低电平驱动报警电路工作就可以了。仿真用proteus就可以

通信方式不同,我发一个DHT11的代码给你吧

//----------------------------------------------//

//----------------IO口定义区--------------------//

//----------------------------------------------//

sbit DHT11_1 = P2^4 ;

void COM1()

{

U8 i;

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

{

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

}

这段代码只对 A 列从 A2 开始向下的单元格有用。对于 B2 开始没有用:

For i = 2 To shtCells(RowsCount, 1)End(3)Row  '从 A 列第 2行开始到 A列最后一行

'遍历工作表A列的数据,A1以外。

shtname = shtCells(i, 1)   'Cells(RowIndex, ColumnIndex),所以 1 表示第 1列,即 A 列

如果你想改到 C5:C20,那你就在这两句代码上做文章。

以上就是关于基于AT89C51单片机的温湿度监控系统传感器用SHT11,求电路图,仿真,程序全部的内容,包括:基于AT89C51单片机的温湿度监控系统传感器用SHT11,求电路图,仿真,程序、DHT11和SHT11有何不同 结合AT89C51程序代码有何不同求高手DHT11代码求详解、小白提问VBA 工作表排序问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/10032242.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存