基于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,一经查实,立即删除!

相关文章

python实现符文加、解密

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

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

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

跨阻放大器

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

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 …

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

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

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

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

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

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

02.Linux下安装FFmpeg

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

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

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

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

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

Golang | Leetcode Golang题解之第208题实现Trie前缀树

题目: 题解: type Trie struct {children [26]*TrieisEnd bool }func Constructor() Trie {return Trie{} }func (t *Trie) Insert(word string) {node : tfor _, ch : range word {ch - aif node.children[ch] nil {node.children[ch] &Trie{…

mac|tableau public 仪表盘使用

对华东地区的利润进行仪表盘可视化 选择下面的功能表的新建仪表盘,把上面的表1表2放入其中 通过下图操作将两个表联合起来,即上图使用筛选器时下面的表随之改变 将上图设置为筛选器,可以通过点击地区查看数据

MySQL之MHA高可用集群及故障切换

一、MHA概述 MHA(MasterHigh Availability)是一套优秀的mysql高可用环境下故障切换和主从复制的软件。MHA的出现就是为了解决mysql单点故障。Mysql故障切换过程中,MHA能做到0-30秒内自动完成故障性切换操作。MHA能在故障切换的过程中最大程度…

特征工程的力量

为什么你应该使用逻辑回归来建模非线性决策边界(使用 Python 代码) 作为一名大数据从业者,复杂的机器学习技术非常具有吸引力。使用一些深度神经网络 (DNN) 获得额外的 1% 准确率,并在此过程中启动 GPU 实例,这让人非常…

了解 ZooKeeper:关键概念和架构

ZooKeeper 是一种分布式协调服务,广泛用于分布式系统中,用于维护配置信息、命名、同步和组服务。它最初由雅虎开发,现在是一个 Apache 项目,已成为许多大型分布式应用程序不可或缺的一部分。本文深入探讨 ZooKeeper 的关键概念和架…

Spark Join优化案例:Join Key 远大于 Payload

在一个案例中,大表 100GB、小表 10GB,它们全都远超广播变量阈值(默认 10MB)。因为小表的尺寸已经超过 8GB,在大于 8GB 的数据集上创建广播变量,Spark 会直接抛出异常,中断任务执行,所…

python-基础篇-选择-是什么

文章目录 定义一:Python 条件语句跟其他语言基本一致的,都是通过一条或多条语句的执行结果( True 或者 False )来决定执行的代码块。1、什么是条件语句2、if 语句的基本形式3、if 语句多个判断条件的形式4、if 语句多个条件同时判…

Golang | Leetcode Golang题解之第205题同构字符串

题目: 题解: func isIsomorphic(s, t string) bool {s2t : map[byte]byte{}t2s : map[byte]byte{}for i : range s {x, y : s[i], t[i]if s2t[x] > 0 && s2t[x] ! y || t2s[y] > 0 && t2s[y] ! x {return false}s2t[x] yt2s[y] …

《昇思25天学习打卡营第6天 | 函数式自动微分》

《昇思25天学习打卡营第6天 | 函数式自动微分》 目录 《昇思25天学习打卡营第6天 | 函数式自动微分》函数式自动微分简单的单层线性变换模型函数与计算图微分函数与梯度计算Stop Gradient 函数式自动微分 神经网络的训练主要使用反向传播算法,模型预测值&#xff0…

建站小记:迁移域名DNS到CloudFlare

CloudFlare一直有赛博菩萨之称,据说用它做DNS解析服务又快又好又免费,还能防DDOS攻击,并且可以提供页面访问统计功能。 正好我博客网页打开略卡顿,所以决定将自己的DNS解析迁移到CloudFlare。 1.登录CF控制台,添加自己…