电梯控制器设计22221.docx

上传人:b****0 文档编号:9467091 上传时间:2023-05-19 格式:DOCX 页数:38 大小:164.55KB
下载 相关 举报
电梯控制器设计22221.docx_第1页
第1页 / 共38页
电梯控制器设计22221.docx_第2页
第2页 / 共38页
电梯控制器设计22221.docx_第3页
第3页 / 共38页
电梯控制器设计22221.docx_第4页
第4页 / 共38页
电梯控制器设计22221.docx_第5页
第5页 / 共38页
电梯控制器设计22221.docx_第6页
第6页 / 共38页
电梯控制器设计22221.docx_第7页
第7页 / 共38页
电梯控制器设计22221.docx_第8页
第8页 / 共38页
电梯控制器设计22221.docx_第9页
第9页 / 共38页
电梯控制器设计22221.docx_第10页
第10页 / 共38页
电梯控制器设计22221.docx_第11页
第11页 / 共38页
电梯控制器设计22221.docx_第12页
第12页 / 共38页
电梯控制器设计22221.docx_第13页
第13页 / 共38页
电梯控制器设计22221.docx_第14页
第14页 / 共38页
电梯控制器设计22221.docx_第15页
第15页 / 共38页
电梯控制器设计22221.docx_第16页
第16页 / 共38页
电梯控制器设计22221.docx_第17页
第17页 / 共38页
电梯控制器设计22221.docx_第18页
第18页 / 共38页
电梯控制器设计22221.docx_第19页
第19页 / 共38页
电梯控制器设计22221.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

电梯控制器设计22221.docx

《电梯控制器设计22221.docx》由会员分享,可在线阅读,更多相关《电梯控制器设计22221.docx(38页珍藏版)》请在冰点文库上搜索。

电梯控制器设计22221.docx

电梯控制器设计22221

 

电梯控制器设计

一、题义分析及解决方案

1.题义与需求分析

在STARES598PCI单板机上实现电梯控制器设计

A、键盘上的0键、1键、2键,3键,4键和5键表示电梯的1楼、6楼、7楼、8楼、9楼和10楼的请求按键。

B、当电梯运转时经过的楼层会在LED的左边上动态显示出来,LED的右边显示出当前用户请求按键。

C、直流电动机的转动模拟电梯运转。

当电动机不转时,表示电梯停留在某楼层。

D、电梯初始停留在1楼,当6楼及以上楼层有按键请求时,此时,电机开始转动,LED上会动态显示经过的楼层并最终停留在该层。

例:

此时电梯停留在7层,

1、当有10楼有请求时,LED的右边会显示目的楼层10楼,电梯开始转动,LED的左边依次显示7、8、9、10,到达后电梯停止转动,LED上的目的楼层显示(右边)会熄灭,LED左边会显示10。

2、当有1楼有请求时,LED的右边会显示目的楼层1楼,电梯开始转动,LED的左边依次显示7、6、5、4、3、2、1,到达后电梯停止转动,LED上的目的楼层显示(右边)会熄灭,LED左边会显示1。

2解决问题的方法及思路

1)硬件部分

单片机工作在单任务状态,时间充裕,速度不是主要矛盾,所以用软件实现计时控制,以减少硬件开销。

接口用硬件实现。

根据实验平台的具体情况,本课程设计选用了8279A芯片、0832芯片、直流电动机、LED发光二极管、十六进制小键盘。

由于8279A的输出电流与LED不匹配的问题,需要驱动电流,本实验中选择74LS240。

2)软件部分

此实验主要是软件设计,软件设计分两部分控制:

1、按键请求,在LED上显示请求的楼层号。

判断请求的楼层号,调用运行函数

2、判断上下行,显示经过的楼层号。

到达后电机停止转动,消除请求楼层号。

二、硬件设计

1.8279A

1)8279A在本设计中的作用

在本设计中用8279A芯片控制键盘输入和LED显示。

2)8279A的功能分析

a)8279A主要特性

8279A芯片是一种通用的可编程序的键盘/显示接口器件,单个芯片就能完成键盘输入和LED显示控制两种功能。

可与任何8位机接口。

8279A芯片包括键盘输入和显示输出两个部分。

若采用8279作为键盘/显示器接口,则可以实现对键盘、显示器自动扫描,8279主要是管理键盘输入和显示器输出的。

8279可编程键盘显示器接口芯片具有动态显示驱动电路简单、不占用CPU的时间、可自动进行键盘扫描、与计算机接口方便、编程容易、系统灵活等特点.当今已成为设计计算机应用系统,特别是实时性较高的测控系统的首选器件之一。

