跑马灯设计eda课程设计.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 设计内容与设计方案 1.1课程设计内容 控制8个LED进行花样性显示。 设计4 种显示模式:s0,从左到右逐个点亮LED;s1,从右到左逐个点亮LED;s2,从两边到中间逐 个点亮LED;s3,从中见到两边逐个点亮LED。 4种模式循环切换,复位键(rst)控制系统的运行停止。数码管显示模式编号。 可预置彩灯变换速度,4档快、稍快、中速、慢速,默认工作为中速。 1.2设计方案 在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,以及平时实验的具体操作内 容,利用硬件描述语言HDL,EDA软件QuartusⅡ和硬件平台cycloneⅡFPGA进行一个简单的电子系统设计, 本次课程设计采用VerilogHDL硬件描述语言编写控制程序,应用Quartus Ⅱ软件实现仿真测试。采 用FPGA芯片对LED灯进行控制,使其达到流水跑马灯显示的效果,LED灯采用共阳极接法,当给它一个低 电平时,LED点亮,我们利用移位寄存器使各输出口循环输出高低电平,达到控制的目的。 第二章 设计原理 2.1设计原理及设计流程 本次试验我所完成的内容是跑马灯的设计,下面我简单的进行一下原理的阐述。 跑马灯课程设计的要求是控制8个LED进行花样显示,设计四种显示模块:第一种显示是从左向右逐 个点亮LED。第二种显示:从右向左逐个点亮LED。第三种显示:从两边向中间逐个点亮LED。第四种显示: 从中间到两边逐个点亮LED。四种显示模式循环切换,并带有一位复位键控制系统的运行停止。为了完成 要求的效果显示,由于要求比较简单,所以不用分为很多模块来具体控制,所以我先择利用移位寄存器来 完成灯的点亮,我们将LED灯采用共阳极接法,当给于低电平时点亮,那么当我们需要点亮某位LED灯时, 只需在该位上赋予低电平即可,比如:如果我们要实现8个数码灯从左到右依次点亮,那么我们就可以给 这8个数码灯分别赋经过一段时间的延时后再给其赋再经过一段时间延时后 再给其赋依次类推,则最后一种赋值状态这样就得到了相应的现象。同理, 要实现数码灯从右向左依次点亮,从中间向两端依次点亮,从两端向中间依次点亮都可以采用这样赋值的 方法。为了达到四种显示模式循环切换的目的,可以将以上的所有赋值语句以顺序语句的形式置于进程中, 这样在完成了一种显示方式后就会自动进入下一种设定好的显示模式,如此反复循环。当需要程序复位时, 只需按下rst键即可,程序不管走都那里,执行那条语句,只要确定复位键按下时,程序立刻返回到程序 执行语句的第一步,程序接着进行新的循环点亮。 第三章 设计程序 3.1 Verilog HDL 程序 module ceshi(clk,rst,Q,DIN,CLK,a); input clk,rst; input [1:0]DIN; //DIN 为变换速度档 output signed[7:0]Q; //Q 为 7 个 LED output [6:0]a; //a 为数码管显示模式 output CLK; // 自定义时钟 parameter DOUT=8b0111_1111; reg CLK; reg [6:0]x; reg [1:0]cs; reg [7:0]Q; reg [6:0]a; always@(posedge clk)begin x=7b0000000;CLK=0; case(DIN) 0:begin x=x+1b1; if(x==20)begin x=7b0; CLK=~CLK; end end 1:begin x=x+1b1; if(x==15)begin x=7b0; CLK=~CLK; end end 2:begin x=x+1b1; if(x==

文档评论(0)

dashifuniu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档