2简易比赛计分器

合集下载

体育比赛计分器

体育比赛计分器

单片机课程设计体育比赛计分器一、设计目的1.掌握单片机定时器的设计方法2.掌握单片机扩展显示器、键盘的方法二、技术指标1.系统可适用于多项体育比赛的计分;2.键盘设置比赛的最高分数,达到最高分数时能够进行声光显示;3.能够显示比赛时间(比赛暂停时能够显示暂停间)时间到时能够进行声光显示;4.LED显示比赛分数。

三、方案对比方案一:采用计时芯片针对计算机系统对计时芯片的要求,各大芯片厂家推出了键时钟、倒计时、正计时等各种芯片,可采用自动控制计时芯片,通过触发控制电路使计时器自动计时,达到预定时间后芯片重新开始计时(实现倒计时功能);也可通过触发控制电路使计时器不计时,达到预定时间后芯片重新开始计时(实现暂停功能),不需要程序干预。

计算机可通过中断或查询方式读取计时器数据,实现计时的暂停功能,并进行显示,计时功能的实现就无需占用CPU的时间,程序简单,控制精度高,因此在工业系统中这一类专用芯片实现计时功能。

方案二:利用AT89C51内部定时器|计数器进行中断定时,配合软件延时实现计时功能。

该方案节省硬件成本,并可综合运用定时器、计数器及程序设计的知识,因此本设计采用软件实现计时。

四、方案概述本系统采用单片机AT89C51作为本设计的核心元件,利用七段共阳LED作为显示器件,并用74LS573作为驱动芯片。

在此设计中共接入10个七段共阳LED显示器,其中六个用于记录甲乙两队的分数,每队三个,显示分数范围可达0-999,可满足各种体育比赛需要。

另外四个用于记录比赛时间,其中两个用于显示分钟,两个用于显示秒钟,显示时间范围可达0-99分钟,也可满足各种比赛需要。

比赛分两种模式,一种为限定比赛时间,即赛前需设定比赛用时,比赛开始后进行倒计时,倒计时为零时停止比赛;另一种为限定比赛最高分数,即赛前需设定最高比赛分数,一方到达该分数即停止比赛。

为方便实现计时器和计分器调整时间和比分,设置了键盘,其中按键T和S分别代表两种模式,根据具体情况选择比赛模式。

单片机篮球比赛记分器 精品

单片机篮球比赛记分器 精品

DACHANGCHUN INSTITUTE OF TECHNOLOGY篮球比赛记分器The Game Of Basketball Scoring Device设计题目:篮球比赛记分器学院名称:电气与信息工程学院专业名称:电子信息工程任务分配表班级学号姓名完成主要任务电子104208 PCB的绘制仿真与实现电子1042 13 程序的修改PCB的绘制仿真与实现PROTEUS原理图绘制与仿真电子1042 35 文档的编写程序的修改PROTEUS原理图绘制与仿真篮球比赛记分器摘要:本文设计了一个篮球比赛记分器主要利用单片机AT89C51作为核心元件,利用3组4位共阳极的数码管作为显示器件,以C语言作为编程语言,在Protues和Keil搭建的软件仿真平台下进行仿真,本设计包含了AT89C51系列单片机的最小系统的构成,同时在此基础上扩展了一些实用性强的外围接口,可以进一步了解译码器74LS247的应用,LED七段数码管的结构和工作原理,主要实现了计时和显示A/B队的分数,并能及时进行加分,减分,鸣笛警示等功能。

本系统具有成本低廉、性能稳定、高准确度显示、操作方便且易携带等特点。

广泛适合各类学校和小团体作为赛程计分。

关键词:AT89C51单片机;74LS247;七段数码管;仿真;嵌入式0 引言进入21世纪,伴随着电子,信息通信技术的应用与普及开发,人们对电子技术的要求也越来越高,目前嵌入式单片机渗透到我们生活的各个领域。

单片机是一种集成在电路芯片,是采用超大规模集成电路技术,把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。

按照历史性、本质性、普遍性要求,嵌入式系统应定义为:“嵌入到对象体系中的专用计算机系统”,可分软件部分和硬件部分,而当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在单片机上。

篮球比赛计时计分器

篮球比赛计时计分器