b)8279A的内部结构

图2-18279A的内部结构

图中,IRQ:

中断请求输出线,DB0~DB7:

双向数据总路线(传送命令、数据、状态),

读写控制输入端,RESET:

复位输入端,CLK:

时钟输入端,

片选,C和/D(A0):

片内寄存器选址,OUTA0~A1、OUTB0~B3:

8位显示输出端,

熄灭显示输出端,SL0~SL3:

公用扫描输出线,RL0~RL7:

键盘回馈输入线,SHIFT:

抵挡键输入线,CNTL/STB:

控制/选通输入线。

另外,8279的键盘接口部分内部有一个8×8位先进先出的堆栈(FIFO),用来存放键盘输入代码,显示器接口部分内部有一个16×8位显示RAM,用来显示段数据,能为16位LED显示器(或其它显示器)提供多路扫描接口。

c)8279A的引脚信号和功能

8279可编程键盘显示器接口芯片具有动态显示驱动电路,不占用CPU的时间、可自动进行键盘扫描、与计算机接口方便、编程容易、系统灵活等特点。

8279是可编程的键盘/显示接口芯片。

它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。

8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8×8=64BRAM,键盘控制部分可控制8×8=64个按键或8×8阵列方式的传感器。

该芯片能自动消抖并具有双键锁定保护功能。

显示RAM容量为16×8,即显示器最大配置可达16位LED数码显示。

d)8279的命令字及其格式

8279有三种工作方式:

键盘工作方式、显示工作方式和传感器工作方式。

键盘工作方式:

双键互锁和N键轮回。

双键互锁是指当有两个以上按键同时按下时,只能识别最后一个被释放的按键,并把其键值送入内部FIFORAM中。

N键轮回是指当有多个按键同时按下时,所有按键的键值均可按扫描顺序依次存入FIFORAM中。

显示工作方式:

是指CPU输入至8279内部FIFORAM的数据的输出格式,有8个字符左端入口显示、16个字符左端入口显示、8个字符右端入口显示、16个字符右端入口显示四种方式。

传感器方式:

是指扫描传感器阵列时,一旦发现传感器的状态发生变化就置位INT向CPU申请中断。

选择不同的工作方式均是通过CPU对8279送入命令来进行控制。

8279共有8种命令,命令寄存器为8位,其中D7~D5为命令特征位,D4~D0为命令的控制位。

CPU对8279写入的命令数据为命令字,读出的数据为状态字。

8279共有八条命令,其功能及命令字格式分述如下。

(1)键盘/显示方式设置命令字

命令格式:

D7D6D5D4D3D2D1D0

000DDKKK

其中:

D7、D6、D5=000为方式设置命令特征位。

DD(D4、D3):

用来设定显示方式,如表2-2所示。

D4

D3

显示方式

0

0

8个字符显示,左端入口

0

1

16个字符显示,左端入口

1

0

8个字符显示,右端入口

1

0

16个字符显示,右入口

表2-2显示方式选择

所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列;所谓右入口,则是显示位置从最右一位(最低位)开始,以后逐次输入显示字符时,已有的显示字符依次向左移动。

KKK(D2、D1、D0):

用来设定七种键盘/显示扫描方式,如表2-3所示。

D2

D1

D0

键盘/显示扫描方式

0

0

0

编码扫描键盘,双键锁定

0

0

1

译码扫描键盘,双键锁定

0

1

0

编码扫描键盘,N键轮回

0

1

1

译码扫描键盘,N键轮回

1

0

0

编码扫描传感器矩阵

1

0

1

译码扫描传感器矩阵

1

1

0

选通输入,编码显示扫描

1

1

1

选通输入,译码显示扫描

表2-3键盘/显示扫描方式

(2)时钟编程命令

命令格式:

D7D6D5D4D3D2D1D0

001PPPPP

其中:

D7、D6、D5=001为时钟命令特征位。

PPPPP(D4、D3、D2、D1、D0)用来设定外部输入CLK时钟脉冲的分频系数N。

N取值范围为2~31。

如CLK输入时钟频率为2MHZ,PPPPP应被置为10100(N=20),才可获得8279内部要求的100KHZ的时钟频率。

(3)读FIFO/传感器RAM命令

命令格式:

D7D6D5D4D3D2D1D0

010AIXAAA

其中:

D7、D6、D5=010为读FIFO/传感器RAM命令特征位。

该命令字只在传感器方式时使用。

在CPU读传感器RAM之前,必须用这条命令来设定所读传感器RAM中的地址。

AAA(D2、D1、D0)为传感器RAM中的八个字节地址。

AI(D4)为自动增量特征位。

当AI=1时,每次读出传感器RAM后地址自动加1使地址指向下一个存储单元。

这样,下一个数据便从下一个地址读出,而不必重新设置读FIFO/传感器RAM命令。

在键盘工作方式中,由于读出操作严格按照先入先出顺序,因此,不需使用这条命令。

(4)读显示RAM命令

命令格式:

D7D6D5D4D3D2D1D0

011AIAAAA

其中:

D7、D6、D5=011为读显示RAM命令字的特征位。

该命令字用来设定将要读出的显示RAM地址。

AAAA(D3、D2、D1、D0)用来寻址显示RAM中的存储单元。

由于位显示RAM中有16个字节单元,故需要4位寻址。

AI(D4)为自动增量特征位。

AI=1时,每次读出后地址自动加1,指向下一地址。

(5)写显示RAM命令

命令格式:

D7D6D5D4D3D2D1D0

100AIAAAA

其中:

D7、D6、D5=100为写显示RAM命令字的特征位。

在写显示RAM之前用这个命令字来设定将要写入的显示RAM地址。

AAAA(D3、D2、D1、D0)为将要写入的显示RAM中的存储单元地址。

AI(D4)为自动增量特征位。

AI=1时,每次写入后地址自动加1,指向下一次写入地址。

(6)显示禁止写入/消隐命令

命令格式:

D7D6D5D4D3D2D1D0

101XIW/AIW/BBL/ABL/B

其中:

D7、D6、D5=101为显示禁止写入/消隐命令特征位。

IW/A、IW/B(D3、D2)为A、B组显示RAM写入屏蔽位。

当A组的屏蔽位D3=1时,A组的显示RAM禁止写入。

因此,从CPU写入显示器RAM数据时,不会影响A的显示。

这种情况通常在采用双4位显示器时使用。

因为两个四位显示器是相互独立的。

为了给其中一个四位显示器输入数据而又不影响另一个四位显示器,因此必须对另一组的输入实行屏蔽。

BL/A、BL/B(D1、D0)为消隐设置位。

用于对两组显示输出消隐。

若BL=1,对应组的显示输出被消隐。

当BL=0,则恢复显示。

(7)清除命令

命令格式:

D7D6D5D4D3D2D1D0

110CDCDCDCFCA

其中:

D7、D6、D5=110为清除命令特征位。

清除显示RAM方式如表2-4所示。

D4

D3

D2

清除方式

1

0

×

将全部显示RAM清为00H

1

1

0

将全部显示RAM置为20H,A组输出0010,B组输出0000

1

1

1

将全部显示RAM置为FFH

0

×

×

D0=0不清除,D0=1按上述方法清除

表2-4显示RAM清除方式

CF(D1)用来置空FIFO存储器,当CF=1时,执行清除命令后,FIFORAM被置空,使INT输出线复位。

同时,传感器RAM的读出地址也被置为0。

CA(D0)为总清的特征位。

它兼有CD和CF的联合效能。

在CF=1时,对显示的清除方式由D3、D2的编码决定。

显示RAM清除时间约需160us。

在此期间状态字的最高位Du=1,表示显示无效。

CPU不能向显示RAM写入数据。

(8)结束中断/错误方式设置命令

命令格式:

D7D6D5D4D3D2D1D0

111EXXXX

其中:

D7、D6、D5=111为该命令的特征位。

此命令有两种不同的作用。

①作为结束中断命令。

在传感器工作方式中使用。

每当传感器状态出现变化时,扫描检测电路就将其状态写入传感器RAM,并启动中断逻辑,使INT变高,向CPU请求中断,并且禁止写入传感器RAM。

此时,若传感器RAM读出地址的自动递增特性没有置位(AI=0),则中断请求INT在CPU第一次从传感器RAM读出数据时就被清除。

若自动递增特征已置位(AI=1),则CPU对传感器RAM的读出并不能清除INT,而必须通过给8279写入结束中断/错误方式设置命令才能使INT变低。

因此,在传感器工作方式中,此命令用来结束传感器RAM的中断请求。

②作为特定错误方式设置命令。

在8279已被设定为键盘扫描N键轮回方式以后,如果CPU给8279又写入结束中断/错误方式设置命令(E=1),则8279将以一种特定的错误方式工作。

这种方式的特点是:

在8279的消抖周期内,如果发现多个按键同时按下,则FIFO状态字中的错误特征位S/E将置1,并产生中断请求信号和禁止写入FIFORAM。

上述八种用于确定8279操作方式的命令字皆由D7D6D5特征位确定,输入8279后能自动寻址相应的命令寄存器。

因此,写入命令字时唯一的要求是使数据选择信号A0=1。

e)8279的状态字及其格式

8279的FIFO状态字,主要用于键盘和选通工作方式,以指示FIFORAM中的字符数和有无错误发生。

其格式为:

D7D6D5D4D3D2D1D0

DUS/EOUFNNN

其中:

Du(D7)为显示无效特征位。

当Du=1表示显示无效。

当显示RAM由于清除显示或全清命令尚未完成时,Du=1,此时不能对显示RAM写入。

S/E(D6)为传感器信号结束/错误特征位。

该特征位在读出FIFO状态字时被读出。

而在执行CF=1的清除命令时被复位。

当8279工作在传感器工作方式时,若S/E=1,表示传感器的最后一个传感器信号已进入传感器RAM;而当8279工作在特殊错误方式时,若S/E=1则表示出现了多键同时按下错误。

O、U(D5、D4)为超出、不足错误特征位。

对FIFORAM的操作可能出现两种错误:

超出或不足。

当FIFORAM已经充满时,其它的键盘数据还企图写入FIFORAM,则出现超出错误,超出错误特征位O(D5)置1;当FIFORAM已经置空时,CPU还企图读出,则出现不足错误,不足错误特征位U(D4)置1。

F(D3)表示FIFORAM中是否已满标志,若F=1表示已满。

NNN(D2、D1、D0)表示FIFORAM中的字符数据个数。

f)数据输入/输出格式

对8279输入/输出数据不仅要先确定数据地址口,而且数据存放也要按一定格式,其格式在键盘和传感器方式有所不同。

(1)键盘扫描方式数据输入格式

键盘的行号、列号及控制键格式如下:

图2-2键盘的行号、列号及控制键格式

控制键CNTL、SHIFT为单独的开关键。

CNTL与其它键连用作特殊命令键,SHIFT可作上、下挡控制键。

(2)传感器方式数据输入格式

此种方式8位输入数据为RL0~RL7的状态。

格式如下:

D7D6D5D4D3D2D1D0

RL7RL6RL5RL4RL3RL2RL1RL0

2.74LS138译码器

1)74LS138译码器在本设计中的作用

扫描计数器采用编码工作方式

2)74LS138译码器的功能分析

74LS138是3/8译码器,即对3个输入信号进行译码。

得到8个输出状态。

G1,G2A,G2B,为数据允许输出端,G2A,G2B低电平有效。

G1高电平有效。

A,B,C为译码信号输出端,Y0~Y7为译码输出端,低电平有效。

图2-374LS138图2-4功能表

3)74LS138译码器的技术参数

极限值

电源电压-----------------------------------------------------7V

输入电压74LS138---------------------------------------------7V

工作环境温度74LS138------------------------------------0~70℃

贮存温度-------------------------------------------65~150℃

3.74LS240

1)74LS240译码器在本设计中的作用

本设计实验中主要是为增加LED的驱动电流

2)74LS240译码器的功能分析

74LS240TTL八反相三态缓冲器/线驱动器

引出端符号:

1A,2A输入端

三态允许端(低电平有效)

1Y~8Y输出端

图2-574LS240逻辑图

输入

输出

A

Y

L

L

H

L

H

X

H

L

Z

表2-574LS240功能表

3)74LS240译码器的技术参数

极限值:

电源电压………………………………………….7V

输入电压………………………………………….5.5V

输出高阻态时高电平电压………………………….5.5V

工作环境温度

74LS240………………………………….0~70℃

存储温度………………………………………….-65~150℃

4.小键盘

1)小键盘在本设计中的作用

本设计中,小键盘用于输入请求楼层号。

2)小键盘的功能分析

通常使用的键盘是矩阵结构的。

对于4×4=16个键的键盘,采用矩阵方式只要用8条引线和2个8位端口便完成键盘的连接。

如图,这个矩阵分为4行4列,如果键5按下,则第1行和第1列线接通而形成通路。

如果第1行线接低电平,则键5的闭合,会使第1列线也输出低电平。

矩阵式键盘工作时,就是按行线和列线的电平来识别闭合键的。

图2-54×4键盘矩阵图

行扫描法识别按键的原理如下:

先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合。

这是通过检查列线电位来实现的,即在第0行接低电平时,看是否有哪条列线变成低电平。

如果有某列线变为低电平,则表示第0行和此列线相交位置上的键被按下;如果没有任何一条列线为低电平,则说明第0行没有任何键被按下。

此后,再将第1行接低电平,检测是否有变为低电平的列线。

如此重复地扫描,直到最后一行。

