电梯控制的设计
一、实验目的
1、 了解电梯时序电路的实现。
2、 掌握用FPGA实现电梯模型的方法。
3、 体验FPGA的多用途性。
二、实验原理
本实验是用FPGA来实现一个三层楼的电梯模型,并利用点阵显示电梯当前所在楼层。点阵显示与七段码显示原理相同,也是通过扫描来显示。下面主要讲一下电梯实现过程中的几个主要部分。
楼层到楼层之间的间隔:用计数器来实现。
开门与关门之间的间隔:用计数器来实现。
电梯向上还是向下:如果现在电梯在1楼,肯定以后向上走;如果现在在三楼,那么以后肯定向下;如果现在电梯在2楼,如果现在电梯向下开,且1楼有人按键,那么不管三楼有没有人按钮,则先到1楼;如果现在电梯向上开,且3楼有人按钮,则不管1楼有没有人呼叫,一直开到3楼;如果电梯现在在2楼,且处于向下开到状态,但是1楼没有按钮,那么如果这个时候要是3楼有人呼叫,就向上开,反之,则向下开。
至于显示部分,则只根据当前电梯所在的位置来确定,与电梯的运行方向无关。
三、实验内容
实验需要完成的任务是编写VHDL代码来模拟现实中的三层电梯工作。在点阵上显示电梯所在的楼层,当其它楼层有上或下的请求信号时,表示该楼层上或下的绿色或黄色指示灯亮,电梯开始上或下运行,当到达该楼层时,表示该楼层上或下的绿色或黄色指示灯灭,表示到达该楼层的红色指示灯亮,点阵显示楼层数,红色指示灯灭。
四、实验步骤
1、打开QUARTUSII软件,新建一个工程。
2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。
3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中提供的示例程序。
4、编写完VHDL程序后,保存起来。方法同实验一。
5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改,直到完全通过编译和仿真。
6、编译仿真无误后,根据用户自己的要求进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
7、根据实验内容用实验导线将上面管脚分配的FPGA管脚与对应的模块连接起来。
如果是调用的本书提供的VHDL代码,则实验连线如下:
Clk:FPGA工作所需时钟信号,输入为750Hz左右时钟。
k1、k2u、k2d、k3:分别接电梯模型的1KU、2KU、2KD和3KD。
d1、d2u、d2d、d3:分别接电梯模型的1U、2U、2D和3D。
door1、door2、door3:分别与电梯模块的1DOOR、2DOOR和3DOOR相连。
8、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与自己的编程思想一致。
五、实验结果与现象
以设计的参考示例为例,当设计文件加载到目标器件后,按下三层电梯模块相对应的按键,则模拟电梯相对指示的灯会跟据到达不同楼层进行显示,到达楼层会在数码管上显示。
六、实验报告
1、 仔细分析该实验程序,了解FPGA是如何来控制电梯的。
2、 仔细分析该实验程序,了解点阵显示的工作原理。
3、 可以编写一个点阵的驱动程序来控制点阵,如通过按键来控制其中的一个亮点按要求的方向运动;或者设计一个点阵按一定的规律显示的舞台灯光设计程序。