基于Vivado软件实现电梯控制器仿真设计

这篇具有很好参考价值的文章主要介绍了基于Vivado软件实现电梯控制器仿真设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Contents
1设计目的及要求 2
1.1设计要求 2
1.2设计H的 2
2工作原理和系统框图 2
3各部分选定方案及电路组成、相关器件说明 2
3.1各部分选定方案 2
3.2相关器件说明 3
4调试过程 8
4.1调试步骤 8
4.2调试过程中出现的错误及修正方案 8
5功能测试 10
6设计结论 12
7设计心得与总结 12
7.1设计心得 12
7.2设计总结 13
8参考文献 13
9 附录 14
9.1附录一总体器件表及相关器件的功能表、管脚分布 14
9.2附录二总体设计图 14
9.3附录三仿真结果 14
9.4附录四小组各成员分工表及个人工作时间表 14
6设计结论
为了实现电梯控制器的设计,我们做了以下几点工作:
(1)整个设计过程分为了早期的基本功能的实现,中期的加速修改功能添加以及后期的
系统的仿真分析和请教同学,完成了对主要模块的仿真以及总体功能的测试。
(2)编写可逆计数器模块,通过正向和逆向计数,实现了电梯的上下楼功能;
(3)编写比较器模块,通过按键输入与计数器输入的比较,来控制计数器是正向计数还
是逆向计数;
(4)编写计时器模块,通过vivado自带的分频器和我们写的分频器进行二次分频,从而
可以在七段数码管上显示出计数的过程;
(5)编写译码器模块,将译码器的输入转化成可以有七段数码管绑定的管脚,从而实现
了整个电梯控制系统的显示模块;
(6)编写节拍发生器模块,通过FPGA有效的片选信号和段选信号实现了电梯所在楼层的
显示和乘客想去楼层的显示;
(7)后期我们进行了分模块的仿真和总体功能的测试,对出现的问题进行了反复的测试
和调试。

7设计心得与总结
7.1设计心得
【就本次实验来说】
(1)时钟的分频和调试花费了很长时间,EGO1开发板上给定的时钟是100MHZ,频率大快,刚开始时进行了2^15次方分频,调试之后发现,频率还是大快,计数器和计时器不 能显示数字的变化过程,通过查阅资料后发现,FPGA内部自带MMCM,于是进行了二次分频,显示恢复正常;
(2)绑定管脚之后,发现计数器总是在0和9之间变动,仔细查错后发现,计数器和比较
器的两个接口连接反了,调整连线后显示恢复正常;
(3)译码器的编写是本次实验的一个亮点,通过译码器将计数和计时直接译码显示在七
段数码管上,既方便又简单,避免了很多繁杂的小器件;

(4)节拍发生器的编写也是本次实验的一个亮点,开始实验时不大了解七段数码管的段选和片选,查阅资料和请教同学之后发现,编写一个节拍发生器,前一时刻显示电梯所在 楼层,后一时刻显示乘客要去楼层,由于时钟的脉冲较快,肉眼看来就是两片数码管同时 显示的;
(5)七段数码管的消隐,实验时发现七段数码管上各段都会亮,只不过不该亮的段颜色较晤,但也不易于区分,反复调试后发现是由于节拍发生器的时钟脉冲大快,在进行片选 时出现了显示的暂留,本文转载自http://www.biyezuopin.vip/onews.asp?id=15000对节拍发生器进行再次分频之后成功消隐;
(6)实验后期,我对实验的代码进行了简化,计时器、计数器、节拍发生器中都含有分
频的代码,于是我另做了分频器,将重复的代码删去,简化了代码的风格。

7.2设计总结
【总的来说】
(1)对数字逻辑和Verilog语言进行了巩固,运用更加熟练,对以后硬件方面的学习打
下坚实的基础。
(2)做实验要有充足的耐心,虽然会出现各种小bug,但通过思考、查阅资料、请教老师
同学之后总能解决的;
(3)一项成功的实验离不开正确的实验设计,确定实验选题之后,我就开始了对整个实
验框图的设计,反复修改并验证了可行性;
(4)把课上所学的知识运用到实践,和同组同学合力实现了电梯控制器的设计。电梯是我们日常生店中每天都在使用的器件,通过这个设计拉近了学习与生店之间的距离,也让 我更加了解自己的专业。
(5)对模块化程序设计的感触更加深刻,分模块编写最后组装,给实验的进行带来了很
大方便。

