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

    设计功能

(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)当比赛结束时,蜂鸣器发出声音报警,提示比赛结束。

原理图:

原理图绘制软件采用AD2013。主要由51单片机+最小系统+数码管显示模块+数码管驱动模块+蜂鸣器模块+按键模块等构成;

其总体硬件原理图如图所示。

仿真设计

仿真软件采用Protues7.8。

程序设计

程序采用C作为编程语言,使用Keil5作为编程软件,仅展示一部分;

sbit add1=P1^0;						//甲对加分,每按一次加1分   /在未开始比赛时为加时间分
sbit dec1=P1^1;						//甲对减分,每按一次减1分	/在未开始比赛时为减时间分
sbit exchange=P1^2;					//交换场地
sbit add2=P1^3;						//乙对加分,每按一次加1分	/在未开始比赛时为加时间秒
sbit dec2=P1^4;						//乙对减分,每按一次减1分	/在未开始比赛时为减时间秒
sbit p24_sec=P1^5;
sbit secondpoint=P0^7;				//秒闪动点

sbit alam=P1^7;						//报警

bit  playon=0;						//比赛进行标志位,为1时表示比赛开始,计时开启
bit  timeover=0;					//比赛结束标志位,为1时表示时间已经完
bit  AorB=0;						//甲乙对交换位置标志位
bit  halfsecond=0;					//半秒标志位

//******************************主函数*************************************************
void main(void)
{
	TMOD=0x11;
 	TL0=0xb0;
 	TH0=0x3c;
 	TL1=0xb0;
 	TH1=0x3c;
	minit=min;				//初始值为15:00
	second=sec;
 	EA=1;
	ET0=1;
	ET1=1;
 	TR0=0;
	TR1=0;
	EX0=1;
	IT0=1;
	IT1=1;
	PX0=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;						//开中断	
}

关注公众号-单片机实例设计,发送“篮球计分器”获取资料;

下载地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值