功能描述:
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
到此这篇51单片机设计实例(51单片机设计100例)的文章就 介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在 编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-api/37741.html