功能描述:
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

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