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

发布者:TranquilGaze最新更新时间:2021-10-31 来源: eefocus关键字:51单片机  电梯控制系统  数码管 手机看文章 扫描二维码
随时随地手机看文章

一.硬件方案

本次设计是采用开关控制实现上下到指定楼层,通过电机转动带动电梯箱上下运动,到达指定楼层。显示模块是显示此时的楼层,报警模块具有错误操作报警以及楼层到达的提示功能。


主要由51单片机+共阴数码管+红外发射和接收模块+按键+指示灯+蜂鸣器设计而成;如图:

二.设计功能

(1)通电后,系统默认电梯停在一层。

(2)按下不同的按键电梯可以到达不同的楼层,如果电梯在上行,下面的楼层有呼叫电梯会继续上行,直到上行完了才会下行。同样如果电梯在下行,上面的楼层有呼叫 电梯会继续上行 ,直到下行完了才会上行。

(3)如需上行,请按下所要到达楼层的上行呼叫按钮,电梯显示开始上行,所经楼层号用数码管进行显示,到达,楼层号持续显示,并有蜂鸣器鸣叫以示到达。

(4)由LED箭头指示电梯是上行和下行的方向。

(5)如上下行同时呼叫,则按先上后下原则实现.


三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:

(2)Protues仿真图如下:

(3)PCB图如下:

四.软件设计

(1)程序流程图



(2)主程序源码


/******************主程序**********************/    

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 ;

}

}

关键字:51单片机  电梯控制系统  数码管 引用地址:基于51单片机的电梯控制系统

上一篇:基于51单片机的分贝检测仪设计
下一篇:基于51单片机的智能水表

推荐阅读最新更新时间:2024-11-13 10:09

MSP430程序库<九>数码管显示
数码管也是单片机系统最常用的输出设备之一(还有液晶、发光二极管等)。七段(这里用的是8段,有小数点)数码管可以完成显示0-9数字和一部分的英文字符如:A、b。本文实现的程序完成显示数字和可显示的英文字符;同时完成数码管显示的printf函数的移植,以支持printf的格式化字符等好用的特点(我用的数码管8个排为一排,方便数字等的显示)。 硬件介绍: 这里所用到的硬件资源包括8个数码管、和msp430单片机的两个8位IO口(这里用的是P3和P5口,如有改变,可以通过宏定义更改)。 数码管是8个共阴的数码管,a-h 8段通过一个200Ω的电阻接到430单片机的P5口。共阴端是由单片机的P3口控制,单片机的一位IO通过一个三极管
[单片机]
51单片机基础之串口通信
原理: 这里需要解释一下,串口通信是需要占用定时器1的,所以使用了串口通信就不能使用定时器1,除非是代码优化。 这个需要配置几个寄存器,都比较简单,TMOD寄存器设置定时器计数器的工作方式,SCON则是设置串口通信的工作方式,PCON则是波特率加倍操作,都是比较简单的。 计时器初始值的设置有专门的工具 链接:https://pan.baidu.com/s/1BSi8YCaRWtBGLaV2gslpSw 提取码:1234 使用方法: 设置定时器工作方式,单片机晶振,所需波特率,是否开启倍频,最好让误差为零。 代码: #include reg51.h typedef unsign
[单片机]
<font color='red'>51单片机</font>基础之串口通信
51单片机 printf函数 调试程序
主要分三个部分(1)51单片机程序部分;(2)keil工具部分;(3)为何printf输出为串口。 (1)51单片机程序部分 #include stdio.h #include reg51.h void InitUART(void)//使用定时器1作为串口波特率发生器 { TH1 = 0xF3; //晶振12mhz 波特率串口上设为2400才不显示乱码代码是4800 TL1 = TH1; TMOD |= 0x20; //定时器1方式2 SCON = 0x50; //串口接收使能 ES = 1; //串口中断使能 TR1 = 1; //定时器1使能 TI = 1; //发送中断
[单片机]
51单片机控制信号发生器源程序(正弦波、方波)
单片机型号:STC15W4K32S4 数字编码器EC11作为控制波形、频率、占空比的开关 液晶1602A作为显示信息 单片机源程序如下: Note: 2020-05-06 Update 1. Fix an error in main funciton, cause the EC11 Encoder rotate disorder. 2. Fix an error of interface display during switch frequency. 2020-05-24 Update 1. Fix precision of PWM frequency 2. Fix the
[单片机]
<font color='red'>51单片机</font>控制信号发生器源程序(正弦波、方波)
对于51单片机和arm9开发板串口通信问题的分析
距离毕设的时间还剩20天左右,这几天一直忙着做毕设,今天终于将51单片机和串口通信的问题解决了,抽出点时间,写一下遇到的问题。不然,过几天又忘了,记录下来也给后续学习的技术宅能提供一点帮助。 我的串口实验是:ARM9 控制板通过串口发送一个指令,51接受到这个指令后,根据这个指令控制小车的运行方式。(为什么不用arm9直接控制小车而采用51控制小车呢? 答:我的想法是电机驱动这一块直接交付给下一级控制器,程序简单,容易实现,况且通过串口,只需解析一个指令就可以实现)。 1、做此类串口通信一定要记得共地,我采用的方法是直接用5v直流输出引出了两个接口,分别为两个控制板供电,这样的话串口通讯的电压没有一点问题。 2、做串口通讯的
[单片机]
一文详解MCS-51单片机的中断系统
MCS-51中断系统:5个中断源(两个外部中断, 两个定时器, 一个串口),2个优先级 中断相关概念 中断:当CPU正在处理某件事情时,单片机外部或内部发生的某一紧急事件请求CPU立即去处理,于是,CPU暂时中止当前的工作,转去处理这个紧急事件,待处理完毕后,再回到原来被中止的地方,继续原来的工作。 中断过程 中断发生:CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理; 中断响应和中断服务:CPU暂时中断当前的工作,转去处理事件B(B的优先级要高于A); 中断返回:待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A ; 中断源(中断请求源):能够向CPU发出中断申请的部件。 中断系统结
[单片机]
一文详解MCS-<font color='red'>51单片机</font>的中断系统
数码管电子钟
主要元器件:89C52RC,74HL138,四位数码管两个,独立按钮三个,排线,杜邦线 原理:利用定时计数器定时50ms,每20次为一秒,产生一次中断,在中断函数中,对秒数加一,当秒数加满60后清零,分数加一,同理可得分数和时数直接安定关系。数码管的显示采用动态扫描法,至于如何对按键进行实时响应,参考程序部分。 说明:由于本程序软件部分既不是很复杂也不是很简单,故采用C51编写,硬件原理图暂缺。软件部分如下,本程序仅供QQ好友中从事嵌入式工作的叔叔和大哥们参考,修改。 结语:向广大大哥大叔们表示感谢,在此也多谢导师的指引,青见一定不负所望,仰望星空,脚踏实地,五月份本人事情较多,估计没有时间和你们讨论一些问题,期待我们暑假的大飞
[单片机]
51单片机软件(程序)复位
51单片机软件复位汇编代码 POP ACC ; pop return address POP ACC ;弹出PC MOV SP,#30H ;复位后SP为07H ,这样就会复位椎栈 MOV PSW,#00H ;清寄存器 CLR A ; push 0 as new PUSH ACC ; return address to stack PUSH ACC ;重置PC=0并压到椎栈中 RETI ; execute return of interrupt ;程序又开始从0000H处开始运行,但寄存器内的值不确定! 用C51实现软件复位 方法1: void(*SoftReset)(); SoftReset=0;
[单片机]

