码迷,mamicode.com
首页 > 其他好文 > 详细

基于FPGA的智力抢答器设计

时间:2018-02-25 17:22:07      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:信号   行锁   设定   margin   静态   red   红色   影响   静态显示   

配套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)数码管显示控制模块。

技术分享图片

 

按键消抖模块

技术分享图片

该模块实现的功能主要是实现按键消抖,由于设计对按键灵敏性有要求,所以需要对五个按键(key1key2key3key4start)进行消抖。实际设计中,该大模块分为了五个消抖模块,可见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。

技术分享图片

  1. 按键消抖模块

技术分享图片

  1. 抢答器模块

技术分享图片

  1. 分数控制模块

技术分享图片

技术分享图片

 

 

  1. 显示模块

技术分享图片

  1. 整体

技术分享图片

技术分享图片

 

基于FPGA的智力抢答器设计

标签:信号   行锁   设定   margin   静态   red   红色   影响   静态显示   

原文地址:https://www.cnblogs.com/logic3/p/8469595.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!