设计任务:1、显示内容,队名用英文名,3个大写字母20分队名1-A:队名2-B =xxx:xxx第x节剩余时间:XX分XX秒2、串口控制20分A+1% A队加1分,%为结束符A+2% A队加2分,%为结束符A+3% A队加3分,%为结束符B+1% B队加1分,%为结束符以此类推3、串口控制交换场地5分A-B% AB队交换4、20 分PAUSE% 计时暂停按键1-定义为PAUSE按键用ZLG7290RESTART%重新计时按键2-定义为RESTARTRESET%重新比赛按键3-定义为RESET5、存储近5场的成绩到AT24C02 格式:1-队名1队名2=90:100类推20分RECALL1% 提取存储的第1场成绩,在数码管上显示,只显示比分,串口传回队名+比分&整场结束,提示是否保存成绩,按键4-存储键按键5-放弃键15分源代码:接线说明:PSB-VCC RS-P1.0 RW-P1.1 P1.3-E INT-P3.2 TXD-P3.1 RXD-P3.0 SDA-P1.6 SCL-P1.7 I2C 总线的ABC》别接键盘的ABCD以程序为准凭记忆写出来的)主程序#include<reg51.h>#include<intrins.h>#include<string.h>#include<I2C.h>#include <ZLG7290.h>#define unchar unsigned char #define unit unsigned int #define Lcd_Bus P0#define unchar unsigned char unsigned char KeyValue,FlagINT; int ney;// 纪录第及场比赛sbit RS=P1A0;//LCD 显示屏sbit RW=P1A1;sbit E=P1A3;unchar code lcddata[]={"0123456789:"};unchar code duiming[]={'1','H','O','U',':','2','C','H','I','='};unchar bifen[7];unchar fen1;unchar fen2;unchar jie;unchar min;unchar sec;unchar control;unchar table[10];************** 延时函数***********************void delay(unsigned int t) { unsigned int i,j;for(i=0;i<t;i++) for(j=0;j<10;j++)/* ------------ 写命令到LCD ---------------------- */void write_com(unsigned char cmdcode) {//chk_busy();RS = 0; // 置零RW = 0;E = 1;Lcd_Bus = cmdcode;delay(10); // 在数据写入的时候加入适当的延时 E = 0;}/* ------------ 写数据到LCD ---------------------- */void write_data(unsigned char Dispdata){//chk_busy();RS = 1; // 写数据RW = 0;E = 1;Lcd_Bus = Dispdata;delay(10); // 在数据写入的时候加入适当的延时 E = 0;/******* 函数名称:Write_Char* 功能描述:写字符******/ void write_char(unsigned int num){// chk_busy();RS = 1;RW = 0;E = 1;Lcd_Bus = lcddata[num];E = 0;}/* ------------ 显示字符串----------------- */void hzkdis(unsigned char code *s){ while(*s>0){ write_data(*s);// 选择基本指令集 (30H )// 点设定,游标右移// 开显示控制 (无游标、不反白 )// 清除显示,并且设定地址指针为 00H //unchar duiming[]= "1-HOU:2-CHI";// 队名数组//unchar bifen[7];// 比分数组unchar k;// 记录第几场比赛void timer0init(void) {TMOD=0X21;TH0=0X31;TL0=0XB0;ET0=1;EA=1;TR0=1;//IT0=1;// EX0=1;}/***** 用作串口通信 ****/ void timer1init(void){TH1=0xf3;TL1=0XF3;SCON=0X50;EA=1;ES=1;TR1=1;}/**** 保存成绩 */void save(int ney){ s++;/* ------------ 初始化 LCD 屏 ----------------- */ /*** 用作计时***/void lcdreset() { write_com(0x30);delay(16); write_com(0x04);delay(16);write_com(0x0f); delay(16);write_com(0x01);delay(16);}(同时地址归为 )int i;unchar buff[7];// ney++;ZLG7290_Download(i,0,0,0X0A); bifen[2]=fen2/100;bifen[1]=(fen2%100-fen2%10)/10;bifen[0]=fen2%10;bifen[3]=0X1F;bifen[6]=fen1/100;bifen[5]=(fen1%100-fen1%10)/10;bifen[4]=fen1%10;for(i=0;i<7;i++){x24c02_write(i+7*ney,bifen[i]);}for(i=0;i<7;i++){buff[i]=x24c02_read(i+7*ney); delay(12);}for(i=0;i<7;i++){ZLG7290_Download(i,0,0,buff[i]);}/********** 将存储在at24c02 的数据通过串口通信发还给电脑**/ void fahuan(unsigned char k){unchar buff[7],i;for(i=0;i<10;i++){SBUF=duiming[i];while(!TI){;}TI=0;}for(i=0;i<7;i++){buff[i]=x24c02_read(i+7*k);delay(12);}for(i=0;i<7;i++){ZLG7290_Download(i,0,0,buff[i]);}for(i=6;i>3;i--){SBUF=buff[i]+48;while(!TI){;}TI=0;}SBUF=':';while(!TI){;}TI=0;SBUF=buff[2]+48;while(!TI){;}TI=0;SBUF=buff[1]+48; while(!TI){;} TI=0;SBUF=buff[0]+48; while(!TI){;} TI=0;P2=0xf0;}/**** 定时器中断用作计时**/ void timer0(void) interrupt 1 using 1 {static unchar count=0; unchar i;TH0=0X3C;TL0=0XB0; count++;if(count==20){count=0;sec--;if(sec==-1){sec=59; min--; if(min==-1) {if(jie<=3) {write_com(0x01); jie++;min=1; } else { // TR0=0;control=0; //save();}}}}/**** 主要用作显示比分**/void show_fen1(void){ write_com(0x80); hzkdis("2-CHI:1-HOU=");write_com(0x90); delay(16);write_char(fen2/ 100); delay(16);write_char((fen2%100-fen2% 10)/10); delay(16);write_char(fen2% 10); delay(16);write_char( 10 ); delay(16) ;write_char(fen1/ 100); delay(16);write_char((fen1%100-fen1% 10)/10); delay(16);write_char(fen1% 10); delay(16);}/**** 显示比分队名顺序相反**/void show_fen0(void){write_com(0x80);hzkdis("1-HOU:2-CHI=");write_com(0x90); delay(16);write_char(fen1/ 100); delay(16);write_char((fen1%100-fen1% 10)/10); delay(16);write_char(fen1% 10);write_char( 10 ); delay(16) ;write_char(fen2/ 100); delay(16); write_char((fen2%100-fen2%10)/10); delay(16);write_char(fen2% 10); delay(16);}/*** 显示时间**/void show_time(void){write_com(0x88);if(jie%10==1)hzkdis("第 1 节”);if(jie%10==2)hzkdis("第 2 节");if(jie%10==3)hzkdis("第 3 节");if(jie%10==4)hzkdis("第 4 节");write_com(0x8c);hzkdis("剩余时间");write_com(0x9a);delay(16);write_char( min / 10 );delay(16);write_char( min % 10 );delay(16);write_char( 10 );delay(16);write_char( sec / 10 );delay(16);write_char( sec % 10 );}void show(){write_com(0x80);hzkdis("是否保存成绩?”);write_com(0x90);hzkdis("y press butter 4"); write_com(0x88);hzkdis("n press butter 5 "); write_com(0x98);hzkdis(" ");}/***** 串口中断处理来自串口助手的命令*/ void chuanko() interrupt 4 {unchar i=0;unchar buff[]="wrong";while(1){ while(!RI);RI=0; if(SBUF=='%') break; table[i]=SBUF;i++;} if(table[0]=='A'&&table[1]=='+'&&table[2]=='1') fen1++;else if(table[0]=='A'&&table[1]=='+'&&table[2]=='2') {fen1++;fen1++;}else if(table[0]=='A'&&table[1]=='+'&&table[2]=='3') {fen1++;fen1++;fen1++;}else if(table[0]=='B'&&table[1]=='+'&&table[2]=='1')fen2++;else if(table[0]=='B'&&table[1]=='+'&&table[2]=='2'){fen2++;fen2++;}else if(table[0]=='B'&&table[1]=='+'&&table[2]=='3'){fen2++;fen2++;fen2++;}else if(table[0]=='A'&&table[1]=='-'&&table[2]=='B'){control=2;// 交换场地}elseif(table[0]=='P'&&table[1]=='A'&&table[2]=='U'&&table[3]=='S'&&table[4]=='E'){TRO=(~TRO);〃暂停}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='S'&&table[3]=='T'&&table[4]=='A'&&table[5]==' R'& &table[6]=='T'){TR0=0;min=11;sec=59;TR0=1;〃重新计时}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='S'&&table[3]=='E'&&table[4]=='T'){ timer0init();// TR0=0;min=11;sec=59;jie=1;fen1=0;fen2=0;TR0=1;〃重新开始write_com(0x01);control=1;}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]==' L'& &table[6]=='1'){ ZLG7290_Download(i,0,0,0X0E);fahuan(0);//shuma(1);}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]=='L'& &table[6]=='2'){ fahuan(1);//shuma(2);}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]==' L'& &table[6]=='3'){ fahuan(2);//shuma(3);}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]==' L'& &table[6]=='4'){ fahuan(3);//shuma(4);}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]==' L'& &table[6]=='5'){ fahuan(4);//shuma(5);}else{ for(i=0;i<6;i++) {SBUF=buff[i]; while(!TI); TI=0;/**** 外部中断初始化响应按键中断**/void SystemInit(){I2C_Init();EA = 0;IT0 = 1; // 负边沿触发中断EX0 = 1; // 允许外部中断EA = 1; // 等待ZLG7290 复位完毕}/***** 外部中断函数响应各个按键**/void INT0_SVC() interrupt 0 {unchar i; ZLG7290_ReadReg(ZLG7290_Key,&KeyValue);// 显示键值DispValue(0,KeyValue); if(KeyValue==0x09) {TRO=(~TRO);//暂停} if(KeyValue==0x0a){TR0=0;min=11;sec=59;TR0=1;//重新计时} if(KeyValue==0x0b)timer0init(); write_com(0x01);TR0=0;min=11;sec=59;jie=1;fen1=0;fen2=0;control=1;TR0=1;〃重新开始} if(KeyValue==0x0c) { save(ney);ney++;timer0init();// 响应完中断记得重新初始化不然可能会出错timer1init();SystemInit();}main(){min=11;sec=59;fen1=0;fen2=0;jie=1;control=1;ney=0;timer0init();timer1init();lcdreset();SystemInit();//系统初始化while(1){if(control==1){show_fen0(); show_time();}if(control==0){show();// 比赛结束提示}if(control==2){show_fen1();// 交换场地show_time();}I2C.C标准80C51单片机模拟I2C总线的主机程序Copyright (c) 2005,广州周立功单片机发展有限公司All rights reserved.本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的*/#i nclude "I2C.h"//定义延时变量,用于宏l2C_Delay()un sig ned char data I2C_Delay_t;/*宏定义:I2C_Delay()功能:延时,模拟I2C总线专用*/#defi ne I2C_Delay()\{\I2C_Delay_t = (I2C_DELAY_VALUE);\ while ( --I2C_Delay_t != 0 );\/*函数:I2C_I nit()功能:I2C总线初始化,使总线处于空闲状态说明:在main()函数的开始处,通常应当要执行一次本函数*/void I2C_I nit(){I2C_SCL = 1;I2C_Delay();I2C_SDA = 1;I2C_Delay();/*函数:I2C_Start()功能:产生I2C 总线的起始状态说明:SCL处于高电平期间,当SDA出现下降沿时启动I2C总线不论SDA和SCL处于什么电平状态,本函数总能正确产生起始状态本函数也可以用来产生重复起始状态本函数执行后,I2C总线处于忙状态*/void I2C_Start(){I2C_SDA = 1;I2C_Delay();I2C_SCL = 1;I2C_Delay();I2C_SDA = 0;I2C_Delay();I2C_SCL = 0;I2C_Delay();} /* 函数:I2C_Write()功能:向I2C总线写1个字节的数据参数:dat:要写到总线上的数据*/ void I2C_Write(char dat){unsigned char t = 8;do{I2C_SDA = (bit)(dat & 0x80);dat <<= 1;I2C_SCL = 1;I2C_Delay();I2C_SCL = 0;I2C_Delay();} while ( --t != 0 );/*函数:I2C_Read() 功能:从从机读取 1 个字节的数据返回:读取的一个字节数据*/char I2C_Read(){char dat;unsigned char t = 8;I2C_SDA = 1; //在读取数据之前,要把SDA拉高do {I2C_SCL = 1;I2C_Delay();dat <<= 1;if ( I2C_SDA ) dat |= 0x01;I2C_SCL = 0;I2C_Delay();} while ( --t != 0 ); return dat;}/*函数:I2C_GetAck() 功能:读取从机应答位返回:0:从机应答1 :从机非应答说明:从机在收到每个字节的数据后,要产生应答位从机在收到最后 1 个字节的数据后,一般要产生非应答位*/bit I2C_GetAck(){bit ack;I2C_SDA = 1;I2C_Delay();I2C_SCL = 1;I2C_Delay();ack = I2C_SDA; I2C_SCL = 0;I2C_Delay();return ack;/*函数:I2C_PutAck() 功能:主机产生应答位或非应答位参数:ack=O:主机产生应答位ack=1 :主机产生非应答位说明:主机在接收完每一个字节的数据后,都应当产生应答位主机在接收完最后一个字节的数据后,应当产生非应答位*/void I2C_PutAck(bit ack){I2C_SDA = ack;I2C_Delay();I2C_SCL = 1;I2C_Delay();I2C_SCL = 0;I2C_Delay();}/*函数:I2C_Stop()功能:产生I2C 总线的停止状态说明:SCL处于高电平期间,当SDA出现上升沿时停止I2C总线不论SDA和SCL处于什么电平状态,本函数总能正确产生停止状态本函数执行后,I2C总线处于空闲状态*/void I2C_Stop(){unsigned int t = I2C_STOP_WAIT_VALUE;I2C_SDA = 0;I2C_Delay();I2C_SCL = 1;I2C_Delay();I2C_SDA = 1;I2C_Delay();while ( --t != 0 ); // 在下一次产生Start 之前,要加一定的延时} /*函数:I2C_Puts()功能:I2C总线综合发送函数,向从机发送多个字节的数据参数:SlaveAddr:从机地址(7位纯地址,不含读写位)SubAddr:从机的子地址SubMod:子地址模式,0—无子地址,1 —单字节子地址,2—双字节子地址*dat :要发送的数据Size:数据的字节数返回:0:发送成功1 :在发送过程中出现异常说明:本函数能够很好地适应所有常见的I2C 器件,不论其是否有子地址当从机没有子地址时,参数SubAddr 任意,而SubMod 应当为0*/bit I2C_Puts(unsigned char SlaveAddr, unsigned int SubAddr, unsigned char SubMod, char *dat, unsigned int Size){// 定义临时变量unsigned char i;char a[3];// 检查长度if ( Size == 0 ) return 0;// 准备从机地址a[0] = (SlaveAddr << 1);// 检查子地址模式if ( SubMod > 2 ) SubMod = 2;// 确定子地址switch ( SubMod ){case 0: break;case 1:a[1] = (char)(SubAddr);break;case 2:a[1] = (char)(SubAddr >> 8);a[2] = (char)(SubAddr);break;default: break;}// 发送从机地址,接着发送子地址(如果有子地址的话) SubMod++;I2C_Start();for ( i=0; i<SubMod; i++ ){I2C_Write(a[i]);if ( I2C_GetAck() ){I2C_Stop(); return 1;}}// 发送数据do{I2C_Write(*dat++);if ( I2C_GetAck() ) break;} while ( --Size != 0 );//发送完毕,停止I2C总线,并返回结果I2C_Stop();if ( Size == 0 ){return 0;}else{return 1;}}/*函数:I2C_Gets()功能:I2C总线综合接收函数,从从机接收多个字节的数据参数:SlaveAddr:从机地址(7位纯地址,不含读写位)SubAddr:从机的子地址SubMod:子地址模式,0—无子地址,1 —单字节子地址, *dat :2—双字节子地址保存接收到的数据Size:数据的字节数返回:0:接收成功1 :在接收过程中出现异常说明:本函数能够很好地适应所有常见的I2C 器件,不论其是否有子地址当从机没有子地址时,参数SubAddr 任意,而SubMod 应当为0 */bit I2C_Gets(unsigned char SlaveAddr, unsigned int SubAddr, unsigned char SubMod, char *dat, unsigned int Size){// 定义临时变量unsigned char i; char a[3];// 检查长度if ( Size == 0 ) return 0;// 准备从机地址a[0] = (SlaveAddr << 1);// 检查子地址模式if ( SubMod > 2 ) SubMod = 2;// 如果是有子地址的从机,则要先发送从机地址和子地址if ( SubMod != 0 ){//确定子地址if ( SubMod == 1 ){a[1] = (char)(SubAddr);}else{a[1] = (char)(SubAddr >> 8); a[2] = (char)(SubAddr);} //发送从机地址,接着发送子地址SubMod++;I2C_Start();for ( i=0; i<SubMod; i++ ){ I2C_Write(a[i]); if ( I2C_GetAck() ) {I2C_Stop();return 1;}}//这里的l2C_Start()对于有子地址的从机是重复起始状态//对于无子地址的从机则是正常的起始状态l2C_Start();// 发送从机地址l2C_Write(a[0]+1);if ( l2C_GetAck() ){l2C_Stop();return 1;}//接收数据for (;;){*dat++ = l2C_Read();if ( --Size == 0 ){ l2C_PutAck(1); break;} l2C_PutAck(0);}//接收完毕,停止I2C总线,并返回结果l2C_Stop();return 0;}/*ZLG7290.c数码管显示与键盘管理芯片ZLG7290的标准80C51驱动程序C文件Copyright (c) 2005,广州周立功单片机发展有限公司All rights reserved.本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的*/ #include "I2C.h"#include "ZLG7290.h" /*函数:ZLG7290_WriteReg()功能:向ZLG7290的某个内部寄存器写入数据参数:RegAddr:ZLG7290的内部寄存器地址dat :要写入的数据返回:0:正常1:访问ZLG7290时出现异常*/bit ZLG7290_WriteReg(unsigned char RegAddr, char dat){bit b;b = I2C_Puts(ZLG7290_I2C_ADDR,RegAddr,1,&dat,1); return b;}/*函数:ZLG7290_ReadReg()功能:从ZLG7290的某个内部寄存器读出数据参数:RegAddr:ZLG7290的内部寄存器地址*dat :保存读出的数据返回:0:正常1:访问ZLG7290时出现异常*/bit ZLG7290_ReadReg(unsigned char RegAddr, char *dat){bit b;b = I2C_Gets(ZLG7290_I2C_ADDR,RegAddr,1,dat,1); return b;}/*函数:ZLG7290_cmd()功能:向ZLG7290发送控制命令参数:cmdO :写入CmdBufO寄存器的命令字(第1字节) cmdl :写入CmdBufl寄存器的命令字(第2字节) 返回:0:正常1:访问ZLG7290时出现异常*/bit ZLG7290_cmd(char cmd0, char cmd1){bit b;char buf[2];buf[0] = cmd0;buf[1] = cmd1;b = I2C_Puts(ZLG7290_I2C_ADDR,ZLG7290_CmdBuf,1,buf,2); return b; }/* 函数:ZLG7290_SegOnOff()功能:段寻址,单独点亮或熄灭数码管(或LED)中的某一段参数:seg:取值0〜63,表示数码管(或LED)的段号b:0 表示熄灭, 1 表示点亮返回:0:正常1:访问ZLG7290时出现异常说明:在每一位数码管中,段号顺序按照“ a,b,c,d,e,f,g,dp ”进行*/bit ZLG7290_SegOnOff(char seg, bit b){char cmd;cmd = seg & 0x3F;if ( b ) cmd |= 0x80;return ZLG7290_cmd(0x01,cmd);}/*函数:ZLG7290_Download() 功能:下载数据并译码参数:addr :取值0〜7,显示缓存DpRamO〜DpRam7的编号dp:是否点亮该位的小数点,0 —熄灭,1—点亮flash:控制该位是否闪烁,0—不闪烁,1—闪烁dat :取值0〜31,表示要显示的数据返回:0:正常1:访问ZLG7290时出现异常说明:显示数据具体的译码方式请参见ZLG7290的数据手册*/bit ZLG7290_Download(char addr, bit dp, bit flash, char dat){char cmd0;char cmd1;cmd0 = addr & 0x0F;cmd0 |= 0x60;cmd1 = dat & 0x1F;if ( dp ) cmd1 |= 0x80;if ( flash ) cmd1 |= 0x40;return ZLG7290_cmd(cmd0,cmd1);} /*I2C.h标准80C51单片机模拟I2C总线的主机程序头文件Copyright (c) 2005,广州周立功单片机发展有限公司All rights reserved. 本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的*/#ifndef _I2C_H_ #define _I2C_H_#include <reg51.h>//模拟I2C总线的引脚定义sbit I2C_SCL = P1A6;sbit I2C_SDA = P"7;//定义I2C总线时钟的延时值,要根据实际情况修改,取值1〜255//SCL信号周期约为(I2C_DELAY_VALUE*4+15个机器周期#define I2C_DELAY_VALUE 12//定义I2C总线停止后在下一次开始之前的等待时间,取值1〜65535〃等待时间约为(I2C_STOP_WAIT_VALUE*8个机器周期//对于多数器件取值为 1 即可;但对于某些器件来说,较长的延时是必须的#defineI2C_STOP_WAIT_VALUE 120//I2C 总线初始化,使总线处于空闲状态void I2C_Init();void x24c02_write(unsigned char address,unsigned char info); unsigned charx24c02_read(unsigned char address); //unsigned char x24c02_read(unsigned char address);//I2C 总线综合发送函数,向从机发送多个字节的数据bit I2C_Puts(unsigned char SlaveAddr,unsigned int SubAddr,unsigned char SubMod, char *dat, unsigned int Size);//I2C 总线综合接收函数,从从机接收多个字节的数据bit I2C_Gets(unsigned char SlaveAddr,unsigned int SubAddr,unsigned char SubMod, char *dat, unsigned int Size);#endif //_I2C_H_/*ZLG7290.h数码管显示与键盘管理芯片ZLG7290的标准80C51驱动程序头文件Copyright (c) 2005,广州周立功单片机发展有限公司All rights reserved. 本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的*/#ifndef _ZLG7290_H_#define _ZLG7290_H_#include <reg51.h> //ZLG7290 中断请求信号的引脚定义sbit ZLG7290_pi nINT = P3A2;II定义ZLG7290在I2C总线协议中的从机地址// 这是7 位纯地址,不含读写位#define ZLG7290_I2C_ADDR 0x38II定义ZLG7290内部寄存器地址(子地址)#define ZLG7290_SystemReg 0x00 II系统寄存器#define ZLG7290_Key 0x01 II 键值寄存器II#define ZLG7290_RepeatCnt 0x02 II 连击次数寄存器II#define ZLG7290_FunctionKey 0x03 II 功能键寄存器#define ZLG7290_CmdBuf 0x07 II 命令缓冲区起始地址#define ZLG7290_CmdBuf0 0x07 II 命令缓冲区0#define ZLG7290_CmdBuf1 0x08 //命令缓冲区 1//#define ZLG7290_FlashOnOff 0x0C //闪烁控制寄存器#define ZLG7290_ScanNum 0x0D //扫描位数寄存器#define ZLG7290_DpRam 0x10 // 显示缓存起始地址#define ZLG7290_DpRam0 0x10 //显示缓存0/#define ZLG7290_DpRam10x11 //显示缓存 1#define ZLG7290_DpRam2 0x12 //显示缓存 2#define ZLG7290_DpRam3 0x13 //显示缓存 3#define ZLG7290_DpRam5 0x15 //显示缓存 5#define ZLG7290_DpRam6 0x16 //显示缓存 6#define ZLG7290_DpRam7 0x17 //显示缓存7//向ZLG7290的某个内部寄存器写入数据bit ZLG7290_WriteReg(unsigned char RegAddr, char dat);//从ZLG7290的某个内部寄存器读出数据bit ZLG7290_ReadReg(unsigned char RegAddr, char *dat);//向ZLG7290发送控制命令bit ZLG7290_cmd(char cmd0, char cmd1);//段寻址,单独点亮或熄灭数码管(或LED)中的某一段bit ZLG7290_SegOnOff(char seg, bit b);//下载数据并译码bit ZLG7290_Download(char addr, bit dp, bit flash, char dat);〃闪烁控制指令(Fn应当是字节型)//Fn 的8 个位分别控制数码管的8 个位是否闪烁,0-不闪烁,1-闪烁#define ZLG7290_Flash(Fn) ZLG7290_cmd(0x70,(Fn))#endif //_ZLG7290_H_#include <reg51.h>#include <intrins.h>#include <I2C.h>//sbit dula=P2A6;//sbit wela=P2A7; unsigned char j,c;void de(unsigned char i) // 延时程序{for(j=i;j>0;j--)for(c=125;c>0;c--);}/*24C02 读写驱动程序*/void flash()// 短时间的延时,几微秒左右{ ; ;}void init() //24c02 初始化子程序{I2C_SCL=1;flash();I2C_SDA=1;flash();}void start() // 启动I2C 总线{I2C_SDA=1;flash();I2C_SCL=1;flash();I2C_SDA=0;flash();// scl=0;// flash();}void stop() // 停止I2C 总线{I2C_SDA=0;flash();I2C_SCL=1;flash();I2C_SDA=1;flash();}void writex(unsigned char j) // 写一个字节{ unsigned char i,temp;temp=j;for (i=0;i<8;i++){ temp=temp<<1; I2C_SCL=0; flash(); I2C_SDA=CY; flash(); I2C_SCL=1; flash();}I2C_SCL=0;flash();I2C_SDA=1;flash();} unsigned char readx() // 读一个字节{unsigned char i,z;I2C_SCL=0;flash();I2C_SDA=1;for (i=0;i<8;i++){ flash(); I2C_SCL=1; flash();if (I2C_SDA==1) j=1; else j=0;z=(z<<1)|j;// 先左移,然后在最低位读入值I2C_SCL=0;}flash();return(z);}void clock() //I2C 总线时钟响应{unsigned char i=0;I2C_SCL=1;flash();while ((I2C_SDA==1)&&(i<255))i++;I2C_SCL=0;flash();//////// 从24c02 的地址address 中读取一个字节数据///// unsigned charx24c02_read(unsigned char address) {unsigned char i; start();writex(0xa8);//A1 A2 A3 全部低电平// clock();writex(address);clock();start(); writex(0xa9);clock(); i=readx();stop(); de(10);return(i); }////// 向24c02 的address 地址中写入一字节数据info///// void x24c02_write(unsigned char address,unsigned char info) {EA=0;start(); writex(0xa8);clock(); writex(address);clock(); writex(info);clock();stop();de(50);。

