【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();

}

}

五、实验现象

演示视频:

相关推荐
单片机系统设计19 小时前
基于STM32的智能台灯系统/智能书桌
stm32·单片机·嵌入式硬件·毕业设计·智能家居
F1331689295719 小时前
5030A 芯片 24V 转 5V 15A 大电流快充选型
网络·单片机·嵌入式硬件·物联网·汽车
恒锐丰小吕19 小时前
无锡黑锋 HF4004 低噪声电荷泵DC-DC转换器技术解析
嵌入式硬件·硬件工程
星一工作室19 小时前
STM32项目分享:基于单片机的智能宠物玩具的设计
stm32·单片机·嵌入式硬件
up向上up20 小时前
基于51单片机数字频率计仿真设计
单片机·嵌入式硬件·51单片机
SystickInt21 小时前
32 RTC实时时钟-独立定时器
stm32·单片机·嵌入式硬件
三佛科技-1873661339721 小时前
智能豆芽机单片机方案开发
单片机·嵌入式硬件
就是蠢啊1 天前
51单片机——ADC数模转换实验
单片机·嵌入式硬件·51单片机
xie_pin_an1 天前
C 语言排序算法全解析:从原理到实战,附性能对比
c语言·算法·排序算法
迅为电子1 天前
释放多屏潜能:迅为RK3588开发板Android多屏同显开发完全指南
嵌入式硬件·rk3588开发板·多屏同显开发