基于51单片机的自动门设计

介绍

        自动门是采用STC89C52单片机作为控制器,步进电机、热释电型红外传感器、led指示灯、蜂鸣器相结合的系统。热释电红外传感器给单片机传输检测信号,通过单片机控制电机驱动,从而控制电机转动,实现门的自动开关。

功能

  1. 具有自动开门和手动开门两种模式的功能。采用两个红外人体感应传感器,一个是安装在进门口,一个安装在出门口,自动模式下:任意一个感应到人都会自动打开门步进电机正转一圈,开门后当没有感应人系统会自动延时3秒自动关门,如果在关门的时候感应人到,门就会自动打开,防止误伤到人。优点:安全可靠。
  2. 手动模式:按手动开门键可以手动打开门,按手动关门键可以手动关门。
  3. 四个LED指示灯功能:从左到右,左绿灯亮自动模式,左红灯亮手动模式,右红灯亮是关门,右绿灯亮是开门。
  4. 两个传感器都有指示灯,当感应到人时对应的黄色指示灯就会亮,优点:这样我们很清楚的看到传感器的工作状态。

电路

(1)整体电路主要由51单片机最小系统电路,5线4相步进电机,人体感应模块,发光二极管,按键电路设计而成;原理图主要采用AD软件进行设计,如图:

 

(2)PCB图如下:
 

 

软件设计

部分程序源码

/******************主程序**********************/
void main()
{
    static unsigned char value;    
    while(1)
    {
        key();
        if(key_can < 10)
        {                         
             if(key_can == 1)     //自动模式
            {
                flag_moshi = 0;
                flag_z_f = 0;
                led4 = 0; led3 = 1;     //指示灯
            }
            if(key_can == 2)     //手动模式
            {
                flag_moshi = 1;
                flag_z_f = 0;
                led4 = 1; led3 = 0;     //指示灯
            }
            if(key_can == 3)      //手动关
            {
                flag_z_f = 2;
                led2 = 0; led1 = 1;     //指示灯
            }
            if(key_can == 4)     //手动开
            {
                flag_z_f = 1;
                led2 = 1; led1 = 0;     //指示灯
            }
        }
        if(flag_moshi == 0)      //自动模式
        {
            if((hw1 == 1) || (hw2 == 1)) 
            {
                flag_z_f = 1;   //打开    
                led2 = 1; led1 = 0;     //指示灯
                flag_zdg = 0;
                flag_sj = 0; 
            }
            if(flag_zdg == 1)     //延时自动关
            {
                value ++;
                if(value > 100)   //1m
                {
                    value = 0;    
                    flag_sj ++;
                    if(flag_sj >= 5)   //5秒
                    {
                        flag_zdg = 0;
                        flag_z_f = 2;
                    }                    
                }
                delay_1ms(10);         //10ms
            }
        }
        bujindj();       //步进电机函数
        
    }
}

资料链接:https://pan.baidu.com/s/1N2LoTy5aUBTycvo6jE9DOg?pwd=icmf 
提取码:icmf

  • 3
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值