当前位置: 首页 > news >正文

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

五、实验现象

演示视频:

http://www.dtcms.com/a/359836.html

相关文章:

  • git中使用SSH的配置
  • 从零开始搭建使用 TDengine:新用户快速上手指南
  • STAR法则
  • Encoder编码器
  • kafka服务端架构总览
  • sublime MAC系统快捷键及常见问题
  • 深入理解Nginx反向代理及其应用
  • 【机器学习学习笔记】numpy基础
  • Library cache lock常见案例分析(一)
  • TensorFlow 面试题及详细答案 120道(81-90)-- 其他框架/工具
  • 【重学MySQL】九十三、MySQL字符集与比较规则完全解析
  • 标定分享3--lidar与rtk/ins标定外参工程实现分享
  • SciPy
  • 【MLLM】具有长期记忆的多模态智能体框架M3-Agent
  • Uniapp 项目创建与目录结构解析
  • LangChain实战(七):Text Embedding Models与Vector Stores
  • 嵌入式ARM程序高级调试技能:19.qumu arm elf无法生成coredump
  • 829作业
  • DAY17-新世纪DL(DeepLearning/深度学习)战士:Q(机器学习策略)2
  • Claude Code干翻Cursor后,轮到AI浏览器了
  • 组件通信终极指南:从Props Drilling到Context API
  • MPI-NCCL-TEST 训练自检,基础通信和可用的机器
  • NM:微生物组数据分析的规划与描述
  • GDPU操作系统实验:生产者消费者问题
  • Matplotlib:让数据在Python中跳舞的魔法画笔![特殊字符]
  • 5.【C++进阶】红黑树
  • C++从入门到实战(二十)详细讲解C++List的使用及模拟实现
  • Qt中解析XML文件
  • 基于muduo库的图床云共享存储项目(四)
  • Luma 视频生成 API 对接说明