基于FPGA的智力抢答器设计
Posted 大西瓜FPGA --logic3
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于FPGA的智力抢答器设计相关的知识,希望对你有一定的参考价值。
配套FPGA开发板(含该设计的工程代码):https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-4676525296.4.6e8950ed57YPhv&id=17848039135
基于FPGA的智力抢答器设计
功能说明
说明
4路抢答器,选手,主持人可以进行系统复位和抢答控制,计时器30秒倒计时,有人抢答,则数码管显示选手号码及剩余时间,同时对应选手led指示灯亮起来,选手分数,由主持人判断和操作。
(1)可供4组抢答,共设置了4个按键。
(2)设置一个抢答控制开关 Start,该开关由主持人控制 ,只有当主持人按下开始键才能抢答。
(3)抢答器具有定时抢答功能 ,且一次抢答的时间设定为30s。当主持人启动"开始"键后,数码管上会显示30s的倒计时,抢答的4组成员可在30s内可以进行抢答,30s后抢答无效。
(4)抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的组号1~4,并在LED数码管上显示抢答成功的选手号码和对应选手的分数。同时,裁判可以对选手进行加分和减分操作,当选手达到10分时就获胜。
按键说明
键盘
红色按键为独立键盘,实现选手抢答按键。s1接到板子上的28, s2接到板子上的31, s3接到板子上的40, s4接到板子上的42。Gnd接到板子上的gnd,vcc接到板子上的3.3V,用杜邦线接!!!
如下图所示:
板子上的按键
实现裁判进行开始和分数控制。
Key2为开始按键,Key3为加分按键,Key4减分按键,Key5重置分数按键。
Key1为系统复位按键。
仿真说明
模块说明
该抢答器主要分为三大模块进行设计:
(1)按键消抖模块;
(2)抢答器控制模块;
(3)分数控制模块;
(4)数码管显示控制模块。
按键消抖模块
该模块实现的功能主要是实现按键消抖,由于设计对按键灵敏性有要求,所以需要对五个按键(key1、key2、key3、key4、start)进行消抖。实际设计中,该大模块分为了五个消抖模块,可见RTL视图。
抢答器控制模块
该模块实现的功能主要是对最先按下的按键号进行锁存,即锁存最先按下抢答按键的组号。当strat按键被按下之后,该模块开始进行工作,当锁存了抢答按键的组号后,该模块将停止扫描按键号工作直到抢答器被重置并再按下strat键。
分数控制模块
4位选手的初始分数都是0分,满分为10,先拿到10分的为胜者。
该模块由裁判控制,当选手抢答成功时,数码管有两位用于显示该选手的分数,如果答对则该选手得一分,按下add按键为该选手加分,如果答错则减一分,则按下reduce按键为该选手减一分,如果需要重新分数为0分,则按下set按键。
数码管显示控制模块
该模块实现的功能主要是实现数码管的显示功能,一个是30s的倒计时,另外一个是显示抢答成功的组号。当strat按键被按下之后,开始进行倒计时,如果有抢答者按下按键,数码管会马上显示抢答成功的组号。如果30s之后无人抢答,则显示为00,需要主持人重新按下开始按键,再开始新一轮的抢答。
动态显示原理:由于LED静态显示需要占用较多的I/O口,且功耗较大,因此在大多数场合通常不采用静态显示,而采用动态扫描的方法来控制LED数码管的显示。动态显示的特点是将8位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。点亮数码管采用动态扫描显示。
动态扫描显示原理:动态扫描显示即轮流向各位数码管送出字形码和相应的位选,只要扫描显示速度够快,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。动态扫描显示时刷新频率最好大于50HZ,即显示一轮的时间不超过20ms,本设计采用1000HZ的频率进行扫描显示,也就是数码管的刷新频率,每个数码管显示时间不能太长也不能太短,时间太长会影响刷新率,导致总体显示呈现闪烁的现象,时间太短发光二极管的电流导通时间也就短,会影响总体的显示亮度。一般控制在1ms左右最佳。
数码管显示原理
位选信号
本设计采用共阳数码管,即位选低电平有效,并且将位选信号设置为低电平;
段选信号
本设计采用共阳数码管,数码管的段选信号为8bit,数码管的段选对应实物图如下:
一个数码管有八段:A,B,C,D,E,F ,G,H,DP,即由八个发光二极管组成,; 因为发光二极管导通的方向是一定的(导通电压一般取为1.7V),这八个发光二极管的公共端有两种: +5V(即为共阳极数码管)、接地(即为共阴极数码管),其中共阳极每个段均有0导通,而共阴极则1导通发光,所以共阳极数码管和共阴极数码管显然是不同的,段选码表如下图所示:
以下是将设计代码进行综合后的RTL视图:
智力抢答器RTL视图
仿真分析
以下对四个功能模块和整体进行一个仿真,仿真平台为Modelsim。
- 按键消抖模块
- 抢答器模块
- 分数控制模块
- 显示模块
- 整体
以上是关于基于FPGA的智力抢答器设计的主要内容,如果未能解决你的问题,请参考以下文章
资料转发分享基于8086八路智能抢答器系统控制设计基于8086八路PT100热敏电阻温度采集基于8086步进电机定时启动设计-仿真设计资料