基于51单片机篮球计时器计分器设计(源码+原理图+PCB+仿真+设计报告+讲解视频)

news2025/7/15 9:38:02

# 基于51单片机篮球计分器proteus仿真

51单片机篮球计分器proteus仿真(源码+原理图+PCB+仿真+设计报告+讲解视频)

仿真:proteus 7.8

程序编译器:keil 4/keil 5

编程语言:C语言

编号C0004

51单片机篮球计分器

  • 讲解视频
  • 1 设计要求:
  • 讲解视频
  • 2 仿真图:
  • 3 原理图:
  • 4 程序:
  • 5 报告:
      • 器件清单:
  • 6 资料清单&&网盘下载链接:

电路采用单片机作为核心元件,利用两个供阴的三位一体数码管来显示两队的分数,一个四位一体数码管显示时间的计时。显示分数范围可达0~999分,足够赛程计分的需要。四位一体数码管中2个用于显示分钟,2个用于显示秒钟。

该系统具有赛程定时设置,赛程时间暂停,及时刷新甲、乙双方的成绩等功能。设计分为软件设计和硬件设计两部分。主控芯片采用AT89C51,使用C语言编写软件程序,主体分为计时显示模块、计分显示模块、定时报警、按键控制模块。编程后利用Keil C51软件来进行编译,再将生成的HEX文件装入芯片中,检验功能是否能够正常实现。

讲解视频

51单片机篮球计分器(程序+仿真+原理图+报告)

1 设计要求:

1、能记录整个赛程的比赛时间,并能修改时间,暂停比赛时间。

2、能随时刷新甲、乙两队在整个赛程中的比分。

3、场中交换比赛场地时,能交换甲、乙两队比分的位置。

4、比赛时间结束时,能发出报警指令。

5、有24秒倒计时功能,可通过按键随时复位24秒,如果24秒违例会启动蜂鸣器报警,同时比赛时间暂停,处理好后按一下24秒复位键,比赛继续。

二、实现功能:

1、一个四位一体数码管显示比赛时间,时间格式如:15:00,两个三位一体数码管显示甲乙两对的比分,比分格式如:008。

2、比赛时间采用倒计时方式,以一秒的频率减时,上电时默认初值为15:00,在没有开始比赛时,可以修改时间,比赛开始后不能修改。

3、甲乙队比分采用三位数,上电初值为000,最大值为999,满足常理要求,未开始比赛以及比赛结束后比分无法加减,

4、比赛未开始之前,可以通过ADD1、DEC1键对比较时间的分钟进调时,通过ADD2、DEC2键对比较时间的秒进行调时。

5、可随时暂停/启动比赛时间。

6、比赛进行时,可以通过ADD1、DEC1键对甲队比分加、减,可以通过ADD2、DEC2对乙队比分加、减。每按一次键,加/减1分。

7、当一节比赛完后,可以通过(EXCHANGE)换场键换场,换场后,比分交换显示,交换后,下一节比赛开始时,相应的比分加减键也随之交换。

8、当比赛结束时,发出报警。

三、作用说明:

1、调整比赛时间:插上电源后,系列默认比赛时间为15:00,甲乙队比分默认000,此时按下ADD1键,可以对比赛时间分钟加1,按下DEC1键,可以对比赛时间的分钟减1,按下ADD2键,可以对比赛时间秒加1,按下DEC2键,可以对比赛时间秒减1。

2、启动比赛:按下RUN/STOP键,计时开始,比赛时间以1秒的频率倒计时。

3、暂停比赛:比赛运行的状态下,按RUN/STOP键,比赛暂停,计时暂停。

4、比分加减,在比赛进行的状态下按ADD1,DEC1键,可以对甲队比分加、减1,按ADD2、DEC2键,可以对乙队比分加、减1.

5、交换场地:在一节比赛时间结束后,按下EXCHANGE键,比赛时间重新预置为15:00,同时左右两边数码管的比分交换显示。此时按下启动键可以开始新一节的比赛。

6、报警提示:在一节比赛时间倒计时到00:00时,蜂鸣器发出报警提示。

7、比赛时,24秒会以1秒的速度减,可随时按下24秒复位键重置24秒。

讲解视频