在扫描过程中,当发现某一行有键闭合时,也就是列线输入中有一位为0时,便退出扫描,通过组合行线和列线即可识别此刻按下的是哪一键。

实际应用中,一般先快速检查键盘中是否有键按下,然后再确定按键的具体位置。

为此,先使所有行线为低,然后检查列线。

这时如果列线有一位为0,则说明必有键被按下,采用扫描法可进一步确定按键的具体位置。

5.七段LED显示器

1)LED作用

LED发光二级管(Light-EmittingDiode),在本设计中采用7段数字发光二级管,做为终端显示。

显示时间的分秒。

2)LED功能分析

物理构造:

LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。

图2-6LED结构图

数字成像:

将七个发光管进行组合,排列成数字图形8,再根据需要控制七个管的亮与灭,即可显示出定义数字。

字型

ABCD

abcdefgbp

OX

0

0000

11111100

3f

1

0001

01100000

06

2

0010

11011010

5b

3

0011

11110010

4f

4

0100

01100110

66

5

0101

10110110

6d

6

0110

00111110

7d

7

0111

11100000

07

8

1000

11111110

7f

9

1001

11100110

6f

A

1010

11101110

77

B

1011

00111110

7c

C

1100

10011100

39

D

1101

01111010

5e

E

1110

10011110

79

F

1111

10001110

71

表2-6LED数码表

 

3)LED技术参数

表2-7LED技术参数表

 

6.DAC0832数模转换芯片:

DAC0832的作用:

本实验中DAC0832的作用是将系统中的数字信号转换为电压信号给直流电机供电。

7.硬件总逻辑图及其说明

图2-7硬件接线图

图中8279的地址由

和A0决定,故数据口地址为7FFEH,命令口地址为7FFFH。

所接的16个按键,扫描线接在74HC138的译码输出端

上,当

为0(SL2SL1SL0=000)时,扫描第1列按键,当

为0(SL2SL1SL0=001)扫描第2列按键,故0~7号按键的键值为00H~07H,8~15号按键键值为08H~0FH。

当某一按键被按下后,键值就自动进入缓冲区,当8279内部RAM不空时由INT输出高电平告知CPU取走,故INT连接CPU的中断输入需加一反向器。

8279键盘配置最大为8×8,若要配置64个按键,其它列扫描线可分别连至

上,形成8行8列的按键扫描电路。

图中显示部分段选码由8279的OUTA3~OUTA0、OUTB3~OUTB0通过驱动器74LS240提供,位选码由SL2~SL0经3-8译码器通过驱动器74LS240提供。

三、控制程序设计

1.控制程序设计思路

初始化板卡以及8279,电梯初始停留在1楼。

先调用显示函数,将停留楼层号在LED上显示出来。

初始停止电机转动,开始扫描是否有按键请求,若没有,则继续扫描。

直至有请求按键按下,此时将键值转换为键号。

调用运行函数,判断请求的楼层号。

再调用启动函数,判断上下行,判断后,电机转动,在LED上依次显示经过的楼层号。

当电梯到达请求楼层,电机停止转动,消除请求楼层号,此时,电梯停留在该楼层。

等待按键请求,重复以上动作。

2.程序流程图

根据程序设计思路,画出程序流程图,并加以修改直至满意为止。

 

图3-1主控程序流程图

3.控制程序

.MODELTINY

PCIBAR3EQU1CH;8位I/O空间基地址(它就是实验仪的基地址,

;也为DMA&32BITRAM板卡上的8237提供基地址)

Vendor_IDEQU10EBH;厂商ID号

Device_IDEQU8376;设备ID号

.STACK100

.DATA

IO_Bit8_BaseAddressDW?

msg0DB'BIOS不支持访问PCI$'

msg1DB'找不到StarPCI9052板卡$'

msg2DB'读8位I/O空间基地址时出错$'

KEYCOUNTDB?

STAY0DB?

;电梯所停留的楼层

STAY1DB?

;电梯之后要到达的楼层

DISDDB0;显示目的楼层号,初始为0

DISD1DB0;记录电梯到达目的楼层的LED编码

D10DB0;记录电梯是否到达10楼

ZHUANHDB?

;运动中间值

ZHUANH1DB?

ZH0DB?

LED_TABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,080H,90H,0FFH;0-10的LED显示所对应的编码

CMD_8279DW00B1H;8279命令字、状态字地址

DATA_8279DW00B0H;8279读写数据口的地址

DA0832DW00D0H

.CODE

START:

MOVAX,@DATA

MOVDS,AX

NOP

CALLInitPCI

CALLModifyAddress;根据PCI提供的基地址,将偏移地址转化为实地址

CALLINIT8

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2