网站大量收购独家精品文档,联系QQ:2885784924

嵌入式系统及其应用草稿.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统及应用 ----------数码动态显示模块设计 班级: 物联网1122 姓名: 龚春景 学号: 1132106232 实验目的 进一步熟悉Quartus11的软件作用及运用; 了解数码管动态显示电路的基本功能机作用 实验要求 查找四位动态显示数码管资料,掌握其显示工作的原理; 实时显示4位十进制数码管,采用实验板上的4位开关分四次输入,输入时要通过LED发光二极管显示输入次序; 设计中时钟输入采用验证电路板上的50MHz作为基准; 程序设计尽可能考虑模块化、参数化设计思想,并遵循基本的格式规范,适当添加注释及文档说明; 采用模块化设计方式,底层模块必须进行功能仿真; 编写设计总结报告。 设计思路 要实现把二进制转换成十进制,送给数码管显示,需要三个步骤实现: (一)、编写一个二进制转换成十进制的程序并将程序例化; (二)、编写一个数码管的译码程序来实现数码管显示并将程序例化; (三)、整合前两步程序例化后的模块,用第一步来处理二进制到十进制的转换,用第二步来实现数码管高低4位的显示。 实验步骤 (一)、二进制转换成十进制 1.打开Quartus新建工程BtoD .qpf,新建Verilog HDL File,命名为BtoD .v,编写verilog程序并编译 2.新建仿真文件BtoD .vwf 3.功能仿真结果 4.把verilog程序实例化 点击Create Symbol Files For Current File将程序实现的原理图打包成元件留着后面调用,名为BtoD.bsf。 (二)、数码管的译码 1.关闭上一个工程BtoD.qpf,新建工程decode4_7.qpf,新建Verilog HDL File并命名为decode4_7.v,编写verilog程序并编译 2.新建仿真文件decode4_7.vwf 3.功能仿真结果 4.把verilog程序实例化 点击Create Symbol Files For Current File将程序实现的原理图打包成元件留着后面调用,名为decode4_7.bsf。 (三)、整合二进制转十进制和数码管译码两个子程序实现整个电路功能 1.关闭上一个工程decode4_7.qpf,新建工程BtoD_decode4_7_0.qpf,并新建Block Diagram/Schematic File名为BtoD_decode4_7_0.v 2.把前两个工程里生成的BtoD.bsf,BtoD.v,decode4_7.bsf和decode4_7.v四个文件复制到新工程文件夹BtoD_decode4_7下 3.将BtoD.v和decode4_7.v两个文件添加到工程,并把BtoD_decode4_7_0.bdf文件设为工程顶层文件 4.电路绘制原理图,连线并编译 5.新建仿真文件BtoD_decode4_7_0.vwf 6.功能仿真结果 7.实验仿真电路图: 8.实验仿真结果: 五、实验心得 扫描显示是通过把画面划分成很多很多帧来实现的。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。刷新频率越快,由于人眼的视觉停留,就会得到想要的结果。?? 这就像是拍摄电影一样,在拍摄武打动作时,实际中两人的动作是很慢的,但播放时,人为的把速度放快,才得到了我们日常生活中喜欢的那种快动作效果。 通过本次的实验设计,掌握了动态数码管显示的基本原理,了解了动态数码管在Quartua II软件中如何实现动态数码扫描的控制,采用verilog语言进行设计,何从分发挥了其在数字系统设计中的优越性,描述要实现的逻辑关系而不是具体电路连接结构,大大简化了设计过程,使设计者从纷繁的器件选型和电路连接中解脱出来,把主要精力放在描述器件实现的逻辑功能上,因此,在Quartus II软件中,verilog语言比原理图的方法更适合做大型设计项目。 附录1.二进制转十进制程序module BtoD(y,en,a) ; output [7:0] y ; input en ; input [3:0] a; reg[7:0] y ; always @ (en or a) if(!en) y = 8b1111_1111; else begin if(a9) y=a+6; else y=a; end endmodule 2.数码管译码程序 module decode4_7(decodeout,a); output[6:0] decodeout; input[3:0] a; reg[6:0] decodeout; always @(a) begin case(a)

文档评论(0)

lyxbb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档