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

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

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

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

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

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

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

#include"KeyBord.h"
#include"LCD1602.h"
#include"Timer.h"

sbit Beep = P3^0;

char rule_time = 24;   //24S规则

unsigned int A_Score = 0;       //A队分数
unsigned int B_Score = 0;       //B队分数
unsigned char match = 1;        //比赛节数
unsigned char rule_flag = 0;    //记录24S规则是否启用
unsigned char Beep_flag =0 ;    //判断蜂鸣器是否报警
unsigned char Start_flag = 0;   //开始标志位

unsigned char Time_Data[4];    //数组用于存放处理的设定时间
unsigned char Score[6];        //用于存储处理的比赛分数
unsigned char Temp[4];         //用于存储处理的比赛节数和24S规则
unsigned char i;
void Key_Control();

void main()
{  	
    Beep_flag = 1;            //蜂鸣器报警启用
	LCD_Init();
    Timer0_Init();

    while(1)
    {
			
        Key_Control();

        Time_Data[0] = '0' + minute / 10;     //赛程时间 分 十位
        Time_Data[1] = '0' + minute % 10;     //赛程时间 分 个位
        Time_Data[2] = '0' + second / 10;     //赛程时间 秒 十位
        Time_Data[3] = '0' + second % 10;     //赛程时间 秒 个位

        Temp[0] = '0' + match / 10;           //赛程节数   十位
        Temp[1] = '0' + match % 10;           //赛程节数   个位
        Temp[2] = '0' + rule_time / 10;       //24秒倒计时 十位
        Temp[3] = '0' + rule_time % 10;       //24秒倒计时 个位

        Score[0] = '0' + A_Score / 100;         //A队分数 百位
        Score[1] = '0' + A_Score % 100 / 10;    //A队分数 十位
        Score[2] = '0' + A_Score % 100 % 10;    //A队分数 个位
        Score[3] = '0' + B_Score / 100;         //B队分数 百位
        Score[4] = '0' + B_Score % 100 / 10;    //B队分数 十位
        Score[5] = '0' + B_Score % 100 % 10;    //B队分数 个位

        LCD_Write_Str(1,0,"H.T");               //对应的位置显示
        LCD_Write_Char(5,0,Score[0]);
        LCD_Write_Char(6,0,Score[1]);
        LCD_Write_Char(7,0,Score[2]);
        LCD_Write_Str(8,0,":");
        LCD_Write_Char(9,0,Score[3]);
        LCD_Write_Char(10,0,Score[4]);
        LCD_Write_Char(11,0,Score[5]);
        LCD_Write_Str(13,0,"R.T");

        LCD_Write_Char(0,1,Time_Data[0]);
        LCD_Write_Char(1,1,Time_Data[1]);
        LCD_Write_Str(2,1,":");
        LCD_Write_Char(3,1,Time_Data[2]);
        LCD_Write_Char(4,1,Time_Data[3]);
        LCD_Write_Str(6,1,"SEC-");
        LCD_Write_Char(10,1,Temp[0]);
        LCD_Write_Char(11,1,Temp[1]);
        LCD_Write_Char(13,1,Temp[2]);
        LCD_Write_Char(14,1,Temp[3]);
   }
}

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值