推荐帖子

无线应用的PCB设计问题
无线433MHZ模块应用到LED电源驱动上,发现无线的丢包率比较高,哪位高手能给点意见,不知道是不是PCB画的有干扰。无线应用的PCB设计问题建议你可以的话应该把pcb图挂上来看看。我们给你看看pcb是否有什么问题。你直接这么说我们也无从了解起啊 非隔离的,但火线有Y型电容。如果可以的话加个ldo隔离一下,或者加点滤波其次这个板子有开关电源和RF部分有点近,看看是否可以加点屏蔽措施以上仅个人猜测。 谢谢,我试试
894905406 PCB设计
求助!!!关于软硬件的开发
本人现在大二,学的是电子工程,c语言和汇编语言用的比较多,通常使用的开发软件是KeilC和proteus。最近搞了一个在windows上开发与外部硬件设备结合的项目,可是我对软件开发和驱动编程只知道一点皮毛。希望哪位大侠能帮忙指点迷津,告诉我应该从哪开始学起?最好是基础一点的。。。。求助!!!关于软硬件的开发VBVC之类的都不错省事我建议的初学编程少把精力花在vbvc这种傻瓜式开发工具上,多用c,体会下汇编,这样你能真正领会编程之精髓。vbvc这种一拖一大把代码的工具只会使你
zgy8864 嵌入式系统
rust实战-rust数据类型1
###2.3数据类型*内置对二进制(0b)、八进制(0o)、十六进制(0x)数字字面量的支持;*占用更多位数的类型可以表示更多的数字,代价就是需要为较小的数字存储更多额外的零;*不同的数据类型不能进行比较运算,不同类型需要进行比较运算的话可以使用`as`将其中一个操作数转换为与另外一个操作数相同的类型,例如:ifa*将更小的类型转换到更大的类型是安全的,此操作叫作类型提升(promotion);*有时`as`关键字有些过于受限,要想完全控制类型转换的过程可以使用`tr
IC爬虫 嵌入式系统
初学ARM,牛哥牛姐们有什么宝贵经验分享一下呗!!
初学ARM,牛哥牛姐们有什么宝贵经验分享一下呗!!初学ARM,牛哥牛姐们有什么宝贵经验分享一下呗!!顶之软件还是硬件?小弟也初学,迫切想多了解点这方面的东西我想学,还没正式学呢顶我也新手不过我想多看看例程在自己试着多写写应该对新手来说会比较好我不是牛哥也不是牛姐,不过我觉得学习arm首先得清除芯片有哪些功能,包含哪些资源;其次还要知道对板子如何操作包括下载启动,此时最好有例程。然后呢自己试着写些小程序在板子上跑跑。最后试着分析下bootloader都做了什么,然后在深入下
sunxinyu ARM技术
基于STM32的BMP图片解码系统
在现代便携式设备的应用过程中,常常需要在系统中显示一些图片,而在各种图片格式中,BMP又是最具代表性的一种图片格式。  BMP是一种与硬件设备无关的图像文件格式,使用非常广泛。它采用位映射存储格式,除了图像深度可选以外,BMP文件的图像深度可选1、4、8及24bit.BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。  典型的BMP图像文件由3部分组成:位图文件头数据结构,它包含BMP图像文件的类型、显示内容等信息;位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以
Aguilera 微控制器 MCU
【读书】《RISC-V开放架构设计之道》2.基础指令集RV32I
RISC-V可以根据不同的应用需求,通过模块化的方式组合不同的指令集扩展。RISC-V架构的主要类别包括以下几种: 基础指令集(BaseISA): RV32I:32位基础整数指令集。RV64I:64位基础整数指令集。RV128I:128位基础整数指令集(目前还在开发中)。 标准扩展(StandardExtensions): M:乘法和除法扩展。A:原子操作扩展。F:单精度浮点扩展。D:双精度浮点扩展。Q:四精度浮点扩展
电子烂人 编程基础
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved