63、基于51单片机红外遥控人体感应自动门控制系统设计

毕设帮助、开题指导、技术解答(有偿)见文末。

目录

摘要

一、硬件方案

二、设计功能

三、实物图

四、原理图

五、PCB图

六、Protues仿真

七、程序

部分代码

八、资料包括


摘要

伴随着电气技术的发展,电气控制控制技术已经成熟,针对电子自动门进行研究。基于8051内核的单片机89c51作为控制核心,热电释红红外传感器作为检测信号源,以伺服电机为动力驱动,研究不同的机械传动方式,红外通信技术自动模式和人工模式多模式控制。实现自动模式当有人靠近门的时候开启,离开的时候关闭,及手动模式,应用电自动门的多领域应用。本课题以C51系列的STC89c52RC为控制核心,热电释红外传感器模块检测信息,设置系统键盘模块,红外通信模块,以ULN2003为驱动器的伺服控制系用组成电自动门系统总成,由无线遥控或系统键盘选择工作模式综合实现所有功能。

关键词:单片机,红外,人体感应

一、硬件方案

单片机的红外遥控人体感应自动门控制系统设计的实现主要有电源5V供电、单片机最小系统、红外感应遥控模块,红外一体接收头,按键电路步进电机驱动电路,指示灯电路组成。

二、设计功能

1、如果红外模拟为开启状态, 当有人过来时门自动打,把门打开停止5秒左右,如果没人门就会自动关上,关门过程中 遇到障碍物会重新打开门

2 、红外遥控开关

3 、自动感应到人开关 也可以手动控制开关。

4、 可以用红外遥控器控制

三、实物图

四、原理图

五、PCB图

六、Protues仿真

七、程序

部分代码

#include "reg51.h"		  //头文件
#include "intrins.h"
 
#define uchar unsigned char	 //宏定义
#define uint unsigned int
 
uchar code zz[]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; 	 //步进电机正转数组表
uchar code fz[]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; 	 //步进电机反转数组表
 
 
sbit led_1=P0^0;   //指示灯控制IO口
sbit led_2=P0^1;
sbit led_3=P0^2;
sbit led_4=P0^3;
 
 
sbit key_1=P3^5;	 //按键控制IO口
sbit key_2=P3^6;
sbit key_3=P3^7;
 
sbit people_1=P3^1;	//红外热释传感器控制IO口
sbit people_2=P3^3;
 
 
uint xh = 0;	  //步进电机转动循环变量
 
uchar ms,sec;	//50ms变量,秒变量
 
bit mode = 1,open;  //	模式标志位默认为手动模式,   状态标志位
//下面这些变量用于红外遥控的解析,关于红外遥控,推荐大家去看下   51单片机天狼星教程里面红外遥控的章节,很详细,优酷上直接搜索即可
 
 
uchar irbyte[4];	//解码后红外32位数据
uchar irtime,irflag,bitnum,irdateok;// 定时器1溢出计数变量,转化标志位,下标变量,信号接收完成标志位
uchar irdate[33];	//红外信号
/********************************************************************
* 名称 : delay()
* 功能 : 小延时。													 
* 输入 : 无
* 输出 : 无
***********************************************************************/ 
void delay(uint T)
{
	while(T--);
}
 
/********************************************************************
* 名称 : zhengzhuan()
* 功能 : 步进电机正转函数													 
* 输入 : 无
* 输出 : 无
***********************************************************************/ 
void zhengzhuan()
{
	uchar i;
 	for(i=0;i<8;i++)
    {
     	P2=zz[i];
     	delay(150);
//	if(!key2F) break;
    }
}
/********************************************************************
* 名称 : fanzhuan()
* 功能 : 步进电机反转函数													 
* 输入 : 无
* 输出 : 无
***********************************************************************/ 
void fanzhuan()
{
	uchar i;
 	for(i=0;i<8;i++)	//8拍数据轮流输送
    {
     	P2=fz[i];
     	delay(150);
//		if(!key3F) break;
    }
}

八、资料包括

需要完整的资料可以点击下面的名片,找我要资源压缩包的百度网盘下载地址及提取码。  

  • 3
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冠一电子设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值