基于51单片机的篮球计时器Proteus仿真

文章目录

  • 一、篮球计时器
    • 1.题目要求
    • 2.思路
    • 3.仿真图
      • 3.1 未仿真时
      • 3.2 仿真开始
      • 3.3 A队进分
      • 3.4 B队进分
      • 3.5 比赛结束
    • 4.仿真程序
      • 4.1 主函数
      • 4.2 时间显示
      • 4.3 比分显示
      • 4.4 按键扫描
  • 二、总结


一、篮球计时器

1.题目要求

以51单片机为核心,设计并制作篮球计时器

基本功能如下:

设有比赛总时长(如10min)和24秒进攻时限的倒计时,允许在倒计时内进行投篮加分,分别有一分球、两分球、三分球三种进球方式。每次得分之后要有一个积分栏,要记录两队的比分。篮球比赛开始和结束要有标识,可以用led效果来表示。

2.思路

首先,画个51单片机,粗略计算了一下好像引脚不是很够用,所以这里想用74HC138来扩展IO口。
在这里插入图片描述
74HC138B 译码器可接受三位二进制加权地址输入(A0,A1,A2)并在使能时,提供8 位低电平有效、互斥的输出(Y0 到 Y7)。至于具体输出高还是低,要根据下面的真值表来看(请注意实物中的E3其实是仿真图中的E1,要看引脚编号。)不懂的小伙伴可以看下这个74HC138译码器
在这里插入图片描述
报警方式依旧选用蜂鸣器
在这里插入图片描述

显示方式,这里选用6位数码管和4位数码管分开显示。一个是显示比赛时间和进攻时间。一个是显示A队和B对的比分。
在这里插入图片描述

最后是一个LED来表示比赛开始和比赛结束,打算开始就长亮,一直到比赛结束使其闪烁或者熄灭。用开关或者按键来切换是A队还是B队,4个按键来刷新进攻时间和增加比分(一分、两分、三分)
在这里插入图片描述

3.仿真图

3.1 未仿真时

在这里插入图片描述

3.2 仿真开始

比赛总时间为10分钟,每次进攻时间为24s。24s倒计时为0,蜂鸣器会响进行提示,需要手动按下进攻时间来重置24s。
在这里插入图片描述

3.3 A队进分

A队投进3分球,记3分,当前比分3比0。
在这里插入图片描述

3.4 B队进分

B队投进2分球,记2分,当前比分3比2。
在这里插入图片描述

3.5 比赛结束

比赛时间归零,蜂鸣器长鸣,灯光熄灭。这时候比分为39比34,A队获得此次比赛的胜利。
在这里插入图片描述

4.仿真程序

4.1 主函数

//主函数
void main()
{Time0_init();//定时器初始化LED=1;//比赛开始while(1){time_display();//总时间显示和倒计时显示score_display();//比分显示keyscan();//按键扫描speak();//警报}
} 

4.2 时间显示

//总时间显示和倒计时显示(六位数码管)
void time_display()
{uchar secshi,secge,minshi,minge,attge,attshi;secge=sec%10;//秒钟个位secshi=sec/10;//秒钟个位minge=min%10;//分钟个位minshi=min/10;//分钟十位attge=att%10;//倒计时个位attshi=att/10;//倒计时十位HLA=0;HLB=0;HLC=0; //第1位P0=table0[minshi];delayms(1);HLA=1;HLB=0;HLC=0;  //第2位P0=table0[minge];delayms(1);HLA=0;HLB=1;HLC=0;  //第3位P0=table0[secshi];delayms(1);HLA=1;HLB=1;HLC=0;  //第4位P0=table0[secge];delayms(1);HLA=0;HLB=0;HLC=1;  //第5位P0=table0[attshi];delayms(1);HLA=1;HLB=0;HLC=1;  //第6位P0=table0[attge];delayms(1);P0=0x00;          //消影
}

4.3 比分显示

