FPGA设计实现四人抢答器 |
您所在的位置:网站首页 › 四人抢答器verilog › FPGA设计实现四人抢答器 |
题目: 设计实现一个可容纳四组选手参赛的抢答器系统,每组设一个抢答按钮。答题开始后,由主持人按下“复位”键(开始键)后进入抢答环节,当某个小组抢答成功时,抢答器系统发出半秒的低频音(DO),显示该组别序号并点亮该组“选手指示灯”直至系统复位。此时进入答题计时环节,若超过 30 秒仍未答出,抢答器系统发出 1 秒的高频音(SI)示警。由裁判员按下“复位”键,开始新一轮答题。 一. 模块设计本实验设计实现一个抢答器系统,主要由答题计时模块timer,数码管显示模块display_595,蜂鸣器发声模块buzzer,抢答模块sel,按键消抖模块key_filter和顶层模块responder。 其中display_595模块中包含对display模块以及hc595_ctrl模块的例化。 整体模块框图输入输出信号如下图所示: 输入信号:系统时钟sys_clk, 复位信号sys_rst_n,四路抢答器按键信号key_in[3:0],蜂鸣器驱动信号beepout,数码管显示驱动信号stcp,shcp,ds,oe,以及选手指示灯信号 led_out[3:0]。 二. FPGA硬件电路原理图 1. 六位八段数码管其具体使用方法见文章:Altera EP4CE10 征途Pro开发板数码管显示原理(以实现模60计数器为例)-CSDN博客 2. 无源蜂鸣器buzzer相对于有源蜂鸣器,无源蜂鸣器的成本更低,声音频率可控。而有源蜂鸣器因其内部自带振荡源,只要加上适当的直流电源即可发声,程序控制较为方便。无源蜂鸣器与有源蜂鸣器不同,因其内部不带震荡源,所以其无法向有缘蜂鸣器那样直接用直流信号驱动,这里需要使用PWM方波才能驱动其发声。 其具体使用方法见文章:无源蜂鸣器的驱动实验-CSDN博客 3. 按键key开发板上使用的机械按键也是按键的一种,特点是:接触电阻小 ,手感好,按键按下或弹起时有“滴答”清脆声;但由于其构造和原理,在按键闭合及断开的瞬间均伴随有一连串的抖动。 具体按键消抖方法的设计请参阅文章:按键消抖模块设计实现-CSDN博客 三. Verilog程序设计 1. 答题计时模块timer当有人抢答时,计时器进入三十秒的倒计时,从30计到00。sel_flag表示抢答信号。 模块内包含一个分频器,产生一秒的标准脉冲clk1。 核心代码如下: always@( posedge clk1 or negedge sys_rst_n ) if( sys_rst_n == 1'b0 ) begin timer[7:4] |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |