微机课程设计2_第1页
微机课程设计2_第2页
微机课程设计2_第3页
微机课程设计2_第4页
微机课程设计2_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

接口课程设计

题目:电梯自动控制系统设计主要内容设计一个电梯自动控制系统,由电机驱动控制系统,1路A/D输入,12个按键,4个8段的LED显示器,8个LED指示灯,1路声控报警系统组成。4个8段的LED显示器,8个LED指示灯及12个键盘作为控制系统的控制台设计,以提供人机交互,控制电机的停启。1路模拟输入主要对电梯中人员重量进行控制,若超重,电梯停止运行,并提示报警。电梯运行按电梯运行规则实现。

一、电梯自动控制系统结构示意图CPU主机板8255(1)8255(2)8段LED显示键盘控制步进电机控制LED控制0809重量检测

二、操作步骤把整个电机运行轨迹分成8等分,模拟8个层面,由控制台按键决定电机运行,键盘有12个键组成,其中8个为数字键定义1~8,4个为控制键定义为开门键,关门键,报警键,清除键。1.键盘控制数字键:当从键盘按下某个数字键,相应的LED指示灯点亮,并按电梯运行规则(在关门的情况下,按前进方向最接近当前位置的楼层停靠)停靠,如在某个楼层停靠,相应的LED指示灯熄灭。

控制键:开门键:任何时候都可以按开门键,按过开门键,电梯在最近的楼层停靠,显示器显示OPEN,如不按关门键,电梯不会运行。关门键:当电梯处于开门状态时,电梯不会运行,只有按关门键,电梯处于关门状态,此时如有其它层面要求停靠的请求,电梯才会根据指令运行。报警键:该键模拟电梯故障,按下改键,表示电梯有故障,则提示告警,该状态可通过清除键清除。清除键:清除告警信号及所有楼面的请求信号。

2.显示控制本系统显示包含2部分:一部分是由4个8段LEN显示器,另一部分是8个LED指示灯4个8段LED显示:按下开门键:显示OPEN.按下报警键或检测出超重显示Err当电梯在运行过程中,则自动显示到达楼层号,如在某个楼面停靠,电梯自动处于开门状态,显示的内容不变。显示楼层号的格式为noX,其中X为楼层号。8个LED指示当前楼层有否请求,亮表示有请求。

3.控制规则在无故障情况下,如果键盘有楼层停靠请求,则在按下关门键后,能按电梯运行规则选择相应的楼面停靠,停靠后电梯自动处于开门状态。显示器实时显示电梯走过的楼面,如要接受下一次请求,则需再按关门键。楼层请求要有记忆功能,停靠的次序和按键的次序无关,和电梯运行规则有关,如2次以上按同一层停靠,只做一次处理。每次按下关门键,需要检测电梯是否在正常负荷下运行(A/D值检测大于4.5V为超重),如超重或按报警键表示电梯有故障,电梯停止运行,并报警,通过减小A/D或按清除键清除故障状态。

三、硬件设计电机驱动a.步进电机驱动接口步进电机驱动器步进电机负载方向步进电机驱动示意图步进电机接受的脉冲信号,每个脉冲将电机转动一个固定的步矩角度,步进电机一般不需要反馈位置信号。

步进电机分三相,四相,五相,六相四种,其旋转方向与内部绕组的通电顺序有关。下面以三相电机为例说明三相步进电机有三种工作方式:单三拍,通电顺序:ABC双三拍,通电顺序:ABBCCA三相六拍,通电顺序:AABBBCCCA

控制原理:如果用8255PA口的PA2~PA0来控制三相步进电机单三拍PA7PA6PA5PA4PA3PA2PA1PA0C相B相A相100101h201002h310004h正向0102040102…..反向0104020104…..

双三拍PA7PA6PA5PA4PA3PA2PA1PA0C相B相A相101103H211006H310105H正向03H06H05H03H06H05H….反向03H05H06H03H05H06H….

三相六拍PA7PA6PA5PA4PA3PA2PA1PA0C相B相A相100101H201103H301002H411006H510004H610105H正向:01H03H02H06H04H05H01H03H02H….反向01H05H04H06H02H03H01H05H04H….

AEDK-DJ6机电实验平台可实现步进电机控制本装置使用8255口PA0~PA3作为四相步进电机A,B,C,D相驱动步进电机走拍子程序功能:根据方向每调用一次,走一拍

DIREDB?;0表示正走,0FFH表示反正STEPDB0;表示4拍中的位置0~3STEPTABDB01H,02H,04H,08H;拍表PA255EQU208H;假设8255口地址208h~20BHSTEPMOTORPROCMOVAL,STEPMOVBX,OFFSETSTEPTABXTAL;读拍表的值OUTPA255,AL

MOVAL,DIRECMPAL,00HJNZSTEP1INCSTEP;正走MOVAL,STEPCMPAL,04HJNZSTEPENDMOVSTEP,0;正走0-1-2-3-0JMPSTEPENDSTEP1:DECSTEP;反走0-3-2-1-0MOVAL,STEPCMPAL,0FFHJNZSTEPENDMOVSTEP,03HSTEPEND:CALLDEL;延时子程序,实际程序中可调用显示子程序RETSTEPMOTORENDP

b.直流电机驱动占空比的设定宽度脉冲发生器驱动器电子开关电动机直流电机通过脉宽调制来控制电机的速度,即通过改变电机电枢电压接通或断开时间的比值(占空比)来控制马达的速度,这种方法简称脉宽调制(PWM)脉冲宽度发生器:由计算机根据平均速度,计算占空比,由软件实现驱动器:将计算机输出的脉冲宽度调制信号加以放大,以便用来控制电机定子电压接通或断开的时间。通常由放大器或继电器组成电子开关:用来接通或断开电机定子电源,可用晶体管或场效应管开关组成,也可由继电器或可控硅控制AEDK-DJ6机电实验平台可实现直流电机控制,由D/A输出实现调速,直流电机每转一圈,有一个位置反馈,可根据该信号测当前电机所在的位置。直流电机的启停,方向由D/A0832输出值来定从00H,7FH,FFH的D/A输出值00表示正传的最大速,该值增大,速度依次减小,到7FH电机停止运转,在增加,电机反向运转,此时速度较低,到0FFH,电机反向运转最大速

2.键盘显示驱动

七段显示器24pb0pb1pb28255(1)abcdefg

pc0pc1pc2pc3pc4pc5pc674LS138Y0Y1Y3ABC

7段码的显示电路

键盘驱动电路4故障

5清除

6

7

08

19

2开

3关

+5V74LS138Y0Y1 Pa7Pa6Pa5Pa4Pa3Pa2Pa1Pa0ABCPb0Pb1Pb28255(1)本设计使用非编码键盘,所以键盘操作的去抖动、防串键、按键识别和键码产生4个基本功能都有软件来完成,键盘程序分2部分,一个是键盘扫描程序,主要完成扫描键盘上是否有键按下,另一个是键处理程序,用于完成对各个按键的处理。

8255(2)+5vpb0pb1pb2pb3pb4pb5pb6pb7LED指示灯驱动电路电机Pa0pa1pa2pa33.重量检测重量,温度,流量,速度等是计算机常要控制的对象,而这些都是连续变化的量,且是非电量,首先通过传感器把这些非电量的信息转换成电量,而后经过A/D转换输入到计算机。重量检测可以使用压力传感器,这些传感器的输出一般是电压型或电流型2种,如果传感器信号比较弱则可在A/D输入端加运放。

四、软件设计1.思路:根据要求,程序由几个功能模块(任务)组成模块之间的协调关系,接口是怎样(程序要编成卸掉一个模块,程序照样能走)实时系统需要强调实时性(忌用软件延时,多用中断代替查询)

2.本系统可以划分的任务:初始化程序初始化程序一般只走一次,在程序的最开始,初始化的工作主要是像电机归0,8255初始化,变量设置等。键盘处理子程序键盘处理是对控制台命令监听,所以是程序主要核心,该程序包含2部分,一个是键盘扫描子程序,主要完成扫描键盘上是否有键按下,另一个是键处理程序,用于完成对各个按键的处理,键盘分数字键和功能键。键处理程序仅记忆一个状态,真正执行在相关的执行程序里完成。显示子程序显示子程序的主要功能把显示缓存的内容送显示器由于使用动态扫描,所以显示程序需要不断刷新,如果软件处理上有时延,会影响显示,所以有延时的地方,都可以用显示子程序来替代。按键处理中或者执行需要更新显示内容,只要更新显示缓存就可以,本系统用到4个7段显示器,所以只要开辟4个显缓(显示子程序中XH),显示缓存的内容即为要显示内容的序号。

