找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9499|回复: 5
收起左侧

51单片机模拟自动感应门(原理图+仿真图+源程序)

  [复制链接]
ID:587011 发表于 2019-9-3 12:07 | 显示全部楼层 |阅读模式
采用的是模拟的形式  步进电机模拟开门关门

制作出来的实物图如下:

实物图

实物图


电路原理图如下:

仿真图

仿真图


仿真说明

RV1模拟人体检测,端口变成绿色0无人,端口变成红色是有人

其他照着操作说明操作即可
实物中的步进电机仿真中没有对应的,你就加载仿真看看端口电平变化效果吧

Comment    Designator
22P电容    C1, C2
10UF电容    C3
LED    D1
人体检测模块    H1
步进电机    P1
1K电阻    R2
10K电阻    R15
AJ按键    SW1, SW2
单片机    U2
ULN2003    U5
12M    晶振1


单片机源程序如下:
#include<reg51.h> //调用头文件
#define uchar unsigned char  //宏定义
#define uint unsigned int    //宏定义

/********    端口定义      **********/

sbit k1=P2^6;//手动开接口
sbit k2=P2^7;//手动关接口

sbit led=P3^4;//人体感应指示灯
sbit ir=P3^2;//人体感应

uchar code fan[4]={0xf8,0xf4,0xf2,0xf1};//反转
uchar code zheng[4]={0xf1,0xf2,0xf4,0xf8};//正转

uchar num,num1;
uint quan;
bit flag;//开关标志位,0为关,1为开

/***************延时函数*******************/

void delay(uint time)//延时函数         延时Time ms
{
        uint j;
        for(;time>0;time--)
           for(j=150;j>0;j--);
}void main()
{
        
        TMOD=0x11;//设置定时器1为16位计时模式
        TH0=(65536-50000)/256;  //定时器0高八位装初值
        TL0=(65536-50000)%256;  //定时器0低八位装初值
        EA=1;//开启总中断
        ET0=1;//开启定时器中断0
        TR0=0;//关闭定时器0

        TH1=(65536-4000)/256;    //定时器1高八位装初值
        TL1=(65536-4000)%256;    //定时器1低八位装初值
        ET1=1;//开启定时器中断1
        TR1=0;//关闭定时器1
        flag=0;//门关闭状态
        P2=0xf0;
        while(1)
        {        
                while(flag==0)//门关闭状态
                {                                                         
                        if(TR1==0)P2=0xf0;
                        if((ir==1)||(k1==0))//检测到人体信号或者手动开门按键按下模拟开门
                        {
                                if(ir==1)led=0;
                                TR1=1;
                                num=0;
                        }
                        else led=1;
                }
                //门开启状态 延时5S检测不到人  自动关闭         延时5S检测到人  延时清零继续
                //关闭时检测到人  反方向自动开启
                while(flag==1)
                {
                        if(TR1==0)P2=0xf0;
                        if(ir==1){num=0;led=0;}//门开启检测到人体信号定时清零
                        else led=1;
                        if((num>=100)||(k2==0))//5S 或者手动关门按键按下执行关门
                        {
                                TR0=0;//关闭定时器
                                TR1=1;
                                num=0;
                        }
                }
        }
}
void time0() interrupt 1         //中断函数
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        num++;
}
void time1() interrupt 3         //中断函数
{
        TH1=(65536-4000)/256;
        TL1=(65536-4000)%256;
        num1++;
        if((flag==0)&&(TR1==1))
        {
                if(num1==4)
                {
                        lp:
                        num1=0;
                        quan++;
                }
                P2=zheng[num1];
                if(quan>=125){TR1=0;flag=1;TR0=1;P2=0xf0;}//90°        
        }
        if((flag==1)&&(TR1==1))
        {
                if(num1==4)
                {
                        num1=0;
                        if((ir==1)||(k1==0))//检测到人体信号或者手动开门按键按下模拟开门
                        {
                                flag=0;
                                if(ir==1)led=0;
                                TR1=0;
                                delay(1000);
                                TR1=1;
                                goto lp;
                        }
                        quan--;
                }
                P2=fan[num1];
                if(quan==0){TR1=0;flag=0;P2=0xf0;}
                        
        }
}

全部资料51hei下载地址:
自动感应门资料.rar (173.83 KB, 下载次数: 212)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:657167 发表于 2019-12-5 23:06 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:668156 发表于 2019-12-23 14:31 | 显示全部楼层
请问这个人体检测模块用的是什么呢?红外检测吗?
回复

使用道具 举报

ID:722729 发表于 2020-5-12 12:59 | 显示全部楼层
你这资料打开用不上啊!
回复

使用道具 举报

ID:939573 发表于 2021-6-21 14:35 | 显示全部楼层
大家有没有推荐比较好用的人体感应模块呀
回复

使用道具 举报

ID:941093 发表于 2021-6-21 18:22 | 显示全部楼层

好资料,51黑有你更精彩!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表