篮球计分器

篮球计分器

篮球比赛数字计分牌引言该系统采用可逆计数器74LS192D和74LS161作为该设计的核心原件。

以七段共阴数码管作为显示器件,CD4511作为数码管驱动器。

在该设计中共有三个数码管用于显示该队的分数,数码管U10,U9,U8分别显示百位,十位,个位,可以显示0~999的分数。

按下S3,百位,十位和个位复位;当球员得分或扣分为1分,则在加减一分模块进行开关按键操作;当球员得分或减分为2分时,则在加减2分模块进行按键操作。

该系统构造简单,易于制作,可普遍应用于篮球比赛或各类运动。

由于制作简单,益于安装在各类球场中,也可用于学生篮球赛计分,可以取代纸质记分牌。

经过适当的改造,也可以用于其他类型的比赛。

关键字74LS192D〔可逆十进制计数器〕七段共阴数码管74LS161计数器CD4511数码管驱动器NE555定时器1 设计意义与目的篮球比赛是根据在规定时间两篮球队的得分高低来确定哪一支篮球队获胜,应用动态的电子篮球计分牌能够动态的反应两支队伍的得分情况,吸引观众的眼球,提高观众的兴趣。

篮球数字计分牌设计简单,能应用于各种不同场合的篮球赛,能客观的正确的记录篮球比赛双方的得分情况。

