【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设计。

相关推荐
玖別ԅ(¯﹃¯ԅ)31 分钟前
SysTick寄存器(嘀嗒定时器实现延时)
stm32·单片机·嵌入式硬件
limitless_peter31 分钟前
集成运算放大器(反向比例,同相比例)
嵌入式硬件·硬件工程
Blossom.1182 小时前
把 AI 推理塞进「 8 位 MCU 」——0.5 KB RAM 跑通关键词唤醒的魔幻之旅
人工智能·笔记·单片机·嵌入式硬件·深度学习·机器学习·搜索引擎
桃源学社(接毕设)3 小时前
基于人工智能和物联网融合跌倒监控系统(LW+源码+讲解+部署)
人工智能·python·单片机·yolov8
玖別ԅ(¯﹃¯ԅ)3 小时前
PID学习笔记6-倒立摆的实现
笔记·stm32·单片机
清风6666668 小时前
基于51单片机的手机蓝牙控制8位LED灯亮灭设计
单片机·嵌入式硬件·智能手机·毕业设计·51单片机·课程设计
anghost15016 小时前
基于单片机的超市储物柜设计
单片机·嵌入式硬件·超市储物柜设计
qq_5260991319 小时前
工控机的用途与介绍:工业自动化的重要引擎
嵌入式硬件·自动化·电脑
尘似鹤19 小时前
旋钮键盘项目---foc讲解(开环)
单片机·嵌入式硬件
意法半导体STM3221 小时前
STM32N6引入NPU,为边缘AI插上“隐形的翅膀”
单片机·ai·npu·st·stm32n6·边缘人工智能