LED指示子程序控制台上有8个LED指示灯,用来指示当前那个楼层有请求的需要,在内存中开辟8个单元为NUM1~NUM8,每个单元表示对应的楼层的请求情况,当该单元的值为0,表示该楼层没有请求,当该单元的值为0FFH,表示该楼层有请求,LED指示子程序仅仅根据NUM1~NUM8完成指示,而NUM1~NUM8的修改则是由键盘,或其他执行程序完成。电机控制子程序电机控制子程序主要的功能是启动一次电机运行。启动电机运行的条件:电机未在走拍程序,电机未出现故障电机在关门状态,有楼层停靠的请求。电机每次启动只走一个层面,启动后,由电机走拍子程序完成控制电机运行。电机走拍子程序电机走拍程序控制电机运转,步进电机的走步程序非常讲究,特别是在停启的时候,从停止到启动,需要的扭矩非常大,往往要加大电流,增加走拍的时间,而从启动到停止,也需要降低步进电机的速度,防止过冲。走拍子程序根据方向按拍表的内容走步,由既定的步数走到相应的楼层,根据请求表,做相关的处理。重量检测子程序通过对ADC08090号通道的模拟量检测,滤波(采集8次求平均值)判断是否超重(模拟量的大于4.5V),如超重,则ALARM置成0FFH,显示缓存送ERR,电机状态STATUS置成开门状态。该子程序不在主流程中,仅仅在按键处理若按关门键时,调用一次即可。

3.用到的内容变量Xh显示缓存4个单元Dmdb3fh,06h,5bh,4fh,66h,6dhdb7dh,07h,7fh,6fh,77h,7ch,39hdb5eh,79h,71h,73h,00h,40h段码表NUMI~NUM8楼层请求单元0无请求,1有请求STATUS电机开关门状态0表示开门,0FFH表示关门,1表示走拍ALARM电机故障指示0无故障,0FFH有故障NUM电机当前运行的楼层DIRE电机运行方向0表示正走,0FFH表示反正STEP电机在走拍程序中4拍的位置STEPNUM(字单元)电机走拍次数

I/端口的定义8255(1)的端口的定义8255(2)的端口的定义0809的0通道的定义CSAD

pa55equ218hpb55equ219hpc55equ21ahp55ctlequ21bhPA255EQU208HPB255EQU209HPC255EQU20AHP255CTLEQU20BH

4.程序总流程初始化子程序调用显示子程序调用LED指示子程序调用键盘子程序调用电机控制子程序调用电机走拍子程序

初始化子程序:STEP=0,STSTUS=0,XH1~4=0,ALARM=0NUM=0,DIRE=08255(1)初始化(B口,C口方式0,输出,A口方式0输入)8255(2)初始化(A口,B口方式0输出)8255(2)A口,B口清0

显示子程序:XH

显示缓存DM0的段码1的段码2的段码8的段码9的段码E的段码r的段码P的段码n的段码暗码位置01289ABCDF3FH06H5BH7FH6FH79H若要显示OPEn,则显缓的内容分别是00H,0CH,0AH,0DH若要显示Err,则显示缓存的内容分别是0AH,0BH,0BH,0FH

显示子程序流程:

设置显缓指针设置当前扫描的位置把扫描灯位的控制信号送I/O端口根据显缓指针查段码表段码送I/O端口延时1MS四个LED扫描结束修改扫描位置修改显缓指针N返回xhdb01h,02h,03h,04hDmdb3fh,06h,5bh,4fh,66h,6dhdb7dh,07h,7fh,6fh,77h,7ch,39hdb5eh,79h,71h,73h,00h,40h

pa55equ218hpb55equ219hpc55equ21ahp55ctlequ21bh

dispprocnearpushbxmovsi,offsetxhmovcl,03hhh:moval,clmovdx,pb55outdx,almoval,[si]leabx,dmxlatmovdx,pc55outdx,alpushcx

movbx,0008hee:movcx,0cfffhcc:noploopccdecbxjnzee;延时popcxincsicmpcl,00hjebbdeccljmphhbb:popbxretdispendp

键盘子程序:键盘扫描

判是否有键按下?

数字键(键值1~8)开门键关门键报警键清除键NUM1~NUM8清0ALARM清0返回ALARM置FFHSTATUS置开门返回STATUS清0STATUS置0FFH返回返回根据键值置NUM1~8为0FFH返回YN返回键盘只是记忆一个状态,操作是在电机控制程序完成调用重量检测程序更新显缓Err

键盘扫描流程:

把0送行扫描单元行扫描值送I/O端口读列值判列值是否是0FFHY该行无键按下,行扫描单元加1判行全部扫描完?Y返回NN(无键)延时,防键抖动(可调用显示子程序)AB

A把行扫描信号送I/O端口读列值并判该行有键按下?根据列信号确定键值判当前扫描是第0行?键值加8NY键值送内存单元转键处理程序有键B(重新扫描)无键

pa55equ218hpb55equ219hpc55equ21ahp55ctlequ21bhR2db?R4db?keyprocnearwait3:movr2,00h;选择行wait1:moval,r2movdx,pb55outdx,almovdx,pa55inal,dxcmpal,0ffhjnewait2;有键按下

