当前位置: 首页 > news >正文

基于51单片机的篮球计分器设计

一.硬件方案

本设计用由AT89C51编程控制LED七段数码管作显示的球赛计时计分系统。该系统具有赛程定时设置、赛程时间暂停、及时刷新甲乙双方的成绩等功能。
电路主要由STC89C52单片机+最小系统+数码管显示模块+数码管驱动模块+蜂鸣器模块+按键模块;

二.设计功能

(1)采用一个四位一体数码管显示比赛时间,时间格式如:15:00,两个三位一体数码管显示甲乙两对的比分,比分格式如:008;
(2)比赛时间采用倒计时方式,以一秒的频率减时,上电时默认初值为15:00。在没有开始比赛时,“比赛时间”可以按键加减,比赛开始后不能修改;
(3)甲乙队比分采用三位数,上电初值为000,最大值为999,满足常理要求,未开始比赛以及比赛结束后比分无法加减;
(4)本设计加了24秒倒计时功能,可通过按键随时复位24秒。如果24秒违例,会启动蜂鸣器报警,同时比赛时间暂停,处理好后按一下24秒复位键,比赛继续;
(5)比赛未开始之前,可以通过ADD1、DEC1键对比较时间的分钟进调时,通过ADD2、DEC2键对比较时间的秒进行调时;
(6)可随时暂停/启动比赛时间;
(7)比赛进行时,可以通过ADD1、DEC1键对甲队比分加、减,可以通过ADD2、DEC2对乙队比分加、减。每按一次键,加/减1分;
(8)当一节比赛完后,可以通过(EXCHANGE)换场键换场,换场后,比分交换显示,交换后,下一节比赛开始时,相应的比分加减键也随之交换;
(9)当比赛结束时,蜂鸣器发出声音报警,提示比赛结束。

三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:
在这里插入图片描述

(2)Protues仿真图如下:
在这里插入图片描述

四.软件设计

主程序源码

//******************************主函数*************************************************
void main(void)
{TMOD=0x11;TL0=0xb0;TH0=0x3c;TL1=0xb0;TH1=0x3c;minit=min;				//初始值为15:00second=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;						//开中断	
}

资料链接:https://pan.baidu.com/s/1oqKCxVHgPrdQDAvd80OFQg?pwd=i4hu

相关文章:

  • 武汉工程大学24计算机考研数据,有学硕招收调剂,而专硕不招收调剂!
  • 【C++题解】1741 - 求出1~n中满足条件的数的个数和总和?
  • 国产芯片方案/血氧仪方案SIC88336
  • 音乐界的颠覆与挑战分析
  • UE/C++简单功能实现笔记
  • 2024华为OD机试真题- 计算三叉搜索树的高度-(C++/Python)-C卷D卷-100分
  • AJAX 综合案例-day2
  • 分布式ID生成方案之雪花算法
  • 【b站-湖科大教书匠】1 计算机网络概述-计算机网络微课堂
  • Swarm 集群管理
  • 20212416 2023-2024-2 《移动平台开发与实践》综合实践
  • 秋招突击——6/19——复习{(单调队列优化)——最大子序列和,背包问题——宠物小精灵收服问题}——新作{两两交换链表中的节点}
  • xshell使用vi命令:bash:vim:command not found
  • 全能AI客户端:ChatGPT Web Midjourney Proxy,AI绘画+GPT4o对话
  • http和https的区别在哪
  • JavaScript设计模式与开发实践系列之策略模式
  • Mithril.js 入门介绍
  • mongodb--安装和初步使用教程
  • PHP 的 SAPI 是个什么东西
  • TypeScript迭代器
  • 服务器之间,相同帐号,实现免密钥登录
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 前端知识点整理(待续)
  • 一天一个设计模式之JS实现——适配器模式
  • 字符串匹配基础上
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 带你开发类似Pokemon Go的AR游戏
  • 关于Android全面屏虚拟导航栏的适配总结
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #define、const、typedef的差别
  • (2)nginx 安装、启停
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (LeetCode 49)Anagrams
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (算法)区间调度问题
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (循环依赖问题)学习spring的第九天
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)EOS中账户、钱包和密钥的关系
  • (转)ORM
  • (自用)仿写程序
  • .gitignore文件忽略的内容不生效问题解决
  • .NET 5种线程安全集合
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .Net Core与存储过程(一)
  • .Net Remoting(分离服务程序实现) - Part.3
  • .net通过类组装数据转换为json并且传递给对方接口
  • .NET下ASPX编程的几个小问题
  • @RestControllerAdvice异常统一处理类失效原因
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [AX]AX2012 AIF(四):文档服务应用实例