一.硬件方案
本次设计是采用开关控制实现上下到指定楼层,通过电机转动带动电梯箱上下运动,到达指定楼层。显示模块是显示此时的楼层,报警模块具有错误操作报警以及楼层到达的提示功能。
主要由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单片机的智能水表
推荐阅读最新更新时间:2024-11-13 10:09
推荐帖子
- 无线应用的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:四精度浮点扩展
- 电子烂人 编程基础