//比分显示(4位数码管)
void score_display()
{uchar A_scorege,A_scoreshi,B_scorege,B_scoreshi;A_scorege=A_score%10;A_scoreshi=A_score/10;B_scorege=B_score%10;B_scoreshi=B_score/10;HHA=0;HHB=0;HHC=0; //第1位P3=table0[A_scoreshi];delayms(1);HHA=1;HHB=0;HHC=0;  //第2位P3=table0[A_scorege];delayms(1);HHA=0;HHB=1;HHC=0;  //第3位P3=table0[B_scoreshi];delayms(1);HHA=1;HHB=1;HHC=0;  //第4位P3=table0[B_scorege];delayms(1);P0=0x00;
}

4.4 按键扫描

//按键扫描
void keyscan()
{if (key_att==0){delayms(1);if(key_att==0)att=24;//重置倒计时24swhile(!key_att);}if (Change==1)//A队{if (score_1==0)//比分加1{delayms(1);if (score_1==0)A_score+=1;while(!score_1);}if (score_2==0)//比分加2{delayms(1);if (score_2==0)A_score+=2;while(!score_2);}if (score_3==0)//比分加3{delayms(1);if (score_3==0)A_score+=3;while(!score_3);}}else//B队{if (score_1==0)//比分加1{delayms(5);if (score_1==0)B_score+=1;while(!score_1);}if (score_2==0)//比分加2{delayms(5);if (score_2==0)B_score+=2;while(!score_2);}if (score_3==0)//比分加3{delayms(5);if (score_3==0)B_score+=3;while(!score_3);}}
}

二、总结

今天主要讲了基于51单片机的篮球计时器Proteus仿真。

感谢你的观看!

在这里插入图片描述

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

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

相关文章

代码托管平台详解与比较

1. Gitee 1.1 平台简介 Gitee是中国本土的一个代码托管平台,类似于GitHub。它提供了版本控制、项目管理和代码托管等服务,特别适合中国的开发者和企业。 1.2 主要特点 1. 本地化支持:Gitee提供中文界面和文档,适合中国开发者使用…

电子游戏 - 星际争霸技术提高

提高《星际争霸》的胜率需要综合考虑多方面的因素,包括宏观管理、微操技巧、策略制定和游戏意识。以下是一些具体的建议,可以帮助你打好《星际争霸》并提高胜率: 1. 加强资源管理和经济发展(Macro) * 快速扩张&#x…

python实现符文加、解密

在历史悠久的加密技术中,恺撒密码以其简单却有效的原理闻名。通过固定的字母位移,明文可以被转换成密文,而解密则是逆向操作。这种技术不仅适用于英文字母,还可以扩展到其他语言的字符体系,如日语的平假名或汉语的拼音…

医院管理系统带万字文档医院预约挂号管理系统基于spingboot和vue的前后端分离java项目java课程设计java毕业设计

文章目录 仓库管理系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码带万字文档(9.9¥带走) 仓库管理系统 一、项目演示 医院管理系统 二、项目介绍 基于springbootvue的前后端分离医院管…

SOLR数据导入和导出

情景 1、solr中的类型修改导致solr的core无法加载,只能删除core,重新创建。但是solr中的数据,只能从core心中导出,在导入新建的核心中。 2、试了几种方案,还是通过第三方freedev / solr-import-export-json的组件更加…

Spring框架(二)——IoC

1、什么是IoC IoC—Inverse of Control,控制反转,将对象的创建权力反转给Spring框架控制反转是为了降低程序耦合度,提高程序扩展力,达到OCP原则,达到DIP原则 OCP开闭原则:在软件开发过程中应当对扩展开放&…

跨阻放大器

#创作灵感# 最近涉及到微电流的监测项目,而里面的核心就是跨阻放大器,所以这里做一个简单的介绍,后续等项目完成了,再做一个实例的介绍。 #正文# 跨阻放大器(Transimpedance Amplifier, TIA)是一种将输入电…

Milvus Cloud集成 DSPy:搭建高效 RAG Pipeline

引言 大语言模型(LLM)为行业带来变革,具备强大的生成能力,在与知识库和检索器等工具相结合时,能够高效推动聊天机器人和 Agent 等高级生成式 AI(GenAI)应用的发展。与 LLMs 互动的过程中,最核心的部分是提示(prompt)。Prompt 是指用于指导这些模型执行特定任务的命令…

NCBI Virus 帮助文档

What is NCBI Virus?(什么是NCBI病毒) 主要功能: Compare your sequence to those in the NCBI Virus database using NCBI BLAST algorithm. 使用NCBI BLAST算法将您的序列与NCBI病毒数据库中的序列进行比较。Search, view and download …

Oracle PL/SQL 教程 第一部分

PL / SQL代表“过程语言扩展到结构化查询语言”。 SQL用于查询和更新关系数据库。 PL / SQL与SQL紧密集成。 PL / SQL是SQL的Oracle过程扩展,是一种便携式,高性能的事务处理语言。 使用PL / SQL,可以使用所有SQL数据操作,游标…

威联通 NAS 磁盘扩容 更换大容量磁盘具体操作以以TS-532X为例

第一步 检查磁盘状态 打开存储与快照总管,选左侧磁盘查看磁盘状态,应该是就绪状态。 三块磁盘都是就绪状态。 上面截图是更换过程中的截图 具体操作 然后点击存储/快照 ,选管理 选逐一更换磁盘,这里raid组需要注意&#xff0…

【LeetCode】 740. 删除并获得点数

这真是一道好题!这道题不仅考察了抽象思维,还考察了分析能力、化繁为简的能力,同时还有对基本功的考察。想顺利地做出这道题还挺不容易!我倒在了第一步与第二步:抽象思维和化繁为简。题目的要求稍微复杂一些&#xff0…

Spring Session与分布式会话管理详解

随着微服务架构的普及,分布式系统中的会话管理变得尤为重要。传统的单点会话管理已经不能满足现代应用的需求。本文将深入探讨Spring Session及其在分布式会话管理中的应用。 什么是Spring Session? Spring Session是一个用于管理HttpSession的Spring框…

数据恢复篇:如何在电脑上恢复已删除和丢失的音乐文件

尽管流媒体网络非常流行,但许多人仍然选择将音乐下载并保存在 PC 本地。这会使文件面临丢失或意外删除的风险。 幸运的是,您可以使用数据恢复软件恢复已删除的音乐和其他文件类型。这篇文章讨论了这些解决方案以及如何使用奇客数据恢复检索丢失的音乐文…

02.Linux下安装FFmpeg

目录 一、下载FFmpeg的编译源码 二、编译源码 三、ffmpeg工具结构解析 1、bin目录 2、include库 3、lib库 四、注意事项 五、可能出现的一些问题 1、某些工具未安装/版本过久 2、缺少pkg-config工具 3、缺少ffmplay FFmpeg 是一个开源的跨平台音视频处理工具集&…

揭秘银行理财产品:高收益背后的秘密

一、按币种分类 人民币理财产品:主要投资于人民币计价的金融工具,如国债、金融债、央行票据等。此类产品风险较低,收益稳定。外币理财产品:按照投资的本金风险分类,可分为本金100%保障、部分本金保障及不保本的外汇理…

华为OD机考题HJ24 合唱队

前言 应广大同学要求,开始以OD机考题作为练习题,看看算法和数据结构掌握情况。有需要练习的可以关注下。 描述 N 位同学站成一排,音乐老师要请最少的同学出列,使得剩下的 K 位同学排成合唱队形。 设𝐾K位同学从左到…

科普文:八大排序算法(JAVA实现)+ 自制动画 (袁厨的算法小屋)

我将我仓库里的排序算法给大家汇总整理了一下,写的非常非常细,还对每个算法制作了动画,一定能够对大家有所帮助,欢迎大家阅读。另外我也对 leetcode 上面可以用排序算法秒杀的算法题进行了总结,会在后面的文章中进行发…

物联网协议都包含哪些协议?

物联网协议是物联网生态系统中不可或缺的组成部分,它们负责处理和协调物联网设备之间的通信。具体介绍如下: Ethernet:以太网是一种有线网络协议,广泛应用于局域网络(LAN)中,提供稳定的高速数据传输。Wi-Fi&#xff1…

Python自动化运维 系统基础信息模块

1.系统信息的收集 系统信息的收集,对于服务质量的把控,服务的监控等来说是非常重要的组成部分,甚至是核心的基础支撑部分。我们可以通过大量的核心指标数据,结合对应的检测体系,快速的发现异常现象的苗头,进…