✅ 操作成功!

篮球记分牌

发布时间:2023-06-06 作者:admin 来源:文学

篮球记分牌

篮球记分牌

反稀释条款-生女儿的祝福语

2023年2月20日发(作者:宝贝成长记录)

一设计思路分析

篮球比赛计时记分系统程序多而且复杂,所以用图形设计方法来设计。先把每一模块的程序写好,

然后生成图形文件,最后新建一个顶层图形文件,把各模块联结起来。包括的模块有分频模块、计时模

块、记分模块、脉冲产生模块、滤波模块、选择模块、声光显示模块,显示模块及消抖模块等。

程序总体框图为:

二单元电路设计

2.112进制减法计数器

这个计数器用来表示每一节比赛的分钟位,它的时钟脉冲应由前一个60进制计数器

的CO提供。具备复位功能。可以将12进制改为任意进制的减法计数器。当计数结束后,

计数器不再计数。

当CO有效时进行减法计数,当计数器减到0之,SO输出一个高电平。EN等于1

显示电路

5

60

24

99

99

数据选择器

时钟脉冲

2

时计数器复位,当C05等于1时实现比赛加时操作。

生成元件图:

CO

C05

EN

GE[3..0]

SHI[3..0]

SO

C12

inst

仿真波形图:

2.260进制减法计数器

这个计数器用来表示每一节比赛的秒钟位。要求在完成12个60进制的计数后,计

数器不再计数。具备清零、暂停以及复位的功能。

当CLK有效时进行减法计数,CLR等于1时整个计数器清零,EN等于1时计数器

复位,PAUSE等于1时计数器暂停计数,。当计数器减到0之,CO输出一个高电平。

生成元件图:

3

CLK

PAUSE

SO

EN

CLR

GE[3..0]

SHI[3..0]

CO

OUT1

C60

inst

仿真波形图:

2.399进制可逆计数器

这个计数器用来表示比赛球队分别的得分。当S出现上升沿时开始记分,CLR等于

1时整个计数器清零。

生成元件图:

S

CLR

GE[3..0]

SHI[3..0]

SCORE

inst

仿真波形如下:

4

2.61对2数据选择器

由于比赛两方的比分不尽相同,所以用一个数据选择器来正确的给某一方加分。

当按下P4时,给A队加分,A的输出为CO;

当再次按下P4时,给B队加分,B的输出为CO。

程序流程图:

生成元件图:

CO

P4

A

B

LED_A

LED_B

SE_2

inst1

仿真波形如下:

5

2.7脉冲产生器

由于比赛的得分分别为1分,2分,3分。所以对应的,当得分为1时,应

当产生1个脉冲,当得分为2时,产生2个脉冲,以此类推。

在输入信号CLK存在的情况下,当P1为高电平,则CO产生1个脉冲信

号。P2为高电平,产生2个脉冲信号。P3为高电平,产生3个脉冲信号。

生成元件图

CLK

P1

P2

P3

CO

POINT

inst

仿真波形如下:

2.8滤波模块

从脉冲产生器仿真的波形图看出,输出脉冲会有毛刺,所以加一个滤波模

块,用以消除毛刺。

如果高电平持续时间大于某一数值,则判定为是一个脉冲,否则判定为毛

刺。

LIBRARYIEEE;

6

_LOGIC_;

_LOGIC_;

ENTITYLBIS

PORT(CLK_50MHZ:INSTD_LOGIC;

OUT2:OUTSTD_LOGIC;

CO:INSTD_LOGIC);

END;

ARCHITECTUREONEOFLBIS

SIGNALQQ:INTEGERRANGE25000000DOWNTO0;

BEGIN

PROCESS(CLK_50MHZ)

BEGIN

IFCLK_50MHZ'EVENTANDCLK_50MHZ='1'THEN

IFCO='1'THEN

QQ<=QQ+1;

ELSE

QQ<=0;

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(QQ)

BEGIN

IFQQ>125500THEN

7

OUT2<='1';

ELSE

OUT2<='0';

ENDIF;

ENDPROCESS;

END;

生成元件图:

CLK_50MHZ

CO

OUT2

LB

inst

2.9声光显示模块

上半场计时中,上半场指示灯亮,时间到,输出3s的声光提示,下半

场指示灯亮,时间到,输出5s的声光提示。

2.9.1上下半场指示

程序流程图:

生成元件图:

CO

SO

RST

EN

SHANG

XIA

LED_XIA

LED_SHANG

LED_SHOW

inst

8

仿真波形图:

2.9.2上半场声光提示

SHANG

CLK_5MS

BOOM

LED

SHANG

inst1

2.9.3下半声声光提示

XIA

CLK_5MS

BOOM

LED

XIA

inst

9

2.10显示模块

由于试验箱采用动态显示,所以需要将BCD码转换成段码和位码。

D0到D7分别表示8个LED管。

程序可以表示为:

LIBRARYIEEE;

_LOGIC_;

_LOGIC_;

ENTITYDISPIS

PORT(CLK:INSTD_LOGIC;

m_ge,m_shi,f_ge,f_shi,a_ge,a_shi,b_ge,b_shi:INSTD_LOGIC_VECTOR(3

DOWNTO0);

sel:OUTSTD_LOGIC_VECTOR(7DOWNTO0);

LED7S:OUTSTD_LOGIC_VECTOR(6DOWNTO0));

END;

ARCHITECTUREONEOFDISPIS

SIGNALQQ:INTEGERRANGE25000000DOWNTO0;

SIGNALCLK2:STD_LOGIC;

SIGNALQ:STD_LOGIC_VECTOR(3DOWNTO0);

signalsel1:STD_LOGIC_VECTOR(2DOWNTO0);

10

BEGIN

PROCESS(CLK)--数码管扫描分频

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IFQQ<25000THEN

QQ<=QQ+1;

ELSE

QQ<=0;

CLK2<=NOTCLK2;

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(CLK2)--扫描数码管选择

BEGIN

IFCLK2'EVENTANDCLK2='1'THEN

sel1<=sel1+1;

ENDIF;

ENDPROCESS;

PROCESS(sel1)--Q值选择,数码管显示选择

BEGIN

CASEsel1IS

WHEN"000"=>Q<=m_ge;sel<="00000001";

WHEN"001"=>Q<=m_shi;sel<="00000010";

WHEN"010"=>Q<=f_ge;sel<="00000100";

WHEN"011"=>Q<=f_shi;sel<="00001000";

11

WHEN"100"=>Q<=a_ge;sel<="00010000";

WHEN"101"=>Q<=a_shi;sel<="00100000";

WHEN"110"=>Q<=b_ge;sel<="01000000";

WHEN"111"=>Q<=b_shi;sel<="10000000";

WHENOTHERS=>NULL;

ENDCASE;

ENDPROCESS;

PROCESS(Q)--数码管显示

BEGIN

CASEQIS

WHEN"0000"=>LED7S<="1000000";

WHEN"0001"=>LED7S<="1111001";

WHEN"0010"=>LED7S<="0100100";

WHEN"0011"=>LED7S<="0110000";

WHEN"0100"=>LED7S<="0011001";

WHEN"0101"=>LED7S<="0010010";

WHEN"0110"=>LED7S<="0000010";

WHEN"0111"=>LED7S<="1111000";

WHEN"1000"=>LED7S<="0000000";

WHEN"1001"=>LED7S<="0010000";

WHENOTHERS=>NULL;

ENDCASE;

ENDPROCES

👁️ 阅读量:0