篮球记分牌verilog设计说明

合集下载

篮球计分器FPGA附程序

篮球计分器FPGA附程序

单片机接口实验篮球计分器的设计**: ***班级: 14级12班学号: ********** **: ***专业: 控制科学与工程成绩评定学生:苗茂宇学号:**********学生:苗茂宇学号:1408202007 目录摘要 (1)Abstract (1)1. FPGA及系统设计概述 (2)1.1. EDA简介 (2)1.1.1. EDA定义 (2)1.1.2. EDA发展概述 (2)1.1.3. HDL概述 (2)1.1.4. 总结 (3)1.2. FPGA简介 (3)1.2.1. FPGA概述 (3)1.2.2. FPGA原理 (4)1.3. LCD1602 (4)1.4. 产品现状及发展 (5)1.5. 总体设计要求 (5)1.5.1. 设计流程 (5)1.5.2. 设计要求 (5)1.6. 本章小结 (6)2. 实验方案设计 (6)2.1. 分频模块 (6)2.2. 计时模块 (7)2.3. 24秒计时模块 (9)2.4. 计分模块 (10)2.5. lcd驱动模块 (11)2.6. 本章小结 (17)3. 实验结论 (17)4. 结束语 (18)参考文献 (19)附录 1 (20)摘要FPGA(现场可编程逻辑器件)以其体积小、功耗低、稳定性高等优点被广泛应用于各类电子产品的设计中。

FPGA是基于硬件可编程的器件,设计者需要掌握硬件描述语言,Verilog HDL就是一种硬件描述语言。

Verilog HDL语言是在C 语言的基础上发展而来的,语法结构上与C语言有很多相似之处,继承了C语言的语法结构,但是其与C语言有着本质上的区别。

本设计是基于FPGA的篮球计时计分系统的设计,结合篮球比赛的实际过程,对系统进行了模块化设计,最终组合调试。

硬件实验表明本系统计时计分准确,实时性好,能够很好的反应比赛进度,此次设计达到了设计预期。

关键词:FPGA;Verilog HDL;计时计分;模块化AbstractFPGA (field programmable logic device) with its small size, low power consumption, high stability has been widely used in various types of electronic products design. FPGA is a programmable device based on hardware, designers need to master the hardware description language, Verilog HDL is a hardware description language. Verilog HDL language is developed on the basis of C language, grammar structure and C language have many similarities, inherited the grammar structure of C language and C language, but there's a difference between. This design is the designof FPGA basketball timing and scoring system based on the actual process, combined with the game of basketball, the system of modular design, the final assembly debugging. Hardware experiments show that the system timing accuracy, goodreal-time performance, can very good response competition schedule, the design achieves the expected design.Keywords: FPGA;Verilog HDL ; timing and scoring; modular1.FPGA及系统设计概述1.1.E DA简介1.1.1.EDA定义EDA是电子设计自动化(Electronic Design Automation)的缩写。

毕业设计篮球记分牌设计说明

毕业设计篮球记分牌设计说明

工业大学华德应用技术学院毕业设计(论文)题目专业班号学生姓名指导教师答辩日期哈工大华德学院毕业设计(论文)评语:学号:专业:毕业设计(论文)题目:篮球计分牌设计工作起止日期:2010 年3 月24日起 2010 年5 月31日止指导教师对毕业设计(论文)进行情况,完成质量及评分意见:___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ________________________________________________________指导教师签字:指导教师职称:评阅人评阅意见:___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ _______________________________________________________________________ _____________________________________________________________评阅教师签字:_______________ 评阅教师职称:_______________答辩委员会评语:________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________根据毕业设计(论文)的材料和学生的答辩情况答辩委员会作出如下评定:学生毕业设计(论文)答辩成绩评定为:对毕业设计(论文)的特殊评语:________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________答辩委员会主任(签字):职称:________________答辩委员会副主任(签字):答辩委员会委员(签字):___________ ___________ ___________ __________ __________ ___________ ___________ ___________ __________ __________ ___________ ___________年月日摘要单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。

篮球计分器的课程设计fpga

篮球计分器的课程设计fpga

篮球计分器的课程设计fpga一、教学目标本课程的目标是让学生了解和掌握篮球计分器的设计与实现,通过学习FPGA 的相关知识,培养学生运用数字电路设计实际应用系统的能力。

具体的教学目标包括:1.知识目标:使学生了解FPGA的基本结构和工作原理,掌握VHDL或Verilog硬件描述语言,了解数字电路设计的基本方法。

2.技能目标:培养学生能够运用FPGA设计简单的数字电路系统,如篮球计分器,并能进行相关的编程和调试。

3.情感态度价值观目标:培养学生对新技术的敏感性和好奇心,增强学生运用科学知识解决实际问题的能力,提高学生团队合作和沟通的能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.FPGA基础知识:介绍FPGA的基本结构、工作原理和编程方法。

2.数字电路设计:介绍数字电路的基本设计方法,包括组合逻辑电路、时序逻辑电路等。

3.硬件描述语言:介绍VHDL和Verilog硬件描述语言的基本语法和使用方法。

4.篮球计分器设计:通过设计一个简单的篮球计分器,使学生能够综合运用所学知识解决实际问题。

三、教学方法为了达到上述教学目标,我们将采用以下教学方法:1.讲授法:用于讲解FPGA的基础知识、数字电路设计和硬件描述语言的相关概念。

2.案例分析法:通过分析具体的篮球计分器设计案例,使学生能够将理论知识应用到实际问题中。

3.实验法:安排实验室实践环节,让学生亲自动手进行篮球计分器的设计和调试,增强学生的实践能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选择合适的FPGA教材,用于引导学生学习相关知识。

2.多媒体资料:制作课件和教学视频,帮助学生更直观地理解教学内容。

3.实验设备:提供FPGA开发板和相关的实验设备,让学生能够在实验室进行实际操作。

五、教学评估本课程的评估方式包括平时表现、作业、考试等多个方面,以全面、客观、公正地评价学生的学习成果。

具体评估方式如下:1.平时表现:通过课堂参与、提问、小组讨论等形式的评估,考察学生的学习态度和积极性。

单片机篮球记分牌

单片机篮球记分牌

注:实际产品需要增加时钟、复位电路。

#include "reg51.h" //51头文件#define KEY_IO P0 //键盘接口#define Lcd_Port P2 //定义数据端口sbit Lcd_RS = P3^5; //定义和LCD的连接端口,写数据指令端口sbit Lcd_RW = P3^6; //读写端口sbit Lcd_E = P3^7; //使能端口sbit Lcd_Busy = P2^7; //读忙端口char aa[10]={'0','1','2','3','4','5','6','7','8','9'};int score_a=0,score_b=0; //用于存储双方比分char dis_buff[4]={'0','0','0','0'}; //用于存放两队比分的十位、个位int temp,keytemp1,keytemp2; //临时变量//延时函数void delay(int t){int i,j; //延时变量for(i=0;i<t;i++) //t表示循环次数for(j=0;j<100;j++);}// 读忙信号判断void Read_Busy(void){int k=255;Lcd_Port=0xff;Lcd_RS = 0;Lcd_RW = 1;Lcd_E = 1;while((k--)&&(Lcd_Busy));Lcd_E = 0;}// 写指令函数void Write_Comm(int lcdcomm){Read_Busy( ); //先读忙Lcd_RS = 0; //端口定义为写指令Lcd_RW = 0; //端口写入使能Lcd_E = 1; //端口输入总使能Lcd_Port=lcdcomm; //数据端送指令Lcd_E = 0; //端口输入总禁止}//写数据函数void Write_Chr(int lcddata){Read_Busy( ); //先读忙Lcd_RS = 1; //端口写数据使能Lcd_RW = 0; //端口写入使能Lcd_E = 1; //端口总输入使能Lcd_Port = lcddata; //数据端口送数据Lcd_E = 0; //端口总输入禁止}//初始化LCDvoid Init_LCD(void){delay(2); //稍微延时,等待LCD进入工作状态 Write_Comm(0x38); //8位2行5*8Write_Comm(0x0c); //显示开/关,光标开闪烁开Write_Comm(0x01); //清显示Write_Comm(0x06); //文字不动,光标右移Write_Comm(0x02); //光标归位}//LED显示动态扫描函数void display(){dis_buff[0]=score_a/10; //送score_a的十位到显示数组里面dis_buff[1]=score_a%10; //送score_a的个位到显示数组里面dis_buff[2]=score_b/10; //送score_b的十位到显示数组里面dis_buff[3]=score_b%10; //送score_b的个位到显示数组里面Write_Comm(0x83); //确定显示位置,第1行第3列Write_Chr('T');Write_Chr('e');Write_Chr('a');Write_Chr('m');Write_Chr(' ');Write_Chr('A');Write_Chr(':');Write_Chr(' ');Write_Chr(aa[dis_buff[0]]); //送显A队比分十位Write_Chr(aa[dis_buff[1]]); //送显A队比分个位Write_Comm(0xC3); //确定显示位置,第2行第3列Write_Chr('T');Write_Chr('e');Write_Chr('a');Write_Chr('m');Write_Chr(' ');Write_Chr('B');Write_Chr(':');Write_Chr(' ');Write_Chr(aa[dis_buff[2]]); //送显B队比分十位Write_Chr(aa[dis_buff[3]]); //送显B队比分个位}//外部中断0中断服务子函数void ext0(void) interrupt 0 using 0 //通过与门触发中断来扫描按键{EX0=0; //关闭外部中断KEY_IO=0x03; //反转法第一步,置键盘接口0000 0011 keytemp1=(~KEY_IO)&0x03; //临时存储按键行状态到keytemp1低4位 delay(1);KEY_IO=0xF0; //反转法第二步,置键盘接口1111 0000 keytemp2=(~KEY_IO)&0xF0; //临时存储按键列状态到keytemp2高4位 temp= keytemp1|keytemp2; //将按键行列号存入tempswitch(temp) //根据按键行列号判断{case 0x11: //按键在第1行第1列score_a++; //A队比分加1if(score_a==100)score_a=99;break;case 0x21: //按键在第1行第2列score_a+=2; //A队比分加2if(score_a>=100)score_a=99;break;case 0x41: //按键在第1行第3列score_a+=3; //A队比分加3if(score_a>=100)score_a=99;break;case 0x81: //按键在第1行第4列if(score_a!=0)score_a--; //A队比分减1break;case 0x12: //按键在第2行第1列score_b++; //B队比分加1if(score_b==100)score_b=99;break;case 0x22: //按键在第2行第2列score_b+=2; //B队比分加2if(score_b>=100)score_b=99;break;case 0x42: //按键在第2行第3列score_b+=3; //B队比分加3if(score_b>=100)score_b=99;break;case 0x82: //按键在第2行第4列if(score_b!=0)score_b--; //B队比分减1break;}do //等待按键释放,防止按键抖动{KEY_IO=0x03;temp=(~KEY_IO)&0x03;}while(temp!=0);}//主函数void main(){Init_LCD( );EA=1; //开全局中断EX0=1; //开外部中断0IT0=0; //外部中断0低电平触发while(1){KEY_IO=0x03; //赋初值0000 0011display(); //送显EX0=1; //开外部中断0,即可以按键扫描 }}。

【免费】-》基于FPGA的篮球计时计分器的设计与实现

【免费】-》基于FPGA的篮球计时计分器的设计与实现

收稿日期:2010209210通讯作者:唐庭龙(1979-),男,讲师,硕士,主要研究方向为信号与信息处理.E 2mail :tangtinglong @基于FPGA 的篮球计时计分器的设计与实现唐庭龙1 陆 酉2(1.三峡大学计算机与信息学院,湖北宜昌 443002;2.武汉供电公司,武汉 430064)摘要:提出了基于FP GA (Field Programmable Gate Array )的篮球计时计分器的设计方案,并使用Quart us II 软件和V HDL 语言(Very High Speed Integrated Circuit Hardware Description Lan 2guage )实现了相关设计.采用计数的方法设计了计时器模块、计分器模块,结合7段数码管动态显示原理及1602液晶控制方法设计了显示模块.经过仿真及下载验证得到以下结果:计时器完成了篮球比赛4节12min 的倒计时,一次进攻时间24s 的计时;计分器实现了甲乙两队加分,分数调整的功能;显示部分完成了时间、比分的显示等.以上结果符合设计要求.关键词:篮球计时计分器; FP GA ; V HDL 中图分类号:TP391 文献标识码:A 文章编号:16722948X (2010)0620080204Design and R ealization of B asketball Timing and Scoring Device B ased on FPGATang Tinglong 1 L u Y ou 2(1.College of Comp uter &Information Technology ,China Three G orges Univ.,Yichang 443002,China ;2.Wuhan Elect ric Power Company ,Wuhan 430064,China )Abstract Based o n FP GA (Field Programmable Gate Array ),a scheme of scoring and timing device used in basket ball games is designed .The system is written by V HDL (Very High Speed Integrated Circuit Hardware Description Language )and accomplished by Quart us II.Three part s are included ,as well as t he timing mod 2ule and t he scoring module are based on met hod of counter ,t he display module is based on 72segment numeric L ED (Light Emitting Diode )and 1602L CD (Liquid Crystal Display ).The result s show t hat t he timing module can countdown f rom t he 12t h minute in t he four quarters of t he game and 24seconds of each round ,and t he scoring module can record point s of bot h teams and adjust t he result ;t he display module can show t he time and t he game scores.The design result s indicated t he scheme is feasible and correct.K eyw ords basket ball timing and scoring device ; FP GA ; V HDL 篮球比赛中,计时计分系统主要完成对比赛过程中出现的时间,比分等数据进行快速采集记录,加工处理以及显示,其对实时性、准确性以及现场效果具有一定的要求.随着FP GA 技术的发展与价格的降低,其运算速度快,管脚资源丰富,便于实现复杂的逻辑功能等优势在电子系统设计中逐渐显现.文章基于FP GA 设计并实现了满足NBA 规则基本要求的一种篮球计时计分器,具有数据处理稳定,速度快,实时性强,电路简单,便于二次开发与扩展等特点.1 总体设计该篮球计时计分系统总体上分为5个模块,功能框图如图1所示:其中,系统时钟提供其它主要模块所需的各种时钟信号;按键去抖模块处理按键的抖动;计时模块包括每节比赛的12min ,以及每次进攻的24s 计时;计分(比分)模块实现双方得分的统计,以及每次得分后,24s 计数器的清零;显示模块包括18第32卷 第6期 唐庭龙等 基于FP GA的篮球计时计分器的设计与实现28三峡大学学报(自然科学版) 2010年12月图15 按键电平抖动示意图为保证按键识别的准确性,在按键电压信号抖动的情况下不能进行状态输入,为此必须进行去抖动处理,消除抖动部分的信号,一般有硬件和软件两种方法.这里用状态机的方法设计一个去抖电路.状态机实现去抖动电路原理是:按键去抖动关键在于提取稳定的低电平状态(按键按下时为低电平),滤除前沿、后沿抖动毛刺.对于一个按键信号,可以用一个脉冲对它进行取样,如果连续3次取样为低电平,则可以认为信号已经处于稳定状态,这时输出一个低电平的按键信号.继续取样的过程中,如果不能满足连续3次取样为低,则认为键稳定状态结束,这时输出变为高电平.设计的状态转换图如图16所示,reset 信号有效时,电路进入复位态S0,这时认为取样没有检测到低电平,在输入取样的过程中,每次检测到一个低电平,发生一次向下的状态转换,直到连续检测到3个连续的低电平时,进入S3状态,这时输出置低(按键信号稳定态);在中间状态S1,S2时,一旦检测到高电平,仅进入S0状态,重新检测[2].图16 状态转换图 该部分的模块元件符号如图17所示.其中clk为检测的时钟,它与10k Hz 频率相连.cr 为复位信号,低电平有效.din[4..0]为按键信号,它有5位,表示有5个按键需要去抖动,低电平有效.dout [4..0]表示加了去抖动后的按键信号.图17 加去抖动的按键模块3 结 论设计经过编译后下载到基于Altera 公司的EP2C35F484C8芯片的开发板,能正确地实现篮球计时计分器的功能,完成比赛过程中的计时如每节12min 、每次进攻24s 、1至4节的节次自动显示;完成1分、2分、3分的得分加分、比分错误时的调整等.设计采用模块化设计,各模块通用性强,方便剪裁,在其它需要计数器、数码管、1602L CD 以及按键去抖动等模块的设计中可作参考甚至可直接使用;在需要添加其它硬件设备如大屏幕L ED ,V GA 接口设备等时能很方便扩展.设计在时间的调整,进攻时间实时转换以及遥控方式控制等功能上还可以进一步完善.参考文献:[1] 张洪润.FP GA/CPLD 应用设计200例[M ].北京:北京航空航天大学出版社,2009.[2] 刘延飞.基于Altera FP GA/CPLD 的电子系统设计及工程实践[M ].北京:人民邮电出版社,2009.[责任编辑 张 莉]38第32卷 第6期 唐庭龙等 基于FP GA 的篮球计时计分器的设计与实现。