包含仿真讲解和代码讲解,详情见压缩包内

2 仿真图:

img

3 原理图:

img

4 程序:

显示函数

void display(void)
{
//-----------显示时间分--------------
	LEDData=LEDCode[minit/10];
	led1=0;
	Delay5ms();
	led1=1;
	LEDData=LEDCode[minit%10];
	led2=0;
	Delay5ms();
	led2=1;
//-------------秒点闪动------------
	if(halfsecond==1)
		LEDData=0x7f;
	else
		LEDData=0xff;
	led2=0;
	Delay5ms();
	led2=1;
	secondpoint=0;
//-----------显示时间秒------------
	LEDData=LEDCode[second/10];
	led3=0;
	Delay5ms();
	led3=1;
	LEDData=LEDCode[second%10];
	led4=0;
	Delay5ms();
	led4=1;
//-----------显示1组的分数百位-------
	if(AorB==0)
		LEDData=LEDCode[scoreA/100];
	else
		LEDData=LEDCode[scoreB/100];
	led5=0;
	Delay5ms();
	led5=1;
//---------------显示1组分数的十位-----------
	if(AorB==0)
		LEDData=LEDCode[(scoreA%100)/10];
	else
		LEDData=LEDCode[(scoreB%100)/10];
	led6=0;
	Delay5ms();
	led6=1;

//---------------显示1组分数的个位-----------
	if(AorB==0)
		LEDData=LEDCode[scoreA%10];
	else
		LEDData=LEDCode[scoreB%10];
	led7=0;
	Delay5ms();
	led7=1;

//-----------显示2组分数的百位-------
	if(AorB==1)
		LEDData=LEDCode[scoreA/100];
	else
		LEDData=LEDCode[scoreB/100];
	led8=0;
	Delay5ms();
	led8=1;
//-----------显示2组分数的十位-----------
	if(AorB==1)
		LEDData=LEDCode[(scoreA%100)/10];
	else
		LEDData=LEDCode[(scoreB%100)/10];
	led9=0;
	Delay5ms();
	led9=1;

//-----------显示2组分数的个位-----------
	if(AorB==1)
		LEDData=LEDCode[scoreA%10];
	else
		LEDData=LEDCode[scoreB%10];
	led10=0;
	Delay5ms();
	led10=1;

//-----------显示时间分--------------
	LEDData=LEDCode[sec24/10];
	led11=0;
	Delay5ms();
	led11=1;
	LEDData=LEDCode[sec24%10];
	led12=0;
	Delay5ms();
	led12=1;
}

main函数

//******************************主函数*************************************************
void main(void)
{
	TMOD=0x11;
 	TL0=0xb0;
 	TH0=0x3c;
 	TL1=0xb0;
 	TH1=0x3c;
	minit=min;				//初始值为15:00
	second=sec;
 	EA=1;
	ET0=1;
	ET1=1;
 	TR0=0;
	TR1=0;
	EX0=1;
	IT0=1;
	IT1=1;
//	EX1=1;
	PX0=1;
//	PX1=1;
	PT0=0;
	P1=0xFF;
	P3=0xFF;
	alam=1;
 	while(1)
 	{
		keyscan();
		display();			
    }
}


void PxInt0(void) interrupt 0
{
	Delay5ms();
	EX0=0;
	alam=1;
	TR1=0;
	if(timeover==1)
	{
		timeover=0;
	}

	if(playon==0)
	{
		playon=1;				//开始标志位
		TR0=1;					//开启计时
		
		if((minit+second)==0)
		{
			sec24=24;
			minit=min;			
			second=sec;
		}
	}
	else
	{
		playon=0;				//开始标志位清零,表示暂停
		TR0=0;					//暂时计时
	}	
	EX0=1;						//开中断	
}

image-20231031010452699

5 报告:

8615字设计报告附赠开题报告

image-20231031010459882

器件清单:

篮球计分器元件清单

\1) 万用板9*15

\2) stc89C51单片机

\3) 40脚IC座

\4) 0.36四位一体共阳数码管

\5) 0.36三位一体共阳数码管*2

\6) 0.36两位一体共阳数码管

\7) 10K排阻(103)

\8) 2.2K电阻*13

