【良心出品】vhdl设计_三层电梯控制程序

合集下载

3-4-5-6层电梯控制电路的VHDL设计任务书

3-4-5-6层电梯控制电路的VHDL设计任务书






[1]林明权.VHDL数字控制系统设计范例[M].北京:电子工业出版社,2003
[2]刘欲晓等.EDA技术与VHDL电路开发应用实践[M].北京:电子工业出版社,2009
[3]刘延飞等.基于ALTERA FPGA/CPLD的电子系统设计及工程实践[M].北京:人民邮电出版社,2009
[4]刘江海.EDA技术[M].武汉:华中科技大学出版社, 2013
[9]李俊.EDA技术与VHDL编程[M].北京:电子工业出版社.2012
[10]陈炳权,曾庆立.EDA技术及实例开发教程[M].湘潭:湘潭大学出版社,2013
指导教师
意见
签名:
年月日
教研室
意见
签名:
年月日
《EDA技术》课程设计任务书
学院:电气与信息工程学院适应专业:14级电子信息工程和通信工程
指导教师
胡红艳
学生姓名
课题名称
电梯控制器的VHDL设计





一、设计内容
设计智能电梯运行控制电路,用按键/开关与数码管/LED表示输入与输出。
二、主要任务:
(1)确定总体方案.
(2)运用EDA技术完成各模块的软件设计,运用所学的电路及电子技术知识完成硬件模块设计仿真.
[5]艾明晶.EDA设计实验教程[M].北京:清华大学出版社,2014
[6]陈苏婷.EDA设计与应用基础[M].北京:气象出版社, 2015
[7]范秋华.EDA技术及实验教程[M].北京:电子工业出版社, 2015
[8]马玉清.EDA技术(VHDL版) [M].合肥:中国科学技术大学出版社,2014
二、技术指标:

VHDL项目设计“三层电梯控制系统”

VHDL项目设计“三层电梯控制系统”

VHDL项目设计“三层电梯控制系统”三层电梯控制系统是一种常见的嵌入式系统,用于控制电梯的运行和停止。

它由三层楼、一台电梯和一组控制器组成,通过控制器对电梯的动作进行控制。

本文将介绍一个基于VHDL的三层电梯控制系统的设计。

首先,我们需要定义系统的输入和输出。

对于一个三层电梯控制系统,输入可以包括三个楼层传感器的信号、电梯内部的按钮信号以及电梯的当前位置。

输出可以包括电梯的运行方向、电梯门的开关状态以及电梯运行的目标楼层。

接下来,我们需要设计电梯运行的逻辑。

电梯可以向上或向下运行,它可以根据当前位置和目标楼层来确定下一步的动作。

例如,如果当前位置在一楼,目标楼层在三楼,电梯应该向上运行。

如果当前位置在三楼,目标楼层在一楼,电梯应该向下运行。

我们可以使用状态机的方法来实现这种逻辑。

在控制器的设计中,我们可以使用三个传感器来检测电梯的位置。

当电梯到达一些楼层时,传感器会发出一个信号,控制器会根据这个信号来更新电梯的当前位置。

控制器还需要检测电梯内部按钮的信号,并根据按钮的输入来确定电梯的目标楼层。

例如,如果电梯内部的按钮被按下,控制器会将目标楼层设置为当前所在楼层。

如果一些楼层的按钮被按下,控制器会将目标楼层设置为该楼层。

最后,我们需要定义电梯门的开关逻辑。

当电梯到达目标楼层时,它的门应该打开,当电梯离开目标楼层时,它的门应该关闭。

可以使用一个门状态变量来跟踪电梯门的状态,并根据电梯的位置和目标楼层来更新该变量。

通过以上的设计,我们可以实现一个基于VHDL的三层电梯控制系统。

这个系统可以根据输入信号来确定电梯的动作,包括电梯的运行方向,电梯门的开关状态以及电梯运行的目标楼层。

这个系统可以实时更新电梯的状态,以实现精确的电梯控制。

综上所述,VHDL项目设计的“三层电梯控制系统”是一个基于嵌入式系统的设计,通过控制器对电梯的运行和停止进行控制。

这个系统的设计包括电梯运行逻辑、控制器的设计以及电梯门的开关逻辑。

VHDL项目设计“三层电梯控制系统”

VHDL项目设计“三层电梯控制系统”

三层电梯控制系统一、设计功能与要求电梯控制系统是的设计目标是按照使用者的要求控制电梯的运行。

要求用VHDL设计出三层电梯的控制系统,基本功能要求如下:1、每层电梯入口处设有上、下请求开关,使用者可以根据自身的上下楼需要按下相应按键;电梯内部设有到达楼层按钮,使用者可以选择到达楼层。

2、设有电梯运行模式(上、下)标识和当前所在楼层标识。

3、电梯运行模式等同于普通电梯运行模式,电梯一般按照提出请求的先后顺序进行响应。

程序根据电梯当前位置和使用者所在楼层以及进入电梯后的要求控制运行状态。

4、电梯初始模式为一层关门状态。

二、设计思路本系统的主要输入有电梯外上下控制按钮Button(其中Button(0)表示一楼电梯外上升请求,Button(1)表示二楼电梯外上升请求,Button(2)表示二楼电梯外下降请求,Button(3)表示三楼电梯外下降请求);电梯内到达楼层控制按钮floor(其中floor(0)表示请求到达一层,floor(1)表示请求到达二层,floor(2)表示请求到达三层)。

系统的输出包括电梯位置标识position,表示电梯当前所在楼层;电梯开门关门显示按钮door(当door=1时表示开门,door=0表示关门);电梯当前运行状态按钮up_down(当up_down=1时表示电梯处于上升状态,当up_down=0时表示电梯处于下降状态)。

系统主要通过当前所在楼层以及运行状态、后续请求判断运行方式。

电梯处在第一层时,当它收到二层电梯外上下楼请求、三层电梯外下楼请求、一层电梯内到达二层和三层请求时,电梯会按照指令上升到相应楼层并开门、关门;若收到一层电梯外上楼请求只做开门响应,随后根据使用者进入电梯后请求进行响应;其他请求不响应。