verilog语言设计篮球计分 -回复

verilog语言设计篮球计分 -回复

verilog语言设计篮球计分-回复以下是使用Verilog语言设计篮球计分的代码示例:module BasketballScore(input clk, 时钟信号input reset, 复位信号input team1_shot, 队伍1进球信号input team2_shot, 队伍2进球信号output reg [3:0] team1_score, 队伍1得分output reg [3:0] team2_score 队伍2得分);初始得分为0initial beginteam1_score = 4'b0000;team2_score = 4'b0000;end当复位信号为1时重置得分为0always @(posedge clk, posedge reset)if (reset) beginteam1_score <= 4'b0000;team2_score <= 4'b0000;end如果队伍1进球,增加1分always @(posedge clk)if (team1_shot) beginteam1_score <= team1_score + 1;end如果队伍2进球,增加1分always @(posedge clk)if (team2_shot) beginteam2_score <= team2_score + 1;endendmodule在这个示例中,我们定义了一个名为BasketballScore的模块,它有以下输入和输出:- 输入时钟信号clk和复位信号reset,以及代表队伍1和队伍2进球信号team1_shot和team2_shot。

- 输出队伍1和队伍2的得分team1_score和team2_score。

我们使用reg类型来声明输出信号,并在initial块中将其初始值设为0。

另外,我们使用always块来更新计分器,如果进球则将对应队伍的得分加1。

篮球比赛数字记分牌的设计方案

篮球比赛数字记分牌的设计方案

