【51单片机】【protues仿真】基于51单片机智能晾衣架系统
目录
一、主要功能
二、使用步骤
三、硬件资源
四、软件设计
五、实验现象
一、主要功能
1、数码管显示当前湿度值
2、按键切换手动和自动模式
3、手动模式下按键控制晾衣架伸缩
4、自动模式下按检测光线强度低于阈值,晚上或湿度高,
此时晾衣架缩回,如果检测光线强度高于阈值,白天或湿
度低,伸出晾衣架
5、指示灯显示
二、使用步骤
基于51单片机的智能晾衣架系统是一种结合环境感知与自动控制的家居设备,核心功能包括手动/自动模式切换、温湿度及光照检测、电机驱动晾衣架升降等
三、硬件资源
1、51单片机核心模块
2、按键模块
3、DHT11温湿度传感器、光敏传感器传感器模块
4、限位器开关
5、继电器模块
6、数码管显示模块
四、软件设计
#include<reg52.h>
#include<intrins.h>
#include<absacc.h> //头文件
#define uc unsigned char
#define ui unsigned int
sbit in_go = P1^3;
sbit in_back = P1^2;//手动前进后退按键
sbit out_go = P3^0;
sbit out_back = P3^5;//电机控制输出
sbit limit_go = P3^4;
sbit limit_back = P3^6;//前进后退限位开关
sbit led_go = P1^4;
sbit led_back = P1^5;//前进后退限位指示灯
sbit light = P1^0;//光线传感器
sbit change = P1^1;//手动自动切换按键(默认自动)
sbit led_zhishi = P1^7;
sbit buzz = P1^6;
sbit W1=P2^2;
sbit W2=P2^1;
//定义DHT11数据口
sbit DATA = P2^0;
uc U8FLAG,U8temp,U8comdata,U8RH_data_H_temp,U8RH_data_L_temp,U8T_data_H_temp,U8T_data_L_temp,U8checkdata_temp;
uc U8RH_data_H,U8RH_data_L,U8T_data_H,U8T_data_L,U8checkdata;
uc Mode,humidity;
bit bdata FlagStartRH,hot,cold,humid,dry;
bit bdata flag1,flag2,change_flag,flag_shan,flag_shan1,flag_shan2,flag_HH;
uc m,n,shan;
uc code table[11]={ //共阴极字型码
0x3f, //--0
0x06, //--1
0x5b, //--2
0x4f, //--3
0x66, //--4
0x6d, //--5
0x7d, //--6
0x07, //--7
0x7f, //--8
0x6f, //--9
0x00 //--NULL
};
//定时器0初始化
void Timer0_Init()
{
ET0 = 1; //允许定时器0中断
TMOD = 1; //定时器工作方式选择
TL0 = 0xb0;
TH0 = 0x3c; //定时器赋予初值
TR0 = 1; //启动定时器
EA=1;
}
void Delay1(ui j)
{
uc i;
for(;j>0;j--)
{
for(i=0;i<27;i++);
}
}
void Delay_10us(void)
{
uc i;
i--;
i--;
i--;
i--;
i--;
i--;
}
void delay(ui x)//延时函数
{
ui i,j;
for(i=0;i<x;i++)
for(j=0;j<110;j++);
}
void display()
{
P0=table[humidity/10];
W1=0;
delay(1); //延时
W1=1; //关显示
P0=table[humidity%10];
W2=0;
delay(1); //延时
W2=1; //关显示
}
void main()//主函数
{
uc testnum;
light=0;
buzz=1;
led_zhishi=0;
Timer0_Init();
while(1)//进入死循环
{
work();//调用工作函数
display();
if (FlagStartRH == 1) //温湿度转换标志检查
{
testnum = RH();
FlagStartRH = 0;
humidity = U8RH_data_H; //读出湿度,只取整数部分
if(humidity>=80)
flag_HH=1;
else
flag_HH=0;
TR0 = 1;
}
display();
}
}
五、实验现象
演示视频: