基于veriloghdl的电梯控制设计内容摘要:
的技术指标。 电梯在运转时先响应同方向上的请求,只有当同 方向上的请求响应完后,才能转而响应不同方向上的请求。 (2)初始化状态为 1 楼等待门是关闭的。 这个就不用多解释了。 除了我对电梯的运行规律做出如上的分析外,我的另一个选择开发智能电梯控制器的原因是我想锻炼一下自己的逻辑思维和分析复杂问题的能力。 电梯的设计 概要 电梯的管脚 图 31 是电梯自动 控制的元器件模块符号。 图中左边的是电梯中输入输出的管脚。 其中: clk 时钟信号; reset 清零信号,高电平清 零, led 用于楼层的静态数码管的显示, ud_f 电梯的上下标志, count用于开门状态 是的计数器 ; up1, up2, up3, up4, up5 电梯外部的除六楼以外的 其他楼层的上请求按钮; dn2, dn3, dn4, dn5, dn6 电梯外部的除一楼以外的其他楼层的下 请求按钮; d1, d2, d3, d4, d5, d6 电梯内部的一楼到楼的请求按钮。 图中右边的图是,程序应用中设置的一些变量和一些状态的参量。 其中:up_f=239。 b01, dn_f=239。 b10, idle=239。 b00, 设置上下标志的参数 idle_state=339。 b001, up_state=339。 b010, down_state=339。 b011, open_state=739。 b100, close_state=739。 b10 设置电梯的各种运行状态的参 f1=639。 b000001, f2=639。 b000010; f3=639。 b000100;f4=639。 b001000, f5=639。 b010000, f6=639。 b100000, 设置各个楼层的参数。 南京师范大学泰州学院本科生毕业设计(论文) 7 图 31 元器件模块符号 图 电梯的状态转换 电梯的状态有 idle_state, open_state, close_state, up_state, down_state 具体的状态 转换如下: ( 1) 当 reset 是高电平是,清零。 电梯的初始状态为 idle_state。 当当前楼层有人请求上下是,电梯有 idle_state 转换为 open_sate。 当有比当前楼层高的楼层有请求时,电梯有 idle_state 转换为 up_state。 当有比当前楼层低的楼层有请求时,电梯有 idle_state 转换为 down_state。 当内部有请求时即 d 不等于 0,当等于当前楼层,电梯有 idle_state 转换为 open_sate,当大于当前楼层,电梯有idle_state 转换为 up_state,当小于当前楼层,电 梯有 idle_state 转换为 down_state。 ( 2) 当电梯处于 up_state,当请求楼层等于当前楼层或者外部上请求等于当前楼层,电梯有 up_state 转换为 open_state。 当请求楼层大于当前楼层或者外部上请求大于当前楼层,电梯有 up_state 转换 up_state。 当请求楼层小于当前楼层或者外部上请求小于当前楼层,电梯有 up_state 转换为 down_state。 当外部有下请求即 dn 不等于 0,当等于当前楼层,电梯有 up_state 转换为 open_sate,当大于当前楼层,电梯有 up_state 转换为 up_state,当小于当前楼层,电梯有up_state 转换为 down_state。 ( 3) 当电梯处于 down_state,当请求楼层等于当前楼层或者外部下请求等于当前楼层,电梯有 down_state 转换为 open_state。 当请求楼层大于当前楼层或者外部下请求大于当前楼层,电梯有 down_state 转换 up_state。 当请求楼层小于当前楼层或者外部上请求小于当前楼层,电梯有 down_state 转换为down_state。 当外部有下请求即 up 不等于 0,当等于当前楼层,电梯有 down_state转 换为 open_sate,当大于当前楼层,电梯有 down_state 转换为 up_state,当小于当前楼层,电梯有 down_state 转换为 down_state。 ( 4) 当电梯处于 open_state,当 count5 时,电梯有 open_state 转换第三章 系统总体设计 8 open_state, count=5 时,电梯有 open_state 转换 close_state。 ( 5) 当电梯处于 close_state,根据上下标志转换,进入其他状态。 图 32 状态转换图 down_state open_state close_state up_state idle_state 南京师范大学泰州学院本科生毕业设计(论文) 9 第四章 系统应用程序设计 程序各个模块详解 有限状态表机的三段式 时序电路的状态是一个状态变量集合,这些状态变量在任意时刻的值都包含了为确定电路的未来行为而必需考虑的所有历史信息。 状态机采用 VerilogHDL 语言编码,建议分为三个 always 段完成。 三段式建模描述FSM 的状态机输出时,只需指定 case 敏感表为次态寄存器, 然后直接在每个次态的case 分支中描述该状态的输出即可,不用考虑状态转移条件。 三段式描述方法虽然代码结构复杂了一些,但是换来的优势是:使 FSM 做到了同步寄存器输出,消除了组合逻辑输出的不稳定与毛刺的隐患,而且更利于时序路径分组,一般来说在 FPGA/CPLD 等可编程逻辑器件上的综合与布局布线效果更佳。 always @(posedge clk or posedge reset) if(reset) begin state=idle_state。 end else state=next_state。 这是三段式有限状态机的第一段,当 reset 为高电平时, state=idle_state 其他 state=next_statealways @(state or up or dn or d or now_f or count or ud_f) case(state) open_state: begin if(count5) next_state=open_state。 else next_state=close_state。 end idle_state: begin if(d0) begin if((damp。 now_f)0) next_state=open_state。 else if(dnow_f) next_state=up_state。 else next_state=down_state。 end 第四章 系统应用程序设计 10 else if((upamp。 now_f)||(dnamp。 now_f)) next_state=open_state。 else if((upnow_f)||(dnnow_f)) next_state=up_state。 else if(up||dn) next_state=down_state。 else next_state=idle_state。 end up_state: begin if((damp。 now_f)||(upamp。 now_f)) next_state=open_state。 else if((dnow_f)||(upnow_f)) next_state=up_state。 else if(d||up) next_state=down_state。 else if(dn0)。基于veriloghdl的电梯控制设计
相关推荐
QuartusII 软件中仿真成功,现在下载到试验箱上以验证其功能。 实验中采用万用模式模式五,程序中各个端口锁定到试验箱上对应的管脚下载验证。 最后得数码管显示计时、计程和计费数据如下: 以上可知等待时间为 10分钟,行驶公里数为 23公里。 根据设计要求计算所得费用为: 5+( 23km3km) * /km+(10min2min)* /min=5+26+12=43元,与试验箱上所得结果相同
和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间进行交流与共享,减少硬件电路设计的工作量,缩短开发周期 [8]。 软件开发工具 - MAX+ plus II MAX+PLUSⅡ概述 Max+plusⅡ 全称为 Multiple Array Matrix Programmable Logic User System 是Altera 公司提供的 FPGA/CPLD 开发集成环境,
转换电路时,电路输出量 V0 和输入 d7~d0 的关系式为 V0=Vref28 RRf(d727+d626+...d020)。 DAC0832 芯片的特点 DAC0832 最具特色是输入为双缓冲结构,数字信号在进入 D/A 转前,需经过两个独立控制的 8 位锁存器传送。 其优点是 D/A 转换的同时, DAC 寄存器中保留现有的数据,而在输入寄存器中可送入新的数据。 系统中多个 D/A
URGE_TXABORT| PURGE_RXABORT | PURGE_TXCLEAR| PURGE_RXCLEAR )。 //清收发缓冲区//以下初始化结构变量CommTimeOuts, 设置超时参数 = 0FFFFFFFF。 = 0。 = 4000。 = 0。 = 4000。 SetCommTimeouts(hCom, amp。 CommTimeOuts )。 //设置超时参数 =
L cos Eda taop ksi fi sgm El Adelta cosFi Pi 4)注惫避免不同意义的变量使用了同一个标识符。 因为手算程序中,有些不同意义的参数变量却使用了组合排列完全相同的字符串,而用大写和小写来区别它们所表示的不同意义。 计算机是不能识别字母大小写的,必须把它们用不同的字母或数字区分开来,否则将造成计算错误,见表 22,
了一个 ACCESS 数据库,可以将提取到的温湿度数据保存在数据库内,这样可以在任何时间读取以前任意时间存储的数据,软件上还提供一系列人性化的界面去查看系统整体布局,仓库分布,温湿度数据以及图形化温度数据显示和报表打印功能。 用户还可以设置温度报警点来监视反常温度数据。 上位机软件数据检测和信息管理系统采用 Visual Basic 编程, VB 是 MicroSoft 公司在 1991