根据目前高水平比赛的要求,完善后的篮球计分牌能够时与现场的电子设备实现现场成绩处理,大屏幕转播,实现表演娱乐观众的目的。

1.2设计目的1.熟悉集成电路的引脚安排;2.熟悉芯片的逻辑功能以及使用方法;3.加强焊接技术和接线方面的提高;4.熟悉74LS192D等芯片的的逻辑功能和设计制作;2 总体方案的设计1.由于篮球计分牌需要从零开始计分,要求可清零重新比赛,要求有一开关控制数码管的清零,用作复位开关。

2.记分牌的百位,十位,个位用三个数码管显示;3.百位,十位,个位的加减由十进制计数器74LS192D,74LS161实现;4.利用防抖动的按键开关控制计数器的出发信号;3 模块设计3.1 计数编码电路在该模块中,核心元件是可逆加减计数器74LS192D和74LS161。

比赛计时计分器课程设计

比赛计时计分器课程设计

比赛计时计分器课程设计一、课程目标知识目标:1. 学生能够理解比赛计时计分器的基本原理,掌握其计时和计分的方法。

2. 学生能够运用所学知识,设计并制作一个简单的比赛计时计分器。

3. 学生能够了解计时计分器在各类比赛中的应用和重要性。

技能目标:1. 学生能够运用编程语言或电子元件,实现计时和计分功能。

2. 学生能够通过团队协作,完成计时计分器的设计、制作和调试。

3. 学生能够运用所学技能解决实际问题,提高创新实践能力。

情感态度价值观目标:1. 学生培养对信息技术和电子制作的兴趣,激发学习热情。

2. 学生在学习过程中,增强团队合作意识,培养沟通协调能力。

3. 学生通过制作比赛计时计分器,体验科技带来的便利,提高社会责任感和创新精神。

课程性质:本课程为信息技术与电子制作的实践课程,结合学生年级特点和教学要求,注重培养学生的动手能力、创新意识和团队协作精神。

学生特点:学生具备一定的信息技术基础,对电子制作感兴趣,善于动手实践,喜欢团队合作。

教学要求:教师应引导学生将理论知识与实践相结合,关注学生的个体差异,鼓励学生积极参与,充分挖掘学生的潜能。

同时,注重培养学生的自主学习能力,提高课程学习效果。

通过本课程的学习,使学生能够将所学知识应用于实际生活,达到学以致用的目的。

二、教学内容1. 理论知识:- 计时计分器的基本原理和功能- 编程语言基础(如Scratch、Python等)- 电子元件知识(如LED、按钮、传感器等)2. 实践操作:- 设计计时计分器的原型- 选择合适的编程语言和电子元件- 搭建电路,编写程序,实现计时和计分功能3. 教学大纲:- 第一课时:介绍计时计分器的基本原理和功能,引导学生思考其应用场景。

- 第二课时:学习编程语言基础,掌握基本的编程思路和技巧。

- 第三课时:了解电子元件知识,学习如何使用各类元件。

- 第四课时:分组讨论,设计计时计分器原型,明确分工和任务。

- 第五课时:搭建电路,编写程序,实现计时和计分功能。

篮球计分器

篮球计分器

第1章系统概述1.1系统功能设计一个甲、乙两队比赛计分器,主要用于各种体育比赛记录分数。

采用矩阵式键盘作为输入。

基于以上思路,本次设计使用80C51实现一基于单片机的电子计分器的设计,其主要具有如下功能:(1)用户可分别对两队比分进行加5、加10、加15和减5,减10,减15操作。

(2)比分通过8个8段共阴极数码管显示器进行显示,每队比分显示三位,中间两个数码管作为分开分数,可以交换两队的比分。

(4)具有复位功能,通过复位键实现。

(5)裁判可通过控制按键对甲乙实现加减分数。

1.2设计内容及要求1.2.1 设计内容:(1)给甲乙两队分别设置一个分数控制按钮,此按钮有7种状态,分别为+5、+10、+15、-5、-10、-15,初始状态置数+50。

(2)设置一个切换状态按钮,可以分别切换每一种状态,然后每一种状态对相应的对加分。

(3)设置一个复位按钮,按下实现甲、乙队总分置0并即时显示。

(4)设置一个交换分按钮,用于交换甲乙比分。

1.2.2 设计要求:1、方案合理、正确,系统稳定、可靠。

2、软件设计要求尽可能精练、简短和运行可靠。

3、硬件电路要求简单明了,以节约成本。

1.3 按钮设置本设计的宗旨是用最少的按键实现最多的功能。

设计中一共用到了9个按钮,分别为:清零按钮、甲的加分减分按钮,乙的加分减分按钮,切换状态按钮和交换比分按钮。

每个按钮的功能如下:控制甲的按钮:实现+5、+10、+15、-5、-10、-15功能;控制乙的按钮:实现+5、+10、+15、-5、-10、-15功能;切换按钮:实现甲乙的各种状态的切换;切换比分按钮:交换甲乙的比分;清零按钮:实现甲乙比分清零;第2章总体方案设计2.1 总体系统框图此次设计80C51单片机为核心,配以一定的外围电路和软件,以实现比赛计分器的功能。

利用8个8段共阴级数码管显示器.采用动态显示输出比分,用户信息输入则采用4×4矩阵式键盘。

用一片单片机可满足本设计的输入输出。

EDA课程设计——篮球球比赛计分器_2

EDA课程设计——篮球球比赛计分器_2

