篮球比赛电子记分牌设计_第1页
篮球比赛电子记分牌设计_第2页
篮球比赛电子记分牌设计_第3页
篮球比赛电子记分牌设计_第4页
篮球比赛电子记分牌设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、长 沙 学 院课程设计说明书题目 篮球比赛电子记分牌设计目 录一、课题名称3二、设计内容3三、设计思路31、整体设计思路:32、整体设计流程:3四、设计说明41、设计程序42、引脚分配设置:103、功能描述11五、设计心得12六、参考文献12一、 课题名称篮球比赛电子记分牌设计二、设计内容设计一个篮球比赛记分牌,使用4位数码管显示倒计时的分钟、秒钟值;2位数码管显示A方得分;2位数码管显示B方得分;使用LED灯作为上、下半场的标志;单次加分值包括1分、2分和3分;半场时间到输出3秒的声光提示;可进行比赛暂停、比赛加时等操作;终场时间到输出5秒的声光提示。三、设计思路1、整体设计思路:根据设计内

2、容,可将设计将分为五个模块来设计:分频计数模块、时间模块、加分模块、动态扫描显示模块、LED灯模块。2、整体设计流程: (1)、分频计数模块:通过分频模块,将试验箱自带的50MHZ的频率分频得到1MZ以及1HZ的频率 (2)、时间模块:将计时器的分钟、秒钟,通过借位的方式设计成40分钟的倒计时时钟 (3)、加分模块:通过拨盘开关的选择,输入A、B队的比赛得分 (4)、动态扫面显示模块:通过1MHZ的频率,将时间以及A、B队的比赛得分同时扫描显示在数码管上 (5)、LED灯模块:对上下场的显示,以及比赛结束的灯亮延长显示四、设计说明1、 设计程序library ieee;use ieee.std

3、_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity baseketball isport(clk:in std_logic;start,addtime,add1_A,add2_A,add3_A,add1_B,add2_B,add3_B:in std_logic;-AB dui jia fen xin hao -比赛开始,A.B队加分信号 stop:in std_logic; -比赛暂停led7s_selout:out std_logic_vector(7 downto 0); -

4、数码管位选 led7s:out std_logic_vector(6 downto 0); -7 段数码显示管led_up:out std_logic; -上半场亮灯显示led_down:out std_logic; -下半场亮灯显示led_h_end:out std_logic; -半场结束延时亮灯输出 led_f_end:out std_logic); -全场结束延时亮灯输出end;architecture one of baseketball isconstant time_m :integer:=9; -时间分位初始化constant time_s :integer:=59; -时间秒

5、位初始化signal time_m0:integer range 0 to 9; -分位时间范围signal time_s0:integer range 0 to 59; -秒位时间范围signal cout_A,cout_B:integer range 0 to 99;- 比分计数范围signal clk0_1,clk0_1M:std_logic; -1HZ1MHZ 信号signal q0_1:integer range 0 to 24999999; -1HZ 分频计数范围 signal q0_1M:integer range 0 to 25; -1MHZ 分频计数范围signal half

6、_end,full_end,add_end:std_logic;- 上下半场结束信号signal r,a,b,c,d,e,f,g,h:integer range 0 to 9;-扫描显示加载信号signal q1:integer range 0 to 7; -动态扫描显示信号范围signal q_3:integer range 0 to 3; -s半场比赛结束延时提示signal q_5:integer range 0 to 5; -全场比赛结束延时提示signal q_t_m:integer range 0 to 1; -秒借位 signal q_t_s:integer range 0 to

7、 1; -分借位beginprocess(clk) - 1MHZ 频率beginif clk'event and clk='1' thenif q0_1M=25 thenq0_1M<=0;clk0_1M<=not clk0_1M;else q0_1M<=q0_1M+1;end if;end if;end process;process(clk) - 1HZ 频率beginif clk'event and clk='1' thenif q0_1=24999999 thenq0_1<=0;clk0_1<=not clk0

8、_1;elseq0_1<=q0_1+1;end if;end if;end process;process(clk0_1,clk) - 时间模块beginif clk0_1'event and clk0_1='1' thenif start='1' thenif half_end='0' and full_end='0' thentime_s0<=time_s;led_up<='1'if time_m0=0 and time_s0=0 thentime_m0<=time_m;led_

9、up<='0'half_end<='1'elsif time_s0=0 thenq_t_m<=1;time_m0<=time_m0-q_t_m;elseq_t_s<=1;time_s0<=time_s0-q_t_s;end if;end if;if half_end='1' and full_end='0' thentime_s0<=time_s;led_down<='1'if time_m0=0 and time_s0=0 thentime_m0<=time_

10、m;led_down<='0'full_end<='1'elsif time_s0=0 thenq_t_m<=1;time_m0<=time_m0-q_t_m;elseq_t_s<=1;time_s0<=time_s0-q_t_s;end if;end if;end if;if addtime='1' and full_end='1' then-比赛计时if add_end='0' thentime_s0<=time_s;if time_m0=0 and time_s0=0

11、 thentime_m0<=time_m;add_end<='1'elsif time_s0=0 thenq_t_m<=1;time_m0<=time_m0-q_t_m;elseq_t_s<=1;time_s0<=time_s0-q_t_s;end if;end if;end if;if stop='1' thenhalf_end<='0'full_end<='0'add_end<='0'end if;end if;end process;process(add

12、1_A,add2_A,add3_A) -A 对加分模块beginif add1_A='1' thencout_A<=cout_A+1;end if;if add2_A='1' thencout_A<=cout_A+2;end if;if add3_A='1' thencout_A<=cout_A+3;end if;if stop='1' thencout_A <=0;end if;end process;process(add1_B,add2_B,add3_B) -B对加分模块beginif add1_B=

13、'1' thencout_B<=cout_B+1;end if;if add2_B='1' thencout_B<=cout_B+2;end if;if add3_B='1' thencout_B<=cout_B+3;end if;if stop='1' thencout_B <=0;end if;end process;process(clk0_1M,q1) beginif clk0_1M'event and clk0_1M='1' thenif q1=7 thenq1<=0

14、;else q1<=q1+1;end if;end if;end process;process(q1,a,b,c,d,e,f,g,h) -动态扫描显示模块begina<=time_m0/10;b<=time_m0 rem 10;c<=time_s0/10;d<=time_s0 rem 10;e<=cout_A/10;f<=cout_A rem 10;g<=cout_B/10;h<=cout_B rem 10;case q1 iswhen 0 => led7s_selout<="00000001" r<

15、=a;when 1 => led7s_selout<="00000010" r<=b;when 2 => led7s_selout<="00000100" r<=c;when 3 => led7s_selout<="00001000" r<=d;when 4 => led7s_selout<="00010000" r<=e;when 5 => led7s_selout<="00100000" r<=f;wh

16、en 6 => led7s_selout<="01000000" r<=g;when 7 => led7s_selout<="10000000" r<=h;when others => null;end case;end process;process(r)begincase r iswhen 0=>led7s<="1000000"when 1=>led7s<="1111001"when 2=>led7s<="0100100&q

17、uot;when 3=>led7s<="0110000"when 4=>led7s<="0011001"when 5=>led7s<="0010010"when 6=>led7s<="0000010"when 7=>led7s<="1111000"when 8=>led7s<="0000000"when 9=>led7s<="0010000"when others =>

18、; null;end case;end process;process(clk0_1,half_end,full_end) -上下半场灯亮延时提示beginif clk0_1'event and clk0_1='1' thenif half_end='1' thenif q_3=3 thenled_h_end<='0'else q_3<=q_3+1;led_h_end<='1'end if;end if;if full_end='1' thenif q_5=5 thenled_f_end&

19、lt;='0'else q_5<=q_5+1;led_f_end<='1'end if;end if;if stop='1' thenq_3<=0;q_5<=0;end if;end if;end process;end;2、 引脚分配设置:3、 功能描述加载程序至试验箱,打开拨盘开关1,比赛开始,LED灯1灭,进行上半场比赛,8个数码显示管依次显示09590000,比赛时间一共10分钟,前四位为时间显示每一秒减计数一次;第五位和第六位为A对比赛分值,当拨动拨盘开关3、4、5时,数码管相应显示加1分、2分、3分;第七位和第八位为B对比赛分值,当拨动拨盘开关6、7、8时,数码管相应显示加1分、2分、3分;打开把盘开关2,比赛暂停,恢复以后比赛继续进行。当上半场结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论