当电梯处在第二层时,若系统收到二层电梯外上下楼请求只做开门响应;若收到三层电梯外下楼或二层电梯内到达三层请求,则做上楼响应、开门;若收到一层电梯外上楼或二层电梯内到达一层请求,则做下楼楼响应并开门;其他请求不响应。

三层电梯控制设计

三层电梯控制设计

三层电梯控制设计电梯在现代城市生活中扮演着重要的角色,能够方便人们的上下楼。

为了确保电梯的顺畅运行,我们需要设计一个可靠的电梯控制系统。

在本文中,我将详细介绍一个三层电梯控制的设计。

一、系统概述三层电梯控制系统设计的主要目标是确保电梯在运行过程中的安全性和效率。

系统主要由电梯控制器、按钮面板、电梯门控制器、电梯驱动器和楼层传感器等组成。

当乘客按下按钮选择目标楼层时,电梯控制器负责处理指令,控制电梯按照最佳路径运行。

二、系统主要功能1.楼层传感器:安装在每个楼层的传感器可以感知人们是否在该楼层等候电梯。

2.按钮面板:每个楼层都有一个按钮面板,供乘客选择上行或下行方向并选择目标楼层。

3.电梯门控制器:控制电梯门的开关。

当乘客进入或离开电梯时,门会自动开闭。

4.电梯控制器:负责处理乘客的请求,并选择最佳路径和运行方式。

它还负责监测电梯的运行状态以及检测故障。

5.电梯驱动器:根据电梯控制器的指令来控制电梯的运行。

它可以控制电梯的速度、加速度和减速度。

三、系统设计1.状态机设计采用状态机设计可以实现电梯的有序运行。

电梯控制器可以有多个状态,包括停止、运行、开门和关门等。

根据各种条件,电梯控制器可以通过状态转换来实现电梯的优化调度。

2.请求处理当乘客按下按钮选择目标楼层时,按钮面板会发送信号给电梯控制器。

电梯控制器根据当前状态和请求方向来决定是否停靠并接收乘客。

3.电梯调度电梯控制器根据乘客的请求,选择最佳路径来优化电梯的调度。

通过考虑乘客的等候时间、电梯的运行速度和当前楼层等因素,可以实现电梯的高效调度。

4.安全控制为了确保乘客的安全,在电梯的运行过程中需要考虑各种安全措施。

比如,在电梯上设置重载保护装置,当电梯承载超过额定负荷时,电梯控制器会自动停止并发出警报。

5.故障检测电梯控制系统中应当包含故障检测机制,以及时识别电梯的故障状态并采取相应的措施。

比如,当发现电梯的速度超过安全范围或者电梯门无法正常打开或关闭时,电梯控制器应当停止电梯并发出警报。

三层电梯控制vhdl语言

三层电梯控制vhdl语言

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity threelift12345 is--实体port(buttonclk:in std_logic; --按键时钟信号liftclk:in std_logic; --电梯时钟信号reset:in std_logic; --异步复位端口f1upbutton:in std_logic; --一层上升请求端口f2upbutton:in std_logic; --二层上升请求端口f2dnbutton:in std_logic; --二层下降请求端口f3dnbutton:in std_logic; --三层下降请求端口stop1button:in std_logic; --一层停站请求端口stop2button:in std_logic; --二层停站请求端口stop3button:in std_logic; --三层停站请求端口position:buffer integer range 1 to 3; --电梯位置信号udsig:buffer std_logic; --电梯模式(上升或下降)信号fuplight,fdnlight,stoplight:buffer std_logic_vector(3 downto 1);--上升、下降、停站请求寄存信号doorlight:out std_logic; --开关门信号dout1:out std_logic_vector(2 downto 0));end entity;architecture art of threelift12345 is --结构体type lift_state is ---定义十个状态(stopon1,dooropen,doorclose,doorwait1,doorwait2,doorwait3,doorwait4,up,down,stop);signal mylift:lift_state;signal clearup:std_logic; --上升和停站请求清除信号signal cleardn:std_logic;---下降和停站请求清除信号beginprocess(reset,liftclk)is--状态机进程variable pos:integer range 3 downto 1;beginif reset='1' then ----异步复位,电梯的初始状态为一层开门状态mylift<=stopon1;clearup<='0';cleardn<='0';else if liftclk'event and liftclk='1' thenmylift<=doorwait1;case mylift iswhen stopon1=>doorlight<='1';position<=1; pos:=1; mylift<=doorwait1;--电梯等待4swhen doorwait1=>mylift<=doorwait2;when doorwait2=>clearup<='0';cleardn<='0';mylift<=doorwait3;when doorwait3=>mylift<=doorwait4;when doorwait4=>mylift<=doorclose;when doorclose=> ---关门,判定电梯下一个运行方式doorlight<='0';if udsig='1' then--电梯处在上升模式if position=3 thenif fuplight="000" and fdnlight="000" and stoplight="000" then--没有请求信号时,电梯停在当前层udsig<='0';mylift<=doorclose;elsif fdnlight(3)='1' or stoplight(3)='1' then --本层有请求信号是,电梯开门udsig<='0';mylift<=dooropen;else --否则下降udsig<='0';mylift<=down;end if;elsif position=2 thenif fuplight="000" and fdnlight="000" and stoplight="000" thenudsig<='1';mylift<=doorclose;elsif fuplight(2)='1' or stoplight(2)='1' then--本层有上升或停站请求时时,电梯开门udsig<='1'; mylift<=dooropen;elsif fuplight="000" and stoplight="000" and fdnlight="010" then---只有二层有下降请求时,电梯开门udsig<='0';mylift<=dooropen;elsif stoplight(3)='1' or fdnlight(3)='1' then---三层有停站请求或下降请求,则上升udsig<='1';mylift<=up;else udsig<='0';mylift<=down;end if;elsif position=1 thenif fuplight="000" and fdnlight="000" and stoplight="000" thenudsig<='1';mylift<=doorclose;elsif stoplight(1)='1' or fuplight(1)='1' then udsig<='1';mylift<=dooropen;else udsig<='1';mylift<=up;end if;end if;elsif udsig='0' then ---电梯处在下降模式if position=3 thenif fuplight="000" and fdnlight="000" and stoplight="000" thenudsig<='0';mylift<=doorclose;elsif fdnlight(3)='1' or stoplight(3)='1' thenudsig<='0';mylift<=dooropen;else udsig<='0';mylift<=down;end if;elsif position=2 thenif fuplight="000" and fdnlight="000" and stoplight="000" thenudsig<='0';mylift<=doorclose;--position<=position+1;--电梯楼层数加一--pos:=pos+1;--end if;if pos<3 and (stoplight(pos)='1' or fuplight(pos)='1') then mylift<=stop;--电梯在一层或二层,本层有停站或上升请求时,则停止elsif pos=3 and (stoplight(pos)='1' or fdnlight(pos)='1') then mylift<=stop; --电梯处在三层,并且有三层停站或下降请求,则停止else mylift<=doorclose;end if;-- position<=position-1;--电梯楼层数减一--pos:=pos-1;if pos>1 and (stoplight(pos)='1' and fdnlight(pos)='1') then mylift<=stop;elsif pos=1 and (stoplight(pos)='1' or fuplight(pos)='1') then mylift<=stop;else mylift<=doorclose; end if;end if;end if;end if;when stop=>mylift<=dooropen;when dooropen=> doorlight<='1';if udsig='1' thenif position<3 and (fuplight(pos)='1' or stoplight(pos)='1') thenclearup<='1'; --清除当前层上升和停站请求else clearup<='1';cleardn<='1'; end if;elsif udsig='0' thenif position>1 and (fdnlight(pos)='1' or stoplight(pos)='1') then cleardn<='1'; --清除当前层下降和停站请求else clearup<='1'; cleardn<='1'; end if;end if;when others =>null;end case;end if;end if;end process;process(reset,buttonclk)is---信号灯控制进程beginif reset='1' then ---复位,寄存信号清零fuplight<="000";fdnlight<="000";stoplight<="000";elseif buttonclk'event and buttonclk='1' thenif clearup='1' then ----上升和停站请求清零fuplight(position)<='0';stoplight(position)<='0';elseif f1upbutton='1' then ----记忆各层上升请求fuplight(1)<='1';elsif f2upbutton='1' then fuplight(2)<='1'; end if;end if;if cleardn='1' then --下降和停站请求清零fdnlight(position)<='0';stoplight(position)<='0';elseif f2dnbutton='1' then ---记忆各层下降请求fdnlight(2)<='1';elsif f3dnbutton='1' then fdnlight(3)<='1';end if;end if;if stop1button='1' then stoplight(1)<='1'; --记忆各层停站请求elsif stop2button='1' then stoplight(2)<='1';elsif stop3button='1' then stoplight(3)<='1';end if;end if;end if;end process;process(position)--楼层显示进程beginif position=1 then dout1<="001";elsif position=2 then dout1<="010";elsif position=3 then dout1<="011";end if;end process;end architecture;。

三层电梯系统vhdl

三层电梯系统vhdl

数字系统课程设计电梯控制系统(A题)小组成员:喻翔昊(04010534)孙瑶(04010502)顾正洋(04010544)导言数字系统课程设计课程作为通信专业学科必修课之一有其重大的意义。

通过这门课程学生可以对数字系统设计方法有明确的认识,自主学习VHDL语言,熟练掌握仿真软件,对数字系统有进一步深入的认识,也为今后的学习与工作打下坚实的基础。

东南大学信息科学与工程学院作为老牌的通信优势院系,在本科生三年级的短学期开设此课程,意在要求学生通过四周的学习基本掌握数字系统设计的规律和基本方法。

我们小组在老师提供的五个项目中选择难度较大的电梯控制系统,以达到锻炼自己,提升自己的目的。

目录一、课程设计目的 (1)二、设计任务 (1)三、分工情况 (1)四、程序设计 (1)五、波形仿真 (11)六、结论 (14)七、致谢 (14)八、附录(程序源代码) (14)九、参考文献 (32)一、课程设计目的1、对数字系统设计方法有明确的认识2、熟练掌握VHDL的基本语法和使用3、熟练使用MAX+PLUSⅡ软件4、在MAX+PLUS II/QuartusII软件环境下使用VHDL设计一个数字系统并通过仿真波形验证其功能5、熟悉硬件编程的设计方法,并以小组为单位,通过互相协助完成电梯系统的仿真任务二、设计任务题目:电梯控制系统要求简介:大楼为3层,2部电梯,每部电梯内部都有如下按键:1‐3楼的按键选择键,开门键,关门键,报警键。

每部电梯的每层楼外面都有上楼键和下楼键(1楼只有上楼键,三楼只有下楼键)。

电梯的设计参照日常生活中电梯实际运行规律设计。

两部电梯之间互相联动,即同时按下任何一部电梯的外部向上或向下键之后,两部电梯同时接受此指令,然后由系统判断,与该请求所在楼层最近并且运行方向相同的电梯执行指令,另一部电梯不执行该指令。

三、分工情况孙瑶(04010502):电梯任务分配设计、程序纠错顾正洋(04010544):程序纠错、程序的仿真调试喻翔昊(04010534):状态机的方案设计、撰写报告四、程序设计题中要求电梯的设计参照日常生活中电梯实际运行规律设计,则有几个方面的问题需要解决。

毕业设计三层电梯PLC控制系统设计

毕业设计三层电梯PLC控制系统设计

毕业设计三层电梯PLC控制系统设计三层电梯PLC控制系统是一个非常重要的设计任务,本文将提供一个完整的设计方案,包括电梯系统的工作原理、硬件设计、PLC编程和测试方案。

1.电梯系统工作原理:电梯系统由控制系统、传感器、电机和电梯轿厢组成。

控制系统通过传感器检测电梯轿厢的位置,并根据乘客的操作信号控制电机的运行,使电梯能够安全、快速地运行。

2.硬件设计:2.1PLC选择:为了实现电梯系统的智能化控制,我们建议选择一款高性能、稳定可靠的PLC。

具体选择PLC的型号应根据项目需求进行决定。

2.2电机控制:电梯轿厢的运行主要通过电机实现。

我们可以使用变频器来控制电机的速度,并通过PLC输出控制信号给变频器。

2.3位置检测:电梯轿厢的位置可以通过霍尔传感器或光电传感器来检测。

这些传感器将传感器信号传输给PLC,从而实现对电梯位置的监控和控制。

2.4乘客操作:电梯的乘客操作可以通过按钮或触摸屏来实现。

按钮和触摸屏将操作信号传输给PLC,PLC通过判断信号类型以及当前电梯的状态来进行相应的控制。

3.PLC编程:根据电梯系统的需求,我们可以使用Ladder Diagram或者其他编程语言对PLC进行编程。

3.1初始化:当电梯系统刚启动时,PLC可以进行一系列的初始化操作,包括检测电梯轿厢的初始位置、设置电梯轿厢的初始方向以及初始化电梯轿厢上的按钮状态。

3.2电梯运行:在正常运行状态下,PLC会周期性地检测电梯位置,并根据乘客的操作信号来判断电梯的运行方向和目标楼层。

PLC会控制电机的运行,使电梯能够顺利到达目标楼层。

3.3紧急情况:在紧急情况下,如火灾或停电,PLC应能够切换到紧急模式。

在紧急模式下,PLC会使电梯立即停止并打开轿厢门。

4.测试方案:在设计完成后,我们需要对电梯系统进行各种测试以确保其正常运行。

4.1功能测试:测试电梯系统的各种功能,包括楼层选择、紧急停止、故障诊断等。

4.2安全性测试:测试电梯在紧急情况下的应急响应能力,包括火灾或停电情况下的反应速度和系统稳定性。

三层电梯PLC控制系统设计含程序

三层电梯PLC控制系统设计含程序

三层电梯PLC控制系统设计含程序电梯是现代建筑中常用的垂直交通设备,通过PLC控制系统实现对电梯的控制和管理,可以提高电梯的运行效率和安全性。

本文将针对一个三层电梯进行PLC控制系统的设计,包括电梯的运行逻辑和程序实现。

一、电梯运行逻辑设计1.状态监测a.电梯位置检测:通过位置传感器检测电梯所在楼层,可以确定电梯的位置信息。

b.门开关状态检测:通过开关传感器检测电梯门的打开和关闭状态,可以确定电梯门是打开还是关闭。

2.运行控制a.开门控制:当电梯到达指定楼层且电梯门关闭时,接收外部开门信号时,电梯门打开。

b.闭门控制:当电梯门打开一段时间后,自动闭门。

c.电梯上行控制:当外部调用上行时,电梯按照最优路线上行到指定楼层。

d.电梯下行控制:当外部调用下行时,电梯按照最优路线下行到指定楼层。

e.紧急停止控制:当电梯发生故障或紧急情况时,立即停止电梯运行。

二、PLC程序设计1.状态监测程序设计a.电梯位置检测程序:通过读取位置传感器的状态信号,将电梯所在楼层信息反馈给PLC程序。

b.门开关状态检测程序:通过读取开关传感器的状态信号,判断电梯门的打开和关闭状态。

2.运行控制程序设计a.开门控制程序:当电梯到达指定楼层且电梯门关闭时,接收外部开门信号时,将开门信号发送给电梯门控制装置。

b.闭门控制程序:当电梯门打开一段时间后,将闭门信号发送给电梯门控制装置。

c.电梯上行控制程序:当外部调用上行时,根据当前电梯的位置信息,计算最优路线,并将上行信号发送给电梯运行控制装置。

d.电梯下行控制程序:当外部调用下行时,根据当前电梯的位置信息,计算最优路线,并将下行信号发送给电梯运行控制装置。

e.紧急停止控制程序:当发生故障或紧急情况时,立即发送停止信号给电梯运行控制装置。

3.整体控制程序设计a.状态监测程序和运行控制程序的输出以及传感器的输入通过PLC的I/O模块进行连接。

b.PLC基于状态监测程序和运行控制程序,根据输入信号进行逻辑运算,并根据运行控制程序的结果,控制电梯门和电梯的运行。

(完整word版)基于VHDL的三层电梯控制器设计

(完整word版)基于VHDL的三层电梯控制器设计

EDA 课程设计报告书课题名称 基于VHDL 的三层电梯控制器设计 姓 名学 号 院 系 专 业 指导教师年 月 日※※※※※※※※※ ※※ ※※ ※※级学生EDA 课程设计基于VHDL的三层电梯控制器的设计1设计目的近年来,中国房地产业的快速发展,与之配套的电梯生产制造业也经历了迅猛发展的阶段,电梯产量保持了每年20%以上的增长速度.随着我国经济持续增长、城镇化建设的加速和房地产行业的进一步发展,对电梯的需求越来越大。

估计未来50年中国新增住房面积将达到200亿平方米。

国家规定20米以上高楼就应安装电梯,因此未来电梯最大的市场就是住宅市场。

此外,机场、商场、地铁等大型公共设施建设对自动扶梯、观光电梯等电梯的需求量也十分可观。

电梯作为垂直方向的交通工具,在高层建筑和公共场所已经成为重要的建筑设备而不可或缺。

电梯产业的前景和走势随着社会的需求而悄然发生着改变,除了考虑安全、舒适、豪华装修等要求外,市场对新一代的绿色电梯、节能电梯和智能电梯的需求越来越旺盛。

国内外电梯企业顺应市场需要,加大研发投入,都准备在未来新概念电梯产业发展中占得先机。

随着城市化的高速发展,越来越多的摩天大楼拔地而起。

就摩天大楼的高度而言,不仅受建筑技术上的制约,而且还有电梯升高方面的困惑,因而,在摩天大楼日益完备智能化的趋势中,电梯的智能化也不容忽视。

它不仅是人们上上下下的代步工具,同时,也是摩天大楼智能化的一个重要标志.尽管电梯在摩天大楼中只是—个细节,但电梯智能化程度的高低却决定着它服务质量的优劣.因而,电梯的智能化在一定程度上反映出智能大厦的智能程度。

2设计的主要内容和要求(1)电梯一层入口处设有上升请求开关,二层入口处设有上、下请求开关,三层入口处设有下降请求开关,电梯内部设有顾客到达楼层的停站请求开关.(2)每层电梯入口处设有位置指示装置及电梯运行模式(上升或下降)指示装置。

(3)电梯初始状态为一层开门状态。

(4)电梯每秒上升(下降)一层楼。

课程设计--基于VHDL的三层电梯控制器的设计

课程设计--基于VHDL的三层电梯控制器的设计

防盗报警器课程设计指导教师学生姓名学号专业教学单位一、摘要本设计运用有限状态机的方法,在结构体最前端首先定义了十个状态;然后在结构体中设计了两个进程,状态机进程作为主要进程,信号灯控制进程作辅助进程。

在状态机进程中,电梯关门后根据信号灯的情况,来决定下一个状态是上升、下降还是停止;在信号灯控制进程中,而信号灯的熄灭是由状态机进程中传出clearup和cleardn信号来控制。

实现了三层电梯的基本功能,电梯的的运行情况完全符合它的运行规则,电梯的位置变化合情合理。

二、设计的基本思路及其设计出发点本设计采用VHDL,源程序经A1tera公司的MAX+plus II软件仿真。

运用有限状态机的设计方法,设计了两个进程相互配合,状态机进程作为主要进程,信号灯控制进程作为辅助进程。

电梯作为垂直方向的交通工具,在高层建筑和公共场所已成为不可或缺的设备。

中国是全球最大的电梯市场,也具有最强的电梯生产能力,但由于缺乏自主知识产权和核心技术,自主品牌占市场的份额很少。

随着社会需求的变化,电梯朝着节能、环保及智能化方向发展。

三、方案原理论述3.1 电梯控制器原理电梯控制器的功能模块如所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。

乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。

分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。

由于分控制器相对简单很多,所以主控制器是核心部分。

图3.1 电梯控制器原理图三层电梯控制器的设计思路电梯控制器设计两个进程相互配合,状态机进程作为主要进程,信号灯控制进程作为辅助进程。

根据电梯的实际工作情况,可以为状态机设置十个状态,它们分别是“电梯停在一层”“开门”“关门”“开门等待第一秒”“开门等待第二秒”“开门等待第三秒”“开门等待第四秒”“上升”“下降”和“停止”。

基于vhdl三层电梯控制器的设计说明书

基于vhdl三层电梯控制器的设计说明书

基于VHDL的三层电梯控制器的设计
姓名:
学号:
班级:
一.设计课题的任务要求:
简易电梯控制器:
模拟真实电梯的运行情况,设计制作一个简易电梯控制器控制二层电梯的运行。

基本要求:
1、电梯设有一层、二层外部呼叫按钮和内部一层、二层指定按钮(BTN)。

2、利用数码管显示电梯所在楼层,用LED显示电梯运行状态如上行、下行、开门、关
门等。

提高要求:
1、点阵显示楼层;
2、用点阵显示楼层的上下滚动移出移入表示电梯的上行或下行运行方向
3、增加为三层电梯控制器
二.系统设计:
电梯控制器的功能模块如图所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。

乘客选择所要到达的楼层,通过主控制器的处理之后,电梯开始运行,状态显示器显示当前电梯的上升下降运行状态,电梯所在楼层数通过译码器译码在数码管上显示。

分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在层数。

电梯控制器原理图如下:
根据电梯的实际工作情况,可以为状态机设置八个状态,它们分别是“电梯停在一层”“电梯停在二层”“电梯停在三层”“开门”“关门”“上升”“下降”和“停止”。

由于电梯每秒上升或下降一层,则可以用周期为1s的信号来作为电梯状态转换的触发时钟。

VHDL描述模块流程如下图所示:
三层电梯控制器的VHDL描述模块流程电梯控制器流程图:
三.仿真波形及波形分析:。

基于VHDL三层电梯控制器的设计

基于VHDL三层电梯控制器的设计

基于VHDL三层电梯控制器的设计0 引言电梯控制器是控制电梯按顾客要求自动上下的装置。

本文采用VHDL 语言来设计实用三层电梯控制器,其代码具有良好的可读性和易理解性,源程序经A1tera 公司的MAX+plus II 软件仿真,目标器件选用CPLD 器件。

通过对三层电梯控制器的设计,可以发现本设计有一定的扩展性,而且可以作为更多层电梯控制器实现的基础。

1 三层电梯控制器将实现的功能(1)每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关。

(2)设有电梯入口处位置指示装置及电梯运行模式(上升或下降)指示装置。

(3)电梯每秒升(降)一层楼。

(4)电梯到达有停站请求的楼层,经过1 秒电梯门打开,开门指示灯亮,开门4 秒后,电梯门关闭(开门指示灯灭),电梯继续进行,直至执行完最后一个请求信号后停留在当前层。

(5)能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。

(6)电梯运行规则一当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接升到由下楼请求的最高层,然后进入下降模式。

当电梯处于下降模式时则与上升模式相反。

(7)电梯初始状态为一层开门状态。

2 设计方案和论证2.1 控制器的设计方案控制器的功能模块如图1 所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。

乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。

分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。

由于分控制器相对简单很多,所以主控制器是核。

VHDL项目设计“三层电梯控制系统”

VHDL项目设计“三层电梯控制系统”

三层电梯控制系统一、设计功能与要求电梯控制系统是的设计目标是按照使用者的要求控制电梯的运行。

要求用VHDL设计出三层电梯的控制系统,基本功能要求如下:1、每层电梯入口处设有上、下请求开关,使用者可以根据自身的上下楼需要按下相应按键;电梯内部设有到达楼层按钮,使用者可以选择到达楼层。

2、设有电梯运行模式(上、下)标识和当前所在楼层标识。

3、电梯运行模式等同于普通电梯运行模式,电梯一般按照提出请求的先后顺序进行响应。

程序根据电梯当前位置和使用者所在楼层以及进入电梯后的要求控制运行状态。

4、电梯初始模式为一层关门状态。

二、设计思路本系统的主要输入有电梯外上下控制按钮Button(其中Button(0)表示一楼电梯外上升请求,Button(1)表示二楼电梯外上升请求,Button(2)表示二楼电梯外下降请求,Button(3)表示三楼电梯外下降请求);电梯内到达楼层控制按钮floor(其中floor(0)表示请求到达一层,floor(1)表示请求到达二层,floor(2)表示请求到达三层)。

系统的输出包括电梯位置标识position,表示电梯当前所在楼层;电梯开门关门显示按钮door(当door=1时表示开门,door=0表示关门);电梯当前运行状态按钮up_down(当up_down=1时表示电梯处于上升状态,当up_down=0时表示电梯处于下降状态)。

