1、嵌入式系统及应用-数码动态显示模块设计班级: 物联网 1122 姓名: 龚春景 学号: 1132106232 一实验目的1、进一步熟悉 Quartus11 的软件作用及运用;2、了解数码管动态显示电路的基本功能机作用二实验要求1、查找四位动态显示数码管资料,掌握其显示工作的原理;2、实时显示 4 位十进制数码管,采用实验板上的 4 位开关分四次输入,输入时要通过 LED 发光二极管显示输入次序;3、设计中时钟输入采用验证电路板上的 50MHz 作为基准;4、程序设计尽可能考虑模块化、参数化设计思想,并遵循基本的格式规范,适当添加注释及文档说明;5、采用模块化设计方式,底层模块必须进行功能仿真;
2、6、编写设计总结报告。三设计思路要实现把二进制转换成十进制,送给数码管显示,需要三个步骤实现:(一) 、编写一个二进制转换成十进制的程序并将程序例化;(二) 、编写一个数码管的译码程序来实现数码管显示并将程序例化;(三) 、整合前两步程序例化后的模块,用第一步来处理二进制到十进制的转换,用第二步来实现数码管高低 4 位的显示。四实验步骤(一) 、二进制转换成十进制1.打开 Quartus 新建工程 BtoD .qpf,新建 Verilog HDL File,命名为 BtoD .v,编写 verilog 程序并编译2.新建仿真文件 BtoD .vwf3.功能仿真结果4.把 verilog 程序实
3、例化点击 Create Symbol Files For Current File 将程序实现的原理图打包成元件留着后面调用,名为 BtoD.bsf。(二) 、数码管的译码1.关闭上一个工程 BtoD.qpf,新建工程 decode4_7.qpf,新建 Verilog HDL File 并命名为 decode4_7.v,编写 verilog 程序并编译2.新建仿真文件 decode4_7.vwf3.功能仿真结果4.把 verilog 程序实例化点击 Create Symbol Files For Current File 将程序实现的原理图打包成元件留着后面调用,名为 decode4_7.bs
4、f。(三) 、整合二进制转十进制和数码管译码两个子程序实现整个电路功能1.关闭上一个工程 decode4_7.qpf,新建工程 BtoD_decode4_7_0.qpf,并新建Block Diagram/Schematic File 名为 BtoD_decode4_7_0.v2.把前两个工程里生成的 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、图,连线并编译5.新建仿真文件 BtoD_decode4_7_0.vwf6.功能仿真结果7.实验仿真电路图:8.实验仿真结果:五、实验心得扫描显示是通过把画面划分成很多很多帧来实现的。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。刷新频率越快,由于人眼的视觉停留,就会得到想要的结果。 这就像是拍摄电影一样,在拍摄武打动作时,实际中两人的动作是很慢的,但播放时,人为的把速度放快,才得到了我们日常生活中喜欢的那种快动作效果。通过本次的实验设计,掌握了动态数码管显示的基本原理,了解了动态数码管在 Quartua II 软件中如何实现动态数码扫描的控制,采用 verilog 语言进行设计,
6、何从分发挥了其在数字系统设计中的优越性,描述要实现的逻辑关系而不是具体电路连接结构,大大简化了设计过程,使设计者从纷繁的器件选型和电路连接中解脱出来,把主要精力放在描述器件实现的逻辑功能上,因此,在 Quartus II 软件中,verilog 语言比原理图的方法更适合做大型设计项目。附录1.二进制转十进制程序module BtoD(y,en,a) ; output 7:0 y ; input en ; input 3:0 a; reg7:0 y ; always (en or a)if(!en)y = 8b1111_1111; else begin if(a9) y=a+6;else y=a
7、; end endmodule2.数码管译码程序module decode4_7(decodeout,a); output6:0 decodeout; input3:0 a; reg6:0 decodeout; always (a) begin case(a)4h0:decodeout=7b00000001; 4h1:decodeout=7b1001111; 4h2:decodeout=7b0010010; 4h3:decodeout=7b0000110; 4h4:decodeout=7b1001100; 4h5:decodeout=7b0100100; 4h6:decodeout=7b0100000; 4h7:decodeout=7b0001111; 4h8:decodeout=7b0000000; 4h9:decodeout=7b0000100; 4ha:decodeout=7b0001000;4hb:decodeout=7b1100000; 4hc:decodeout=7b0110001; 4hd:decodeout=7b1000010; 4he:decodeout=7b0110000; 4hf:decodeout=7b0111000; default: decodeout=7bx; endcase end endmodule