\9) 10K电阻

\10) 10uF电容

\11) 按键*7

\12) 12M晶振

\13) 30P电容 *2

\14) 9012三极管*13

\15) 蜂鸣器

\16) DC电源插座

\17) 自锁开关

\18) 导线若干

\19) 焊锡若干

USB电源线(电池盒+DC插头)

6 资料清单&&网盘下载链接:

资料下载地址

image-20231031010536344

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1157783.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构学习笔记——链式表示中的双链表及循环单/双链表

一、双链表 (一)双链表的定义 双链表是在单链表结点上增添了一个指针域prior,指针域prior指向当前结点的前驱结点,即此时链表的每个结点中都有两个指针域prior和next,从而可以很容易通过后继结点找到前驱结点&#x…

win11 以太网和WLAN冲突 连接网线时导致WiFi掉线 解决

由于特殊情况,电脑需要同时连接网线和WiFi。 网线(以太网卡)是一个网段。WiFi(WLAN无线网卡)是另一个网段。 目的是让电脑同时连接两种网段的网络。 出现问题:当已经连接WiFi时,再插入网线&a…

闪站侠洗衣洗鞋店专用管理软件,支持APP扫码洗衣、洗鞋、收衣、出入库、收衣拍照、手机报表、线上会员等功能。

闪站侠洗衣洗鞋店专用管理软件,支持APP扫码洗衣、洗鞋、收衣、出入库、收衣拍照、手机报表、线上会员等功能。它直观管理库存,快速整理数据,一站式全方位提升洗衣效率!洗衣洗鞋店管理软件精选商品,热卖材质&#xff0c…

基于联合表示学习、用户聚类和模型自适应的个性化联合推荐