系统主要通过当前所在楼层以及运行状态、后续请求判断运行方式。

电梯处在第一层时,当它收到二层电梯外上下楼请求、三层电梯外下楼请求、一层电梯内到达二层和三层请求时,电梯会按照指令上升到相应楼层并开门、关门;若收到一层电梯外上楼请求只做开门响应,随后根据使用者进入电梯后请求进行响应;其他请求不响应。

当电梯处在第二层时,若系统收到二层电梯外上下楼请求只做开门响应;若收到三层电梯外下楼或二层电梯内到达三层请求,则做上楼响应、开门;若收到一层电梯外上楼或二层电梯内到达一层请求,则做下楼楼响应并开门;其他请求不响应。

3层电梯VHDL报告

3层电梯VHDL报告

一.实验题目简易二层电梯控制器模拟真实电梯的运行情况,设计制作一个简易电梯控制器控制二层电梯的运行。

基本要求:1、电梯设有一层、二层外部呼叫按钮和内部一层、二层指定按钮(BTN)。

2、利用数码管显示电梯所在楼层,用LED显示电梯运行状态如上行、下行、开门、关门等。

提高要求:1、点阵显示楼层;2、用点阵显示楼层的上下滚动移出移入表示电梯的上行或下行运行方向3、增加为三层电梯控制器二.设计方案及思路设计思路:根据题目要求,我在程序中设计了需要用到的8个外部按钮:f1up,f2up ,f2dn,f3dn,warning,stop1,stop2,stop3,reset,另外还有相应的显示信号,程序利用状态机实现总体的控制,状态中用到了7个状态:(stopon1,dooropen,doorclose,doorwait,up1,down1,stop),状态的主要转换如下:设定复位后初始状态是stopon1,然后状态跳转到doorclose,在接收到相应的请求信号时,做出判断,若请求信号的楼层大于当前所在的楼层,则程序跳转到up1状态,小于则跳转到down1状态,如果请求信号的楼层与当前楼层相同时,则开门进入dooropen 状态,然后到开门延迟状态doorwait,然后再到doorclose状态,上升和下降的过程中判断电梯是否到达指定的楼层,若到达,则程序进入stop状态,然后到开门->延时->关门,进而做判断。

状态转移图如下:各个状态线表示的内容如下: 1初始化2 初始化后电梯进入工作状态,起始是关门状态3 没有任何信号输入时,电梯始终工作在关门状态4 电梯接收到信号,且请求信号大于当前楼层5 电梯上升后到达指定楼层时停止1161092stopon1 dooropenup1stopdoorwait1doorclosedown1 345876 电梯停止后便开门7 延时等待乘客搭乘电梯或者走出电梯 8 等待时间结束后电梯关门9 电梯接收到信号,且请求信号小于当前楼层 10 电梯下降到指定楼层后停止11 电梯接受的信号与当前楼层相同则开门控制原理图:分块设计:程序中主要分了3个模块:分频模块,状态控制,状态显示,其中状态显示分成了信号灯显示部分和点阵显示部分,因为一开始对点阵的显示比较生疏,所以点阵显示模块是后来才在总的程序中加入的。

vhdl设计三层电梯控制程序

vhdl设计三层电梯控制程序

