篮球比赛数字记分牌
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广西科技大学(筹)
课程设计说明书
课题名称篮球比赛数字记分牌
系别职业技术教育学院
专业电子信息工程
班级电子Z102班
学号孙思(201002203092)
池亮(201002203090)
李友军(201002203079)学生姓名孙思池亮李友军
指导教师廖贵成
摘要:
随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的电子产品开始进入人们的生活。数字记分牌就是这样的一款电子产品,它的出现代替了记分员手动翻动记分牌积分的繁琐劳动,使各种比赛进入了智能、高效、精准的人机互动时代,在体育比赛中具有重要意义。
我们本次设计的项目是篮球比赛数字记分牌,用于对篮球比赛的比赛双方实时积分。基于篮球比赛的特点,我们选取了专门的设计方案,用vhdl设计数字电路,用三个LED数码管显示比赛一方的得分,记分员可根据现场比赛得分情况实时记录各队的得分,并及时反馈到LED数码管上。
关键词:篮球比赛数字记分牌vhdl LED数码管
目录
一、前言 (4)
二、设计要求 (4)
三、设计内容 (4)
1、基本原理 (4)
2、功能描述 (5)
3.程序设计 (5)
3.1 vhdl源代码...................................................................................................... 5-8 3.2 vhdl源代码分析 .......................................................................................................... 8-9
4、仿真结果 ................................................................................................................................. 9-10
四、总结............................................................................................................................. 11-12
五、参考文献 (12)
一、前言
数字记分牌在许多领域中得到普遍应用,在体育比赛、各种现场抢答比赛、各种互动游戏中均能见其身影。在篮球比赛中,若采用人工计分的方法势必非常繁琐且错误率高,而采用数字记分牌就能高效的解决这一问题,由此可见计分牌在现代社会的各个领域的重要作用。这次设计是一个难得的机会,也将成们为大学四年中十分宝贵的经历,它既是对我们所学理论知识的一次有效检验,也是对我们的实践认识和能力的一次提高,通过这次数字逻辑实训设计,我们相信对本专业的兴趣会更加浓厚,对本专业知识有更深的了解。
二、设计要求
(1)分别记录两队得分情况;
(2)进球得分加2分,罚球进球得分加1分;
(3)纠正错判得分减2分或1分;
(4)分别用三个数码管显示器记录两队的得分情况。
三、设计内容
1、基本原理
题目中要分别用三个数码管来记录两队的得分情况,需要用到的模块有:可逆加法器、译码器、数码管。
现用vhdl编写可逆加法器和译码器的源代码,将其整合为一个模块,其符号图见下图:
图1-1
2、功能描述
输入端:
clk:控制时钟
clr:实现数码管异步清零,clr为高电平时,三个数码管数据自动归零,clr 为低电平是,三个数码管进行正常的加减计数;
a2:实现进球加2分功能;
a1:实现罚球进球加1分功能;
d2:实现纠正错判减2分功能;
d1:实现纠正错判减1分功能;
输出端:
ym4_1:作为个位数数码管译码输入信号;
ym4_2:作为十位数数码管译码输入信号;
ym4_3:作为百位数数码管译码输入信号;
3、程序设计
3.1 vhdl源代码
LIBRARY ieee;
use ieee.std_logic_1164.all; (1)
use ieee.std_logic_arith.all; (2)
use ieee.std_logic_unsigned.all; (3)
ENTITY s IS (4)
PORT(clk : in std_logic; (5)
clr : in std_logic; (6)
a1 : in std_logic; (8)
d2 : in std_logic; (9)
d1: in std_logic; (10)
ym4_1 : out std_logic_vector(3 downto 0); (11)
ym4_2 : out std_logic_vector(3 downto 0); (12)
ym4_3 : out std_logic_vector(3 downto 0)); (13)
End s ; (14)
ARCHITECTURE arch OF s IS (15)
signal Q1 : std_logic_vector(3 downto 0); (16)
signal Q2 : std_logic_vector(3 downto 0); (17)
signal Q3 : std_logic_vector(3 downto 0); (18)
signal temp: std_logic; (19)
signal en: std_logic; (20)
begin (21)
process(clk,clr) (22)
begin (23)
if clr='0' then (24)
Q1 <= "0000"; (25)
Q2 <= "0000"; (26)
Q3 <= "0000"; (27)
elsif clk'event and clk='1' then (28)
if a2 ='1' and a2=not(temp) then (29)
en<='1'; (30)
Q1 <= Q1+"0010"; (31)
if Q1="1000" then (32)
Q1 <= "0000"; (33)
Q2 <= Q2+1; (34)
if Q2="1001" then (35)
Q2 <= "0000"; (36)
Q3 <= Q3+1; (37)
end if; (38)
elsif Q1="1001" then (39)
Q1 <= "0001"; (40)
Q2 <= Q2+1; (41)
if Q2="1001" then (42)
Q2 <= "0000"; (43)