基于51单片机的多功能篮球积分计时器设计(二)

1、简介
用AT89C51作为核心部件进行逻辑控制及信号产生的单片机技术和C语言编程设计的篮球比赛计时器。此篮球计时计分器在硬件方面主要采用AT89C51单片机作为主控核心,由矩阵键盘、蜂鸣器、数码管显示屏显示。具有灵活方便、适用范围广的特点,基本能够满足实践需求。

2、主要功能
a.支持按键设置开始、暂停、24S倒计时复位、A队加分、B队加分。

b.支持数码管显示A队、B队分数、比赛时间、比赛节数、24S倒计时。

c.支持比赛结束后蜂鸣器告警。

3、环境搭建
资料清单:C程序+仿真+设计报告+使用说明+元件清单+操作视频
仿真版本:Proteus8.6及以上版本
编译平台:Keil C51
编程语言:C语言

4、源程序
使用keil C51软件(内附安装包)实现程序编写与编译。

#include<reg52.h>
#include<absacc.h>

#define uchar unsigned char 
#define uint unsigned int

sbit A8=P2^0;  
sbit A9=P2^1;
sbit A10=P2^2;
sbit A11=P2^3;
sfr P00=0x80;


uchar code wei_1[]={0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80};
uchar code table[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0x77,0x7c,0x39,0x5e,0x79,0x71,0X00,0X40};

uchar minute=12;  //分
uchar second=0;   //秒
uchar key_status=0;		//按键状态值
uchar scoreA=0;		//A队得分
uchar scoreB=0;		//B队得分
uchar count1=20;	//记录定时器时间
uchar match=1;		//比赛节数
uchar rule_time=24;	//记录24秒规则
uchar rule_flag=0;			//记录24秒规则是否启用


/*
初始化IO口
*/
void IO_init(){
	A8=0;
	A9=0;
}
/*
初始化时间
*/

void time_init(){
	TMOD = 0x01;
	TH0 = (65536-50000)/256;
	TL0 = (65536-50000)%256;
	TH1=(65536-2000)/256;		
	TL1=(65536-2000)%256;	
	EA = 1;
	ET0 = 1;
}
/*
延时函数
*/
void delay_ms(uint z){
  uint i;
	uchar j;
	for(i=0;i<z;i++){
		
		for(j=0;j<100;j++);
	}
}

/*
计时函数
*/
void T0_Time() interrupt 1 using 1{
	if (count1-- == 0) 
	{
		second--;
		rule_time--;
		count1 = 18; 
	}
	TH0 = (65536-50000)/256;
	TL0 = (65536-50000)%256;
	TH1=(65536-2000)/256;		
	TL1=(65536-2000)%256;
}

/*
时间显示函数
*/
void time_display(uchar w2,uchar d2){
	uchar shi1,ge1;
	shi1=d2/10;
	ge1=d2%10;
	
	P00=wei_1[w2];
	A10=1;
	A10=0;
	P00=table[shi1];;
	A8=1;
	A8=0;
	delay_ms(5);
	P00=0;
	A10=1;
	A10=0;
	A8=1;
	A8=0;
	
	P00=wei_1[w2+1];
	A10=1;
	A10=0;
	P00=table[ge1];
	A8=1;
	A8=0;
	delay_ms(5);
	P00=0;
	A10=1;
	A10=0;
	A8=1;
	A8=0;	
}

/*
分数显示函数
*/
void score_dispaly(uchar w2,uchar d2){
	uchar qian2,shi2,ge2;
	qian2=d2/100;
	shi2=d2%100/10;
	ge2=d2%100%10;
	
	P00=wei_1[w2];
	A9=1;
	A9=0;
	P00=table[qian2];;
	A8=1;
	A8=0;
	delay_ms(10);
	P00=0;
	A9=1;
	A9=0;
	A8=1;
	A8=0;
	
	P00=wei_1[w2+1];
	A9=1;
	A9=0;
	P00=table[shi2];
	A8=1;
	A8=0;
	delay_ms(10);
	P00=0;
	A9=1;
	A9=0;
	A8=1;
	A8=0;	
	
	P00=wei_1[w2+2];
	A9=1;
	A9=0;
	P00=table[ge2];
	A8=1;
	A8=0;
	delay_ms(10);
	P00=0;
	A9=1;
	A9=0;
	A8=1;
	A8=0;
}

5、proteus8.6仿真
采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。
开始:
在这里插入图片描述
加分:
在这里插入图片描述

6、设计资料清单
设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等,设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考。由于不定期更新,最新的资料包不一定与下面图片完全一致,但主要资料都有。
在这里插入图片描述
在这里插入图片描述

7、资料获取方式
DD07下载链接1:百度网盘(推荐)
DD07下载链接2:优快云免积分
有偿获取,非诚勿扰🙏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值