数字式竞赛抢答器(基于Quartus的原理图设计)FPGA

数字式竞赛抢答器(基于Quartus的原理图设计)FPGA

一. 设计思路

系统框图.drawio

二. 实现过程

1. 第一信号鉴别锁存模块 + 犯规电路

image-20230326214908583

image-20230326223817424

(1) 使用器件

74175,带公共时钟和复位四D触发器

(2) 原理

a. 比赛开始前,主持人复位按钮RET=0,四个D触发器复位,此时输出Q[1]–Q[4]为0,QN[1]–QN[4]为1,QN[1]–QN[4]经过与门后输出D为1,时钟CLK所经过的与门(AND2)打开。

​ 犯规电路中RET经过非门和抢答信号相与,输出控制相应组别的犯规指示灯及报警。当RET=0时,若有选手抢答(假若为1号选手),A1=0,A1N=1,与门输出结果QX[1]=1。

b. 比赛开始时,主持人复位按钮RET=1,四个D触发器正常工作。若此时有选手抢答(假设是1号选手),A1=0(抢答按钮按下为0),经过非门后D触发器的输入端1D=1,根据D触发器的特性可知,输出1Q=1、1QN=0,与门(AND4)的输出D=0,此时CLK所经过的与门(AND2)关闭,输出为0,所以D触发器的时钟一直为0,直到下次复位(RET=0)时恢复。由于74175中的D触发器为上升沿触发,所以当时钟为低电平时,D触发器不工作,保持上次的输出,直到下一个上升沿到来。如此便可实现对一次抢答过程中的第一信号进行鉴别和锁存。

(3) 模块化

image-20230326222715275

输入:
  • A1–A4分配四个按键开关(按下为0,不按为1)

  • RET分配一个拨码开关

  • CLKH为50MHz时钟源

输出:
  • Q[1]–Q[4]分配四个LED,显示抢答结果

  • QX[1]–QX[4]分配四个LED,显示提前抢答导致犯规的组别

2. 答题计时电路

image-20230326230524023

(1) 使用器件

74192,可预置的十进制同步加 / 减计数器

  • DN为接减计数脉冲,UP接加计数脉冲
  • LDN置数,CLR异步复位
  • CON为进位输出,低电平有效(即产生进位时CON输出低电平);BON为借位输出,低电平有效(即产生借位时BON输出低电平)
(2) 原理

第一片作为低位,第二片作为高位。先给预置数60,即第一片的A、B、C、D接地;第二片的A、D接地,B、C接高电平。将第一片的借位输出BON作为第二片的减计数脉冲DN,同时将分频后得到的1Hz时钟CLK作为第一片的减计数脉冲DN。如此一来,每当第一片减到0时,第二片减1,这样就实现了60秒倒计时的功能。

主持人复位信号与两片的置数端LDN相连,每当复位时(RET=0),计数器恢复初始值60。

将第二片的借位输出作为报警信号,当计数器值为00时,产生报警。

为了使计数器值为00时停止,将第二片的借位输出反向后与两片的异步复位端相连。

(3) 模块化

image-20230327201754385

  • 图中JSQ1KHZ为分频模块,目的时将50MHz时钟脉冲转换为1Hz,使计数器每次计数时间为1s。
  • 将四个QN信号通过与非门后和复位信号RET相与,输出作为计数器的复位信号,目的是使计数器在比赛开始后(RET=1)有选手抢答时(QN=0)开始计数。
输入:
  • CLKH为50MHz时钟源
  • RET为主持人复位信号
  • QN为第一信号鉴别锁存模块的输出(产生抢答信号时QN=0)
输出:
  • CH为计数器高四位输出(十位),为BCD码
  • CL为计数器低四位输出(个位),为BCD码
  • alarm为报警信号,接报警LED

3. 计分电路

image-20230327204048465

(1) 使用器件

74192,可预置的十进制同步加 / 减计数器

(2) 原理

第一片74192作为低位,第二片作为高位。预置数10,即第一片A、B、C、D接地,第二片B、C、D接地,A接高电平。将加减分信号分别作为第一片的加减计数脉冲。同时第一片的进位输出作为第二片的加计数脉冲,第一片的借位输出作为第二片的减计数脉冲。如此一来,加减分信号控制第一片74192加计数或者减计数,当第一片产生进位或借位时,控制第二片加减,这样就实现了由加减分信号控制的十进制可逆计数器。