目录1 课程设计题目`内容与要求………………………1.1 设计内容1.2 具体要求2系统设计…………………………2.1 设计思路2.2 系统原理3 系统实现……………………………………………4 系统仿真……………………………………………5硬件验证(操作)说明………………………………6 总结…………………………………………………7参考书目……………………………………………一、课程设计题目、内容与要求1.1课程设计的题目:篮球比赛记分牌1.2课程设计内容:1、根据比赛实际情况记录两队得分,罚球进的1分,进球的2分;2、记分牌要具有纠错功能,能减1分、2分功能;3、利用3个译码显示管输出比赛的分;二、系统设计2.1设计思路:篮球比赛记分牌是记录两队比赛的得分情况,并能够进行纠错功能;根据系统设计的要求,篮球记分牌的电路原理框图如下:2.2 系统原理与设计说明系统各个模块的功能如下:1、D触发器电路模块实现翻转功能当出错时,输出为1,使电路回到上一个正确的状态。

2、4为二进制全加器电路模块实现加法计数功能。

3、移位寄存器电路模块保存比赛两队得分情况的4个相邻状态,出错时将调用上一个正确状态。

4、二选一数据选择器电路模块用来控制移位寄存器5、LED数码管驱动电路模块三、系统实现各模块电路的源程序如下:1、D触发器电路模块及程序:set输入(Q=1),清零应该可以用复位键reset吧(Q=0)。

library ieee;use ieee.std_logic_1164.all;entity sync_rsdff isport(d,clk : in std_logic;set : in std_logic;reset: in std_logic;q,qb : out std_logic);end sync_rsdff;architecture rtl_arc of sync_rsdff isbeginprocess(clk)beginif (clk'event and clk='1') thenif(set='0' and reset='1') thenq<='1';qb<='0';elsif (set='1' and reset='0') thenq<='0';qb<='1';elseq<=d;qb<=not d;end if;end if;end process;end rtl_arc;2、移位寄存器模块电路及程序:library IEEE;use IEEE.std_logic_1164.all;entity shft_reg isport (DIR : in std_logic;CLK : in std_logic;CLR : in std_logic;SET : in std_logic;CE : in std_logic;LOAD : in std_logic;SI : in std_logic;DATA : in std_logic_vector(3 downto 0);data_out : out std_logic_vector(3 downto 0) );end shft_reg;architecture shft_reg_arch of shft_reg issignal TEMP_data_out : std_logic_vector(3 downto 0);beginprocess(CLK)beginif rising_edge(CLK) thenif CE = '1' thenif CLR = '1' thenTEMP_data_out <= "0000";elsif SET = '1' thenTEMP_data_out <= "1111";elsif LOAD = '1' thenTEMP_data_out <= DATA;elseif DIR = '1' thenTEMP_data_out <= SI & TEMP_data_out(3 downto 1);elseTEMP_data_out <= TEMP_data_out(2 downto 0) & SI;end if;end if;end if;end if;end process;data_out <= TEMP_data_out;end architecture;3、二选一数据选择器电路模块及程序:entity mux isport(do,d1:in bit;sel:in bit;q:out bit);end mux;architecture a of mux isbeginq<=(do and sel)or(not sel and d1);end a;4、加法计数器的电路模块及程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY add4 ISPORT(a1,a2,a3,a4:IN STD_LOGIC;b1,b2,b3,b4:IN STD_LOGIC;sum1,sum2,sum3,sum4:OUT STD_LOGIC;cout4:OUT STD_LOGIC);END add4;ARCHITECTURE add_arc OF add4 ISSIGNAL cout1,cout2,cout3:STD_LOGIC;COMPONENT halfaddPORT(a,b:IN STD_LOGIC;sum,hcarry:OUT STD_LOGIC);END COMPONENT;COMPONENT fulladdPORT(in1,in2,cin:STD_LOGIC;fsum,fcarry:OUT STD_LOGIC);END COMPONENT;BEGINu1:halfadd PORT MAP(a=>a1,b=>b1,sum=>sum1,hcarry=>cout1);u2:fulladd PORT MAP(in1=>a2,in2=>b2,cin=>cout1,fsum=>sum2,fcarry=>cout2);u3:fulladd PORT MAP(in1=>a3,in2=>b3,cin=>cout2,fsum=>sum3,fcarry=>cout3);u4:fulladd PORT MAP(in1=>a4,in2=>b4,cin=>cout3,fsum=>sum4,fcarry=>cout4);END add_arc;5、七段译码电路及程序:library ieee;use ieee.std_logic_1164.all;entity deled isport(datain:in std_logic_vector(3 downto 0);qout:out std_logic_vector(6 downto 0));end deled;architecture func of deled isbeginprocess(datain)beginif datain= "0000" then qout<="1111110";elsif datain= "0001" then qout<="0110000";elsif datain= "0010" then qout<="1101101";elsif datain= "0011" then qout<="1111001";elsif datain= "0100" then qout<="0110011";elsif datain= "0101" then qout<="1011011";elsif datain= "0110" then qout<="1011111";elsif datain= "0111" then qout<="1110000";elsif datain= "1000" then qout<="1111111";elsif datain= "1001" then qout<="1111011";else null;end if;end process;end func;四、系统仿真1、D触发器电路模块仿真波形:2、移位寄存器模块电路仿真波形:3、二选一数据选择器电路模块仿真波形:4、加法计数器的电路模块仿真波形:5、七段译码电路仿真波形:五﹑硬件验证说明这次设计采用的硬件电路有芯片EP1K10TC100-3,实验板上标准时钟电路、LED 显示等,六、总结此课题说明了使用VHDL语言设计数字电路的方法以及VHDL语言在数字电路设计仿真中的重要作用,仿真结果表明VHDL 语言应用于数字电路仿真是切实可行的,该语言在电子设计领域受到了广泛的接受。

数电设计_篮球记分牌

数电设计_篮球记分牌

课程设计说明书课程名称:数字电子技术课程设计题目:篮球比赛电子计分牌学生姓名:陈锦贤专业:电子信息科学与技术班级:电子12-1学号: 09指导教师:杨艳日期: 2014 年 3 月 26日篮球比赛电子计分牌一、设计任务与要求设计一个符合篮球比赛规则的记分系统。

1.有得1分、2分和3分的情况,电路要具有加、减分及显示的功能。

2.有倒计时时钟显示,在“暂停时间到”和“比赛时间到”时,发出声光提示。

3.有比赛规则规定的其他计时、记分要求。

二、方案设计与论证1.记分电路对应篮球比赛规则记分的系统的要求,篮球记分有1分、2分和3分的情况,通过对电路输入一个脉冲、两个脉冲、三个脉冲,使得计数器对分数进行统计,这需要三个脉冲分路。

电路要具有加分、减分及显示的功能。

当球队比赛得分时,用加法记分器通过控制脉冲分路加相应的分数。

如果裁判误判了,可以用减法计分器减掉误判的分数。

用三个计数器和三个半导体数码管LED进行对分数的统计和显示。

2.倒计时钟电路首先是全场的总倒计时电路,全场四十分钟,分四节,每节十分钟,每打完一节倒计时暂停,并伴随灯亮通知,进入休息时间,此段时间不予计算。

其次为每队持球进攻的时间为二十四秒,与总时间同步,此段计时电路具有重置开关,可对比赛球队进行持球时间判断。

再次为二十秒暂停时间,可用于比赛球队叫停,进行战术调整等,此时切换至暂停电路,总倒计时和持球时间暂停工作,当暂停时间完后,再次切换至总场时间电路。

三、单元电路设计与参数计算3总比赛时间电路从电路图可知,此部分电路是由四片74LS192组成的时序逻辑电路,对5进行预置数为1001,使得分显示为9,对7进行预置数为0101。

,显示为5,,对6进行置数0001,显示为1。

给一时钟脉冲9接至8DOWN,秒8的BO端输出至秒十位的7DOWN,进行60秒倒计时。

再将秒十位的BO输出接至分5DOWN,进行10分钟倒计时,分5的BO输出端接至节次6UP端,逐节递增至五后回归1重新开始另一场球赛的倒计时。

基于51单片机数码管显示篮球记分牌设计

基于51单片机数码管显示篮球记分牌设计

基于51单片机数码管显示篮球记分牌设计#include<reg51.h>unsigned char a1,b1,c1,a2,b2,c2,d1,d2,e3,f3,g3,h3,i,j,flag10,flag11,flag12;unsigned char af,bf,time=24,cnt1,cnt2;signed int time1=720;sbit aj=P1^0;sbit bj=P1^1;sbit cn=P1^2;sbit bn=P1^3;sbit en=P3^2;sbit fn=P3^3;sbit hn=P3^0;sbit gn=P3^4;sbit set=P1^4;sbit tj=P1^5;sbit tz=P1^6;sbit ot=P1^7;bit flag1=0,flag2=0,flag3=0,flag4=0,flag5=0,flag6,flag7,flag8,flag9;unsigned char s[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(unsigned char i);void display();void sw();void abbfen();void esnny();void esnne();void esnns();void esfzw();void hfwz();void ot1();void setj ();void timej ();void timez ();void main(){TMOD=0x11;TH0=0x3c;TL0=0xb0;TH1=0x3c;TL1=0xb0;ET0=1;ET1=1;while(1){display();abbfen();sw();esnny();esnne();esnns();esnne();esfzw();hfwz();timej ();timez ();setj ();ot1();}}void delay(unsigned char i ) {unsigned char j,k;for (k=0;k<i;k++)for (j=0;j<10;j++);}void display(){a1=af/100;b1=af%100/10;c1=af%100%10;P2=0x00;P0=s[a1];delay(2);P2=0x01;P0=s[b1];delay(2);P2=0x02;P0=s[c1];delay(2);P0=s[10];delay(2);a2=bf/100;b2=bf%100/10;c2=bf%100%10;P2=0x04;P0=s[10];delay(2);P2=0x05;P0=s[a2];delay(2);P2=0x06;P0=s[b2];delay(2);P2=0x07;P0=s[c2];delay(2);e3=time1/60/10;f3=time1/60%10; g3=time1%60/10; h3=time1%60%10;P2=0x08;P0=s[e3];delay(2);P2=0x09;P0=s[f3];delay(2);P2=0x0a;P0=s[g3];delay(2);P2=0x0b;P0=s[h3];delay(2);d1=time/10;d2=time%10;P2=0x0c;delay(2);P2=0x0d;P0=s[d2];delay(2);}void abbfen(){if(aj==0){delay(10);}if(aj==0){flag1=1;}if(flag1==1&&aj==1) {flag1=0;af++;}}void sw(){if(bj==0){delay(10);}if(bj==0){flag2=1;}if(flag2==1&&bj==1) {flag2=0;bf++;}}void esnny(){if(cn==0){delay(10);}if(cn==0){flag3=1;}if(flag3==1&&cn==1) {flag3=0;TR0=1;}}void esnne(){if(bn==0){delay(10);}{flag4=1;}if(flag4==1&&bn==1) {flag4=0;TR0=0;}}void esfzw(){if(en==0){delay (10);}if(en==0){flag5=1;}if(flag5==1&&en==1) {flag5=0;TR1=1;}}void esnns(){if (fn==0){delay (10);}if(fn==0){flag6=1;}if(flag6==1&&en==1) {flag6=0;TR1=0;}}void hfwz(){if (gn==0){delay (10);}if(gn==0){flag7=1;}if(flag7==1&&gn==1) {flag7=0;time=24;}}void setj (){if (set==0){delay (10);}if(set==0){flag10=1;}if(flag10==1&&set==1){ flag10=0;j++;if (j==3) j=0;}}void ot1(){if (ot==0){delay (10);}if(ot==0){flag12=1;}if(flag12==1&&ot==1){flag12=0;time1=300;}}void timej (){if (tj==0){delay (10);}if(tj==0){flag8=1;}if(flag8==1&&tj==1){flag8=0;switch(j){case 0x00:break;case 0x01:time1--; break;case 0x02:time1=time1-60;break; default:break;}}}void timez (){if (tz==0){delay (10);}if(tz==0){flag9=1;}if(flag9==1&&tz==1){flag9=0;switch(j){case 0x00:break;case 0x01:time1++; break;case 0x02:time1=time1+60;break; default:break;}}}void int1()interrupt 1{TH0=0x3c;TL0=0xb0;cnt1++;if(cnt1==21){cnt1=0;time1--;}if(time1==-1){time1=720;}}void int3()interrupt 3{TH1=0x3c;TL1=0xb0;cnt2++;if(cnt2==21){cnt2=0;time--;if(time==-1){time=24;hn=0;hn=1;}}}。

verilog篮球24秒

verilog篮球24秒

华中科技大学《电子线路设计、测试与实验》实验报告实验名称:篮球24秒计时器院(系):电子与信息工程专业班级:卓越1101姓名:汪加林学号:U201113167时间:2012.12.20地点:南一楼东303实验成绩:指导教师:汪小燕2011 年12 月20 日一.实验目的1.学会将FPGA中时钟分频2.学会如何用verilog编写计时电路3.学会用verilog实现数码管的动态显示二.实验元器件三.实验原理功能块:一.计时程序:1.思路:当遇到load信号时,首先是置数24,个位从4变到0之后,从十位借位,十位变成1,个位变成9,然后各位从9变成0,从十位借位,十位变成0,个位变成9,最终个位变成0,此时发出警报指示24秒结束。

2.代码:if(stop==0) //stop信号高电平有效beginif(qh==0&&ql==0) //24秒计时完成,发出警报beginalarm<=1;endelseif(ql==0)beginqh<=qh-4'b0001;ql<=4'b1001;endelsebeginql<=ql-4'b0001;end二.复位程序:1.思路:分配一个管脚开关控制是否复位。

当外界输入为复位时,直接将数字置为24.2.代码:if(load) //异步置数beginqh<=4'b0010;ql<=4'b0100;alarm<=0;end三.译码程序:1.思路:七段数码管显示2.代码:module led_7 (BCD,out,clk); input [3:0] BCD;input clk;output[6:0] out;reg [6:0] out;always@( posedge clk) case(BCD)4'b0000:out=7'b0000001;4'b0001:out=7'b1001111;4'b0010:out=7'b0010010;4'b0011:out=7'b0000110;4'b0100:out=7'b1001100;4'b0101:out=7'b0100100;4'b0110:out=7'b0100000;4'b0111:out=7'b0001111;4'b1000:out=7'b0000000;4'b1001:out=7'b0000100; default:out=7'bx;endcaseendmodule四.动态显示程序:1.思路:由于Bysys2上4个数码管的7个led共阴极,故每次只能亮一个,采用动态扫描程序,结合人眼的视觉暂留效应,可以让人觉得两个数码管显示不一样的数字。

基于FPGA的篮球 记分器设计

基于FPGA的篮球 记分器设计

第1章前言1.1 产品现状与发展作为每场篮球赛的必备品,比赛的记分器的质量显得尤为重要。

目前使用的记分器大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。

在实际应用中,由于程序不稳定,系统的可靠性能比较差。

基于现场可编程逻辑门阵列FPGA器件的记分器,用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。

由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA 工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率以及使用成本。

1.2 FPGA简介FPGA设计流程包括系统设计和设计实现,系统方案完成之后即进入设计实现阶段的工作,他以系统方案为输入,进行RTL级描述、功能仿真(RTL级仿真)、逻辑综合、布线前门级仿真、适配(布局布线)、时序仿真(布线后门级仿真)、时序分析、器件编程、系统验证一系列流程的处理才能完成FPGA芯片的设计,其设计流程。

需要说明的是,如果仿真验证不对或者某一步有错,就要返回修改。

有必要检查和修改的地方有RTL级描述、系统方案、约束和测试激励等。

一般情况下,对RTL级的描述即原理图或者HDL设计代码的修改最多也最有效。

修改后要重新走一遍流程。

有时要反复修改,经过多次这样的修改才能完成最后的设计。

FPGA的设计流程和相关概念说明如下:库:指FPGA器件厂家提供的工艺库和EDA工具提供的标准通用库(如IEEE 库等)。

工艺库中有各种宏功能模块和基本功能单元,含有他们的行为级模型、门级模型、布线模型等信息。

需要说明的是,系统行为仿真和RTL级功能仿真有时要用到某种功能模块,例如RAM模型。

对于RAM模型的控制信号,不同的厂家其规定不一定相同,如写使能信号,有的厂家规定高电平有效,有的厂家规定低电平有效。

其实,在厂家提供的工艺库中,RAM模型有行为级模型、门级模型、版图级模型等。

篮球记分牌verilog设计说明

篮球记分牌verilog设计说明

数字逻辑设计及应用课程设计报告姓名:学号:选课号:79设计题号:23一.设计题目篮球比赛数字计分牌二.设计要求1.分别记录两队得分情况;2.进球得分加2分,罚球进球得分加1分;3.纠正错判得分减2分或1分;4.分别用三个数码管显示器记录两队的得分情况。

三.设计过程(一)设计方案1.模块设计题目中要用三个数码管来记录两队的得分情况,本文采用输出为8421bcd码,外接译码器和数码管的方式来实现。

先设计一个带有进位(co)和借位(ci)输出的模块pad,输出端(num)输出4位8421bcd码外接译码器和数码管,pad模块还带有加一输入端(a1),加二输入端(a2),减一输入端(d1),减二输入端(d2)。

输入端与开关相接,操作者按下开关即给该端口一个脉冲信号,各输入端口由上升沿触发。

如果操作者同时按下多个端口,输出端口将保持原来的信号不变。

pad模块功能图见图1-1。

图1-1 pad模块输入输出端口及功能然后将三个相同的pad模块进行级联,构造为新的模块numberpad,从而得到带有三个数码管的篮球记分牌。

甲乙两队都将分别使用这个记分牌。

级联图见图1-2。

图1-2 pad模块级联图2.模块部的算法流程每个模块有四个输入端口a1,a2,d1,d2来进行触发,触发事件太多,因此构造rem=a1|a2|d1|d2作为新的触发信号。

因此,只要a1,a2,d1,d2中任意一个按键被按下,将会发出一个脉冲,rem也就会产生一个脉冲。

但是可能出现多个按键同时按下的情况,这样会产生冲突。

所以在always语句块中,进行判断,看是否a1,a2,d1,d2中只有一个处于高电平,若同时处于高电平,则输出维持原来的值不变。

判断完端口a1,a2,d1,d2中哪一个输入了以后,就要进行加1,加2,减1,减2的操作。

加1分为以下情况:(1)若num已经计数到9即1001,再加1则num应变为0000,进位端co输出1;(2)若num不为9,则直接加1,co输出0。

篮球记分牌

篮球记分牌

桂林电子科技大学信息科技学院单片机原理及应用实训报告题目篮球记分牌学号姓名指导老师2010 年12 月14 日1.系统设计1.1设计要求设计一个基于单片机的篮球计分牌,实现两队的计分功能与24秒计时功能。

1.2设计原理2、模块电路的设计2.1 基本加分模块源程序代码为:#include<reg52.h>sbit a1=P3^0;sbit a2=P3^1;sbit a3=P3^2;sbit b1=P3^3;sbit b2=P3^4;sbit b3=P3^5;//sbit a2=P1^6;sbit d1=P3^7;unsigned char num,ge,shi,temp;unsigned int zz,z=0;unsigned char code tab[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,};void yanshi(unsigned int zz);void xianshifenshu();void jiafen();void main(){while(1){ //if()xianshifenshu();jiafen();}}void xianshifenshu(){ P2 = 0Xfe; P0 = tab[z/1000]; yanshi(10);P2 = 0Xfd; P0 = tab[z%1000/100]; yanshi(10);P2 = 0XFb; P0 = tab[z%1000%100/10]; yanshi(10);P2 = 0X07; P0 = tab[z%10]; yanshi(10);}void yanshi(unsigned int zz){ unsigned int x,y;for(x=zz;x>0;x--)for(y=110;y>0;y--);}void jiafen(){if(a1==0){ yanshi(5);if(a1==0)z++;while(!a1);yanshi(5);while(!a1);}if(a2==0){yanshi(5);if(a2==0)z=z+2;while(!a2);yanshi(5);while(!a2);}if(a3==0){yanshi(5);if(a3==0)z=z+3;while(!a3);yanshi(5);while(!a3);}}2.2 24秒倒计时源程序代码为:#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charuchar temp,aa,num=24,vv,cc;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; sbit fmq=P1^6;sbit d1=P3^0;sbit d2=P3^1;void delay(uint z);void main(){aa=0;TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;temp=0xfe;P1=temp;while(1){ if(d2==0) num=24;if(num==0) {fmq=1;delay(10);fmq=0; TR0=0;if(d1==0) break;}//delay(1000);//temp=_crol_(temp,1);// P1=temp;cc=num/10;vv=num%10;P2=0x0e;P0=table[cc];delay(10);P2=0x0d;P0=table[vv];delay(10);if(aa==20){aa=0; num--;if(num==-1) num=24;}} }void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa++;}2.3加分选择模块源程序代码为:#include<reg52.h> sbit m1=P3^0;sbit m2=P3^1;sbit m3=P3^2;sbit j1=P3^3;sbit j2=P3^4;sbit j3=P3^5;sbit d1=P1^0;sbit d2=P1^1;sbit d3=P1^2;sbit d4=P1^3;sbit d5=P1^4;sbit d6=P1^5;//sbit a2=P1^6;//sbit d1=P3^7;unsigned char num,ge,shi,temp;unsigned int zz,z=0,d=0;unsigned char code tab[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,};void yanshi(unsigned int zz);void xianshifenshujia();void xianshifenshuyi();void jiafenjia();void jiafenyi();void main(){while(1){ if(m1==0){ while(1){d1=0;d2=1;d3=1;xianshifenshujia();jiafenjia();if(m2==0||m3==0) break;}}if(m2==0){while(1){ d1=1;d2=0;d3=1;xianshifenshuyi();jiafenyi();if(m1==0||m3==0) break;}}if(m3==0) { while(1){ P2=0X0F;d1=1;d2=1;d3=0;if(m1==0||m2==0) break;}}}}void xianshifenshujia(){ P2 = 0Xfe; P0 = tab[z/1000]; yanshi(10);P2 = 0Xfd; P0 = tab[z%1000/100]; yanshi(10);P2 = 0XFb; P0 = tab[z%1000%100/10]; yanshi(10);P2 = 0X07; P0 = tab[z%10]; yanshi(10);}void xianshifenshuyi(){ P2 = 0Xfe; P0 = tab[d/1000]; yanshi(10);P2 = 0Xfd; P0 = tab[d%1000/100]; yanshi(10);P2 = 0XFb; P0 = tab[d%1000%100/10]; yanshi(10);P2 = 0X07; P0 = tab[d%10]; yanshi(10);}void yanshi(unsigned int zz){ unsigned int x,y;for(x=zz;x>0;x--)for(y=110;y>0;y--);}void jiafenjia(){if(j1==0){ yanshi(5);if(j1==0)z++;while(!j1);yanshi(5);while(!j1);}if(j2==0){yanshi(5);if(j2==0)z=z+2;while(!j2);yanshi(5);while(!j2);}if(j3==0){yanshi(5);if(j3==0)z=z+3;while(!j3);yanshi(5);while(!j3);}}void jiafenyi(){if(j1==0){ yanshi(5);if(j1==0)d++;while(!j1);yanshi(5);while(!j1);}if(j2==0){yanshi(5);if(j2==0)d=d+2;while(!j2);yanshi(5);while(!j2);}if(j3==0){yanshi(5);if(j3==0)d=d+3;while(!j3);yanshi(5);while(!j3);}}2.4模块选择指示灯选择模块sbit m3=P3^2;sbit j1=P3^3;sbit j2=P3^4;sbit j3=P3^5;sbit d1=P1^0;sbit d2=P1^1;sbit d3=P1^2;sbit d4=P1^3;sbit d5=P1^4;sbit d6=P1^5;//sbit a2=P1^6;//sbit d1=P3^7;unsigned char num,ge,shi,temp;unsigned int zz,z=0,d=0;unsigned char code tab[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,};void yanshi(unsigned int zz);void xianshifenshujia();void xianshifenshuyi();void anjianxuanze();void main(){ // d1=0;d2=0;d3=0;//while(1){anjianxuanze();}}void xianshifenshujia(){ P2 = 0Xfe; P0 = tab[z/1000]; yanshi(10);P2 = 0Xfd; P0 = tab[z%1000/100]; yanshi(10);P2 = 0XFb; P0 = tab[z%1000%100/10]; yanshi(10);P2 = 0X07; P0 = tab[z%10]; yanshi(10);}void xianshifenshuyi(){ P2 = 0Xfe; P0 = tab[d/1000]; yanshi(10);P2 = 0Xfd; P0 = tab[d%1000/100]; yanshi(10);P2 = 0XFb; P0 = tab[d%1000%100/10]; yanshi(10);P2 = 0X07; P0 = tab[d%10]; yanshi(10);}void yanshi(unsigned int zz){ unsigned int x,y;for(x=zz;x>0;x--)for(y=110;y>0;y--);}void anjianxuanze(){if(m1==0){ d1=0;d2=1;d3=1;yanshi(5);if(m1==0)while(!m1);yanshi(5);while(!m1);}if(m2==0){ d1=1;d2=0;d3=1;yanshi(5);if(m2==0)while(!m2);yanshi(5);while(!m2);}if(m3==0){ d1=1;d2=1;d3=0;yanshi(5);if(m3==0)while(!m3);yanshi(5);while(!m3);}}2.5扩展模块2.5.1犯规模块原程序为void fangui(){if(j1==0) {d1=0;d2=1;d3=1;d4=1;d5=1;yanshi(5);if(j1==0){}if(jian==1) zj++;else zj--;}while(!j1);yanshi(5);while(!j1);if(j2==0) { d1=1;d2=0;d3=1;d4=1;d5=1;yanshi(5);if(j2==0){if(jian==1) dy++;else dy--;}while(!j2);yanshi(5);while(!j2);}}2.5.2加减分模块使用到的部分代码为:{if(jian==1) z++;else z--;3、开发软件及编程语言简介3.1 Keil C编程软件3.2 使用C语言编程,通过高级语言编程实现单片机控制,取代汇编低级语言繁琐编程。

篮球比赛电子记分牌设计

篮球比赛电子记分牌设计

课题名称篮球比赛电子记分牌设计设计内容及要求设计一个篮球比赛记分牌,使用4位数码管显示倒计时的分钟、秒钟值;2位数码管显示A方得分;2位数码管显示B方得分;使用LED灯作为上、下半场的标志;单次加分值包括1分、2分和3分。

系统提供50MHZ频率的时钟源。

完成该系统的硬件和软件的设计,并制作出实物装置,调试好后并能实际运用(指导教师提供制作所需的器件),最后就课程设计本身提交一篇课程设计说明书。

设计工作量1、VHDL语言程序设计;2、波形仿真;3、在实验装置上进行硬件测试,并进行演示;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、硬件测试、调试过程,参考文献、设计总结等。

进度安排起止日期(或时间量)设计内容(或预期目标)备注第1天课题介绍,答疑,收集材料第2天设计方案论证第3天进一步讨论方案, 对设计方案进行必要的修正,方案确定后开始进行VHDL语言程序设计第4天设计VHDL语言程序第5天在实验装置上进行硬件测试,编写设计说明书编写设计说明书教研室意见年月日系(部)主管领导意见年月日目录一、概述................................................................ - 3 -1、EDA的介绍........................................................ - 3 -2、篮球比赛电子记分牌的介绍.......................................... - 3 -二、设计目的............................................................ - 4 -三、设计内容及要求...................................................... - 4 -四、设计思路............................................................ - 4 -五、单元模块设计........................................................ - 5 -1、分频模块.......................................................... - 5 -2、计时模块.......................................................... - 6 -3、计分模块.......................................................... - 7 -4、显示模块.......................................................... - 9 -5、消抖模块........................................................ - 10 -六、仿真结果及分析..................................................... - 14 -1、引脚分配图....................................................... - 14 -2、设计仿真图....................................................... - 15 -3、硬件测试........................................................ - 15 -4、仿真结果分析..................................................... - 15 -七、设计总结与心得..................................................... - 16 -八、参考文献........................................................... - 17 -一、概述1、EDA的介绍EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

FPGA实验报告9__篮球30秒计时器

FPGA实验报告9__篮球30秒计时器

Lab 9 篮球30秒计时器设计集成1101班1.实验目的掌握用Verilog HDL 语言描述篮球30秒计时器。

熟悉使用DE0开发板七段数码管的使用。

掌握Verilog HDL 语言模块间的调用。

2.实验内容a)使用Verilog HDL 语言描述篮球30秒计时器。

b)使用Quartus9.1软件得到仿真波形。

c)使用DE0开发板下载。

3.代码分析主模块实现输入输出控制和调用分频模块和显示模块。

//Basketball.vmodule basketball (LED0,LED1,Alarm,nRST,nPAUSE,_50MHZ);input nRST,nPAUSE,_50MHZ;output [6:0] LED0,LED1;output Alarm;wire [6:0] LED0,LED1;wire CP;reg [3:0] TimerH,TimerL;assign Alarm= ({TimerH,TimerL}==8'h00)&(nRST==1'b1);Divided_Frequency F0 (CP,nRST,_50MHZ);LED_display L0 (LED0,TimerL);LED_display L1 (LED1,TimerH);always @(posedge CP or negedge nRST or negedge nPAUSE)beginif(~nRST){TimerH,TimerL} <=8'h30;else if(~nPAUSE){TimerH,TimerL}<= {TimerH,TimerL};else if({TimerH,TimerL}== 8'h00)begin {TimerH,TimerL}<= {TimerH,TimerL}; endelse if(TimerL== 4'h0)begin TimerH<= TimerH- 1'b1;TimerL<= 4'h9; endelsebegin TimerH<= TimerH;TimerL<= TimerL- 1'b1; endendendmodule分频模块:将50MHZ信号分成1HZ信号,作为时钟信号。

数电课设篮球计分板

数电课设篮球计分板

沈阳航空航天大学课程设计(说明书)篮球计分牌的设计班级。

学号。

学生姓名。

指导教师。

沈阳航空航天大学课程设计任务书课程名称数字逻辑课程设计课程设计题目篮球记分牌设计课程设计的内容及要求:一、设计说明与技术指标设计一个篮球记分牌电路,技术指标如下:①得分有1分,2分,3分的情况,电路具有加分、减分和显示比分功能,比分显示用两位数码管。

②带有24S进攻违例倒计时功能,可以进行暂停以及重新计时功能。

③如果进攻超时,喇叭发出两秒报警声音。

二、设计要求1.在选择器件时,应考虑成本。

2.根据技术指标,通过分析计算确定电路和元器件参数。

3.画出电路原理图(元器件标准化,电路图规范化)。

三、实验要求1.根据技术指标制定实验方案;验证所设计的电路,用软件仿真。

2.进行实验数据处理和分析。

四、推荐参考资料1. 童诗白,华成英主编.模拟电子技术基础.[M]北京:高等教育出版社,2006年五、按照要求撰写课程设计报告成绩评定表:指导教师签字:2015 年12 月30 日一、概述篮球记分牌用于对篮球比赛的比赛双方实时记分。

基于篮球比赛的特点,我们选取了专门的设计方案,用2个LED数码管显示比赛一方的得分,记分员可根据现场比赛得分情况实时记录各队的得分,并及时反馈到LED数码管上。

本文的设计主要利用常见的74LS系列集成电路芯片和555芯片,并通过划分功能模块进行各个部分的设计,最后完成了篮球记分牌设计,设计分为三个模块,分别是比分记分模块、24S计时模块、蜂鸣器2S倒计时模块。

其中比分记分模块分为1分、2分、3分加减分设置,通过计数器得到不同的波形,通过74LS192进行加减分;24S倒计时和2S 蜂鸣器倒计时则是通过时钟脉冲采用的以555定时器构成的多谐振荡电路产生,定时电路是以74LS192为主要芯片构成的,辅以数码管和蜂鸣器构成警报与计时器功能,使比赛更趋于公平化。

本次设计的内容可以完成篮球比赛的记分功能:可以分别对两队进行记分包括加分和以防裁判判别失误的减分功能还可以进行记分清零,以便于进入下一场比赛。

verilog课程设计篮球

verilog课程设计篮球

verilog课程设计篮球一、教学目标本节课的教学目标是让学生掌握Verilog硬件描述语言的基本知识,学会使用Verilog进行数字电路的设计与仿真,培养学生对电子设计自动化(EDA)的兴趣和创新能力。

具体分解为以下三个目标:1.知识目标:使学生了解Verilog的基本语法、数据类型、运算符、语句和模块化设计方法;掌握基本的逻辑门电路仿真方法,以及简单的组合逻辑和时序逻辑电路设计。

2.技能目标:培养学生能够运用Verilog语言进行数字电路的设计与仿真,熟练使用至少一种EDA工具进行Verilog代码的编写、调试和测试。

3.情感态度价值观目标:培养学生对电子设计自动化的兴趣,增强其对科技创新的热情,培养其团队协作意识和自主学习能力。

二、教学内容本节课的教学内容主要包括以下几个部分:1.Verilog基本语法和数据类型:介绍Verilog的模块、端口、参数、数据类型(如integer、real、string等)和运算符(如算术运算符、关系运算符、逻辑运算符等)。

2.Verilog语句:讲解连续赋值语句、阻塞赋值语句、条件语句(如if-else、case等)、循环语句(如forever、repeat等)和任务与函数。

3.模块化设计方法:介绍模块的定义、封装和实例化,以及模块间的参数传递和端口连接。

4.逻辑门电路仿真:讲解与门、或门、非门、异或门等基本逻辑门电路的Verilog实现方法,并通过仿真验证其功能。

5.组合逻辑电路设计:介绍组合逻辑电路(如编码器、译码器、多路选择器等)的设计方法,并用Verilog实现。

6.时序逻辑电路设计:讲解时序逻辑电路(如触发器、计数器、寄存器等)的设计方法,并用Verilog实现。

三、教学方法为了达到本节课的教学目标,将采用以下几种教学方法:1.讲授法:讲解Verilog的基本语法、数据类型、运算符和语句,以及逻辑门电路仿真方法。

2.案例分析法:通过分析具体实例,使学生掌握组合逻辑和时序逻辑电路的设计方法。

fpga篮球计分器课程设计

fpga篮球计分器课程设计

fpga篮球计分器课程设计一、课程目标知识目标:1. 学生理解FPGA的基本原理和功能,掌握利用FPGA设计简单数字系统的能力。

2. 学生掌握篮球计分器的基本功能要求,能够运用所学知识设计出满足需求的计分器系统。

3. 学生了解数字电路中计数器、寄存器等基础模块的工作原理,并能够运用这些模块进行系统设计。

技能目标:1. 学生能够运用硬件描述语言(如VHDL/Verilog)对FPGA进行编程,完成篮球计分器的功能设计。

2. 学生通过课程实践,提升问题分析能力,能够根据实际需求设计出合理的数字电路系统。

3. 学生能够使用相关软件(如ModelSim、Quartus)进行电路仿真、调试和验证。

情感态度价值观目标:1. 学生培养对电子信息技术和创新的兴趣,激发学习主动性和创造性思维。

2. 学生在团队协作中提高沟通与协作能力,培养集体荣誉感和责任心。

3. 学生通过篮球计分器的设计,体会科技与日常生活的紧密联系,增强学以致用的意识。

课程性质分析:本课程为电子信息类课程的实践环节,强调理论与实践相结合,注重培养学生的实际操作能力和创新精神。

学生特点分析:学生为高年级中学生,具备一定的电子技术和编程基础,具有较强的逻辑思维能力和问题解决能力。

教学要求:教师需引导学生主动探索,鼓励创新,关注学生在设计过程中的个体差异,提供有针对性的指导,确保学生能够达成课程目标。

通过课程目标的实现,学生能够将所学知识综合应用于实际问题,为未来的学习和职业发展打下坚实基础。

二、教学内容本课程教学内容主要包括以下几部分:1. FPGA基础知识:介绍FPGA的原理、结构和应用,使学生了解FPGA的基本概念,为后续设计打下基础。

教材章节:第三章“可编程逻辑器件及其应用”2. 硬件描述语言编程:讲解VHDL/Verilog基本语法和编程技巧,使学生能够使用硬件描述语言对FPGA进行编程。

教材章节:第四章“硬件描述语言及其编程”3. 数字电路基础:介绍计数器、寄存器等基础模块的工作原理,为篮球计分器设计提供必要的电路知识。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字逻辑设计及应用课程设计报告
姓名:
学号:
选课号:79
设计题号:23
一.设计题目
篮球比赛数字计分牌
二.设计要求
1.分别记录两队得分情况;
2.进球得分加2分,罚球进球得分加1分;
3.纠正错判得分减2分或1分;
4.分别用三个数码管显示器记录两队的得分情况。

三.设计过程
(一)设计方案
1.模块设计
题目中要用三个数码管来记录两队的得分情况,本文采用输出为8421bcd码,外接译码器和数码管的方式来实现。

先设计一个带有进位(co)和借位(ci)输出的模块pad,输出端(num)输出4位8421bcd码外接译码器和数码管,pad模块还带有加一输入端(a1),加二输入端(a2),减一输入端(d1),减二输入端(d2)。

输入端与开关相接,操作者按下开关即给该端口一个脉冲信号,各输入端口由上升沿触发。

如果操作者同时按下多个端口,输出端口将保持原来的信号不变。

pad模块功能图见图1-1。

图1-1 pad模块输入输出端口及功能
然后将三个相同的pad模块进行级联,构造为新的模块numberpad,从而得到带有三个数码管的篮球记分牌。

甲乙两队都将分别使用这个记分牌。

级联图见图1-2。

图1-2 pad模块级联图
2.模块部的算法流程
每个模块有四个输入端口a1,a2,d1,d2来进行触发,触发事件太多,因此构造rem=a1|a2|d1|d2作为新的触发信号。

因此,只要a1,a2,d1,d2中任意一个按键被按下,将会发出一个脉冲,rem也就会产生一个脉冲。

但是可能出现多个按键同时按下的情况,这样会产生冲突。

所以在always语句块中,进行判断,看是否a1,a2,d1,d2中只有一个处于高电平,若同时处于高电平,则输出维持原来的值不变。

判断完端口a1,a2,d1,d2中哪一个输入了以后,就要进行加1,加2,减1,减2的操作。

加1分为以下情况:(1)若num已经计数到9即1001,再加1则num应变为0000,进位端co输出1;(2)若num不为9,则直接加1,co输出0。

加2分为以下情况:(1)若num已经计数到8即1000,再加2则num应变为0000,进位端co输出1;(2)num已经计数到9即1001。

再加2则num应变为0001,进位端co 输出1;(3)若num不为8或9,则直接加2,co输出0/。

减1分为以下情况:(1)若num此时为0,再减1则num应变为9即1001,借位端ci 输出1;(2)若num不为0,则直接减1,ci输出0。

减2分为以下情况:(1)若num此时为0,再减2则num应变为8即1000,借位端ci 输出1;(2)若num此时为1,再减2则num应变为9即1001,借位端ci输出1;(3)若num不为0或1,则直接减2,ci输出0
算法流程图见图1-3
图1-3 算法流程图
(二)V erilog程序
(注:在quatus2中不能编写中文注释,这里的注释为后期编写)
//将pad级联成新的模块numberpad,其中num1,num2,num3分别输出个十百位的8421bcd码
module numberpad(a1,a2,d1,d2,num1,num2,num3);
output [3:0] num1,num2,num3;
input a1,a2,d1,d2; //a1为加1端口,a2为加2端口,d1为减1端口,d2为减2端口
wire co1,co2,co3,ci1,ci2,ci3;
pad(a1,a2,d1,d2,num1,co1,ci1); //将三个pad级联
pad(co1,0,ci1,0,num2,co2,ci2);
pad(co2,0,ci2,0,num3,co3,ci3);
endmodule
//pad模块,输出为4为8421bcd码,由a1,a2,d1,d2来实现加减1、2,有进位和借位端口module pad(a1,a2,d1,d2,num,co,ci);
output reg [3:0] num; //输出4位8421bcd码
output reg co,ci; //co 进位信号, ci is 借位信号
input a1,a2,d1,d2; ///a1为加1端口,a2为加2端口,d1为减1端口,d2为减2端口wire rem;
initial
num<=4'b0000;
assign rem=a1|a2|d1|d2;
always (posedge rem)
begin
if(a1&&!a2&&!d1&&!d2) //仅a1输入脉冲时加1,必要时进位
begin
if(num==4'b1001)
begin
num<=4'b0000;
co<=1'b1;
end
else
begin
num<=num+4'b0001;
co<=1'b0;
end
end
else if(a2&&!a1&&!d1&&!d2) //仅a2输入脉冲时加2,必要时进位
begin
if(num==4'b1000)
begin
num<=4'b0000;
co<=1'b1;
end
else if(num==4'b1001)
begin
num<=4'b0001;
co<=1'b1;
end
else
begin
num<=num+4'b0010;
co<=1'b0;
end
end
else if(d1&&!a1&&!a2&&!d2) //仅d1输入脉冲时减1,必要时借位
begin
if(num==4'b0000)
begin
num<=4'b1001;
ci<=1'b1;
end
else
begin
num<=num-4'b0001;
ci<=1'b0;
end
end
else if(d2&&!a1&&!a2&&!d1) //仅d2输入脉冲时减2,必要时借位
begin
if(num==4'b0001)
begin
num<=4'b1001;
ci<=1'b1;
end
else if(num==4'b0000)
begin
num<=4'b1000;
ci<=1'b1;
end
else
begin
num<=num-4'b0010;
ci<=1'b0;
end
end
else //多个端口同时输入,输出保持原来的值
begin
num<=num;
co<=1'b0;
ci<=1'b0;
end
end
endmodule
(三)仿真结果
1.验证加1、加2、减1、减2端口正常,个位到十位进位正常
当输入端分别输入加1、加2、减1、减2信号时,输出了相应的结果。

18ns时,执行加1操作,个位num1由1001(即9)变成了0,同时向十位进位,十位num2变成了0001。

31ns时又有一进位,十位num2变成了0010(即2)。

(见图3-1)
图3-1 仿真图像一
2.验证十位向百位进位正常
由图3-2可得,213ns时已计数到199,即个位num1为1001,十位num2为1001,百位num3为0001。

此时输入了加2的信号,输出变成了201,即个位num1变为0001,十位num2变为0000,百位num3变为0010。

由此验证了十位向百位进位正常。

图3-2 仿真图像二
3.验证多个端口同时输入时,保持原值不变
从219ns开始到230秒都有多个端口同时输入,由图3-3可以观察到,输出端口的值并未发生改变。

图3-3 仿真图像三
四、设计结论
(一)设计结果分析
由以上的仿真图像可知,各端口工作正常,通过给a1、a2、d1、d2端口输入脉冲,可以使输出分别进行加1、加2、减1、减2的操作,且个位到十位、十位到百位进位正常,输出为8421bcd码。

当多个端口同时输入时,输出将保持原值,避免了冲突。

(二)设计中遇到的问题
由于a1、a2、d1、d2端口相互独立,刚开始设计时将它们都作为触发端口放在always 后面,发现调试总是有冲突。

后来引入了一个wire型变量rem,将其值赋为a1|a2|d1|d2,从而仅将rem作为触发的事件,然后通过if语句解决了冲突。

(三)设计心得和体会
1.设计程序时首先应该画出流程图,理清逻辑关系,做到条理清晰。

2.当程序调不出来时,不要烦躁和懊恼,更不能放弃,应该仔细阅读程序,一步一步分析、理解,看看哪里出了问题,并寻找解决的办法。

2010年6月20日。

相关文档
最新文档