计时器有一个暂停键与计数器的使能瑞相连,当SW1=SW0=0时,计时器的暂停键有效,计时器不计时;当SW1=1或SW0=1,计时器工作,且每次计时完成后归0,并从下一次电梯开始工作时计时。

代码:module clock( input show, input   clk, input pause, input rst,
output reg sm_bit, output reg[6:0]sm_seg
);


reg [3:0]timesec0;


initial begin sm_bit=1; sm_seg=1; timesec0=0; end

always @(posedge clk) begin if(pause) begin if(timesec0==9)
timesec0=0; else
timesec0=timesec0+1; end
end


always@(posedge show) begin
case(timesec0)
0:sm_seg= 7’b1111110;	//显示0
1:sm_seg= 7’b0110000;	//显示1
2:sm_seg= 7’b1101101;	//显示2
3:sm_seg= 7’b1111001;	//显示3
4:sm_seg= 7’b0110011;	//显示4
5:sm_seg= 7’b1011011;	//显示5
6:sm_seg= 7’b1011111;	//显示6
7:sm_seg= 7’b1110000;	//显示7
8:sm_seg= 7’b1111111;	//显示8
9:sm_seg= 7’b1111011;	//显示9 default:

sm_seg= 7’b0000000;	//不显示
endcase end

endmodule

5)译码器

该译码器不同于一般的译码器,它有四个输入七个输出,四个输入直接接A或B,通过译码
器与七段数码管连接,显示出来。
代码:module translater(value,outled,en); input [3:0]value;
input en;
output reg [6:0]outled; always @(*)
begin if(!en)
outled=7’b0000001; else
case(value) 4’b0000:outled=7’b1111110;	//显示0
4’b0001:outled=7’b0110000;	//显示1
4’b0010:outled=7’b1101101;	//显示2
4’b0011:outled=7’b1111001;	//显示3
4’b0100:outled=7’b0110011;	//显示4
4’b0101:outled=7’b1011011;	//显示5
4’b0110:outled=7’b1011111;	//显示6
4’b0111:outled=7’b1110000;	//显示7
4’b1000:outled=7’b1111111;	//显示8
4’b1001:outled=7’b1111011;	//显示9 default:;
endcase end
endmodule


6)分频装置

因为时钟的频率大快了,实验结果不明显,所以我们采取分频的装置。
代码:module FenPin( input inclk, output outclk

);
reg [31:0]timeclk;
assign outclk = timeclk[19]; initial begin
timeclk = 0; end
always@(posedge inclk)begin timeclk = timeclk +1;
end endmodule

基于Vivado软件实现电梯控制器仿真设计
基于Vivado软件实现电梯控制器仿真设计
基于Vivado软件实现电梯控制器仿真设计
基于Vivado软件实现电梯控制器仿真设计
基于Vivado软件实现电梯控制器仿真设计
基于Vivado软件实现电梯控制器仿真设计
基于Vivado软件实现电梯控制器仿真设计
基于Vivado软件实现电梯控制器仿真设计文章来源地址https://www.toymoban.com/news/detail-488090.html

