基于单片机的电梯控制模型设计 精品.docx
- 文档编号:10868270
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:21
- 大小:888.07KB
基于单片机的电梯控制模型设计 精品.docx
《基于单片机的电梯控制模型设计 精品.docx》由会员分享,可在线阅读,更多相关《基于单片机的电梯控制模型设计 精品.docx(21页珍藏版)》请在冰豆网上搜索。
基于单片机的电梯控制模型设计精品
一、前言
单片机技术是现代电子工程领域一门迅速发展的技术,它的应用已经渗透到各种嵌入式系统中。
可以毫不夸张地说:
掌握单片机技术是电子信息类专业学生就业的一个重要条件。
同时单片机技术又是一门实践性很强的学科,课程设计教学环节的设计和实施,在很大程度上决定了学生对单片机技术的掌握程度。
为了更好地完成课程设计这一重要教学环节,我们采用Proteus软件与Keil软件整合构建单片机虚拟实验平台。
学生首先在PC上利用Proteus软件自己搭建硬件电路,并利用系统提供的功能完成电路分析、系统调试和输出显示的硬件设计部分;同时在Keil软件中编制程序,进行相应的编译和仿真,完成系统的软件设计部分。
当系统的设计工作完成后,学生可以在PC上看到最终的运行效果。
最后再通过proteus设计PCB,再完成真正硬件的调试。
采用Proteus软件与Keil软件整合构建单片机虚拟实验平台,有利于促进课程和教学改革,更有利于人才的培养;从经济性、可移植性、可推广性角度讲,建立这样的课程设计平台是非常有意义的;利用仿真系统,可以节约开发时间和开发成本;利用仿真系统,具有很大的灵活性和可扩展性。
二、设计简介
1、设计方案介绍
在工业上,多采用可编程控制器或微型计算机实现电梯逻辑控制,可编程控制器抗干扰性强,但针对性强、价格较贵,为实现电梯控制的模拟,本设计采用单片机为控制中心,针对所在的不同楼层分别进行合理的调度。
设计中按键用于给用户发出服务请求,LED电路用于显示请求状态及电梯运行状态、数码管显示电路来显示实时楼层,而电梯上升或下降的过程则通过定时来模拟。
2、设计任务及要求
三层电梯控制模型的设计。
2.1设计要求
●利用51单片机设计三层电梯的控制模型
●利用按键和数码管实现对电梯的控制和运行模拟
●可实时显示电梯所在楼层;
●按键按下后,相应的LED灯亮;
●可对发出的服务请求进行合理的分析调度并作出正确的响应;
●用户请求得到服务后,可更新状态。
2.2设计思路
本次设计的基本思路是以AT89S51单片机作为核心,利用其I/O接口与外围电路配合进行控制,通过扫描键盘点亮相应的指示灯,采用数码管来实时显示楼层,单片机通过扫描按键指示灯来读取请求,根据所在楼层的不同,进行不同的分析、调度,然后做出正确的响应,更新状态并在指示灯和数码管上显示出来。
系统模拟框图如图所示
三、硬件电路设计
3.1总体电路模块
硬件部分主要由单片机最小系统、系统显示电路、步进电梯驱动模块和按键输入模块等几部分组成。
总体电路原理图如下图所示:
3.2单片机最小系统部分:
单片机最小系统部分由图中的
(1)振荡电路
(2)复位电路(3)AT89C51构成。
3.2.1振荡电路
单片机系统里都有晶振,在单片机系统里晶振作用非常大,全称叫晶体振荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。
高级的精度更高。
有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。
晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
单片机晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。
如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。
AT89C51使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。
3.2.2复位电路
单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。
当复位电平持续两个机器周期以上时复位有效。
复位电平的持续时间必须大于单片机的两个机器周期。
具体数值可以由RC电路计算出时间常数。
复位电路由按键复位和上电复位两部分组成。
(1)上电复位:
通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K和10uF。
(2)按键复位:
按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。
3.2.3单片机AT89C51
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图所示。
主要特性:
(1)与MCS-51兼容
(2)4K字节可编程FLASH存储器
(3)寿命:
1000写/擦循环(4)数据保留时间:
10年
(5)全静态工作:
0Hz-24MHz(6)三级程序存储器锁定
(7)128×8位内部RAM(8)32可编程I/O线
(9)两个16位定时器/计数器(10)5个中断源
(11)可编程串行通道(12)低功耗的闲置和掉电模式
特性概述:
AT89C51提供以下标准功能:
4k 字节Flash 闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
3.3系统显示电路
3.3.1数码管显示电路
显示电路使用了七段数码管7SEG-MPX1-CC,它是共阴极的,由高电平点亮
3.3.2LED指示电路
3.4按键输入模块
在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。
本系统采用独立式按键,独立式按键的各按键相互独立,每个按键都有一个输入线,各按键的状态互不影响,CPU需对按键状态分别检测,只适用于按键数量较少的场合。
独立按键与单片机接口电路如图所示。
3.4.1键盘输入的特点
键盘实质上是一级按键开关的集合。
通常,键盘开关利用了机械触点的合、断作用。
3.4.2按键的确认
键的闭合与否,反映在行线输出电压上就呈现高电平或低电平,如果高电平表示键断开,低电平则表示键闭合,通过对行线电平高低状态的检测,便可确认按键按下与否。
为了确保CPU对一次按键动作只确认一次按键有效,必须消除抖动的影响。
3.4.3如何消除按键的抖动
采用软件来消除按键抖动的基本思想是:
在一次检测到有键按下时,该键所对应的行线为低电平,执行一段延时10MS的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认为该行确实有键按下。
当按键松开时,行线的低电平变为高电平,执行一段延时10MS的子程序后,检测该行线为高电平,说明按键确实已经松开。
3.4.4与非门的作用
这次的电路加上了7个与门,在有一个按键按下之后,与门的一个输入变为低,最后与门的输出就为低,接在外部中断INT0,该引脚有高变低,下降有触发,触发外部中断。
3.5步进电梯驱动模块
本系统的步进电梯模块由ULN2003A驱动步进电梯构成。
该电路模块如图所示:
本设计是使用ULN2003A芯片来驱动电机,使用步进电机必须由环形脉冲,功率放大等组成的控制系统。
●脉冲信号的产生
步进电机的驱动电路根据控制信号工作,由于控制并不复杂,故直接用单片机模拟出时序信号。
●控制换相顺序
通电换相这一过程称为脉冲分配。
感应子式步进电机以二、四相电机为主,本机采用四相八拍为AB-B-BC-C-CD-D-AB,(步距角为0.9度)。
●控制步进电机的转向
如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。
●控制步进电机的速度
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
两个脉冲的间隔越短,步进电机就转得越快。
调整单片机发出的脉冲频率,就可以对步进电机进行调速。
单片机留出来4个口线来与ULN2003A连接,以达到用单片机来驱动步进电动机的运行,上行、以及下行和停止等,具体功能的实现将由软件编程来完成。
其中ULN2003A是高耐压、大电流,内部由7个硅NPN达林顿管组成的驱动芯片在电路中可用于伺服电机、步进电机驱动等电路中。
ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。
它是双列16脚封装,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于TTLCOMS,由达林顿管组成驱动电路。
ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE约1V左右,耐压BVCEO约为36V。
用户输出口的外接负载可根据以上参数估算。
采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。
通常单片机驱动ULN2003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。
ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。
四、系统程序的设计
4.1系统主程序的设计
程序流程框图如图所示:
4.2中断程序的设计
程序流程框图如图所示:
五.仿真调试情况
5.1测试结果显示
5.2调试时出现的问题及分析
●电梯在一楼时若同时按下2、3数字键,电梯总是上到2楼不停,到3楼后才回到2楼,推测在到2楼时的判断分析程序有错。
反复检查、修改无改善后,发觉原先把判断分析电梯怎么动作的程序都写在中断服务程序内,故只有电梯到了新的楼层才会得到下一步怎么走的命令,且在中断服务程序中无按键扫描,故刚好到达某一楼层时按下的键无法扫描到,电梯除初始态外,静止在其他楼层时若有按键按下未必能进行合理的分析和处理。
总结以上不足后,把判断电梯该如何动作的分析调度程序改写到主程序中,各个楼层均有一个对应的分析程序,改分析程序内已包含键盘扫描程序,只要电梯未到达新的楼层就始终执行该分析程序。
在分析过程中,发现要让电梯上升或下降时就开中断,在等待中断次数够20次(定时2s)的过程中仍未到达新的楼层,故期间一直在执行该分析程序。
按照以上思路改进后,上述问题得到解决,故障得以排除。
●在进行程序整体联调时发现,多个按键按下时,有时能扫描到所有按下的键,有时不能,且响应了一个请求之后,即使仍有请求灯在亮着,也不再做任何响应,按键也没反应,就像“死机”了一样。
推测可能按键扫描的频率不够高,或者逻辑上不全面,程序进入到一个死循环,故在程序中检查并完善了条件判断语句,几处添加按键检测,只要有键按下就进行行扫描,如此,按键几乎都能扫描到。
六.设计心得体会
通过本次论文设计,使我加深了对单片机的认识,并且熟悉了单片机系统的设计流程,收获丰硕。
功能上基本达标:
时钟与闹钟的显示,调时间和闹钟功能以及闹钟鸣叫功能。
时钟与闹钟显示功能,精确度完全可以满足日常生活显示时间的需要;调时间与闹钟功能,方便快捷。
硬件设施基本合乎要求,软件设计可以配合硬件实现其功能。
技术在不断进步,机械式时钟已经被淘汰,取而代之的是具有高度准确性和直观性且无机械装置,具有更长的使用寿命等优点的电子时钟。
电子时钟更具人性化,更能提高人们的生活质量,更受人们欢迎。
机械时代已经远去,电子时代已经到来。
做为新时代的我们,更应该提高自身能力,适应新时代的发展。
知识来自实践,多从生活中探寻所需要的。
从这次的论文设计中,我真正的体会到,知识的重要性,特别是要理论联系实际,把我们所学的理论知识运用到实际生活当中,要用知识改变一切。
7、主程序
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
ucharcodetable[]={0x3f,0x06,0x5b,0x4f};
sbitS0=P1^0;
sbitS1=P1^1;
sbitS2=P1^2;
sbitS3=P1^3;
sbitS4=P1^4;
sbitS5=P1^5;
sbitS6=P1^6;
sbitS7=P1^7;
uintflag=0;
uinti=0;
sbitA1=P2^0;//定义步进电机连接端口
sbitB1=P2^1;
sbitC1=P2^2;
sbitD1=P2^3;
sbitashow1=P2^4;
sbitashow2=P2^5;
sbitashow3=P2^6;
sbitashow4=P2^7;
#defineCoil_A1{A1=1;B1=1;C1=0;D1=0;}//AB相通电,其他相断电
#defineCoil_B1{A1=0;B1=1;C1=1;D1=0;}//BC相通电,其他相断电
#defineCoil_C1{A1=0;B1=0;C1=1;D1=1;}//CD相通电,其他相断电
#defineCoil_D1{A1=1;B1=0;C1=0;D1=1;}//DA相通电,其他相断电
#defineCoil_OFF{A1=0;B1=0;C1=0;D1=0;}//全部断电
voiddelay(uintz);
voiddisplay(ucharnow);
voidbumotor();
voidbumotort();
ucharnow=1;
voidmain()
{
EA=1;
ET0=1;
IT0=1;//外部中断0为边沿触发
EX0=1;
ashow1=0;
ashow2=0;
ashow3=0;
ashow4=0;
while
(1)
{
if(flag==0)
{
delay(400);
display(now);
delay(400);
}
elseif(flag==1)
{
for(i=0;i<2;i++)
{
now++;
if(now>=3)
{
now=3;
}
display(now);
delay(800);
}
}
elseif(flag==2)
{
for(i=0;i<2;i++)
{
now--;
if(now<=1)
{
now=1;
}
display(now);
delay(800);
}
}
if(now==1)
{
ashow1=1;
ashow2=0;
ashow3=0;
ashow4=0;
}
elseif(now==2)
{
ashow1=0;
ashow2=1;
ashow3=1;
ashow4=0;
}
elseif(now==3)
{
ashow1=0;
ashow2=0;
ashow3=0;
ashow4=1;
}
}
}
voidout()interrupt0
{
uchari=0;
if(now==1)
{
if(S1==0)
{
now=now;
//delay();
}
if(S2==0||S5==0||S6==0)
{
now=now+1;
bumotor();
}
if(S3==0||S7==0)
{
flag=1;
}
}
if(now==2)
{
if(S1==0)
{
now=now-1;
bumotort();
}
if(S3==0||S7==0)
{
now=now+1;
bumotor();
}
}
if(now==3)
{
if(S2==0||S5==0||S6==0)
{
now--;
}
if(S1==0||S4==0)
{
flag=2;
}
}
}
/****************************************************
数码管显示函数
****************************************************/
voiddisplay(ucharnow)
{
P0=table[now];
delay(15);
}
/***************************************************
延时函数
****************************************************/
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=222;y>0;y--);
}
voidbumotor()
{
Coil_OFF;
delay(400);
Coil_A1;
delay(400);
Coil_B1;
}
voidbumotort()
{
Coil_OFF;
delay(400);
Coil_B1;
delay(400);
Coil_A1;
//delay(800);
}
八、主要参考文献
●何立民.单片机应用系统设计.北京:
北京航空航天大学出版社,1990
●王晓明.电动机的单片机控制.北京:
北京航空航天大学出版社,2002
●朱善君,孙新亚.单片机接口技术与应用.北京:
清华大学出版社,2005
●吴红星.电机驱动与控制专用集成电路及应用.北京:
中国电力出版社,2006
●王兆安,黄俊.电力电子技术.北京:
机械工业出版社,2000
●李光弟等.单片机基础.北京:
北京航空航天大学出版社,2001
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于单片机的电梯控制模型设计 精品 基于 单片机 电梯 控制 模型 设计