<<电子设计自动化EDA技术>>课程设计报告题目: 篮球比赛记分牌姓名:院系:专业:学号:指导教师:完成时间: 年月日目录1 课程设计题目`内容与要求………………………1.1 设计内容1.2 具体要求2系统设计…………………………2.1 设计思路2.2 系统原理3 系统实现……………………………………………4 系统仿真……………………………………………5硬件验证(操作)说明………………………………6 总结…………………………………………………7参考书目……………………………………………一、课程设计题目、内容与要求1.1课程设计的题目: 篮球比赛记分牌1、1.2课程设计内容:2、根据比赛实际情况记录两队得分, 罚球进的1分, 进球的2分;3、记分牌要具有纠错功能, 能减1分、2分功能;4、利用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;移位寄存器模块电路及程序: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 显示等, 六、总结七、参考书目[1]《PLD与数字系统设计》李辉西安电子科技大学出版社 2005[2]《EDA技术及可编程逻辑器件应用实训》沈明山北京科学出版社 2004[3]《VHDL数字系统设计与高层次综合》林敏方颖立著北京: 电子工业出版社2002[4]《VHDL程序设计》曾繁泰陈美金著北京: 清华大学出版社 2001[5]《EDA技术实验与课程设计》曹昕燕周风臣清华大学出版社 2005[6]《PLD器件与EDA技术》李冬梅北京广播学院出版社2000。

简单设计篮球积分计时器

简单设计篮球积分计时器

目录一、前言二、设计任务与要求三、总体方案四、单元模块设计五、程序六、操作说明七、设计总结八、参考文献九、附:(仿真电路图)一、前言1、引言在当今社会随着物质生活的提高,人们对精神文化的需求也越来越高。

篮球竞技就是其中非常重要的一个方面,而计时记分系统在竞赛中更是重中之重。

在篮球比赛中,总的倒计时是必需的,规定为12 min。

除此以外,为了加快比赛节奏,还规定了队员的持球时间不能超过24 s,否则就犯规。

这里所设计的计时器涵盖了以上要求,可用于篮球比赛中。

用于对总时间和持球时间24 s 的限制。

2、设计简介本设计是采用AT89C52单片机设计的一个用于篮球比赛的篮球计时计分器。

本设计采用定时器T0中断进行计时,显示部分分为计时显示和计分显示两部分,均采用LCD液晶显示屏显示,用于显示整个比赛赛程的比赛时间和两队的比分情况。

采用六个键盘和外部中断0实现输入功能,用于调节时间开始与暂停、比赛过程中计分、比赛时间结束以后报警及复位等功能。

本设计采用AT89C52单片机作为核心部件,整个系统结构简单、实用性强、操作简便、具有低功耗,可靠性,安全性以及低成本等特点,该设计方案完全满足篮球计分器的设计要求。

现在篮球比赛计时器的设计大都比较的复杂,所用芯片太多,造成整体的价格提高,而且软件设计比较的复杂。

导致性价比不是很高,很难得到广泛的推广。

我所设计的这个篮球比赛计时器一改他们的缺点,硬件比较的简单,软件也很容易。

因此,实用性比较大。

二、设计任务与要求1、设计任务:设计并制作一个用1602LCD作为显示篮球比分的记分牌,记分牌上显示A、B对号,两队的比分,能实现每次加、减分和时间开始暂停等操作,显示时间、时间精确到1S。

2、设计要求:(一)采用单片机控制,响应迅速,判别精确;主控台面上有按键控制,可同时对比赛时的分数显示进行加分减分,能显示整个赛程的比赛时间,暂停时间和比赛的节数。

(二)在比赛的过程中能够随时刷新各队在整个赛程中的比分,通过按键输入比分,显示在数码管上;按键分别为加1分、减1分键。

51单片机课设,比赛计分器

51单片机课设,比赛计分器

51单⽚机课设,⽐赛计分器本来是⽤汇编写的,但是汇编属实学的不怎么好,于是⾃学⽤C来写,效果还不错⽐赛计分器⼀、需求分析(从⽤户⾓度 UML)1.1 设计内容本项⽬设计开发⼀款个⽐赛计分器,在重竞技⽐赛项⽬中(拳击,跆拳道),由3个裁判员对运动员评判。

当⼀⽅运动员有效攻击后,裁判员⽴刻给这个运动员加分。

如果有2个或2个以上裁判同时(⼀秒内)按键,则给该⽅运动员加⼀分。

⽐赛期间(2分钟)得分多判定为胜利⽅。

1.2 设计⽬标⽐赛计分器要实现的功能如下:(1)能够提供三个裁判的评分按键,当⼀秒钟内有2个或者3个裁判按键,则有效分加1。

(2)显⽰1分钟倒计时,并可以按键控制实践⾛停,开始和结束时候有蜂鸣器响声,时间开始响1s,时间结束响1s。

(3)按下按键可以对两队进⾏警告,同时记录警告次数。

(4)对误判可以进⾏减分。

(5)数码管显⽰时间,得分,警告次数。

平台和⼯具实验平台和⼯具1.3实验实验平台为:keil实验⼯具为:89c51单⽚机1.3 设计的功能分析单⽚机实现⽐赛计分器功能。

使⽤单⽚机数码管,独⽴按键,蜂鸣器以及矩阵键盘四个模块。

数码管⽤来显⽰时间倒计时,双⽅警告次数以及得分。

蜂鸣器在开始时以及快结束前五秒时响1s。

独⽴按键k1按下开始,k2按下暂停,k3按下第⼀队警告次数加1,k4按下第⼆队警告次数加1。

矩阵按键s1,s2,s3,⼀秒内按下任意两个或三个,第⼀队得分加1,按下s4得分减1。

矩阵按键s5,s6,s7,⼀秒内按下任意两个或三个,第⼆队得分加1,按下s8得分减1。

通过本程序的设计可设计出⼀个简易的⽐赛计分器,应⽤于实际⽣活中也是⾮常简易⽅便的。

⼆、总体设计2.1总体⽅案设计(1)裁判按键设置S1:提供裁判1对第⼀队的评分按键S2:提供裁判2对第⼀队的评分按键S3:提供裁判3对第⼀队的评分按键S5:提供裁判1对第⼆队的评分按键S6:提供裁判2对第⼆队的评分按键S7:提供裁判3对第⼆队的评分按键(2)评分判断设置通过启动定时器T0来判断1s之内有⼏个裁判按键,设计⼀个50ms的定时器,中断20次后即为1s,若⼀秒钟内有2个或者3个裁判按键,则有效分加1;否则,不加分。

金智电(JZD020-021)便携式多功能球赛计分器使用说明书

金智电(JZD020-021)便携式多功能球赛计分器使用说明书

便携式多功能球赛计分器(JZD020-021)使用说明
一产品功能
本产品可应用于乒乓球、羽毛球、网球、排球等球类比赛的比分、局比分、发球权显示。

二产品出厂清单
显示屏箱体1个,显示电缆1根,电源线1根。

三使用方法
(1)设备连接与安装:
计分器为一个便携式箱体,其上盖可拆卸,上盖正面为显示屏;箱体正面为开关控制面板。

打开并取下上盖,将上盖背面三个插入点与箱体活页挂钩及底部定位钩可靠安装到位。

再将显示电缆一端连接显示屏,另一端连接箱体,并挂上插头的保险钩。

具体如下图所示:
(2)箱体控制面板上有分数显示数码管及控制按键开关,各键功能说明如下:
“左比分+/-”键:设置左侧分数显示。

“右比分+/-”键:设置右侧分数显示。

“左局比+/-”键:设置左侧局比分数显示。

“右局比+/-”键:设置右侧局比分数显示。

“左/右发球权”键:设置左/右侧发球权显示。

四注意事项
(1)请勿带电插拔显示电缆!连接显示电缆时,应挂上保险钩;不要硬拉电缆,请握住插
头连接或拔下电缆。

(2)电缆配线不用时,请放于箱体右侧线缆盒中,以免丢失。

(3)搬运过程请避免冲击。

使用或存放时,应防潮防水,以免损坏电气元件。

北京金智电科技有限公司
通讯地址:北京市海淀区中关村新科祥园9号楼101室邮政编码:100080
电话:(010)82522232 / 62574676 / 62544436。

篮球比赛计时计分器

篮球比赛计时计分器

内容摘要:篮球比赛计时计分器是为了解决篮球比赛时计时与计分准确的问题,更加方便篮球比赛时的计时与计分问题。

此装置利用单片机AT89C51完成了篮球比赛时计时和计分的功能。

本文详细介绍了系统硬件与软件的设计过程,采用该装置可根据实际情况进行比分、时间的修改与显示,具有低功耗、可靠性、安全性和低成本等特点。

本文主要阐述的是基于AT89C51单片机、数码管、开关模块等构成了篮球比赛计时计分器。

实现了四位一体时钟型共阴数码管显示篮球比赛时间、三位一体共阴数码管显示篮球比赛分数、篮球比赛分数的加减、篮球比赛时间的开始与暂停和篮球比赛结束时的报警等功能。

关键字:AT89C51单片机篮球比赛计时篮球比赛计分内容摘要 (2)引言 (4)第一章绪论 (5)1.1 设计目的与意义 (5)1.2 篮球比赛计时计分器的发展和现状 (5)第二章系统硬件的介绍 (6)2.1 MCS-51 单片机简述 (6)2.2 显示器及其接口 (9)第三章系统整体设计 (11)3.1 系统硬件设计方案 (11)3.2 系统设计流程 (12)第四章系统软件设计 (13)4.1 单元模块设计 (13)4.2 软件设计流程 (13)设计总结 (14)参考文献 (15)附录1:原理图与PCB图 (16)附录2:程序 (17)单片机又称单片微控制器,它内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件。

概括的讲:一块芯片就是一台计算机。

我们现在用的全自动滚筒洗衣机,排烟罩VCD等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。

单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。

球赛计时计分器课程设计

球赛计时计分器课程设计

球赛计时计分器课程设计一、课程目标知识目标:1. 学生能够理解球赛计时计分器的基本原理和功能。

2. 学生能够掌握计时计分器中数字电路的基本组成和使用方法。

3. 学生能够运用所学的数学知识,进行计时计分器相关数据的计算和分析。

技能目标:1. 学生能够运用所学知识,设计和制作一个简易的球赛计时计分器。

2. 学生能够通过实际操作,熟练使用计时计分器,并进行简单的故障排查和修复。

3. 学生能够运用信息技术手段,收集和处理球赛相关数据,提高信息处理能力。

情感态度价值观目标:1. 学生通过学习球赛计时计分器,培养对电子技术和数学知识的兴趣,提高学习积极性。

2. 学生在小组合作中,学会团结协作,互相帮助,培养团队精神和责任感。

3. 学生通过了解计时计分器在现实生活中的应用,认识到科技与生活的紧密联系,激发对科技创新的热情。

课程性质:本课程为实践性强的学科,结合电子技术和数学知识,培养学生动手操作能力和实际问题解决能力。

学生特点:六年级学生具有一定的数学基础和电子技术兴趣,喜欢动手操作,善于合作探究。

教学要求:教师应注重理论与实践相结合,引导学生通过实际操作,掌握计时计分器的原理和制作方法,并关注学生的个体差异,提高学生的综合素养。

在教学过程中,关注学生的学习成果,确保课程目标的实现。

二、教学内容1. 计时计分器原理与功能- 介绍计时计分器的基本原理,如数字电路的组成和工作原理。

- 阐述计时计分器在球赛中的应用及其重要性。

2. 数字电路基础- 讲解数字电路的基本元件,如LED、按钮、开关、集成电路等。

- 分析数字电路的基本连接方式,如串联、并联和组合电路。

3. 计时计分器设计与制作- 引导学生了解计时计分器的结构设计,学习电路图的绘制。

- 指导学生进行实际操作,利用所学知识制作简易计时计分器。

4. 计时计分器操作与维护- 介绍计时计分器的操作方法,如时间设置、计分操作等。

- 讲解常见故障的排查与修复方法,提高学生实际应用能力。

篮球比赛计时器设计绝对可以用版

篮球比赛计时器设计绝对可以用版

电力职业技术学院毕业设计报告题目篮球比赛计时器设计机电工程系电气自动化专业2012级2_ 班学号8姓名达指导教师继伟完成日期2015 年 1 月本次毕业设计的主要介绍:篮球比赛计时器。

随着科技发展,篮球计时器不仅应用于NBA,CBA这样专业的篮球赛场上,也广泛应用于民用的普通赛场上,方便于每场比赛的公平公正。

本设计是对脉冲数字电路的简单应用,设计了篮球竞赛24秒和12分钟倒计时器。

此计时器功能齐全,可以直接清零、启动、暂停和连续以及具有报警功能,同时应用了七段数码管来显示时间。

利用软件和硬件的结合实现开机自动置节计数器为第一节,节计时器为12分00秒,24秒违例为24秒。

用数字显示篮球比赛当时节数,每节时间及24秒的倒计时,采用单片机串行显示。

最后本文会详细叙述此电路的安装与调试,并对调试过程中出现的问题做简要说明。

关键词:篮球比赛计时器;计数器;74LS192第一章绪论 (1)1.1课题选题的概论 (1)1.2课题设计的背景和意义 (2)1.3设计的任务和要求 (3)第二章设计思路、基本原理和框图 (4)2.1设计思路 (4)2.2基本原理 (5)2.3总体设计框图 (5)2.4硬件设计 (7)2.4.1 555时钟芯片模块: (7)2.4.2 74LS192计数器 (8)2.4.3 BCD码7段译码器CD4511 (9)2.4.4 D触发器芯片 (10)2.4.5 YX-1型(单面)篮球计时器 (14)2.4.6 蜂鸣器 (14)第三章篮球计时器电路设计 (16)3.1系统倒计时流程图 (16)3.2秒脉冲发生器的设计 (18)3.3秒、分倒计数器的设计 (18)3.3.1 24秒倒计时电路 (18)3.3.2 12分钟倒计时电路设计 (20)3.4译码器和显示器的设计 (23)3.5节次控制电路的设计 (24)3.6报警电路 (25)第四章篮球计时器软件设计 (26)4.1 篮球计时器程序流程图 (26)4.2 篮球计时器程序设计 (27)第五章Protues仿真与结果分析 (35)5.1 Protues仿真 (35)5.1.1 24秒倒计时仿真调试 (35)5.1.2 12分钟倒计时仿真调试 (35)5.1.3 节数计数单元仿真调试 (37)5.2结果分析 (37)第六章总结 (38)6.1结论 (38)6.2总结 (38)第一章绪论1.1课题选题的概论在当今社会随着物质生活的提高,人们对精神文化的需求也越来越高。

比赛计分器电子课程设计

比赛计分器电子课程设计

比赛计分器电子课程设计一、课程目标知识目标:1. 让学生掌握电子计分器的基本原理和设计思路,理解计分器各部分电路的功能与工作原理。

2. 帮助学生掌握数字电路的基础知识,如门电路、触发器等,并能将这些知识应用于计分器的设计中。

3. 引导学生了解比赛计分器的实际应用场景,理解其在我国体育赛事中的重要性。

技能目标:1. 培养学生运用所学知识,动手设计并制作一个简单的比赛计分器。

2. 提高学生的问题解决能力,能够针对计分器设计过程中遇到的问题进行分析、调试和优化。

3. 培养学生的团队协作能力,学会在项目中进行有效沟通与分工合作。

情感态度价值观目标:1. 激发学生对电子制作的兴趣,培养其创新精神和实践能力。

2. 引导学生关注我国体育事业的发展,增强民族自豪感和社会责任感。

3. 培养学生严谨、认真的学习态度,养成良好的学习习惯。

本课程针对初高中年级学生,结合电子技术、数字电路等学科知识,以比赛计分器为载体,让学生在实践中掌握电子技术的基本原理和技能。

课程注重培养学生的动手能力、问题解决能力和团队协作能力,同时引导学生关注社会热点,提升其综合素质。

通过本课程的学习,学生将能够达到上述课程目标,为后续相关课程的学习打下坚实基础。

二、教学内容1. 电子计分器原理及设计思路- 了解电子计分器的基本构成、工作原理及其设计方法。

- 参照教材第3章“数字电路基础”,学习门电路、触发器等基本知识。

2. 数字电路基础知识- 学习教材第4章“组合逻辑电路”和第5章“时序逻辑电路”,理解并掌握组合逻辑电路和时序逻辑电路的设计方法。

- 结合实例,分析电子计分器中所用到的组合逻辑电路和时序逻辑电路。

3. 比赛计分器电路分析与设计- 根据教材第6章“数字电路应用”,分析比赛计分器电路的各个部分,如计数器、显示电路等。

- 学习如何将所学知识应用于实际比赛计分器的设计,明确各部分电路的功能和连接方式。

4. 实践操作与调试- 教学内容与教材第7章“数字电路的制作与调试”相结合,指导学生动手制作比赛计分器,并进行调试。

2简易比赛计分器

2简易比赛计分器

简易比赛计分器一、序言随着单片机在各个领域中的广泛应用,许多用单片机作控制的比赛计时计分系统也应运产生,如用单片机控制LCD液晶显示计时计分器,用单片机控制LED七段显示器计时计分器等。

STC89C58RD+编程OCMJ4*8C-8显示模块(led键盘管理芯片)控制LED七段数码管作显示的比赛时间,利用点阵图形128X64 LCD的良好人机界面来显示球队的名称及比分。

这个系统具有赛程定时设置、赛程时间暂停、及时刷新甲、乙队双方的成绩及赛后成绩暂存等等功能。

它具有价格低廉、性能稳定、功耗低、操作方便且易携带等特点。

主要器件的介绍:1、STC89C58RD+单片机的简介STC89C系列的单片机是高速/低功耗的新一代8051单片机,最高工作频率可分别达到25MHZ~50MHZ。

STC89C系列的单片机有较宽的工作电压,此外,STC89C系列的单片机在完全兼容8052芯片(在标准8051基础上增加了T2定时器和128字节内部RAM)的基础上,新增了许多实用功能。

STC89C58RD+是一种低功耗高性能的8位单片机,STC89C58RD+系列是全球第一片掉电模式时典型功耗小于0.1uA的8051单片机。

片内带有一个32k字节的F1ash可编擦除只读存储器(PEROM),它采用了CMOS工艺和STC(宏晶)公司的高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统和MCU-51系列单片机兼容。

片内的Flash存储器允许在系统内可改编程序或用常规的非易失性的存储器编程器来编程。

同时它具有三级程序存储器保密的性能。

在众多的51系列单片机中,要算STC(宏晶)公司的STC89C58RD+最实用,因为它不仅和MCU-51系列单片机指令、管脚完全兼容,而且它支持ISP(在系统可编程),无需高价的编程器,可轻松通过串口实现程序下载和远程升级,加上其片内的32k程序存储器是Flash工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写。

篮球比赛计分器

篮球比赛计分器

一月二月三月产品名称数量金额利润产品名称数量金额利润产品名称数量金额利润合计合计合计四月五月六月产品名称数量金额利润产品名称数量金额利润产品名称数量金额利润合计合计合计成绩Protel课程论文题目:篮球计分器学生姓名:汤培泉学生学号: 1114020131系别:电气信息工程学院专业:电子信息工程年级: 2011级任课教师: 王千春电气信息工程学院制2013年12月第1章概述《Protues》是电子信息工程专业的一门重要专业课,对应用能力和动手能力要求很高,课程设计环节是学生学习该课程后进行的一项必不可少的基本训练。

并于大三上学期进行,本人所选的课题是篮球赛计分器。

本课题以增强型单片机AT89C52为核心,设计制作篮球比赛计分器。

针对篮球比赛中有得1、2、3分,有时还会出现加分错误的情况,本人设计的简易篮球赛计分器主要通过按键实现以下功能:能够进行加1、2、3分;能够进行减1分。

并通过3个数码管进行显示。

第2章设计分析2。

1 功能分析根据前面的设计的任务的要求,本设计任务主要具有以下几个模块:单片机模块;按键模块;数码显示模块。

本设计由单片机模块部分植入主程序,通过按键部分进行加1、2、3分以及减1分操作,最终在3个LED数码管上显示结果。

2.2方案论述本系统是以C语言作为编辑语言,采用单片机AT89C52作为本设计的核心元件,。

利用7段共阳LED作为显示器件。

在此设计中共接入了3个7段共阳LED显示器,分别表示个位,十位,百位用于记录该队的分数, 3个LED显示器显示范围可达到0~999分,能够满足篮球比赛的需要。

并设置有4个按键:K1,K2,K3,K4。

当比赛队得1分时,按下k1键加1分,得2分时按k2键加2分,得3分时按下k3键加3分。

如分数计错需减分时,每按一次k4键减1分。

因所设计的篮球赛计分器功能较少,电路结构也相对简单。

所以在选材方面也不多。

由于按键要求不是很高,因此选材只有两个部分:单片机部分和显示部分.本次课程设计选用的芯片为AT89C52,显示部分用的是LED数码管显示。

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

简易比赛计分器
一、序言
随着单片机在各个领域中的广泛应用,许多用单片机作控制的比赛计时计分系统也应运产生,如用单片机控制LCD液晶显示计时计分器,用单片机控制LED七段显示器计时计分器等。

STC89C58RD+编程OCMJ4*8C-8显示模块(led键盘管理芯片)控制LED七段数码管作显示的比赛时间,利用点阵图形128X64 LCD的良好人机界面来显示球队的名称及比分。

这个系统具有赛程定时设置、赛程时间暂停、及时刷新甲、乙队双方的成绩及赛后成绩暂存等等功能。

它具有价格低廉、性能稳定、功耗低、操作方便且易携带等特点。

主要器件的介绍:
1、STC89C58RD+单片机的简介
STC89C系列的单片机是高速/低功耗的新一代8051单片机,最高工作频率可分别达到25MHZ~50MHZ。

STC89C系列的单片机有较宽的工作电压,此外,STC89C系列的单片机在完全兼容8052芯片(在标准8051基础上增加了T2定时器和128字节内部RAM)的基础上,新增了许多实用功能。

STC89C58RD+是一种低功耗高性能的8位单片机,STC89C58RD+系列是全球第一片掉电模式时典型功耗小于0.1uA的8051单片机。

片内带有一个32k字节的F1ash可编擦除只读存储器(PEROM),它采用了CMOS工艺和STC(宏晶)公司的高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统和MCU-51系列单片机兼容。

片内的Flash
存储器允许在系统内可改编程序或用常规的非易失性的存储器编程器来编程。

同时它具有三级程序存储器保密的性能。

在众多的51系列单片机中,要算STC(宏晶)公司的STC89C58RD+最实用,因为它不仅和MCU-51系列单片机指令、管脚完全兼容,而且它支持ISP(在系统可编程),无需高价的编程器,可轻松通过串口实现程序下载和远程升级,加上其片内的32k程序存储器是Flash工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写。

此外,它有1280字节的RAM,8K以上的E2PROM,内置看门狗。

在ISP下载编程时就可以任意设置6时钟/机器周期或12时钟/机器周期,STC单片机ISP引导码出厂时已有,不需要用户烧录。

该单片机对开发设备要求很低,开发时间也大大缩短。

2、OCMJ4*8C-8显示模块的简介
C系列中文模块可以显示字母、数字符号、中文字型及图形,有绘图及文字画面混合显示功能。

提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口。

所有的功能,包含显示RAM,字型产生器,都包含在一个芯片里面,只要一个最小的微处理系统,摩洛哥以方便操作模块。

内置2M-位中文字型ROM(CGRAM)总共提供8192个中文字形(16*16点阵),16K-位半宽字型ROM(HCGROM)总共提供126个符号字型(16*8点阵),64*16-位字型产生RAM (CGRAM),另外绘图显示画面提供一个64*256点的绘图区域(GDRAM),可以和文字画面混合和显示。

提供多功能指令:画面清除、光标归位、显示打开/关闭、光标显示/隐藏、显示字符闪烁、光标
移位、显示移位、垂直画面卷动、反白显示、待命模式。

主要参数:
工作电压(VDD):4.5~5.5V
逻辑电平:2.7~5.5
LCD驱动电压(VO):0~7V
二、系统功能及使用方式的描述
1、设计任务及设备
设计任务:设计并制作一个用于比赛计时计分器,实现能用七段式LED显示各种比赛时间,LCD显示比赛比分,能实现每次+1分、+2分、+3分操作
设备:AT89S52基本实验单元、计算机设备系统、键盘操作单元、数码显示单元、LCM模块。

2、设计要求
(1)采用单片机主控,响应迅速,判别精确;主控台面上有键盘控制,可同时对比赛时的分数显示器进行加分减分能记录整个赛程的比赛时间,并能修改比赛时间、暂停比赛时间;
(2)在比赛的过程中能够随时刷新各队在整个赛程中的比分,通过键盘输入比分,显示在LCD上;开关分别为加1、加2、加3、减1和改变当前记分球队功能键;
(3)在比赛的过程中如果交换比赛场地时,能交换各队的队比分的位置;
(4) 设置倒计时时间需要重新设置倒计时时间,可按“倒计时设置”键,屏幕显示“10”起始倒计时时间,可通过“倒计时设置”键对倒计时时间进行重设,设定完后按下复位键进行确认生效;
(5)比赛的倒计时时间可以任意设置,比赛倒计时的时间到有声音提示,比赛时间结束时,能发出报警指令,并且可以中途提前退出倒计时;
3、所需条件和要求:
(1)七段式LED显示译码电路原理
(2)加法电路原理
(3)进位电路原理
(4)lcd显示原理
4、系统构成框图
基于单片机系统的比赛计时计分器的系统构成框图如下图所示:
比赛计时计分器的系统图
以篮球比赛为例篮球计时计分器程序流程图:
计时计分器程序流程图
三.小组成员分工合作计划
段倩倩负责元器件采购,硬件焊接及调试。

樊伟良负责PCB板设计,及后期软件编写调试。

徐菲负责文档组织,功能划分,报告撰写。

相关文档
最新文档