到了这里,关于基于Vivado软件实现电梯控制器仿真设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 项目三 电梯控制器设计(FPGA综合应用设计)

    (一个很简陋的电梯控制器设计,但是应该可以过关了吧?😶‍🌫️) 通过实验,巩固有限状态机设计方法,并设计实现一个电梯控制器。 利用 BASYS 开发板资源设计一个 5 层楼的电梯控制器系统,并能在开发板上 模拟电梯运行状态,具体要求如下: 利用开发板的 5 个按键作

    2024年02月03日
    浏览(48)
  • 基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构

    本文研究的六轮差速移动机器人 (Six-Wheeled Differential Mobile Robot , SWDMR) 为了满足资源站到资源站点对点的物资运输,对机器人的跨越障碍能力 有较高的要求。对比传统的四轮移动机器人,六轮移动机器人能够提供更强的驱动 力,而且六轮与四轮相比整车分散到单个车轮的负

    2024年02月12日
    浏览(56)
  • 【一级倒立摆】基于simulink的一级倒立摆控制器系统仿真

    MATLAB2021a     D237

    2024年02月15日
    浏览(42)
  • 【FPGA】十三、Vivado MIG IP核实现DDR3控制器(1)

    文章目录 前言 一、DDR3基础知识 二、MIG  IP核的配置 三、DDR3 IP核用户端接口时序 1、DDR3 IP核接口说明 2、DDR3 IP核读写时序 ① 写命令时序:  ② 写数据时序:  ③ 读数据时序: 总结         我们在进行FPGA开发应用当中,经常会用到存储器来保存数据,常用的存储器有RO

    2024年02月16日
    浏览(82)
  • 基于MATLAB的一级倒立摆控制仿真,带GUI界面操作显示倒立摆动画,控制器控制输出

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB       一个可以活动的小车上立着一根不稳定随时会倒下的杆。小车的轮子由电机控制,可以控制小车电机的转动力矩M。同时,也可以获取小车轮子转动的圈数N(可以精确到小数)和杆相对于垂直位置的倾角α.  

    2024年02月08日
    浏览(91)
  • (2-3-3)位置控制算法:无人机运动控制系统——基于自适应反演滑模控制器的仿真测试

    2.3.5  基于自适应反演滑模控制器的仿真测试 文件test/fault_AISMC.py实现了一个基于非线性动力学模型的无人机飞行控制仿真环境,通过使用自适应反演滑模控制器(Adaptive Inverse Sliding Mode Control,AdaptiveISMC_nonlinear)对无人机进行控制,并引入了执行器故障模型以模拟实际飞行中

    2024年04月16日
    浏览(50)
  • 基于PID控制器的四旋翼无人机控制系统的simulink建模与仿真,并输出虚拟现实动画

    目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1四旋翼无人机的动力学模型 4.2 PID控制器设计 4.3 姿态控制实现 4.4 VR虚拟现实动画展示 5.完整工程文件        基于PID控制器的四旋翼无人机控制系统的simulink建模与仿真,并输出vr虚拟现实动画,输出PID控制器

    2024年04月09日
    浏览(62)
  • DDR3 控制器 MIG IP 详解完整版 (VIVADO&Verilog)

    DDR系列文章分类地址: (1)DDR3 基础知识分享 (2)DDR3 控制器 MIG IP 详解完整版 (AXI4VivadoVerilog) (3)DDR3 控制器 MIG IP 详解完整版 (nativeVivadoVerilog) (4)基于 DDR3 的串口传图帧缓存系统设计实现 (5)基于 DDR3 的native接口串口局部传图缓存系统设计实现 (6)基于 DDR3 的

    2024年02月06日
    浏览(82)
  • MATLAB 模型预测控制(MPC)控制入门 —— 设计并仿真 MPC 控制器

    MATLAB 模型预测控制(MPC) 模型预测控制工具箱™ 提供了用于开发模型预测控制 (MPC) 的函数、应用程序、Simulink® 模块和参考示例。对于线性问题,该工具箱支持设计隐式、显式、自适应和增益调度 MPC。对于非线性问题,您可以实现单级和多级非线性 MPC。该工具箱提供可部

    2024年02月02日
    浏览(53)
  • 基于ROS实现的机器人运动PID控制器

    下面是一个基于ROS实现的机器人运动PID控制器的例子: 首先,需要定义机器人的运动控制器节点,例如: 其中, cmd_vel_pub 是一个发布器,用于发布机器人的运动控制指令; odom_sub 是一个订阅器,用于接收机器人的里程计信息。 然后,需要实现一个PID控制器的类,例如: 其

    2024年02月13日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包