一、设计简介:
本设计是基于51单片机红外遥控人体感应自动车库门控制设计,主要实现以下功能:
1、如果红外模拟为开启状态, 当有人过来时门自动打,把门打开停止5秒左右,如果没人门就会自动关上,关门过程中 遇到障碍物会重新打开门
2 、红外遥控开关
3 、自动感应到人开关 也可以手动控制开关。
4、 可以用红外遥控器控制
主要硬件组成:
电源5V供电、单片机最小系统、红外感应遥控模块,红外一体接收头,按键电路,步进电机驱动电路,指示灯电路
二、原理图
三、PCB图
四、Proteus仿真
五、程序源码
部分代码:
#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;
}
}
六、资源获取
本项目包含的所有文件都可以点击下面的名片,发送 “ 63、基于51单片机红外遥控人体感应自动车库门控制设计 ” 获取!
项目纯手打,不是免费的哦~
希望可以帮到你哈!