1、篮球比赛电子记分牌设计一 设计思路分析篮球比赛计时记分系统程序多而且复杂,所以用图形设计方法来设计。先把每一模块的程序写好,然后生成图形文件,最后新建一个顶层图形文件,把各模块联结起来。包括的模块有分频模块、计时模块、记分模块、脉冲产生模块、滤波模块、选择模块、声光显示模块,显示模块及消抖模块等。 程序总体框图为:二 单元电路设计2.1 12进制减法计数器这个计数器用来表示每一节比赛的分钟位,它的时钟脉冲应由前一个60进制计数器的CO提供。具备复位功能。可以将12进制改为任意进制的减法计数器。当计数结束后,计数器不再计数。当CO有效时进行减法计数,当计数器减到0之,SO输出一个高电平。EN等于
2、1时计数器复位,当C05等于1时实现比赛加时操作。生成元件图:仿真波形图:2.2 60进制减法计数器这个计数器用来表示每一节比赛的秒钟位。要求在完成12个60进制的计数后,计数器不再计数。具备清零、暂停以及复位的功能。当CLK有效时进行减法计数,CLR等于1时整个计数器清零,EN等于1时计数器复位,PAUSE等于1时计数器暂停计数,。当计数器减到0之,CO输出一个高电平。生成元件图:仿真波形图:2.3 99进制可逆计数器 这个计数器用来表示比赛球队分别的得分。当S出现上升沿时开始记分,CLR等于1时整个计数器清零。生成元件图:仿真波形如下:2.6 1对2数据选择器由于比赛两方的比分不尽相同,所
3、以用一个数据选择器来正确的给某一方加分。当按下P4时,给A队加分,A的输出为CO;当再次按下P4时,给B队加分,B的输出为CO。程序流程图:生成元件图:仿真波形如下: 2.7 脉冲产生器 由于比赛的得分分别为1分,2分,3分。所以对应的,当得分为1时,应当产生1个脉冲,当得分为2时,产生2个脉冲,以此类推。在输入信号CLK存在的情况下,当P1为高电平,则CO产生1个脉冲信号。P2为高电平,产生2个脉冲信号。P3为高电平,产生3个脉冲信号。生成元件图仿真波形如下:2.8 滤波模块从脉冲产生器仿真的波形图看出,输出脉冲会有毛刺,所以加一个滤波模块,用以消除毛刺。如果高电平持续时间大于某一数值,则判
4、定为是一个脉冲,否则判定为毛刺。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY LB ISPORT(CLK_50MHZ:IN STD_LOGIC; OUT2:OUT STD_LOGIC; CO:IN STD_LOGIC); END;ARCHITECTURE ONE OF LB ISSIGNAL QQ:INTEGER RANGE 25000000 DOWNTO 0; BEGIN PROCESS(CLK_50MHZ) BEGIN IF CLK_50MHZEVENT AND CLK_50M
5、HZ=1 THEN IF CO=1 THEN QQ=QQ+1; ELSE QQ125500 THEN OUT2=1; ELSE OUT2=0; END IF; END PROCESS;END;生成元件图:2.9 声光显示模块上半场计时中,上半场指示灯亮,时间到,输出3s的声光提示,下半场指示灯亮,时间到,输出5s的声光提示。2.9.1 上下半场指示程序流程图:生成元件图:仿真波形图:2.9.2 上半场声光提示2.9.3 下半声声光提示2.10 显示模块由于试验箱采用动态显示,所以需要将BCD码转换成段码和位码。D0到D7分别表示8个LED管。程序可以表示为:LIBRARY IEEE;USE I
6、EEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DISP ISPORT(CLK:IN STD_LOGIC; m_ge,m_shi,f_ge,f_shi,a_ge,a_shi,b_ge,b_shi:IN STD_LOGIC_VECTOR(3 DOWNTO 0); sel:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END;ARCHITECTURE ONE OF DISP ISSIGNAL QQ:INTEGER RANGE
7、 25000000 DOWNTO 0;SIGNAL CLK2:STD_LOGIC;SIGNAL Q:STD_LOGIC_VECTOR(3 DOWNTO 0);signal sel1:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN PROCESS(CLK)-数码管扫描分频 BEGIN IF CLKEVENT AND CLK=1 THEN IF QQ25000 THEN QQ=QQ+1; ELSE QQ=0; CLK2=NOT CLK2; END IF; END IF; END PROCESS; PROCESS(CLK2)-扫描数码管选择 BEGIN IF CLK2EVENT AND CLK2=1 THEN sel1Q=m_ge; selQ=m_shi;selQ=f_ge; selQ=f_shi;selQ=a_ge; selQ=a_shi;selQ=b_ge; selQ=b_shi;selNULL; END CASE; END PROCESS; PROCESS(Q)-数码管显示 BEGIN CASE Q IS WHEN 0000=LED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SNULL; END CASE; END PROCES
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1