导航:首页 > 操作系统 > 单片机篮球计分器设计

单片机篮球计分器设计

发布时间:2022-08-05 08:45:35

Ⅰ 求单片机篮球计分器程序

这么特殊的程序需要定制开发,重点是时钟芯片、按键处理和数码管显示程序段。

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

一个单片机+lcd显示器+按钮 就搞定 具体hi我

Ⅲ 如何用c51单片机编写一个篮球计分,计时器

#include"reg52.h"

#defineu8unsignedchar
#defineu16unsignedint


sbitUP_1=P1^1; //第一队加分键
sbitDOWN_1=P1^2; //第一队减分键
sbitUP_2=P1^3; //第二队加分键
sbitDOWN_2=P1^4; //第二队减分键
sbitChange=P1^5; //交换键
sbitBegin=P1^6; //开始键
sbitPause =P1^7; //暂停键

sbitBeef=P2^4; //蜂鸣器

sbitan=P2^3; //段选
sbitwei=P2^2; //位选


u8Grate_1=0; //第一队计分
u8Grate_2=0; //第二队计分
u8Grate_change=0; //换场标志
u8Time=99; //总时间
u16Flag=0; //计时次数

u8leddata[]={
0x3F,//"0"
0x06,//"1"
0x5B,//"2"
0x4F,//"3"
0x66,//"4"
0x6D,//"5"
0x7D,//"6"
0x07,//"7"
0x7F,//"8"
0x6F,//"9"
};


voidInitTimer1(void)
{
TMOD=0x10; //定时器1设为模式1
TH1=0xFC;
TL1=0x18;//1ms
EA=1;//开总中断
ET1=1;//开定时器1中断
//TR1=1;//
}

voiddelay(u8d) //延时
{
u8a,b,c;
for(c=d;c>0;c--)
for(b=17;b>0;b--)
for(a=16;a>0;a--);
}

voidbeef(u8d)//发声
{
u8a,b,c;
for(c=d;c>0;c--)
for(b=17;b>0;b--)
for(a=16;a>0;a--)
{
Beef=~Beef;
}
}


voiddisplay(u8grate_1,u8grate_2,u8time) //显示
{
u8w1,w2,w3,w4,w7,w8;
w1=grate_1/10; //计算第一队分数十位
w2=grate_1%10; //计算第一队分数个位

w3=grate_2/10; //计算第二队分数十位
w4=grate_2%10; //计算第二队分数个位

w7=time/10; //计算时间十位
w8=time%10; //计算时间个位


P0=0xff; //消隐,该段显示第一队分数十位
wei=1;
P0=0xfe; //送位码
wei=0;
P0=0xff;
an=1;
P0=leddata[w1]; //送段码
an=0;
delay(5);P0=0xff; //显示第一队分数个位
wei=1;
P0=0xfd;
wei=0;
P0=0xff;
an=1;
P0=leddata[w2];
an=0;
delay(5);P0=0xff; //显示第二队分数十位
wei=1;
P0=0xfb;
wei=0;
P0=0xff;
an=1;
P0=leddata[w3];
an=0;
delay(5);

P0=0xff; //显示第二队分数个位
wei=1;
P0=0xf7;
wei=0;
P0=0xff;
an=1;
P0=leddata[w4];
an=0;
delay(5);P0=0xff; //显示时间十位
wei=1;
P0=0xbf;
wei=0;
P0=0xff;
an=1;
P0=leddata[w7];
an=0;
delay(5);P0=0xff; //显示时间个位
wei=1;
P0=0x7f;
wei=0;
P0=0xff;
an=1;
P0=leddata[w8];
an=0;
delay(5);
}


voidmain()
{
InitTimer1(); //初始化定时器1
UP_1=1; //以下初始化IO口
DOWN_1=1;
UP_2=1;
DOWN_2=1;
Change=1;
Begin=1;
while(1)
{
if(UP_1==0) //如果第一队加分键按下
{
ET1=0; //关闭定时器1中断
delay(5); //稍加延时
while(UP_1==0);//等待按键抬起
Grate_1++; //第一队分数加1
ET1=1; //开启定时器1中断
}
if(DOWN_1==0) //如果第一队减分键按下
{
ET1=0;
delay(5);
while(DOWN_1==0);
Grate_1--; //第一队分数减1
ET1=1;
}
if(UP_2==0) //如果第二队加分键按下
{
ET1=0;
delay(5);
while(UP_2==0);
Grate_2++; //第二队分数加1
ET1=1;
}
if(DOWN_2==0) //如果第二队减分键按下
{
ET1=0;
delay(5);
while(DOWN_2==0);
Grate_2--; //第二队分数减1
ET1=1;
}
if(Change==0) //如果换场键按下
{
ET1=0;
delay(5);
while(Change==0);
Grate_change=Grate_1;//一下三行语句完成分数交换显示
Grate_1=Grate_2;
Grate_2=Grate_change;
ET1=1;
}
if(Begin==0) //如果开始键按下
{
delay(5);
while(Begin==0);
TR1=1;//开启定时器1
}
if(Pause==0)
{
delay(5);
while(Pause==0);
TR1=0;
}
if(Time<=0) //如果时间计数到0
{
Time=99; //恢复初始时间
TR1=0; //关闭定时器1
beef(100); //发声
}
display(Grate_1,Grate_2,Time);//显示分数、时间
}
}
voidTimer1Interrupt(void)interrupt3 //定时器1中断函数
{
TH1=0xFC; //重赋初值
TL1=0x18;
Flag++; //中断次数加1
if(Flag>=1000)//1000次也就是1秒到
{
Flag=0;
Time--; //秒变量减1
}

}

Ⅳ 篮球比赛计分器的设计(51单片机) 本项目利用按键及LED数码管实现两队篮球比赛积分器的设计。具体

会了吗 我也想要答案

Ⅳ 求用单片机写个篮球计分器的程序

与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、 全静态操作:0Hz~33Hz 、 三级加密程序存储器 、 32个可编程I/O口线 、三个16位定时器/计数器 八个中断源 、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针 、掉电标识符 。

功能特性描述
At89s52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52

P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻
辑电平。对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,
P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验
时,需要外部上拉电阻。
P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个
TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入
口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2
的触发输入(P1.1/T2EX),具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能
P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5 MOSI(在系统编程用)
P1.6 MISO(在系统编程用)
P1.7 SCK(在系统编程用)
P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个
TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入
口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)
时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用
8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个
TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入
口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。

端口引脚 第二功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 INTO(外中断0)
P3.3 INT1(外中断1)
P3.4 TO(定时/计数器0)
P3.5 T1(定时/计数器1)
P3.6 WR(外部数据存储器写选通)
P3.7 RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

Ⅵ 单片机设计篮球比赛计数器,要求如下

LCD1602的 你可以修改下 以前写的 供你参考
#include "at89x51.h"
#include "lcd1602.c"
#include "timer.c"
int m=12,s=0,ss=0; // m:分 s:秒 ss:毫秒
unsigned char j=1,a,b,flag; // j:场次,a:A队得分 ,b:B队得分,flag: 时间开关标志位
void main()
{
LCD_Initial();//液晶初始化
init_sys();//定时器初始化
TR0=0;//定时器关
while(1)
{
GotoXY(0,0); //光标定位
LCD_Write(1,m/10+'0');//显示fen
LCD_Write(1,m%10+'0');//显示fen
LCD_Write(1,':');
LCD_Write(1,s/10+'0');//显示秒
LCD_Write(1,s%10+'0');//显示秒
LCD_Write(1,':');
LCD_Write(1,ss/1000+'0'); //精确到0.001秒
LCD_Write(1,ss/100%10+'0');//精确到0.001秒
LCD_Write(1,ss%10+'0');//精确到0.001秒
GotoXY(13,0);
if(j==1||j==2) Print("s"); //显示第几场
if(j==3||j==4) Print("x");//显示第几场
GotoXY(15,0);
LCD_Write(1,j+'0');//显示第几节
GotoXY(0,1);
Print("A:");//显示队伍名称
LCD_Write(1,a/100+'0');//显示队伍分数
LCD_Write(1,a/10%10+'0');//显示队伍分数
LCD_Write(1,a%10+'0');//显示队伍分数
GotoXY(8,1);
Print("B:"); //显示队伍名称
LCD_Write(1,b/100+'0'); //显示队伍分数
LCD_Write(1,b/10%10+'0'); //显示队伍分数
LCD_Write(1,b%10+'0');//显示队伍分数
if(P1_0==0)//给队加分
{
a=a+1;
while(P1_0==0);//等待按键释放
}
if(P1_1==0) //给a队加1分
{
a=a+2;
while(P1_1==0);//等待按键释放
}
if(P1_2==0)//给a队加2分
{
a=a+3;
while(P1_2==0);//等待按键释放
}
if(P1_3==0)//给a队加3分
{
b=b+1;
while(P1_3==0);//等待按键释放
}
if(P1_4==0)//给b队加1分
{
b=b+2;
while(P1_4==0);//等待按键释放
}
if(P1_5==0)//给b队加3分
{
b=b+3;
while(P1_5==0);//等待按键释放
}
if(P3_0==0)//时间开关控制
{
flag++;
if(flag%2==1)
{
TR0=1;
}
if(flag%2==0) TR0=0;;
if(flag==100) flag=0;
while(P3_0==0);//等待按键释放
}
if(a==b&&m==0&&s==0&&ss==0)//程序自动控制加时赛 加30秒
{
s=s+30;
}

}
}
void timer0() interrupt 1 //定时中断函数
{
TH0=(65536-100)/256;
TL0=(65536-100)%256;
ss--; //以下为12秒倒计时程序 以及场次的计算
if(ss<=0)
{

s--;
ss=10000;
if(s<=0)
{
m--;
s=59;
if(m<=0)
{
m=12;
j++;
if(j==5)
{
j=0;
TR0=0;
}
}

}
}
}

