基于51单片机的电梯控制系统

电路设计

        本次设计是采用开关控制实现上下到指定楼层,通过电机转动带动电梯箱上下运动,到达指定楼层。显示模块是显示此时的楼层,报警模块具有错误操作报警以及楼层到达的提示功能。整体电路主要由51单片机+共阴数码管+红外发射和接收模块+按键+指示灯+蜂鸣器设计而成;原理图如图:


 

 Protues仿真图及PCB图如下:

 

设计功能

  1. 通电后,系统默认电梯停在一层。按下不同的按键电梯可以到达不同的楼层,如果电梯在上行,下面的楼层有呼叫电梯会继续上行,直到上行完了才会下行。同样如果电梯在下行,上面的楼层有呼叫 电梯会继续上行 ,直到下行完了才会上行。
  2. 如需上行,请按下所要到达楼层的上行呼叫按钮,电梯显示开始上行,所经楼层号用数码管进行显示,到达,楼层号持续显示,并有蜂鸣器鸣叫以示到达。
  3. 由LED箭头指示电梯是上行和下行的方向。如上下行同时呼叫,则按先上后下原则实现.。

软件设计

/******************主程序**********************/       
void main()
{
    uchar i;
    P1 = 0x00;
    P0 = 0X00;       //单片机IO口初始化
    time_init();   //定时器初始化
    while(1)
    {
        key();          //按键程序
        if(key_can < 20)
        {      
            if(dt_s_x == 0)
            {
                value2 = 0; 
                flag_stop = 1;
            }
            key_with();        
        } 
        
        tiandi_shang_xia();      //当电梯不动时、判断是向上、还是向下
        
        P0 = ~smg_du[dt_value];      //显示
        
        if(flag_100ms  == 1)
        {
            flag_100ms = 0;
            td_dis();         //电梯处理函数
        }
        if(flag_start == 1)
        {
            for(i=0;i<4;i++)                    
            {
                if(flag_z_f == 0)
                {
                }
                else 
                {
                }
                Delay(650);        
            }
        }
    }
}

/*************定时器0中断服务程序***************/
void time0_int() interrupt 1
{    
    static uchar value;
    TH0 = 0x3c;
    TL0 = 0xb0;     // 50ms
    value ++;
    if(value % 2 == 0)
    {
        flag_100ms = 1 ;
    }
}

资料链接:https://pan.baidu.com/s/1MAakY-qXcoQyKMBxdkEf7A?pwd=cjff 
提取码:cjff

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值