基础课程设计模拟电梯的设计与制作概要.docx
《基础课程设计模拟电梯的设计与制作概要.docx》由会员分享,可在线阅读,更多相关《基础课程设计模拟电梯的设计与制作概要.docx(36页珍藏版)》请在冰豆网上搜索。
基础课程设计模拟电梯的设计与制作概要
电子课程设计报告
设计课题:
模拟电梯的设计与制作
专业班级:
09级电子信息工程2班
设计时间:
2011年10月10日—12月31日
目录
一、结构设计方案选择................................................................................................3
方案一:
模拟洗衣机电机控制部分…………………………………...............3
方案二:
模拟电梯……………………………………………………………….4
方案比较与选择……………………………….............……………………...7
二、摘要6
三、模拟电梯的设计思路与要求7
四、单元电路设计、参数计算及元器件选择8
4.1ADC08098
4.2显示部分10
4.3矩阵键盘模块11
4.4单片机最小系统.......................................................................................................12
4.5步进电机控制电路..........................................................................................................12
4.6电梯实体的设计..........................................................................................................15
五、总原理图及元器件清单16
5.1电路总原理图16
5.2元件清单17
5.3实验器材与工具17
5.4程序部分18
六、焊接电路及调试中遇到的问题22
6.1单片机最小系统的调试23
6.2显示部分的调式23
6.3矩阵键盘的调试23
6.4电梯实体的调试23
6.5整体的调试与电路与实题的耦合.............................................................................23
七、参考文献24
八、心得与体会24
一、结构设计方案选择:
方案一:
模拟洗衣机
1、设计任务与要求
用一个简单的时序逻辑电路来取代传统洗衣机所用的机械开关,实现对电流的控制,正转一定时间,停止2秒左右,再反转一定时间,再停止2s如此反复。
2、设计框图及说明
整体框图如图1-1所示,电路的基本原理是利用十六进制计数器的输出口Q3与(Q3)’来提供高低电平的信号,实现控制功能。
接通电源后,时序电路不断地产生周期为1s的脉冲,这个脉冲接入道十六进制计数器,计数器的低三位接入译码器,然后产生译码信号,同一时刻只有一个灯亮,而且现象是一个流水灯电路,实现对电动机状态机监控。
图1-1模拟洗衣机设计框图
3、总体设计电路图
图1-2模拟洗衣机原理仿真图
说明:
如图1-2注释所说的,Q2&Q1是控制信号的控制信号,由左下角的与非门实现,当Q2&Q1=0时,电动机两端的电平都变成0,电机停止转动,由上图注释的时序可知,仅当计数器输出值为0110,0111,1110,1111(即十进制的6,7,14,15)时满足Q2&Q1=0,此时电机停止转动,而停止转动的时间恰好是2秒,时序由上往下循环,从而实现了正转6秒,停2秒,反转6秒,停2秒依次循环的功能。
方案二:
模拟电梯设计方案
1、设计任务要求
设计一个电路,实现电梯的自动化控制和楼层显示的功能具体如下:
(1)能够识别当前楼层。
(2)显示当前楼层和目的地楼层。
(3)能够用键盘输入楼层呼叫信息和目的楼层。
(4)通过电梯控制系统来实现电梯的逻辑控制。
2、总体框图及工作原理说明
图1-3模拟电梯总体方框图
工作原理:
接通电源后,单片机最小系统开始起振,然后单片机开始工作,执行预先写入的程序,初始话所有变量,重复执行:
键盘的键码识别函数,数码管显示函数,电机控制函数,AD控制及赋值函数,电梯开始正常工作,细节细化到具体的模块讲解。
控制通过AD转换得到楼层测量点的电压值,通过函数把电压值转换成楼层数赋给楼层变量,若在第一层电机不动,若不在,单片机计算所需运行的距离,提供响应数量脉冲信号使电机运动到1楼,至此初始化完成。
当有呼叫信号和运动信号时,单片机会作出相应的反应,框图的左半部分是一个典型的测控系统,构成一个闭环,来实现运载客人的功能。
3、电路图的设计及说明
图1-4模拟电梯原理图
原理图如图1-4所示,说明:
1、显示部分:
在下图中部有一个调试按键:
“按键1”,如图所示,当“键按1”按下时显示楼层,动态数码管第一位显示电梯所在楼层,第四位显示所要到的楼层;当“按键1”弹起时显示电压测试点的电压,下面有俩个LED指示灯,当电梯运行时会显示,向上运行时上面那个红色的LED亮,当电梯向下运行时,下面那个绿色的LED灯会亮,当电梯停止运行时俩个LED灯都熄灭。
2、AD转换器的脉冲源:
要求脉冲源要小于600khz,脉冲源的频率越高,转换速度越快,这个脉冲源来自来之单片机的“ALE”引脚,当单片机正常工作时其“ALE”它会产生fOSC/6即12Mhz/6=2Mhz的脉冲,经D触发器两次分频后得到500khz的脉冲。
3、控制电路:
单片机(提供脉冲和加减信号)、可加减计数器(产生000、001、010、011四个二进制数)、3-8译码器和非门(把计数器产生的二进制代码译成流水灯一般的控制信号,因为译码器为低电平有效通过非门后变为正逻辑传给步进电机)。
方案比较与选择:
从原理及结构方面来说,第一种电路采用基本的数字电路芯片,其具有成本低原理简单的特点;第二个方案主要由程序来实现测控,可优化性高,发展前景好,随着单片机技术的广泛应用,一个8位的单片机成本也不高,但考虑到电梯安全性要求比较高,这只是个雏形,还需要外加保护电路,而且控制信号的脉冲速度要可控,电梯从运行到停止的过程要有多个由高到低得频率的脉冲作为缓冲,方案二较方案一更复杂,但可以运用到我们学的单片机的课程,让我们对单片机强大的功能和广泛的应用有个感性的认识。
综上,我们选择用方案二,模拟电梯。
二、摘要:
电梯的发展历史
随着科学技术的发展,电梯也一代一代革新,应用最先进的技术,以使其功能更完善,可靠性及安全性更高。
按时间顺序依次为:
1、手柄开关操纵,电梯司机在轿厢内控制操纵盘手柄开关,实现电梯的起动、上升、下降、平层、停止的运行状态。
2、按钮控制电梯:
是一种简单的自动控制电梯,具有自动平层功能,常见有轿外按钮控制、轿内按钮控制两种控制方式。
3、信号控制电梯,这是一种自动控制程度较高的有司机电梯。
除具有自动平层,自动开门功能外,尚具有轿厢命令登记,层站召唤登记,自动停层,顺向截停和自动换向等功能。
4、集选控制电梯,是一种在信号控制基础上发展起来的全自动控制的电梯,与信号控制的主要区别在于能实现无司机操纵。
5、并联控制电梯,2~3台电梯的控制线路并联起来进行逻辑控制,共用层站外召唤按钮,电梯本身都具有集选功能。
6、群控电梯,是用微机控制和统一调度多台集中并列的电梯。
群控有梯群的程序控制、梯群智能控制等形式。
我们的模拟电梯应属于第2种。
三、模拟电梯的设计思路与要求
1、电梯作用与功能
(1)在乘梯楼层电梯入口处,根据自己上行或下行的需要,按上方向或下方向箭头按钮,只要按钮上的灯亮,就说明你的呼叫已被记录,只要等待电梯到来即可。
(2)电梯到达开门后,先让轿厢内人员走出电梯,然后呼梯者再进入电梯轿厢。
进入轿厢后,根据你需要到达的楼层,按下轿厢内操纵盘上相应的数字按钮。
同样,只要该按钮灯亮,则说明你的选层已被记录;此时不用进行其他任何操作,只要等电梯到达你的目的层停靠即可。
(3)电梯行驶到你的目的层后会自动开门,此时按顺序走出电梯即结束了一个乘梯过程。
2、电梯功能的实现方法及程序设计思路
实现方法:
由单片机作为控制核心,整合数码管显示,矩阵键盘,AD转换测电压,通过电压与楼层的对应关系来实现楼层识别,经单片机处理后给出控制信号对步进电机的控制。
程序设计思路:
电梯及程序有两个状态:
待命状态(启动电梯前),和运行状态(启动电梯后)。
下面是详细介绍:
1、接通电源后程序的初始化:
定义一个标志位flag表示,它的值为“0”和“1”分别代表电梯的待命状态和启动状态,这两个状态运行的程序不是完全一样的;2、定义一个位变量dir,它的值表示电梯运行的方向,dir=1表示向上运行,给计数器加法信号,dir=0表示向下运行,给计数器减法信号;3、定义一个函数step()来处理数据,处理所在楼层与需要到的楼层这些变量的计算与赋值;4、定义两个数组ufloor[7]和dfloor[7],并赋初值{0},分别记录向上和向下的呼叫信号,当有人呼叫的时候通过赋值函数给相应的数组元素赋值“1”;5、定义一个函数select_next()来定时地扫描这两个数组,扫描到有元素为“1”时就执行step()函数,计算并产生固定的脉冲。
待命状态:
这个状态标志位flag=0表示没有运行。
select_next()定时扫描呼叫信息,电机出于关闭状态,当呼叫信息为“1”时,置flag=1;电梯进入运行阶段。
运行阶段:
计算好楼层后,给dir赋值,然后开电机,产生固定频率和数量的脉冲,每到一个楼层执行一次select_next(),扫描呼叫数组,当以对应楼层数为脚标的对应方向的数组元素值为1时(即当先楼层有人上或下电梯),电梯暂停5秒,并给相应呼叫信号置“0”,若原方向还有其他楼层的呼叫信息,电梯继续运行,重复上面步骤,若,没有呼叫信号,则置状态标志位flag=0,电梯恢复待命状态。
四、单元电路设计,参数计算及元器件选择
4.1ADC0809
1、芯片ADC0809介绍:
ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
是目前国内应用最广泛的8位通用A/D芯片,在方案中得应用如图3-1所示。
图4-1模拟电梯的框图
2、ADC0809外部特性(引脚功能):
图4-2ADC0809内部结构及管脚图
ADC0809芯片有28条引脚,采用双列直插式封装,如图4-2所示。
下面说明各引脚功能。
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
GND:
地。
3、ADC0809工作过程:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。
数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。
为此可采用下述三种方式。
(1)定时传送方式
对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。
例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。
可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。
(2)查询方式
A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。
因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。
(3)中断方式
把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。
不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。
首先送出口地址并以信号有效时,即OE信号有效,把转换数据送上数据总线,供单片机接受。
考虑到对探测电压的及时性要求不高,我们的采用的定时传送的方式。
4、ADC0809主要特性
(1)8路输入通道,8位A/D转换器,即分辨率为8位。
(2)具有转换起停控制端。
(3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)
(4)单个+5V电源供电
(5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
(6)工作温度范围为-40~+85摄氏度
(7)低功耗,约15mW。
4.2、显示部分
1、器件选择:
共阴极的四位动态数码。
2、动态数码管原理:
机构上,它由几个数码管并起来,所有数码管数据线对应相连,通过引脚连出,地线也通过引脚接出,所以它的显示由两个信号控制:
(1)数据线8根:
用来传输显示数据。
(2)阴极线4根:
数据线给出需要显示的值,地线给对应需要显示那个数值的数码管以低电平,使其产生电流,点亮数码管上对应的LED灯,在很短的时间里同时改变数据线的信号和地线的信号,使另外一个数码管点亮,显示对应的数值,不断重复,当这个时间小于人眼睛能识别的极限时间时,我们看到的图像就是连续的,这叫做视觉延迟,动态数码管就是利用人们的视觉延迟来实现同一个数据线驱动多个数码管,比静态显示相比,节约出很多I/O口,可以完成许多静态显示不能完成的任务,这个思想还应用在点阵显示,和各种显示屏上。
3、实际运用:
如图4-3所示,数据信号由单片机P0口低四位输出的二进制数通过7段数码管译码器给出,译码器同时起一个驱动数码管的作用;地线通过P0口高四位直接给出,考虑到这个电流不大,小于C52单片机的灌电流20mA,就没有外加阴极驱动电路。
这个地方是自己的小设计,在单片机I/O比较紧张的情况下用一个I/O端子实现显示功能,有创新的成分在里面,但是,显示都是通过个两个端口(数据信号和地线信号)赋值来实现的,这个想法遇到了不小的困难,最后C语言的位操作完美的解决了这个问题,把两个信号分别赋值给不同字符变量的高四位和第四位,然后再把他们或起来赋给显示端口P0,具体语句如下:
voiddisplay()
{
P2=(floordispbit[dispcount]|dispbuf[dispcount]);
dispcount++;
if(dispcount==4)dispcount=0;dispswitch=1;
}
注意:
floordispbit[]的高四位存放地线信号对应的二进制数,第四位为0;
dispbuf[]的低四位存放数码管要显示数值对应的二进制数,高四位为0;
dispcount为要显示的是第几位,从它的值从0~3循环,不同的值对应不同的运算及赋值,利用人的视觉延迟实现动态显示的目的。
图4-3显示部分的总体框图
图4-4显示部分的实际电路连接
4.3、矩阵键盘模块
图4-5矩阵键盘的原理图
表一键码值表二功能表
EE
ED
EB
E7
DE
DD
DB
D7
BE
BD
BB
B7
7E
7D
7B
77
4
3
2
1
5上
6下
6
5
5下
2上
3上
4上
1
2下
3下
4下
图4-6矩阵键盘的实物
如图4-5图4-6所矩阵键盘可以用8个I/O口接16个按键,在有需求的时候可以大大的提高I/O口的利用率,设计中有六个楼层,电梯内按键6个,向上及向下的呼叫按键共1+4*2+1=10个,所有按键一共16个,4*4的矩阵键盘刚好符合设计要求。
其键码值如表一所示,每个键的功能如表二所示。
4.4、单片机最小系统
图4-7 单片机的最小系统
如图4-7所示,单片机最小系统由一个12M晶振,2个30pF电容,和一个复位电路组成,复位原理就是给RST端口0.1秒的高电平作为复位信号。
复位电路是必不可少的,没有它单片机将很难起振。
4.5、步进电机控制电路
1、电路框图及说明
图4-8步进电机及控制信号框图
如图4-8所示,控制电路的作用是产生控制信号,传道步进电机,该信号有点类似流水灯,课控制流动方向,由图4-8可见,该信号是由十进制可加减计数器的译码所得,74LS192为控制电路的核心,下面对74LS192进行说明。
2、74LS192的相关说明:
74LS192是双时钟方式的十进制可逆计数器(bcd,二进制)。
(1)74ls192引脚图及引脚功能说明
图4-974LS192的引脚图
引脚说明:
CPU为加计数时钟输入端,CPD为减计数时钟输入端。
LD为预置输入控制端,异步预置。
CR为复位输入端,高电平有效,异步清除。
CO为进位输出:
1001状态后负脉冲输出,
BO为借位输出:
0000状态后负脉冲输出。
图4-1074LS192的状态图
(2)电路的实际链接(如下图4-11所示)及说明
图4-1174ls192的实际连接图
说明:
异步置数所置的数为4,当输出端Q2为高电平时置数
异步置零端信号为(Q2Q3)’其时序图如图3-12所示。
图4-1274LS192时序图
4.6电梯实体的设计
1、楼层设计:
用钉子代表楼层,如图3-13所示。
图4-13楼层实物连接图
说明:
每一颗钉子是一个等势体,接到如下电路的各引脚:
图4-14楼层设计的仿真原理图
在箱体上放一个探测点来测量电压,每一个电压通过四舍五入对应响应的楼层,从而实现楼层的识别。
2、楼房框架的设计:
如图3-15所示,用电脑主机箱盖做成支架来代表楼房,固定纸板,并在上方固定一颗螺丝钉做传动。
图4-15楼房的支架
五、总原理图及元器件清单
5.1、总原理图
5.2、元件清单
表1元件清单
元件序号
元件名
主要参数
数量
备注
1
AT89C52
C52单片机
1
2
矩阵键盘
4x4
1
3
动态数码管
四位
1
4
CD4551
7段译码器
1
5
LED
发光二极管
5
6
电位器
100kΩ
1
7
R1
470Ω
5
8
R2
1kΩ
5
9
C1
10μF
1
10
C2
30pF
2
11
开关
普通开关
2
12
步进电机
四相
2
13
可加减计数器
74LS192
1
14
译码器
3-8
1
15
四二与非门
74LS04
2
16
双D触发器
74LS74
1
17
八与非门
74LS00
1
18
晶振体振荡器
12M
1
5.3实验仪器、工具
表2实验仪器、工具
仪器
序号
仪器工具名称
主要作用
数量
备注
1
数字万用表
测量导线的导通情况及各个元件的参数,检测引脚间是否连通或短路
1
2
双踪示波器
检测单片机是否起振
1
3
电烙铁
用来焊接各元器件
1
5.4、程序
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineN2470//2470
ucharkeytab[16]={0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77};
ucharcodedispcode[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};//从键码到数字
ucharcodevoltdispbit[]={0xe0,0xd0,0xb0,0x70};//楼层数显示低电平位高四位
ucharcodefloordispbit[]={0xe0,0xff,0xff,0x70};//电压显示的低电平位高四位
ucharvoltmeter[4]={0,0,0,0};//电压数值存放低四位
uchardispbuf[4]={0,0,0,0};//楼层数值存放低四位
ucharufloor[7]={0,0,0,0,0,0,0};
uchardfloor[7]={0,0,0,0,0,0,0};
uchardispcount=0;
uchargetdata;
uchardesfloor;
ucharfloor;
ucharkey;
ucharflag;
ucharstop=0;
uchartemp,desftemp,floortemp;
longtimer1,timer3;
uinttimer2;
longi;
sbitST=P3^0;
sbitOE=P3^1;
sbitEOC=P3^2;
sbitCLK=P3^3;
sbitLED=P3^4;
sbitdispswitch=P3^5;
sbitdir=P3^6;
sbitENG=P3^7;
/*********
dlms()
{
intdelay;
for(delay=0;delay<10000;delay--);
}**********/
voidwrite(ucharx)
{
ucharm;
if(x>=0xdd)
for(m=0;m<6;m++)
{
if(keytab[m]==x)
floortemp=m+1;
if(!
flag)//待命状态
{if(floortemp>floor)ufloor[floortemp]=1;
elseif(floor