【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 table11={ //共阴极字型码

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=tablehumidity/10;

W1=0;

delay(1); //延时

W1=1; //关显示

P0=tablehumidity%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();

}

}

五、实验现象

演示视频:

相关推荐
朝发如雪14 分钟前
快速掌握单片机基础(3)(PWM)(通信协议基础)(串口通信时序与参数)(电气特性与电平标准)(51单片机UART寄存器配置)(串口应用层协议)
单片机
天空'之城2 小时前
单片机基础核心知识点汇总(四十)
单片机·嵌入式硬件
smartpi_ai3 小时前
离线语音模块误识别问题全面解决方案:命令词设计、防误触与灵敏度调优指南
人工智能·单片机·语音识别
free-elcmacom3 小时前
C语言字符指针与字符串字面量——从一道“剑指 Offer”笔试题说起
c语言·visual studio
LCG元3 小时前
STM32F103 驱动 HX711 称重实战:DOUT 就绪时序、增益切换陷阱与两点标定精度实测
stm32·单片机·嵌入式硬件
染予3 小时前
代码中相关C语言知识点总结
stm32
优信电子3 小时前
STM32 驱动 DHT30 测量环境温湿度(兼容SHT30):从时序解析到完整代码实战
stm32·嵌入式·传感器·sht30·温湿度·环境测量·dht30
小李不想当小白5 小时前
DMA直接存储器存取(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·分享
朝发如雪5 小时前
快速掌握单片机基础(6)(数据处理与传送指令)(跳转与分支指令)(栈操作与混合编程)(程序状态寄存器操作指令)(内存映射)
单片机·arm
blue_ice .5 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发