两片74192的置数端同时与RETscore相连,当RETscore=0时,计分电路恢复初始值10。

KeyPress为按键消抖模块,由按键产生的含抖动的加减分信号经过该模块输出一个稳定的状态信号。

(3) 模块化

image-20230327210537102

图中加减分信号与Q相与,输出分别接各自的计分电路,目的是实现对各自分数的单独控制,即加减分信号只对抢答者的计分电路生效

输入:
  • R为计分电路的复位信号,R=0时,每个人的分数重置,恢复到初始值10

  • up为加分信号,接按键

  • down为减分信号,接按键

  • CLKH为50MHz时钟源

输出:
  • H1、H2、H3、H4分别为四人得分的高四位输出(BCD码)

  • L1、L2、L3、L4分别为四人得分的低四位输出(BCD码)

4. 数码管扫描显示模块

image-20230327211904014

(1) 使用器件
  • 74161,可预置四位二进制异步清除计数器

  • mux8,四位八选一数据选择器

  • 7448,BCD—7段显示译码器

(2) 原理

计数器74161在扫描时钟CLKL作用下循环输出000–111(SEL[2]、SEL[1]、SEL[0]),将其作为3-8译码器的输入,译码器输出位控信号MS1–MS8,控制八位数码管开关。

四位八选一数据选择器根据数据选择信号SEL[2]、SEL[1]、SEL[0]的数值从八路输入数据中选择一路数据(一位BCD 码)送给BCD-七段显示译码器,通过BCD-七段显示译码器译成七段显示码,驱动七段数码管显示具体内容。在连续8 个时钟周期内,八个显示器轮流点亮一个时钟周期。只要输入连续时钟CLK,就能实现八个数码管扫描显示。利用人眼的视觉惯性,扫描频率应大于50HZ,根据计数器的分频关系,实际扫描频率CLK 应大于200HZ。

(3) 模块化

image-20230327220908969

输入:
  • 八路四位数据分别为四个计分电路的输出
  • 扫描时钟CLKL为1MHz时钟源
  • RN为控制所有数码管的工作状态,RN=0时,所有数码管都关闭
输出:
  • MS1、MS2、MS3接内部的3-8译码器,控制8位数码管的通断,某一时刻只有一位数码管工作
  • a、b、c、d、e、f、g与数码管的相应段相接,dp接地

三. 结果

数字式竞赛抢答器可以采用FPGA实现。具体的课程设计如下: 1. 抢答器电路设计 设计一个三人抢答器电路,包括控制电路和抢答器电路。其中,控制电路主要由一个时钟电路和一个计数器组成。时钟电路用来提供计数器的时钟信号,计数器则用来进行计数。在三人抢答器中,计数器的计数范围为0-2,分别对应三个抢答器的编号。当计数器的计数值改变时,会通过一个译码器将计数器的值转换为对应的抢答器控制信号,控制相应的抢答器状态。抢答器电路主要由三个触发器、三个门电路和一个与非门电路组成。当计数器的计数值与某个抢答器的编号相同时,对应的触发器会被触发,输出一个高电平信号。此时,与非门的两个输入都是高电平,输出为低电平,表示该抢答器已被按下。同时,通过门电路将其他两个抢答器的信号屏蔽,避免多人同时按下。 2. VHDL代码编写 使用VHDL语言编写抢答器的代码。包括计数器、译码器、触发器、门电路和与非门电路等模块的设计和实现。根据设计要求,将这些模块进行连接,生成一个完整的三人抢答器电路的VHDL代码。 3. 软件编程 使用Quartus软件进行FPGA编程。将VHDL代码烧录到FPGA芯片中,使其可以正常工作。 4. 硬件连接 将FPGA芯片与其他电路进行连接,包括时钟电路、LED灯和按键等。通过LED灯显示当前抢答器的状态,通过按键测试抢答器的功能。 5. 系统测试 进行系统测试,包括对抢答器的计时、抢答器的灵敏度和稳定性等方面进行测试。根据测试结果,对抢答器进行优化和改进,以提高其性能和使用效果。 综上所述,数字式竞赛抢答器的课程设计是基于FPGA实现的三人抢答器电路设计,包括VHDL代码编写、软件编程、硬件连接和系统测试等方面。通过这个课程设计,可以加深对数字电路和FPGA编程的理解和掌握,提高学生的实际动手能力和创新能力。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月月如常

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值