[Personalized Federated Recommendation via Joint Representation Learning, User Clustering, and Model Adaptation] (https://dl.acm.org/doi/abs/10.1145/3511808.3557668) CIKM2022(CCF-B) 论文精读 文章主要创新点(消融实验分析的三个点): 联合表示学习 …

数据结构(超详细讲解!!)第十八节 串(堆串)

1.定义 假设以一维数组heap [MAXSIZE] 表示可供字符串进行动态分配的存储空间,并设 int start 指向heap 中未分配区域的开始地址(初始化时start 0) 。在程序执行过程中,当生成一个新串时,就从start指示的位置起&#…

电脑上数据恢复的详细操作

在日常使用电脑过程中,我们可能会遇到数据丢失的情况。无论是因为误删除、格式化、病毒攻击还是硬件故障,数据恢复都是我们迫切需要解决的问题。本文将介绍电脑数据恢复的详细操作步骤,帮助读者在面临数据丢失时能够迅速地恢复重要文件。 一…

将WebP转换为GIF的各种图像转换器,当然是免费的方式

第 1 部分。什么是 WebP Web 图片格式 (WebP) 是一种图像格式,可为网站上的照片提供卓越的无损压缩。该网站将使用这种格式运行得更快,创建更小、更丰富的图像。此格式比 PNG 图像小 26%,比 JPEG 图像小 25-24%。这样一来,它使网站…

为什么说MES生产管理系统很难做到标准化

随着数字化时代的来临,企业运营方式的转型已成为一种必然趋势。在这种背景下,MES生产管理系统作为一种车间执行层面的管理系统,逐渐受到了广大企业的关注和应用。不过,在实施MES管理系统的推广和实践过程中,也面临着诸…

暴涨3倍!通过受感染 USB 窃密的事件愈发变多

2023 年上半年,Mandiant 观察到使用受感染 USB 驱动器窃取机密数据的事件至少增加了3倍。此前,Mandiant 披露了在菲律宾的一次攻击行动。本文将会介绍研究人员发现的两外两次基于 USB 驱动器的网络间谍行动。 CSDN大礼包:《黑客&网络安全…

损失函数(Loss Function)一文详解-回归问题常见损失函数Python代码实现+计算原理解析

前言 损失函数无疑是机器学习和深度学习效果验证的核心检验功能,用于评估模型预测值与实际值之间的差异。我们学习机器学习和深度学习或多或少都接触到了损失函数,但是我们缺少细致的对损失函数进行分类,或者系统的学习损失函数在不同的算法…

管理类联考——数学——汇总篇——知识点突破——代数——函数、方程、不等式——记忆——局部

局部用各种方法 按知识点汇总其各自记忆方法 整式:六大公式 函数:一元二次函数【图像(形状,上下,交点) ⟹ \Longrightarrow ⟹ △ △ △ ⟹ \Longrightarrow ⟹ 抛物线与x轴交点 ⟹ \Longrightarrow …

多种方法解决leetcode经典题目-LCR 155. 将二叉搜索树转化为排序的双向链表, 同时弄透引用变更带来的bug

1 描述 2 解法一: 使用list列表粗出中序遍历的结果&#xff0c;然后再依次处理list中的元素并且双向链接 public Node treeToDoublyList2(Node root) {if(rootnull)return root;Node dummynew Node(-10000);List<Node>ansnew ArrayList<>();dfs2(root,ans);Node p…

五款好用的数据备份软件推荐!

在当今信息时代&#xff0c;数据备份的重要性不言而喻。选择一款可靠的、功能强大的免费备份软件&#xff0c;不仅能确保数据的安全存储&#xff0c;还能为用户节省宝贵的时间和精力。针对这一需求&#xff0c;精心挑选了几款备受推荐的免费数据备份软件&#xff0c;它们不仅操…

python爬取豆瓣电影Top250数据

本次爬虫案例使用Python语言编写&#xff0c;使用了requests库进行网页请求&#xff0c;使用了BeautifulSoup库进行网页解析&#xff0c;使用了openpyxl库进行数据的保存。 案例中的爬虫目标是豆瓣电影Top250&#xff0c;通过循环访问不同页面进行数据的爬取。在每个页面上&am…

新生儿积食:原因、科普和注意事项

引言&#xff1a; 新生儿积食&#xff0c;也被称为新生儿喂养问题&#xff0c;是新父母常常面临的挑战之一。尽管它通常是一种暂时的问题&#xff0c;但它可能会引起婴儿的不适&#xff0c;导致家长感到担忧。本文将科普新生儿积食的原因&#xff0c;提供相关信息&#xff0c;…

TypeScript之泛型

一、是什么 泛型程序设计&#xff08;generic programming&#xff09;是程序设计语言的一种风格或范式 泛型允许我们在强类型程序设计语言中编写代码时使用一些以后才指定的类型&#xff0c;在实例化时作为参数指明这些类型 在typescript中&#xff0c;定义函数&#xff0c;…

数据库的关系运算集合运算

目录 传统的关系运算&#xff1a; 0.相容性&#xff1a; 1.并&#xff1a; 2.差&#xff1a; 3.交&#xff1a; 4.笛卡尔积&#xff1a; 图例&#xff1a; 专门的关系运算&#xff1a; 选择&#xff1a; 投影&#xff1a; 连接&#xff1a; 自然连接&#xff1a; …

nodejs国内镜像及切换版本工具nvm

淘宝 NPM 镜像站&#xff08;http://npm.taobao.org&#xff09;已更换域名&#xff0c;新域名&#xff1a; Web 站点&#xff1a;https://npmmirror.com Registry Endpoint&#xff1a;https://registry.npmmirror.com 详见&#xff1a; 【望周知】淘宝 NPM 镜像换域名了&…

公司老项目springmvc jsp 自定义多数据源 转到springboot 整理

真实完整步骤&#xff0c;踩坑整理 有同样的坑&#xff0c;欢迎补充整理 网上的案例老是少了很多配置&#xff0c;本案例涉及到 spring-mvc&#xff0c;自定义多数据源&#xff0c;统一前缀&#xff0c;事务&#xff0c;mybatis&#xff0c;jsp访问异常&#xff0c;静态文件。…

高等数学啃书汇总重难点(九)多元函数微分法及其应用

下册最重要也是个人认为偏恶心的一节&#xff08;主要东西是真不少....&#xff09;重点在于会计算偏导、能理解全微分及隐函数求导3个核心内容&#xff0c;至于后面的关于几何层面的应用&#xff0c;建议掌握计算方法即可&#xff0c;学有余力再死磕推导过程等内容~ 1.平面点集…