实验三静态数码管显示
1.实验目的
通过本实验让学生学习7段数码管显示译码器的设计,进一步了解、熟悉和掌握FPGA 开发软件Quartus II的使用方法及VHDL语言的编程方法,学习LPM兆功能模块的调用。
2.实验内容
实验箱上有2个4位动态共阳极数码管,其中8个位码DIG0~DIG7和8位段码SEG0~SEG7分别与FPGA相应的引脚相连。
这样只要DIG0~DIG7上一直输出低电平“0”,则8个数码管将显示相同的数码,这样8位动态数码管就变成了静态数码管。
本实验的内容是建立7段译码显示模块,用于控制LED数码管的静态显示。
要求在试验箱上循环显示0~9和A~F 16个字符。
3.实验原理
数码管LED显示是工程项目中使用较广的一种输出显示器件。
常见的数码管有共阴和共阳两种。
共阴数码管是将8个发光二极管的阴极连接在一起作为公共端,而共阳数码管是将8个发光二极管的阳极连接在一起作为公共端。
公共端常称为位码,而将其它8位称为段码,分别为:a、b、c、d、e、f、g、h,其中h为小数点。
对于共阳极数码管,只要公共端为高电平“1”,某个段输出为低电平“0”,则相应的段就亮。
本实验通过分频模块得到1Hz的频率信号,加载于4位计数器的时钟输入端,计数循环输出0~9和A~F 16个字符,通过7段译码模块后在数码管上显示出来。
4.实验步骤
(1)启动Quartus II,建立一个空白工程,然后命名为sled.qpf。
(2)新建decl7s.vhd源程序文件,编写代码。
然后进行综合编译。
若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。
生产符号文件decl7s.bsf (File→ Create/_Update → Create Symbol Files for Current File)。
(3)将实验模块库里的int_div.vhd和int_div.bsf拷贝到工程目录下。
(4)添加4位兆计数器功能模块。
步骤如下:
①在Quartus II主界面中选择Tools—Mega Wizard Plug-In Manager,打开如下图所示的兆功能模块向导。
选择Create a new custom megafunction variation新建一个新的兆功能模块。
图添加兆功能模块向导对话框——Page1
②单击Next进入向导第2页,按照如下图所示填写。
选择LPM_COUNTER,设置号输出文件的类型和路径,使用Cyclone族的器件。
③单击Next进入向导第3页,,按照如下图所示填写。
选择4位计数器。
④剩余步骤不需更改设置,在这里可以一步一步单击Next,或者直接单击Finish结束。
注意在结束时一定要选择生成“*.bsf”符号文件。
图添加兆功能模块向导对话框——Page2
图添加兆功能模块向导对话框——Page3
(5)新建图形设计文件,命名为sled.bdf并保存。
文件的设计如下图所示。
图静态LED显示顶层模块图
(6)选择目标器件并对相应的引脚进行锁定,这里选择的器件为Altera公司的Cyclone I系列的EP1C6Q240C8。
引脚锁定方法如下表所列。
表引脚锁定方法
(7)将sled.bdf设置成顶层实体(Project—Set as Top-level Entity)。
对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
(8)下载程序到芯片上,观察数码管的显示状态。
附加实验:增加一个复位键,当按键按下时,静态显示的数码管有复位现象。