版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、题意分析及解决方案1、题意需求分析电梯运行的动力来自于电机运动,电梯控制要求电机以额定速度运行,电梯运行至相应楼层触发楼层感应开关,控制器记忆楼层信号,当其他相应楼层有请求信号触发时,控制器将请求信号比对,从而判定电机的下一步运行动作,应用STAR ES598PCI单板开发机设计一个电梯控制器,能实现对十层楼的5楼以上各楼层上下控制,同时根据操作动作显示电梯到达楼层。2、解决问题的方法与思路1)硬件部分实验采用:8279芯片,DAC0832芯片,七段LED显示器,4×4矩阵键盘,直流电机。2)软件部分 首先要对8279进行初始化设计,设置8279的工作方式并确定8279的端口地址
2、,实现电梯在5层、6层、7层、8层、9层、10层各种情况的处理; 扫描键盘并记录各楼层请求; 将电梯各楼层请求在LED上显示出来; 设计开门延时及运行延时程序方便在电梯运行的程序中调用; 通过DAC0832数模转换器控制直流电机运转。二、硬件设计1、 可编程键盘显示器接口芯片82791) 8279在本设计中的作用8279是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能。8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8=64BRAM,键盘控制部分可控制8*8阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。2) 8279的功能分析1、8279内部
3、结构: 8279内部结构图如下:图2-1 8279内部结构图(1)数据缓冲器它连接内、外总线,暂时CPU与8279芯片之间传送的命令、数据或状态。(2)I/O控制它用于控制信息的流向及区分信息的特征。CS=1时,由RO或WR控制从8279读出或向8279写入;A0=0时,选中数据寄存器,输入/输出均为数据。A0=1时,选中命令、状态寄存器,输入时位命令,输出时位状态。(3)控制与定时寄存器它用来寄存键盘和显示的工作方式,以及由CPU编程的其他操作方式,并通过译码产生相应的控制信号,完成规定的控制功能。(4)定时控制它对外部时钟信号CLK分频至内部所需要的100kHz时钟。(5)扫描计数器它可根
4、据编程命令按编码或译码方式工作。编码方式:4位计数器按二进制计数,计数状态从扫描线SL0SL3输出,经外部译码器译码后,为键盘和显示器提供16个扫描信号。译码方式:扫描计数器最低两位被译码后从SL0SL3输出,可直接作为键盘和显示器扫描信号。此时键盘矩阵为4×8,显示字符为4位。(6)键盘去抖与控制键盘去抖电路:在键盘扫描方式中,当有键闭合时,按命令指定方式去抖动后读入键值。控制电路:按命令指定方式控制去抖电路的工作过程,以及对返回信号进行处理。(7)返回缓冲器它锁存来自RL0RL7的回复信号,在键盘扫描方式中,返回线与键盘矩阵列线相连,在逐行扫描时搜寻一行中闭合键所在的列。当有键闭
5、合时,经去抖动后经行、列编码和附近的移位、控制状态一起形成键盘数据送至FIFO存储器,供CPU读取。D7 D6 D5 D4 D3 D2 D1 D0CNTLSHIFTSL2SL1SL0R2R1R0控制移位行编码列编码表2-1 键盘数据格式其中,控制和移位由两个独立的附加开关决定;SL2 SL1 SL0为按下键的行编码,来自扫描计数器的低3位;R2 R1 R0是根据返回信号确定的列编码。(8)FIFO RAM它是一个8×8RAM,在键盘输入方式时遵循先入先出(FIFO)原则。(9)FIFO RAM的状态寄存器它用来存放FIFO RAM的状态,例如RAM空、满等。当工作在键盘方式FIFO存
6、储器不空时,将产生IRQ1信号向CPU申请中断。(10) 显示RAM、显示地址寄存器显示RAM用来存储显示数据。容量为168位。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分别为A、B两组,OUTA03和OUTB03可以单独送数,也可以组成一个8位的字。显示寄存器的输出与显示扫描配合,不断从显示RAM中读出显示数据,同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈现稳定的显示状态。显示地址寄存器用来寄存由CPU进行读/写显示RAM的地址,它可以由命令设定,也可以设置成每次读写或写入之后自动递减。(11)显示寄存器它存放显示内容。在显示过程中它与显示扫描配合,轮流
7、从显示RAM中读出显示信息并依次驱动被选中的显示器件,循环不断地刷新显示字符编码,使显示器件呈现稳定的显示字符。8位显示寄存器分为A、B两组,OUTA03和OUTB03可以单独送树,显示4个字符也可以组成一个8位字符。(12)显示地址寄存器它寄存读/写显示RAM地址,即对应显示字符从哪一位开始。它由命令设定,并可设置成每次读出或写入之后自动加1。B芯片8279是一种具有40条引脚的双列直插式芯片,它的外部引脚如下图所示:CS(片选):输入线,当CS=0时8279被选中,允许CPU对其读、写,否则被禁止。 D0D7(数据总线):双向、三态总线,和系统数据总线相连;用于CPU和8279间的数据/命
8、令传递。A0:地址线,进行片内端口选择。为0时,选中数据寄存器;为1时选中命令/状态寄存器。RD、WR(读、写信号):输入线。低电平有效,来自CPU的控制信号,控制8279的读、写操作。CLK:系统时钟,为8279芯片提供内部定时。RESET:复位线,高电平时复位8279到:16个字符显示(左进方式);编码扫描键盘(双键锁定);时钟设置为31。IRQ(中断请求):输出线。高电平有效。 8279外部引脚图如下:图2-2 8279外部引脚图2、8279的方式控制字极格式8279有三种工作方式:键盘工作方式、显示工作方式和传感器工作方式。键盘工作方式:双键互锁和N键轮回。双键互锁是指当有两个以上按键
9、同时按下时,只能识别最后一个被释放的按键,并把其键值送入内部FIFO RAM中。N键轮回是指当有多个按键同时按下时,所有按键的键值均可按扫描顺序依次存入FIFO RAM中。显示工作方式:是指CPU输入至8279内部FIFO RAM的数据的输出格式,有8个字符左端入口显示、16个字符左端入口显示、8个字符右端入口显示、16个字符右端入口显示四种方式。传感器方式:是指扫描传感器阵列时,一旦发现传感器的状态发生变化就置位INT向CPU申请中断。选择不同的工作方式均是通过CPU对8279送入命令来进行控制。8279共有8种命令,命令寄存器为8位,其中D7D5为命令特征位,D4D0为命令的控制位。CPU
10、对8279写入的命令数据为命令字,读出的数据为状态字。8279共有八条命令,其功能及命令字格式分述如下。(1)键盘/显示方式设置命令字命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 D D K K K其中:D7、D6、D5=000为方式设置命令特征位。DD(D4、D3):用来设定显示方式,如表2-2所示。D4D3显示方式008个字符显示,左端入口0116个字符显示,左端入口108个字符显示,右端入口1016个字符显示,右入口表2-2 显示方式选择所谓左入口 ,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列;所谓右入口,则是显示位置从最右一位(
11、最低位)开始,以后逐次输入显示字符时,已有的显示字符依次向左移动。KKK(D2、D1、D0):用来设定七种键盘/显示扫描方式,如表2-3所示。D2D1D0键盘/显示扫描方式000编码扫描键盘,双键锁定001译码扫描键盘,双键锁定010编码扫描键盘,N键轮回011译码扫描键盘,N键轮回100编码扫描传感器矩阵101译码扫描传感器矩阵110选通输入,编码显示扫描111选通输入,译码显示扫描表2-3 键盘/显示扫描方式(2)时钟编程命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 P P P P P其中:D7、D6、D5=001为时钟命令特征位。PPPPP(D4、D3、D2
12、、D1、D0)用来设定外部输入CLK时钟脉冲的分频系数N。N取值范围为231。如CLK输入时钟频率为2MHZ,PPPPP应被置为10100(N=20),才可获得8279内部要求的100KHZ的时钟频率。(3)读FIFO/传感器RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 AI X A A A其中:D7、D6、D5=010为读FIFO/传感器RAM命令特征位。该命令字只在传感器方式时使用。在CPU读传感器RAM之前,必须用这条命令来设定所读传感器RAM中的地址。AAA(D2、D1、D0)为传感器RAM中的八个字节地址。AI(D4)为自动增量特征位。当AI=1时
13、,每次读出传感器RAM后地址自动加1使地址指向下一个存储单元。这样,下一个数据便从下一个地址读出,而不必重新设置读FIFO/传感器RAM命令。在键盘工作方式中,由于读出操作严格按照先入先出顺序,因此,不需使用这条命令。(4)读显示RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 1 1 AI A A A A其中:D7、D6、D5=011为读显示RAM命令字的特征位。该命令字用来设定将要读出的显示RAM地址。AAAA(D3、D2、D1、D0)用来寻址显示RAM中的存储单元。由于位显示RAM中有16个字节单元,故需要4位寻址。AI(D4)为自动增量特征位。AI=1时,每次读
14、出后地址自动加1,指向下一地址。(5)写显示RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 AI A A A A其中:D7、D6、D5=100为写显示RAM命令字的特征位。在写显示RAM之前用这个命令字来设定将要写入的显示RAM地址。AAAA(D3、D2、D1、D0)为将要写入的显示RAM中的存储单元地址。AI(D4)为自动增量特征位。AI=1时,每次写入后地址自动加1,指向下一次写入地址。(6)显示禁止写入/消隐命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 X IW/A IW/B BL/A BL/B其中:D7、D6、D5=101
15、为显示禁止写入/消隐命令特征位。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)清除命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 1 0 CD CD C
16、D CF CA 其中:D7、D6、D5=110为清除命令特征位。清除显示RAM方式如表2-4所示。D4D3D2清除方式10×将全部显示RAM清为00H110将全部显示RAM置为20H,A组输出0010,B组输出0000111将全部显示RAM置为FFH0××D0=0不清除,D0=1按上述方法清除表2-4 显示RAM清除方式CF(D1)用来置空FIFO存储器,当CF=1时,执行清除命令后,FIFO RAM被置空,使INT输出线复位。同时,传感器RAM的读出地址也被置为0。CA (D0)为总清的特征位。它兼有CD和CF的联合效能。在CF =1时,对显示的清除方式由D3、
17、D2的编码决定。显示RAM清除时间约需160us。在此期间状态字的最高位Du=1,表示显示无效。CPU不能向显示RAM写入数据。(8)结束中断/错误方式设置命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 E X X X X其中:D7、D6、D5=111为该命令的特征位。此命令有两种不同的作用。作为结束中断命令。在传感器工作方式中使用。每当传感器状态出现变化时,扫描检测电路就将其状态写入传感器RAM,并启动中断逻辑,使INT变高,向CPU 请求中断,并且禁止写入传感器RAM。此时,若传感器RAM 读出地址的自动递增特性没有置位(AI=0),则中断请求INT在CPU第一
18、次从传感器RAM读出数据时就被清除。若自动递增特征已置位(AI=1),则CPU对传感器RAM 的读出并不能清除INT,而必须通过给8279写入结束中断/错误方式设置命令才能使INT变低。因此,在传感器工作方式中,此命令用来结束传感器RAM的中断请求。作为特定错误方式设置命令。在8279已被设定为键盘扫描N键轮回方式以后,如果CPU给8279又写入结束中断/错误方式设置命令(E=1),则8279将以一种特定的错误方式工作。这种方式的特点是:在8279的消抖周期内,如果发现多个按键同时按下,则FIFO状态字中的错误特征位S/E将置1,并产生中断请求信号和禁止写入FIFO RAM。上述八种用于确定8
19、279操作方式的命令字皆由D7D6D5特征位确定,输入8279后能自动寻址相应的命令寄存器。因此,写入命令字时唯一的要求是使数据选择信号A0 =1。3、8279的状态字及格式8279的FIFO状态字,主要用于键盘和选通工作方式,以指示FIFO RAM中的字符数和有无错误发生。其格式为: D7 D6 D5 D4 D3 D2 D1 D0 DU S/E O U F N N N其中:Du(D7)为显示无效特征位。当 Du=1表示显示无效。当显示RAM由于清除显示或全清命令尚未完成时,Du=1,此时不能对显示RAM写入。S/E(D6)为传感器信号结束/错误特征位。该特征位在读出FIFO 状态字时被读出。
20、而在执行CF =1的清除命令时被复位。当8279工作在传感器工作方式时,若S/E=1,表示传感器的最后一个传感器信号已进入传感器RAM;而当8279工作在特殊错误方式时,若S/E=1则表示出现了多键同时按下错误。O、U(D5、D4)为超出、不足错误特征位。对FIFO RAM 的操作可能出现两种错误:超出或不足。当FIFO RAM 已经充满时,其它的键盘数据还企图写入FIFO RAM ,则出现超出错误,超出错误特征位O(D5)置1;当FIFO RAM已经置空时,CPU还企图读出,则出现不足错误,不足错误特征位U(D4)置1。F(D3)表示FIFO RAM中是否已满标志,若F=1表示已满。NNN(
21、D2、D1、D0)表示FIFO RAM中的字符数据个数。4、数据输入/输出格式对8279输入/输出数据不仅要先确定数据地址口,而且数据存放也要按一定格式,其格式在键盘和传感器方式有所不同。(1) 键盘扫描方式数据输入格式键盘的行号、列号及控制键格式如下:图2-3 键盘的行号、列号及控制键格式控制键CNTL、SHIFT为单独的开关键。CNTL与其它键连用作特殊命令键,SHIFT可作上、下挡控制键。(2)传感器方式数据输入格式此种方式8位输入数据为RL0RL7的状态。格式如下: D7 D6 D5 D4 D3 D2 D1 D0RL7 RL6 RL5 RL4 RL3 RL2 RL1 RL03)8279
22、的技术参数8279技术参数如下:symbolParameterMinMaxUnitTest ConditionsVIL1Input Low Voltage For Return Line0.51.4VVIL2Input Low Voltage For All Other0.50.8VVIH1Input High Voltage For Return Lines2.2VVIH2Input High Voltage For All Others2.0VVOLOutput Low Voltage0.45V(note 1)VOH1Output high voltage on interrupt lin
23、e3.5V(note 2)VOH2Other Outputs2.4IOH=-400A 8279-5 -100A 8279IIL1Input Current On Shift,Control And Return Lines+10100AAVIN=VCCVIN=0VIIL2Input Leakage Current On All Others±10AVIN=VCC to 0VIOFLOutput Float Leakage±10AVOUT=VCC to 0.45VICCPower Supply Current120mACINInput Capacitance10pFfC=1M
24、HZ UnmeasuredPins Returned to Vss(6)COUTOutput Capacitance20pF表2-5 8279主要技术参数2、 DAC0832数模转换器1) DAC0832在本设计中的作用 实验中通过DAC0832控制直流电机运转从而模拟电梯的运行和停止过程。需要将8086送来的8位数字量化成模拟电流量,在设计中将数字信号转换为模拟信号,故选取DAC0832数模转换器。2) DAC0832的功能分析DAC0832是8位数/模转换芯片,输入数字量具有双缓冲功能,可以工作在双缓冲,单缓冲或直接输入三种方式。直接输入方式是将8086送来的8位数据量直接送入数/模转换器
25、,不进行锁存;单缓冲只锁存一次数据(即80856送来的数据量进行锁存);双缓冲方式的工作原理:输入寄存器经过总线收发器与数据总线连接,当ILE,和有效时,8位数据量被打入输入寄存器,当和有效时,输入寄存器中数据送至DAC寄存器并输出,则将这个数据锁存在DAC寄存器中,并开始转换。DAC0832芯片采用CMOS工艺,四象限乘法型DAC与微机兼容,数据输入能与双缓冲,单缓冲或直接缓冲通过三种方式工作。3)DAC0832的技术参数主要参数如下:转换时间1us分辨率8位功耗20mW单一工作电源+5V+15V电流建立时间1线性度8,9或10位增益温度系数0.0002%usFS/表2-6 DAC0832主
26、要技术参数3、 七段LED显示器1) 七段LED显示器在本设计中的作用 实验中用七段LED显示器显示对应楼层的请求,有相应按键请求对应LED显示器显示呼叫楼层,并能显示电梯当前运行状态及电梯当前运行楼层。2) 七段LED显示器的功能分析及技术参数物理构造:LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。将七个发光管进行组合,排列成数字图形
27、8,再根据需要控制七个管的亮与灭,即可显示出定义数字。有段选码和位选码确定数字18的输出并在延时程序中保持复位。它是一种当外加电压超过额定电压时发生击穿,并因此而产生可见光的器件。这种数码管是有7段或8段笔画显示器组成一个字符而形成的。其结构图如下:图2-4 LED结构图LED数码管字形码表如下:显示字型DpgFedcbA共阴极字形码共阳极字形码0001111110x3F0xC01000001100x060xF92010110110x5B0xA43010011110x4F0xB04011001100x660x995011011010x6D0x926011111010x7D0x827000001
28、110x070xF88011111110x7F0x809011011110x6F0x90A011101110x770x88B011111000x7C0x83C001110010x390xC6D010111100x5E0xA1E011110010x790x86F011100010x710x8E表2-7 LED数码管字形码表4、4×4矩阵键盘的作用1) 4×4矩阵键盘的作用 本设计中采用矩阵键盘模拟实现电梯运行过程中的对应楼层的呼叫请求。按下对应按键表明相应楼层有呼叫请求。2) 4×4矩阵键盘的功能分析通常使用的键盘是矩阵结构的。对于4×4=16个键的键盘,
29、采用矩阵方式只要用8条引线和2个8位端口便完成键盘的连接。如图,这个矩阵分为4行4列,如果键5按下,则第1行和第1列线接通而形成通路。如果第1行线接低电平,则键5的闭合,会使第1列线也输出低电平。矩阵式键盘工作时,就是按行线和列线的电平来识别闭合键的。 图2-5 4×4键盘矩阵图行扫描法识别按键的原理如下:先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合。这是通过检查列线电位来实现的,即在第0行接低电平时,看是否有哪条列线变成低电平。如果有某列线变为低电平,则表示第0行和此列线相交位置上的键被按下;如果没有任何一条列线为低电平,则说明第0行没有任何键被按下。此后,再将第1
30、行接低电平,检测是否有变为低电平的列线。如此重复地扫描,直到最后一行。在扫描过程中,当发现某一行有键闭合时,也就是列线输入中有一位为0时,便退出扫描,通过组合行线和列线即可识别此刻按下的是哪一键。实际应用中,一般先快速检查键盘中是否有键按下,然后再确定按键的具体位置。为此,先使所有行线为低,然后检查列线。这时如果列线有一位为0,则说明必有键被按下, 采用扫描法可进一步确定按键的具体位置。5、硬件总逻辑图及其说明连线说明:F3:OUT F1:CTRLCS A2:CS2E5:CLK B2:2MCS A3:CS1A0 ES-PCI: A0A G5:AB G5:BC G5:CD G5:D实验硬件总逻辑
31、图如下:图2-6 硬件总逻辑图三、控制程序设计1、 控制程序设计思路说明电梯的运行基本过程是:由外部呼叫信号给出呼叫,控制系统判断电梯目前所处位置,并于呼叫楼层进行对照,同方向还是反方向。若反方向,则改变方向到呼叫层,若同方向,则直接运行到呼叫层。在方向上,以同方向呼叫优先。要求电梯匀速运行,其运行动力来自于电动机,本实验中采用直流电机作为控制对象。采用8279芯片对LED显示器及键盘控制。电梯在每一层的外部分别设置一个向上以及一个向下的呼叫按钮,当楼层发出呼叫信号,电梯根据当前运行方向做出判断是否响应该楼层呼叫,若与当前电梯运行方向一直,电梯运行至呼叫楼层暂停开门延时一段时间待乘客进入电梯选
32、择目的楼层,关电梯门继续运行直至相应楼层,电梯运行过程中要继续判断运行方向上是否还有呼叫信号,并做出判断。楼层指示及状态显示均通过LED七段数码管的显示来实现。每层楼的指示用到一个七段数码管,加上指示电梯当前运行楼层的七段数码管指示,以及显示电梯运行方向6(向上)9(向下)的七段数码管,一共用到五个LED七段数码管。信号输入用到了4×4矩阵键盘,根据初始化定义1层向上、1层、2层向下、2层向上、2层、3层向下、3层分别用0到6七个按键表示,所以按照定义顺序1层向上、2层向上、2层向下、3层向下按键请求分别用0键、2键、3键、5键表示。D/A转换器与直流电机相连,直流电机驱动电梯的运行
33、,直流电机的匀速转动带动电梯匀速转动,直流电机的转动表示电梯处于运行状态,直流电机停止则表示电梯相应开门请求或者当前无请求。下面对电梯运行过程做具体分析:电梯正常运行时以每2 秒层的速度上升或下降,当没有呼叫请求的情况下电梯总是自动保持静止状态在1楼,当外部有呼叫信号的时候,电梯运行。设电梯当前停止在某一楼层(8个LED灯全灭)键入请求(仅为请求)如键入的请求与当前电梯楼层相同,不发生任何动作,若不同,则相应楼层LED灯亮,再按运行键,电梯自动判别上下行方向,运行至相应楼层(八段显示码显示该楼层,相应LED灯灭)设电梯当前正处于上行或下行,此时八段码显示楼层变化,LED指示希望到达楼层,键入新
34、楼层则相应LED灯亮,对同方向请求未到楼层能到,对反方向请求楼层则是待电梯到达最高请求楼层之后调整方向再相应请求。例如: 电梯当前状态为1层向上运行,LED显示请求在3层向下运行此时按2上,则在2层停,再按运行键,电梯行运至3层停此时按2下,则先运行至3层停,再按运行键向下运行至2层停此时按3或3下,则直接运行至3层停 电梯当前状态为1层向上运行,LED显示请求在2层向上运行此时按1上或1,电梯直接开门此时按2上或2下或2,电梯运行至二楼停止此时按3下或3,电梯先运行至2层再按运行键运行至3层 电梯当前状态为2层向上运行,LED显示请求在3层向下运行此时按2或2上,则在2层停,再按运行键,运行
35、至3层停此时按2下,则先运行至3层停,再按运行键,向下运行至2层停此时按3下或3,则直接运行至3层停此时按1或1上,则先运行至2层停,再按运行键向下运行至1层停 电梯当前状态为2层向下运行,LED显示请求在1层向上运行此时按2下或2,则在2层停,再按运行键,运行至1层停此时按2上,则先运行至1层,再按运行键向上运行至2层停此时按1或1上,则直接运行至1层停此时按3或3下,则先运行至1层,再按运行键,向上运行至3层 电梯当前状态为3层向下运行,LED显示请求在1层向上运行此时按2下或2,则在2层停,再按运行键,运行至一层停此时按2上,则先运行至1层停,再按运行键,向上运行至2层停此时按1或1上,
36、则直接运行至1层停 电梯当前状态为3层向下运行,LED显示请求在2层向下运行此时按1上或1,电梯先运行至2层再按运行键运行至1层此时按2上或2下或2,电梯运行至2层停止此时按3下或3,电梯直接开门根据以上分析,电梯每运行到一层都先查看按键是否被按下,并进行相应判断。首先进行此时状态判断,同时根据不同的按键操作进行不同的处理2、 控制程序流程图电梯位于1层判断是否有按键按下判断是否为3层请求先显示请求楼层打开门 延时取消请求信号取消显示楼层判断是否为2层请求电梯运行至2层跳转2层程序否判断是否为1层请求是否是是是否否图 3-1 电梯位于一层程序流程图判断是否有按键按下判断是否为1层请求判断是否为
37、3层请求记录并显示延时开门 取消显示继续运行至3层跳转3层程序判断是否为2层请求跳转1层程序回至1层 取消显示否否否是是是判断是否为二层下行请求跳转2层下行程序回至一层是是否否图3-2 电梯二层上行程序流程图判断是否有按键按下判断是否为3层请求判断是否为1层请求记录并显示延时开门 取消显示继续运行至1层跳转1层程序判断是否为2层请求跳转3层程序回至3层 取消显示否否否是是是判断是否为二层上行请求开门延时回至一层是是否否图3-3 电梯二层下行程序流程图判断是否有按键按下判断是否为2层请求判断是否为1层请求记录并显示延时开门 取消显示继续运行至2层跳转2层下行程序判断是否为3层请求回至1层电梯至3
38、层否否否否是是是是图3-4 电梯位于三层程序流程图3、 控制程序.MODELTINYPCIBAR3EQU1CH;8位I/O空间基地址(它就是实验仪的基地址, ;也为DMA & 32 BIT RAM板卡上的8237提供基地址)Vendor_IDEQU10EBH;厂商ID号Device_IDEQU8376;设备ID号.STACK100.DATAIO_Bit8_BaseAddress DW?msg0DB'BIOS不支持访问PCI $'msg1DB'找不到Star PCI9052板卡 $'msg2DB'读8位I/O空间基地址时出错$'KEYCOU
39、NT DB?JILUdb ?UP_OR_DOWNDB0dangqiandb0KEY_TAB DB 00000001B ;1层外部上行请求 01H DB 00000010B ;1层内部请求 02H DB 00000100B ;二层外部下行请求 04H DB 00001000B ;二层外部上行请求 08H DB 00010000B ;二层内部请求 10H DB 00100000B ;三层外部下行请求 20H DB 01000000B ;三层内部请求 40HLED_TABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ;共阳极选码DB 080H,90H,88H,83H,
40、0C6H,0A1H,86H,8EHDB 0FFHCMD_8279 DW00F1H;8279命令字、状态字地址DATA_8279 DW00F0H;8279读写数据口的地址ADDR_0832DW00E0H;0832的入口地址.CODESTART: MOV AX,DATAMOVDS,AXNOPCALLInitPCICALLModifyAddress;根据PCI提供的基地址,将偏移地址转化为实地址ms:CALL INIT8279;初始化8279子程序CALLOPEN_DOORmoval,1calldisp;显示当前在1层mov UP_OR_DOWN,0MOV JILU,0s:callFscan ;按键
41、扫描jNCss1:MOVAH,JILUandal,0Fh ;al高四位清零leaBX,KEY_TAB ;将请求信号记录xlatorAH,alMOVJILU,AHFirst_load:callclear;清显示calldis8play ;显示所有楼层请求moval,1MOVDANGQIAN,1calldisp ;显示单个数据;=当前电梯位于一层,判断接下来要去往哪层=Testjilu,01H JNZ First Test jilu,02HJZThreeFirst:CALL open_delay ;开门延时andjilu,0FCH;将一层请求清空callclearjmpFirst_load;若当前
42、请求为一层,返回SThree:Testjilu,40H;查看有无三层请求JNZSecondTestjilu,20HJNZSecondTestjilu,10H;查看有无二层请求JNZSecondTestjilu,08HJNZSecondTestjilu,04HJzmsSecond:callclear MOV UP_OR_DOWN,1 calldis8play;显示当前所有楼层信息 movdangqian,1 moval,dangqian calldisp;显示单个信息 CALLdianji_delay;向上运行电机 ; CALLTwo_loader_up ;呼唤二层子程序jmptwo_up_st
43、artreload:jmpFirst_load;=二层向上行子程序=Two_loader_up proc NEARtwo_up_start: MOVUP_OR_DOWN,1movdangqian,2CALLDISPLAY_DANGQIAN;显示当前在二层及请求信息Test jilu,10H ;有二层内部请求?JNZ Two_hold1 ;有Test jilu,08H ;判断有二层外部上行请求? JZ Two_third_quest1 ;无,判断有无三层请求Two_hold1:CALL Open_delay ;在二层开门 andjilu,67H;取消二层的请求 CALLDISPLAY_DANGQ
44、IAN;显示当前所有信息Two_third_quest1: Test jilu,20H ;判断有无三层内部请求JNZ Third_up_answer1 ;有,前往三层 Test jilu,40H ;判断有无三层外部下行请求 JZ Two_down_first_quest1;无,跳入1层请求信号判断Third_up_answer1:CALLdianji_delay;运行转动电机,楼层转换延时操作mov dangqian,3call display_dangqianjmpThird_loader ; 调用三层子程序Two_down_first_quest1: TESTjilu,04H ;判断有无二
45、层下行请求信号 jmptwo_down_start;若有外部下行请求,则跳转至二层下行Testjilu,02H;判断有无一层内部请求信号JNZfirst_quest1;有,前往一层Testjilu,01H;判断有无一层向上请求信号JNZFirst_quest1 ;有,前往一层JZTIAOZHUAN;所有请求均无,返回初始处First_quest1: mov up_or_down,2 call display_dangqian CALL dianji_delay;运行转动电机,楼层转换延时操作 jmpFirst_loadRETTwo_loader_upENDP;=TIAOZHUAN:JMP mm
46、:callFscan ;按键扫描jNCms2:MOVAH,JILUandal,0Fh ;al高四位清零leaBX,KEY_TAB ;将请求信号记录xlatorAH,alMOVJILU,AHjmp two_up_start;=二层下行子程序=;Two_loader_down proc neartwo_down_start:MOVUP_OR_DOWN,2MOVDANGQIAN,2CALLDISPLAY_DANGQIAN;显示当前在二层及请求信息Test jilu,10H;判断有无二层内部请求JNZ Two_hold2 ;有Test jilu,04H ;判断有二层外部下行请求? JZ Two_first_quest2 ;无,判断有无三层请求Two_hold2: CALL Open_delay ;在二层开门,取消请求 andjilu,0EBH ;取消二楼的请求 CALLDISPLAY_DANGQIAN;显示当前在二层及请求信息Two_first_quest2:Testjilu,02H;判断有无一层内部请求信号JNZ First_answer2;有,前往一层Testjilu,01H;判断有无一层外部上行请求信号JZ Two_third_ques
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运动会的加油词内容(32篇)
- 慰问老师慰问信(30篇)
- 2023年中考数学一轮复习:一次函数
- 软件销售合同12篇
- 21.2.1 二次函数y=ax2的图象与性质 同步练习
- 2025年中考语文复习之现代文阅读:记叙文阅读之拓展探究(练习)(学生版)
- 浙江省杭州地区(含周边)重点中学2024-2025学年高二上学期期中考试历史试题(含答案)
- 宁夏青铜峡市宁朔中学2024-2025学年高二上学期11月期中英语试题(含答案)
- 北京市一零一中学2024~2025学年第一学期初三期中物理试卷
- 北京高考语文三年模拟真题(21-23年)知识点汇编-语言文字应用
- 2024年计算机软考(初级)网络管理员考试题库大全(含真题等)
- 北师大版三年级数学上册第六单元《乘法》(大单元教学设计)
- 2024年北京海淀区高三二模语文试题和答案
- 纺织品购销合同(5篇)
- 2024年3月青少年软件编程Scratch图形化等级考试试卷一级真题(含答案)
- 体育市场营销智慧树知到期末考试答案章节答案2024年西华大学
- 【课件】第15课+权力与理性-17、18世纪西方美术+课件-高中美术人教版(2019)美术鉴赏
- 2024年辅警招聘考试试题库含完整答案(各地真题)
- 儿童早期的认知发展-皮亚杰前运算阶段(三座山实验)
- 国开一体化平台01588《西方行政学说》章节自测(1-23)试题及答案
- 教育家精神的丰富内涵及阐释
评论
0/150
提交评论