51单片机设计实例(51单片机设计100例)

51单片机设计实例(51单片机设计100例)功能描述 a 实现 51 单片机测量温湿度 b 实现 LCD 显示时间和温湿度 c 实现温湿度阈值报警 且阈值可调 一 Proteus 仿真设计 元件清单 仿真图 仿真运行 程序框图设计 主程序设计 while 1 if wendu gt wen lim shidu gt shi lim beep 0 else beep 1

大家好,我是讯享网,很高兴认识大家。



功能描述:

a:实现51单片机测量温湿度

b:实现LCD显示时间和温湿度

c:实现温湿度阈值报警,且阈值可调

一、Proteus仿真设计

元件清单:

仿真图:

仿真运行:

程序框图设计

主程序设计

while(1)

{

if((wendu>wen_lim)||(shidu>shi_lim))

beep=0;

else

beep=1;

if(!set)//设置

{

flag=!flag;

while(!set);

}

if(flag)

{

if(!wenjia)//调温

{

if(wen_lim<99)

wen_lim++;

while(!wenjia);

}

if(!wenjian)

{

if(wen_lim>0)

wen_lim–;

while(!wenjian);

}

if(!shijia)//调湿度

{

if(shi_lim<99)

shi_lim++;

while(!shijia);

}

if(!shijian)

{

if(shi_lim>0)

shi_lim–;

while(!shijian);

}

}

}

}


讯享网

void time0() interrupt 1//定时器中断

{

if(dingshi<10)//定时0.5s

{

dingshi++;

}

else

{

dingshi=0;

Ds1302ReadTime(); //读取时间

dht11_recive();   //测量温湿度

wendu=dht11_dat[2];

shidu=dht11_dat[0];

a[0]=(TIME[2]>>4)+0x30;

    a[1]=(TIME[2]&0x0f)+0x30;

a[3]=(TIME[1]>>4)+0x30;

    a[4]=(TIME[1]&0x0f)+0x30;

a[6]=(TIME[0]>>4)+0x30;

    a[7]=(TIME[0]&0x0f)+0x30;

b[4]=wendu/10+0x30;

b[5]=wendu%10+0x30;

b[13]=shidu/10+0x30;

b[14]=shidu%10+0x30;

c[8]=wen_lim/10+0x30;

c[9]=wen_lim%10+0x30;

d[8]=shi_lim/10+0x30;

d[9]=shi_lim%10+0x30;

if(flag==0)//显示

{

write_string(1,0,a);

write_string(2,0,b);

}

else

{

write_string(1,0,c);

write_string(2,0,d);

}

}

TH0=0x3c;//定时50ms

TL0=0xb0;

}

三、项目获取

工程文件

工程渠道

链接:https://pan.baidu.com/s/1ZKdBTWVrqzbE3NWa46uaiA?pwd=yyds 

提取码:yyds 

小讯
上一篇 2025-06-10 19:29
下一篇 2025-05-12 16:00

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/168811.html