library ieee;use lift isport(clk,reset,up1,up2,down2,down3,stop1,stop2,stop3,checkow:in std_logic; --buttons uplight,downlight,stoplight:buffer std_logic_vector(3 downto 1);udmode:buffer std_logic; --0- 电梯处于上升模式,1-电梯处于下降木模式position:buffer integer range 1 to 3; --电梯位置doorlight: out std_logic; --电梯门开关灯loc: out std_logic_vector(6 downto 0); --显示电梯位置ss: buffer integer range 0 to 3; --电梯所处状态--0--上升--1-下降--2停止out_state: out std_logic_vector(6 downto 0);--电梯所处状态--u--上升d--下降--s-停止overweight_light :out std_logic);--超重提醒灯end lift;architecture aaa of lift istype state_type is(stopon1,dooropen,doorclose,wait1,wait2,wait3,wait4,up,down,stop); signal state:state_type:=stopon1;signal clearup,cleardown,buttclk,liftclk:std_logic;signal q,p:integer range 0 to ;component xianshiport(position: in integer range 0 to 9;segment_7: out std_logic_vector(6 downto 0));end component;component upordownport(ss: in integer range 0 to 2 ;segment_7: out std_logic_vector(6 downto 0));end component;beginprocess(clk)--电梯分频进程1sbeginif reset='1' then q<=0;elsif clk'event and clk='1' thenif q= then liftclk<='1';q<=0;--if q=2 then liftclk<='1';q<=0;else liftclk<='0';q<=q+1;end if;end if;end process;process(clk)----电梯按键分频进程==beginif reset='1' then p<=0;elsif clk'event and clk='1' thenif p=9999999 then buttclk<='1';p<=0;--if p=2 then buttclk<='1';p<=0;else buttclk<='0';p<=p+1;end if;end if;end process;cont:process(reset,liftclk)--电梯状态机variable pos :integer range 3 downto 0;beginif reset='1' thenstate<=stopon1;clearup<='0';cleardown<='0';elsif liftclk='1' and liftclk'event thenif checkow='1' then state<=wait1;elsecase state iswhen stopon1=>doorlight<='1';position<=1;pos:=1;state<=wait1;udmode<='0';when wait1=>if checkow='1' then state<=wait1;overweight_light<='1';else state<=wait2; ss<=2;overweight_light<='0';end if;when wait2=>if checkow='1' then state<=wait1;overweight_light<='1';else clearup<='0';cleardown<='0'; state<=wait3;ss<=2;overweight_light<='0';end if;when wait3=>if checkow='1' then state<=wait1;overweight_light<='1';else state<=wait4;ss<=2;overweight_light<='0';end if;when wait4=>if checkow='1' then state<=wait1;overweight_light<='1';else overweight_light<='0';state<=doorclose;ss<=2;end if;when doorclose=> doorlight<='0';ss<=2;if udmode='0' thenif position=3 thenif stoplight="000" and uplight="000" and downlight="000" thenudmode<='1'; state<=doorclose;elsif downlight(3)='1' or stoplight(3)='1' then state<=dooropen;else udmode<='1'; state<=down;end if;elsif position=2 thenif stoplight="000"and uplight="000" and downlight="000"thenudmode<='0';state<=doorclose;elsif uplight(2)='1' or stoplight(2)='1' then state<=dooropen;elsif stoplight(3)='1'or downlight(3)='1' thenudmode<='0'; state<=up;else udmode<='1';state<=down;end if;elsif position=1 thenif stoplight="000" and uplight="000" and downlight="000"thenudmode<='0'; state<=doorclose;elsif uplight(1)='1' or stoplight(1)='1' then state<=dooropen;else udmode<='0'; state<=up;end if;end if;elsif udmode='1' thenif position=1 thenif stoplight="000" and uplight="000"and downlight="000" thenudmode<='0';state<=doorclose;elsif uplight(1)='1' or stoplight(1)='1' then state<=dooropen;else udmode<='0';state<=up;end if;elsif position=2 thenif stoplight="000" and uplight="000"and downlight="000" thenudmode<='1';state<=doorclose;elsif downlight(2)='1' or stoplight(2)='1' then state<=dooropen;elsif stoplight(1)='1'or uplight(1)='1'thenudmode<='1'; state<=down;else udmode<='0';state<=up;end if;elsif position=3 thenif stoplight="000" and uplight="000"and downlight="000" thenudmode<='1';state<=doorclose;elsif downlight(3)='1' or stoplight(3)='1' then state<=dooropen;else udmode<='1';state<=down;end if;end if;end if;when up=> position<=position+1;pos:=pos+1;ss<=0;if pos=2 and stoplight(2)='0' and uplight(2)='0' and (stoplight(3)='1' or downlight(3)='1') then state<=up;else state<=stop;end if;when down=> position<=position-1;pos:=pos-1;ss<=1;if pos=2 and stoplight(2)='0' and uplight(2)='0' and (stoplight(1)='1' or uplight(1)='1') then state<=down;else state<=stop;end if;when stop=>state<=dooropen;when dooropen=>doorlight<='1';ss<=2;if udmode='0' thenif pos<3 and (stoplight(pos)='1' or uplight(pos)='1') then clearup<='1';else clearup<='1';cleardown<='1';end if;elseif pos>1 and (stoplight(pos)='1' or uplight(pos)='1') then cleardown<='1';else clearup<='1';cleardown<='1';end if;end if;state<=wait1;when others=> state<=stopon1;ss<=2;end case;end if;end if;end process cont;butt:process (reset,buttclk)--按键灯控制进程beginif reset='1' thenstoplight<="000"; uplight<="000"; downlight<="000";elseif buttclk'event and buttclk='1' thenif clearup='1' then--stoplight(position)<='0';uplight(position)<='0';elseif up1='1' then uplight(1)<='1';end if;if up2='1' then uplight(2)<='1';end if;end if;if cleardown='1' then--stoplight(position)<='0';downlight(position)<='0';elseif down2='1' then downlight(2)<='1';end if;if down3='1' then downlight(3)<='1';end if;end if;if clearup='1' or cleardown='1' thenif position=1 then stoplight(1)<='0';if stop2='1' then stoplight(2)<='1' ;end if;if stop3='1' then stoplight(3)<='1' ;end if;elsif position=2 then stoplight(2)<='0';if stop1='1' then stoplight(1)<='1' ;end if;if stop3='1' then stoplight(3)<='1' ;end if;elseif stop1='1' then stoplight(1)<='1' ;end if;if stop2='1' then stoplight(2)<='1' ;end if;end if;end if;end if;end if;end process butt;h1:xianshi port map(position=>position,segment_7=>loc);--数码管显示楼层si:upordown port map(ss=>ss,segment_7=>out_state);--数码管显示状态end aaa;--------------数码管显示楼层--------------library ieee;use xianshi isport(position: in integer range 0 to 9 ;segment_7: out std_logic_vector(6 downto 0));end xianshi;architecture a of xianshi isbeginprocess(position)begincase position iswhen 1=>segment_7<="1111001";when 2=>segment_7<="0100100";when 3=>segment_7<="0110000";when 4=>segment_7<="0011001";when 5=>segment_7<="0010010";when 6=>segment_7<="0000010";when 7=>segment_7<="1111000";when 8=>segment_7<="0000000";when 9=>segment_7<="0010000";when others=>segment_7<="1000000";end case;end process;end a;-------------------数码管显示状态----------------- library ieee;use upordown isport(ss: in integer range 0 to 2 ;segment_7: out std_logic_vector(6 downto 0) );end upordown;architecture a of upordown isbeginprocess(ss)begincase ss iswhen 0=>segment_7<="0011101";when 1=>segment_7<="0100001";when others=>segment_7<="0010010";end case;end process;end a;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity lift isport(clk,reset,up1,up2,down2,down3,stop1,stop2,stop3,checkow:in std_logic; --buttons uplight,downlight,stoplight:buffer std_logic_vector(3 downto 1);udmode:buffer std_logic; --0- 电梯处于上升模式,1-电梯处于下降木模式position:buffer integer range 1 to 3; --电梯位置doorlight: out std_logic; --电梯门开关灯loc: out std_logic_vector(6 downto 0); --显示电梯位置ss: buffer integer range 0 to 3; --电梯所处状态--0--上升--1-下降--2停止out_state: out std_logic_vector(6 downto 0);--电梯所处状态--u--上升d--下降--s-停止overweight_light :out std_logic);--超重提醒灯end lift;architecture aaa of lift istype state_type is(stopon1,dooropen,doorclose,wait1,wait2,wait3,wait4,up,down,stop); signal state:state_type:=stopon1;signal clearup,cleardown,buttclk,liftclk:std_logic;signal q,p:integer range 0 to 49999999;component xianshiport(position: in integer range 0 to 9;segment_7: out std_logic_vector(6 downto 0));end component;component upordownport(ss: in integer range 0 to 2 ;segment_7: out std_logic_vector(6 downto 0));end component;beginprocess(clk)--电梯分频进程1sbeginif reset='1' then q<=0;elsif clk'event and clk='1' thenif q=49999999 then liftclk<='1';q<=0;--if q=2 then liftclk<='1';q<=0;else liftclk<='0';q<=q+1;end if;end if;process(clk)----电梯按键分频进程==0.02sbeginif reset='1' then p<=0;elsif clk'event and clk='1' thenif p=9999999 then buttclk<='1';p<=0;--if p=2 then buttclk<='1';p<=0;else buttclk<='0';p<=p+1;end if;end if;end process;cont:process(reset,liftclk)--电梯状态机variable pos :integer range 3 downto 0;beginif reset='1' thenstate<=stopon1;clearup<='0';cleardown<='0';elsif liftclk='1' and liftclk'event thenif checkow='1' then state<=wait1;elsecase state iswhen stopon1=>doorlight<='1';position<=1;pos:=1;state<=wait1;udmode<='0';when wait1=>if checkow='1' then state<=wait1;overweight_light<='1';else state<=wait2; ss<=2;overweight_light<='0';end if;when wait2=>if checkow='1' then state<=wait1;overweight_light<='1';else clearup<='0';cleardown<='0'; state<=wait3;ss<=2;overweight_light<='0';end if;when wait3=>if checkow='1' then state<=wait1;overweight_light<='1';else state<=wait4;ss<=2;overweight_light<='0';end if;when wait4=>if checkow='1' then state<=wait1;overweight_light<='1';else overweight_light<='0';state<=doorclose;ss<=2;end if;when doorclose=> doorlight<='0';ss<=2;if udmode='0' thenif position=3 thenif stoplight="000" and uplight="000" and downlight="000" thenudmode<='1'; state<=doorclose;elsif downlight(3)='1' or stoplight(3)='1' then state<=dooropen;else udmode<='1'; state<=down;end if;elsif position=2 thenif stoplight="000"and uplight="000" and downlight="000"thenudmode<='0';state<=doorclose;elsif uplight(2)='1' or stoplight(2)='1' then state<=dooropen;elsif stoplight(3)='1'or downlight(3)='1' thenudmode<='0'; state<=up;else udmode<='1';state<=down;end if;elsif position=1 thenif stoplight="000" and uplight="000" and downlight="000"thenudmode<='0'; state<=doorclose;elsif uplight(1)='1' or stoplight(1)='1' then state<=dooropen;else udmode<='0'; state<=up;end if;end if;elsif udmode='1' thenif position=1 thenif stoplight="000" and uplight="000"and downlight="000" thenudmode<='0';state<=doorclose;elsif uplight(1)='1' or stoplight(1)='1' then state<=dooropen;else udmode<='0';state<=up;end if;elsif position=2 thenif stoplight="000" and uplight="000"and downlight="000" thenudmode<='1';state<=doorclose;elsif downlight(2)='1' or stoplight(2)='1' then state<=dooropen;elsif stoplight(1)='1'or uplight(1)='1'thenudmode<='1'; state<=down;else udmode<='0';state<=up;end if;elsif position=3 thenif stoplight="000" and uplight="000"and downlight="000" thenudmode<='1';state<=doorclose;elsif downlight(3)='1' or stoplight(3)='1' then state<=dooropen;else udmode<='1';state<=down;end if;end if;end if;when up=> position<=position+1;pos:=pos+1;ss<=0;if pos=2 and stoplight(2)='0' and uplight(2)='0' and (stoplight(3)='1' or downlight(3)='1') then state<=up;else state<=stop;end if;when down=> position<=position-1;pos:=pos-1;ss<=1;if pos=2 and stoplight(2)='0' and uplight(2)='0' and (stoplight(1)='1' or uplight(1)='1') then state<=down;else state<=stop;end if;when stop=>state<=dooropen;when dooropen=>doorlight<='1';ss<=2;if udmode='0' thenif pos<3 and (stoplight(pos)='1' or uplight(pos)='1') then clearup<='1';else clearup<='1';cleardown<='1';end if;elseif pos>1 and (stoplight(pos)='1' or uplight(pos)='1') then cleardown<='1';else clearup<='1';cleardown<='1';end if;end if;state<=wait1;when others=> state<=stopon1;ss<=2;end case;end if;end if;end process cont;butt:process (reset,buttclk)--按键灯控制进程beginif reset='1' thenstoplight<="000"; uplight<="000"; downlight<="000";elseif buttclk'event and buttclk='1' thenif clearup='1' then--stoplight(position)<='0';uplight(position)<='0';elseif up1='1' then uplight(1)<='1';end if;if up2='1' then uplight(2)<='1';end if;end if;if cleardown='1' then--stoplight(position)<='0';downlight(position)<='0';elseif down2='1' then downlight(2)<='1';end if;if down3='1' then downlight(3)<='1';end if;end if;if clearup='1' or cleardown='1' thenif position=1 then stoplight(1)<='0';if stop2='1' then stoplight(2)<='1' ;end if;if stop3='1' then stoplight(3)<='1' ;end if;elsif position=2 then stoplight(2)<='0';if stop1='1' then stoplight(1)<='1' ;end if;if stop3='1' then stoplight(3)<='1' ;end if;elseif stop1='1' then stoplight(1)<='1' ;end if;if stop2='1' then stoplight(2)<='1' ;end if;end if;end if;end if;end if;end process butt;h1:xianshi port map(position=>position,segment_7=>loc);--数码管显示楼层si:upordown port map(ss=>ss,segment_7=>out_state);--数码管显示状态end aaa;--------------数码管显示楼层--------------library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity xianshi isport(position: in integer range 0 to 9 ;segment_7: out std_logic_vector(6 downto 0));end xianshi;architecture a of xianshi isbeginprocess(position)begincase position iswhen 1=>segment_7<="1111001";when 2=>segment_7<="0100100";when 3=>segment_7<="0110000";when 4=>segment_7<="0011001";when 5=>segment_7<="0010010";when 6=>segment_7<="0000010";when 7=>segment_7<="1111000";when 8=>segment_7<="0000000";when 9=>segment_7<="0010000";when others=>segment_7<="1000000";end case;end process;end a;-------------------数码管显示状态----------------- library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity upordown isport(ss: in integer range 0 to 2 ;segment_7: out std_logic_vector(6 downto 0) );end upordown;architecture a of upordown isbeginprocess(ss)begincase ss iswhen 0=>segment_7<="0011101";when 1=>segment_7<="0100001";when others=>segment_7<="0010010";end case;end process;end a;。

相关文档
最新文档