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

稿源:(未知)
【傻大方】网址:/a/2021/0707/0022751520.html
标题:基于|基于单片机的电梯控制模型设计