实验03静态数码管显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 静态数码管显示
一. 实验目的
1.
了解数码管内部电路结构; 2.
学习7段数码管显示译码器的设计; 3. 学习LPM 兆功能模块的调用。
二. 准备知识
为了对数字电路进行控制、直观观察数字电路的设计结果,CPLD/FPGA 器件往往要和一些外部接口电路相连,前面实验中实验的二极管、DIP 开关、脉冲信号源等都属于外部接口电路。在编译前我们进行的锁定管脚,就是把设计电路(元件)的数字信号输入、输出连到相应的CPLD/FPGA 器件管脚;而CPLD/FPGA 器件的一些管脚在硬件上和外部的接口电路相连;这样就把设计的输入、输出管脚和外部的接口电路相通,以便对电路进行控制(输入)、观察结果(输出)。
通常的外部接口电路有:二极管、7
VGA 接口、鼠标接口、键盘、时钟信号接口、A/D 接口、D/A 接口、UART 接口、I 2C 控制器接口等其它数字信号接口。
数码管LED 显示是工程项目中使用广泛的一种输出显示器件。从数码管的个数上数码管分为单联和多联,单联数码管的封装结构如图3.1所示;从电路连接上数码管分为共阳极和共阴极2种,共阴极数码管是将8个发光二极管的阴极连接在一起作为公共端,如图3.2所示;而共阳极数码管是将8个发光二极管的阳极连接在一起作为公共端,如图3.3所示。公共端通常称为位码或选通位,而将其它8位称为段码。
底部管脚 上部结构
图
数码管的e 、d 、c 、b 、a 。我们以图3.3所A
11脚为低电平,这样发光二极
1”,就需要位
码为高电平,BC 段码为低电平,正向导通而发光,而其他的段码为高电平,无电流通过不发光。故8位段码的需要赋二进制值为“00000011”,位码赋值为高电平,这就是所谓的“译码”。
位码使用了三极管。
从硬件电路原理图上可知,FPGA 器件的IO 管脚为低电平时,数码管的位码管脚为高电平,导通。
本实验通过分频器得到1Hz 的时钟信号,加载于4位计数器的时钟输入端。计数器循环输出0~9、A~F 共16个数。最后通过译码器译码后在数码管显示出来。
说明:共阳极和共阴极的电路不同,译码结果正好相反。
一般来说,共阳极的数码管比共阴极数码管亮度高,这是硬件IO 管脚驱动能力的原因。 发光二极管需要串联限流电阻进行保护。
译码结果不仅是显示数字,也可以显示其他字符,理论上说,共有2^7种译码结果。
三. 实验步骤
1、新建工程,工程名为sled。
2、新建译码器的硬件描述语言源文件decode7,输入程序后封装成模块符号文件。在封装过程中发
现错误则找出并纠正错误至封装成功为之。
3、编写并封装16进制计数器模块CNT16。
4、新建原理图文件testled。
添加分频兆功能模块。
实验箱上的晶振为48MHz,为了得到1Hz的频率需要进行48M次分频。可以自己编写分频模块,这里使用QuartusII软件自带的兆功能分频模块。
在新建的原理图testled文件中,双击鼠标,打开添加元器件对话框,点击“MegaWizard Plug-In manager…”按钮,弹出如图3.4所示的添加兆功能模块向导对话框。选择“Create a new custom megafunction variation”新建一个兆功能模块。
图3.4 添加兆功能模块向导对话框——Page 1
点击“Next”按钮进入向导第2页。进行如图3.5所示的选择和设置。在生成兆功能模块的过程中,软件会自动生成该功能模块对应的硬件描述语言,可以选择相应的语言类型。
输出文件位置及名称使用器件
输出文件类型计数器功能模块
图3.5 添加兆功能模块向导对话框——Page 2
点击“Next”按钮,弹出如图3.6所示的设置界面,因为我们要进行48M次分频,转换为二进制数为26位,故总线宽度设为26;我们选择加法计数器(Up only)。
图3.6 添加兆功能模块向导对话框——Page 3
点击“Next”按钮,进入page 4设置,如图3.7所示。在计数器类型设置我们选择,48M进制的计数器即Modulus为;“Plain binary”为计数到各个位全满再重新计数。并且勾选进位进位输出“Carry-out”。
图3.7 添加兆功能模块向导对话框——Page 4
点击“Next”按钮,进入Page 5设置,在这里可进行同步或异步的清零、加载、置数设置,我们这里不做设置。点击“Next”按钮,进入Page 6设置,此略。
图3.7 添加兆功能模块向导对话框——Page 5
最后,进入计数器功能模块的设置总结界面。如图3.8所示。
模块符号
生成文件列表
资源占用
图3.8 添加兆功能模块向导对话框——Page 7
生成功能模块后,我们添加到原理图文件中。并添加用户库里的CNT16和DECODE7模块,电路原理图如图3.9所示。并锁定管脚。
图3.9 静态数码管显示原理图
说明:图3.9使用了网络标号,方法是在鼠标点击连线使其处于选中状态,然后键盘输入相应的标号,相同网络标号之间就相当于连接了。输入输出管脚本身就包含了和其管脚名称相同的网络标号了,不需要再输入。如果是总线连接,其网络标号也要是总线形式,如D[25..0]。
D[25..0]为40M的计数器的计数结果输出,D[25]为其最高位,相对于该模块,其最高位Q[25]就是CLOCK时钟信号的40M次分频。原理图上使用网络标号进行的连线,注意这种连线的方法。
原理图的管脚是1C12器件的管脚分配。
控制位码的管脚全部接地,使三极管全部导通,即位码全部为高电平。8个数码管显示的完全相同。
5、未使用管脚设置
设定未使用管脚为三态输入。一定要进行设置,否则可能会损坏芯片。设置方法键实验1.
6、编译
将testled设置为顶层文件,对该工程进行全程编译,若在编译过程中发现错误,则找出错误并进行纠正直至编译成功为止。