Ⅶ 单片机课程设计 篮球比赛计分器

你好!
是c语言写代码吗?原理图确定了吗?程序什么时间要

Ⅷ 篮球比赛计时计分器设计

1.1背景知识介绍 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。例如,80C51系列单片机已有十多年的生命期,如今仍保持着上升的趋势,就充分证明了这一点。单片机以其一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。并且已经深入到工业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器等。而美国ATMEL公司开发生产了新型的8位单片机——AT89系列单片机。他不但具有一般MCS-51单片机的所有特性,而且还拥有一些独特的优点,此次设计中所用到的AT89C51就是其中典型的代表。单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机,排烟罩VCD等等的家电里面都可以看到它的身影。 单片机是靠程序实现功能的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件的话,电路一定是一块大PCB板。但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别。只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性。1.2 设计意义 单片机的应用是具有高度现实意义的。单片机极高的可靠性,微型性和智能性(我们只要编写不同的程序后就能够完成不同的控制工作),单片机已成为工业控制领域中普遍采用的智能化控制工具,已经深深地渗入到我们的日常生活当中通过此次基于单片机设计的篮球计时计分系统,我们可以更清楚详细的了解单片机程序设计的基本指令功能、编程步骤和技巧来讲述单片机编程,并对MCS-51单片机的结构和原理进行讲述,以及基于单片机开发应用的相关芯片的工作原理,并且可以在将来的工作和学习中加以应用。1.3 设计目的 随着单片机在各个领域的广泛应用,许多用单片机做控制的球赛计时计分系统也应运而产生,如用单片机控制LCD液晶显示器计时计分器,用单片机控制LED七段显示器计时计分器等。本次设计用由AT89C51编程控制LED七段数码管作显示的球赛计时计分系统。该系统具有赛程定时设置,赛程时间暂停,及时刷新甲、乙双方的成绩以及赛后成绩暂存等功能。它具有价格低廉,性能稳定,操作方便并且易于携带等特点。广泛适合各类学校或者小型团体作为赛程计时计分。通过本次基于C51系列篮球计时计分器的设计,可以了解、熟悉有关单片机开发设计的过程,并加深对单片机的理解和应用以及掌握单片机与外围接口的一些方法和技巧,这主要表现在以下一些方面:(1) 篮球赛计时计分系统包含了8051系列单片机的最小应用系统的构成,同时在此基础上扩展了一些使用性强的外围接口。(2) 可以了解到LED显示器的结构、工作原理以及这种显示器的接口实例与具体连接与编程方法。(3) 怎样利用串行口来扩展显示接口等。

阅读全文

与单片机篮球计分器设计相关的资料

热点内容
xlsx转换pdf 浏览:94
3dmax挤出命令英语 浏览:903
靶心率的定义和算法 浏览:513
3d模术师app哪里下载 浏览:474
php中文api文档 浏览:458
安卓设计怎么加入输入框 浏览:185
主根服务器什么时候开始 浏览:738
奇门遁甲完整版pdf 浏览:901
app软件怎么用的 浏览:802
电子书pdf购买 浏览:193
浪潮服务器如何做系统 浏览:111
冒险岛img格式加密 浏览:596
我的世界手游如何复制命令 浏览:659
天刀自动弹琴脚本源码 浏览:970
打开其它app微信怎么收不到 浏览:447
安卓游戏耳机怎么戴 浏览:18
不越狱怎么去除app广告 浏览:178
ipadminipdf阅读 浏览:506
文件夹无限制压缩会不会降低内存 浏览:412
荣耀怎样创建文件夹 浏览:631