EDA实验指导 基于FPGA的动态扫描电路设计new
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA实验指导及记录
实验三基于FPGA的数码管动态扫描电路设计
1.实验目的:
(1)掌握FPGA工作的基本原理、FPGA硬件平台的使用;
(2)熟悉7段数码管显示译码电路的设计。
(3)掌握数码管动态扫描显示原理及动态扫描电路的设计。
2.实验任务:利用FPGA硬件平台上的6位数码管动态显示计数器输出数据。
3.电路设计
(1)顶层电路
由分频模块fre_div,计数器模块counter100,译码显示模块diaplay构成。分频模块fre_div将可将实验平台晶体振荡器提供的50MHz时钟信号分频,输出500Hz,1KHz及1Hz三种信号备用,conter100模块实现模100计数功能,display模块为数码管动态显示模块,实现计数数字在6位数码管上的动态显示。
(2)分频器模块fre_div
该模块已经设计完成,存放在F盘502文件夹里,使用时请自行拷贝至当前工程文件夹,并按设计需要选择合适的输出。
(3)计数器模块counter100
该计数器模块实现模100计数。此处同学们应掌握数据总线的画法。
(4)译码显示模块display
该模块由counter6模块,dig_select模块,seg_select模块以及decoder模块构成,请同学们自行完成该模块总体设计,当display模块的输入信号scanclk频率为1KHz时,数码管扫描周期为36ms,每次扫描每位数码管显示时长6ms。各子模块设计思路如下。
a)counter6模块
该模块需使用74390设计一个模6的计数器。请在空白处做预设计,画出电路图。
b)dig_select模块
该模块用于选择6位数码管中的某一位显示相应字形。74138为3-8译码器,功能表见附录。
c)decoder模块
可将4位8421BCD码译为七段码,驱动数码管以十进制数形式显示数字。7448为共阴极数码管译码器,功能表见附录。
d)seg_select模块
该模块功能是从6组4bit信号中选择一组作输出。(注意自行添加输入输出端)
上图中seclect1bit模块可使用74151设计,其功能为从6位输入数据中选择1位输出。请大家在下面空白处完成预设计。
4.
5.
及解决方法等)
6. 附录:(附录部分不用随实验报告上交) (1) 数码管原理。
LED 数码管也称为半导体数码管,是目前数字电路中最常用的显示器件之一,它以发光二极管作为笔段,分为共阴和共阳两种,其差别在于共阴数码管的八段发光二极管的阴极都连在一起,而阳极对应各段分别控制;共阳数码管则是八段发光二极管的阳极连在一起,阴极各段可分别控制,具体见下图。
(a )引脚图段数码管引脚图
引脚图中的3脚和8脚是公共端com ,连在一起,7段数码管加上一个小数点共计8段,因此对数码管进行编码正好是一个字节(8位二进制)。以共阴数码管为例,公共端接GND ,其余各段高电平点亮,则数码编码见表。
数码管有两种显示方式:
静态显示
每个数码管的8个段选信号(a ~g 、dp )都必须接一个8位数据线来保持显示的字形。当送入一次字型码后,显示可一直保持,直到送入新的字形码为止。优点是占用CPU 时间少,便于控制显示。缺点是占用I/O 口资源太多,如有8个数码管,就需要8×8=64个I/O 口。
动态显示
将所有数码管的8个显示笔划的同名端连在一起,另外为每个数码管的公共极COM 增加位选通控制电路,位
com
选通由各自独立的I/O线控制。如有8个数码管,则一共需要16个I/O口(8个段选、8个位选),见图2-5-2,其中k1~k8是位选信号。当输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开(以共阴数目管为例,低电平选中相应数码管),该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。所谓动态扫描显示即轮流向各位数码管送出字型码,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,利用发光二极管的余辉和人眼视觉暂留作用,使人感觉各位数码管同时在显示。动态显示的亮度比静态显示要差一些,但是能够节省大量的I/O端口,而且功耗更低。
(2)7448译码器
7448功能表
(3)3-8译码器
74138功能表