incr2;选择下一行cmpr2,02h;只扫描2行

jzkeyend;扫描结束jmpwait1;扫描下一行wait2:calldispcalldispcalldisp;延时,防键抖动moval,r2movdx,pb55outdx,almovdx,pa55inal,dxcmpal,0ffh;在判该行有键按下jewait3;无键按下,从新扫描

movr4,00;有键按下

lk3:

rcral,1jnclk4incr4jmplk3lk4:moval,r2cmpal,01hjnzlk5moval,08haddal,r4movr4,al;第2行有键按下lk5:calldispcalldispcalldisp

;键处理keyendretkeyendp

电机控制子程序:当前启动走拍程序?判电梯是否开门状态?关门NUM1~8是否全为0?N判前进方向?正前进方向有请求?Y当前层次加1拍数送STEPNUM反前进方向有请求?Y当前层次减1

返回NN开门返回

Y返回Y返回(没有请求)启动电机走拍程序(STATUS置为1)

N改变方向改变方向

电机走拍子程序:

判步进电机走步方向?正向拍数STEP加1拍数为04?拍数清0NY反向

根据拍数STEP查拍表并送端口拍数STEP减1拍数为0FFH?YN拍数置03H软件延时总步数减1,判总步数为0?判该层NUM是否为0FFH?Y该单元清0,STATUS置成开门返回N把层号送显示缓存,STATUS置0FFH(关门)YSTATUS是否是01H?YNYN

LED指示子程序:根据NUM1~8的值送8个LED指示灯

NUM10NUM2FFNUM30NUM40NUM50NUM6FFNUM70NUM8011011101L7L6L5L4L3L2L1L0硬件连接上采用共阳,所以低电平点亮,使用静态扫描,不需要刷新。

DISPLEDPROCMOVAL,0MOVCX,8MOVBX,OFFSETNUM1DISPLED3:MOVAH,[BX]CMPAH,0JZDISPLED1CLC;进位位清0JMPDISPLED2DISPLED1:STC;进位位置1DISPLED2:RCRAL,1INCBXDECCXJNZDISPLED3MOVDX,PB255;8255B口的地址OUTDX,ALRETDISPLEDENDP

重量检测子程序:A/D总和单元清0设置采集次数启动A/D调用延时子程序读A/D值加到总和单元采集次数到?求平均值判超重?ALARM送0FFH,STATUS送0,更新显缓返回YNYN

A_DPROCMOVAX,BXMOVBX,0RCRAX,1MOVCL,8RCRAX,1BB:MOVDX,CSADRCRAX,1;/8OUTDX,AL;启动A/D超重检测PUSHDXRETPUSHCXA_DENDPCALLDISP;调用显示POPCXPOPDXINAL,DXMOVAH,0ADDBX,AXLOOPBB

程序可按子程序编写,最后把他们穿起来,汇编语言的格式DATASEGMENT;此处输入数据段代码DATAENDSSTACK

SEGMENTSTACK‘STACK’;此处输入堆栈段代码STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AX;此处输入代码段代码

MOVAH,4CHINT21H;放子程序CODEENDSENDSTART程序要有正常退出功能,可通过PC机上按某个键来退出

5.程序调试和检查程序按模块(子程序)一个一个加首先是键盘显示----单项检查键盘程序是否能扫描到键,按键后显示内容是否更新。加上重量检测程序----单项检查按下关门键,如在ADC0809加载大于4.5V电压(用电位器模拟),显示应该报出错。加上LED指示子程序----单项检查按下数字键1~8,对应的指示灯亮,按下清除键,所有LED暗。加上电机控制子程序----单项检查按下数字键是否能启动电机运行,此时由于没加电机走拍程序,电机运行时看不到,改程序运行是否正确,看相关的内存单元(STATUS,STEPNUM,STEP,NUM)这些单元的值是保证电机走拍程序正常运转的关键

加上步进走拍程序----步进电机走拍程序可以单独检查,只要给出前面的变量的设置,加入该子程序,就应该能启动电机运转,这样就可以和电机控制子程序分开。联调----注意事项注意子程序之间的接口,如果子程序中调用其他子程序,则要注意寄存器使用上是否有冲突,如有冲突可通过堆栈保护。

6.方案改进实时系统中尽量少软件延时,本系统中键处理中防抖动,步进电机拍与拍之间间隔都用了软件延时,用此方法因为系统实时性并不高,只有控制台键盘输入,但软件延时会影响显示,所以延时的地方用调用显示来完成,这样延时的精度会受影响,改进的方法就是用定时中断,可使用8253,8259来完成,特别是步进电机的走步程序,如按此方案,走步程序就在中断服务程序里完成,同时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论