历史上的今天
今天是:2026年03月06日(星期五)
2023年03月06日 | 基于51单片机的篮球记分牌设计
2023-03-06 来源:zhihu
一、设计任务
设计一个基于单片机的篮球计分牌,实现两队的计分功能与24秒计时功能。
二、 性能指标要求
(1)按照题目要求独立设计系统所需电路,并完成硬件电路的制作及调试。
(2)结合硬件能够正常计分(1,2,3)。
(3)能够正常显示分值。
(4)能够正常修改工作模式(计分与24秒)。
(5)能够24秒的误差不小于1秒。
拓展部分
能记录两队球员犯规次数计数。
三、设计思路及设计框图
1.设计思路
这次实训的芯片我们采用了AT89C52,并同时用keil进行C语言编程,再生成的HEX文件通过下载口导入AT89C52中。
器件中有一个12M的晶振并用与芯片相对应的管脚连接,将晶振产生的时钟信号作为定时信号。篮球计分牌分为三个部分:开关控制、数码管显示和警示电路。P1口接8按键,分别作为显示切换,秒计时,犯规计数。P0口和P2口分别接数码管的段选和位选。
主要在篮球比赛中用于记录24秒计时,犯规计数和显示两队在比赛中的比分。
总体设计框图:

总体设计框图
部分程序:
#include sbit led =P3^3; void delay(unsigned int t) void xyh() 参考电路:
unsigned int smg[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int t = 0, fs1 = 0, fs2 = 0, fg1 = 0, fg2 = 0, q2 = 0, q3 = 0;
unsigned int m = 24;
sbit fmq = P3^2;
{
unsigned int i,j;
for(i = 0;i < 200;i++)
for(j = 0;j < t;j++);
}
void t_0() interrupt 1
{
TH0 = 0X3C;
TL0 = 0XB0;
t++;
if(t == 20)
{
t = 0;
m--;
}
}
{
P2 = 0xfb;
P0 = smg[fs1%10];
delay(1);
P2 = 0xf7;
P0 = smg[fs1/10];
delay(1);
P2 = 0xfe;
P0 = smg[fs2%10];
delay(1);
P2 = 0xfd;
P0 = smg[fs2/10];
delay(1);
}
void xz()
{
if (P1==0x7f)
{
delay (10);
if (P1==0x7f)
{
q2 += 1;
if(q2 > 1)
{
q2 = 0;
}
while(P1==0x7f);
}
}
if(P1==0xbf)
{
delay (10);
if(P1==0xbf)
{
q3 += 1;
if(q3 > 1)
{
q3 = 0;
}
while (P1==0xbf);
}
}
}
void xs()
{
if(q2==0)
{
if(q3==1)
{
led = 1;
P2 = 0xfb;
P0 = smg[fs1%10];
delay(1);
P2 = 0xf7;
P0 = smg[fs1/10];
delay(1);
P2 = 0xfe;
P0 = smg[fs2%10];
delay(1);
P2 = 0xfd;
P0 = smg[fs2/10];
delay(1);
}
else
{
led = 0;
P2 = 0xfb;
P0 = smg[fg1%10];
delay(1);
P2 = 0xf7;
P0 = smg[fg1/10];
delay(1);
P2 = 0xfe;
P0 = smg[fg2%10];
delay(1);
P2 = 0xfd;
P0 = smg[fg2/10];
delay(1);
}
}
else
{
P2 = 0xfd;
P0 = smg[m/10];
delay(1);
P2 = 0xfe;
P0 = smg[m%10];
delay(1);
}
}
史海拾趣
|
既然STM32如此名声鹊起--不得不看看STM32 Primer 既然STM32如此名声鹊起--不得不看看STM32 Primer 编号: 1475040 类型:菜鸟提问 作者:geyin 时间:2009-4-11 10:45:26 访问次数:0 发贴IP:221.232.138.131 投票加精0 & ...… 查看全部问答> |
|
我们公司100多人,要把目前使用的传统电话系统换成ip的。调研了很多,思科和Avaya东西是不错,可是老板批的钱有限,受用不起,国内一些小厂商的东西又担心稳定性太低。近期朋友推荐一款据说整体性价比还可以的美国捷思锐的中小企业语音通信系统,已 ...… 查看全部问答> |
|
//************************************************************************* // 串口通信 //环境:C805 ...… 查看全部问答> |
|
我想开关一些设备的供电电源, PCB板画好了, 负载在正极. (原本用可控硅关断接地). 锂电池: 输入电压3.2~4.2; 是个变化的过程, 我要用IO口控制PMOS, 低电平打开, 高电平断开; 这个IO口高电平是3.3v, 低电平0v. 请问我该选择 ...… 查看全部问答> |
|
人们一直非常重视提高锂离子电池的容量,以期以物理尺寸最小的电池实现最长的产品工作时间。但是在有些应用中,较长的电池寿命、较多的充电次数或较安全的电池比电池容量更重要。本文介绍几种可以极大延长电池寿命的锂离子电池充电和放电方法。几乎 ...… 查看全部问答> |
|
【深度评测STM32 Nucleo】+st-link utility工具试用 本帖最后由 fyaocn 于 2014-12-15 11:11 编辑 进一步的测试中,从网上搜到了很多适用的工具,其中最傻瓜的就是这个ST-LINK GUI Utility了。把程序下载的板子,可以直接查看到内存的数据,更牛的是可以直接修改,包括运行的中间数据。 STM提供了 ...… 查看全部问答> |




