【51单片机-B020】【protues仿真】基于51单片机智能晾衣架仿真

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

联系作者

一、主要功能

1、数码管显示当前湿度值

2、按键切换手动和自动模式

3、手动模式下按键控制晾衣架伸缩

4、自动模式下按检测光线强度低于阈值,晚上或湿度高,

此时晾衣架缩回,如果检测光线强度高于阈值,白天或湿

度低,伸出晾衣架

5、指示灯显示

二、使用步骤

本项目使用Proteus8仿真

包含:程序,仿真,文档等

三、硬件资源

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  COM(void)
{
    uc i;
    for(i=0;i<8;i++)	   
    {
  	    U8FLAG=2;
	   	while((!DATA)&&U8FLAG++);
		Delay_10us();
		Delay_10us();
		Delay_10us();
  		U8temp=0;
        if(DATA)U8temp=1;
		    U8FLAG=2;
		while((DATA)&&U8FLAG++);
	   	//超时则跳出for循环		  
	   	if(U8FLAG==1)break;
	   	//判断数据位是0还是1	 
	   	   
		// 如果高电平高过预定0高电平值则数据位为 1 
	   	 
		U8comdata<<=1;
	   	U8comdata|=U8temp;        //0
    }//rof
}

//--------------------------------
//-----温湿度读取子程序 ------------
//--------------------------------
//----以下变量均为全局变量--------
//----温度高8位== U8T_data_H------
//----温度低8位== U8T_data_L------
//----湿度高8位== U8RH_data_H-----
//----湿度低8位== U8RH_data_L-----
//----校验 8位 == U8checkdata-----
//----调用相关子程序如下----------
//---- Delay();, Delay_10us();,COM(); 
//--------------------------------
uc RH(void)
{
    //主机拉低18ms 
    DATA=0;
	Delay1(180);  //原来为5
	DATA=1;
	//总线由上拉电阻拉高 主机延时20us
	Delay_10us();
	Delay_10us();
	Delay_10us();
	Delay_10us();
	//主机设为输入 判断从机响应信号 
	DATA=1;
	//判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行	  
	if(!DATA)		 //T !	  
	{
	    U8FLAG=2;
	    //判断从机是否发出 80us 的低电平响应信号是否结束	 
	    while((!DATA)&&U8FLAG++);
	    U8FLAG=2;
	    //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
	    while((DATA)&&U8FLAG++);
	    //数据接收状态		 
	    COM();
	    U8RH_data_H_temp=U8comdata;
	    COM();
	    U8RH_data_L_temp=U8comdata;
	    COM();
	    U8T_data_H_temp=U8comdata;
	    COM();
	    U8T_data_L_temp=U8comdata;
	    COM();
	    U8checkdata_temp=U8comdata;
	    DATA=1;
	    //数据校验 
	    U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
	    if(U8temp==U8checkdata_temp)
	    {
	   	   U8RH_data_H=U8RH_data_H_temp;
	   	   U8RH_data_L=U8RH_data_L_temp;
	   	   U8T_data_H=U8T_data_H_temp;
	   	   U8T_data_L=U8T_data_L_temp;
	   	   U8checkdata=U8checkdata_temp;
	    }
		return 1;
	}
	else   //传感器不响应
	{
	   return 0;
	}
}


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;				//关显示
}

五、实验现象

B站演示视频:

【51单片机-B020】【protues仿真】基于51单片机智能晾衣架仿真_哔哩哔哩_bilibili本项目使用Proteus8仿真基于51单片机智能晾衣架包含:程序,仿真,文档等主要功能如下:1、数码管显示当前湿度值2、按键切换手动和自动模式3、手动模式下按键控制晾衣架伸缩4、自动模式下按检测光线强度低于阈值,晚上或湿度高,此时晾衣架缩回,如果检测光线强度高于阈值,白天或湿度低,伸出晾衣架5、指示灯显示, 视频播放量 0、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 1, 视频作者 无忧电子设计, 作者简介 Q:215138327 V:Kinpar 承接51,32单片机设计定做,51,32单片机protues仿真,实物,程序等。,相关视频:【51单片机-B010】【protues仿真】基于51单片机宠物投食器仿真,【51单片机-B009】【protues仿真】基于51单片机冰箱仿真,【51单片机-B006】【protues仿真】基于51单片机温度烟雾控制系统仿真,【51单片机-B008】【protues仿真】基于51单片机水位监测控制系统仿真,【51单片机-B011】【protues仿真】 基于51单片机储物箱仿真,【51单片机-B015】【protues仿真】基于51单片机点阵屏仿真,【51单片机-B012】【protues仿真】基于51单片机数码管温度报警器仿真,【51单片机-B014】【protues仿真】 基于51单片机出租车计价器仿真,【51单片机-B007】【protues仿真】基于51单片机16键电子琴音乐盒仿真,【51单片机-B013】【protues仿真】基于51单片机八路抢答器数码管仿真https://www.bilibili.com/video/BV1ujubzqEAe/

联系作者

作者B站链接:https://space.bilibili.com/3493294220773802

专注于51单片机、STM32、Proteus、物联网软件开发,PCB设计。

相关推荐
weixin_1122332 小时前
基于STM32闭环步进电机控制系统设计说明
stm32·单片机·嵌入式硬件
机器视觉知识推荐、就业指导2 小时前
STC89C52系列单片机简介
单片机·嵌入式硬件·51单片机
qq_25929724734 小时前
STM32
嵌入式硬件
小猪写代码5 小时前
STM32 GPIO的八种工作模式
stm32·单片机·嵌入式硬件·gpio
1+2单片机电子设计5 小时前
STM32 单片机的停车场管理系统设计与实现
stm32·单片机·嵌入式硬件·51单片机
如愿小李6 小时前
STM32之土壤湿度传感器模块
stm32·单片机·嵌入式硬件
weixin_580382067 小时前
UART Hal库与寄存器比较
stm32·单片机·嵌入式硬件
fei_sun12 小时前
Easy ARM2132
单片机·嵌入式硬件