基于51单片机篮球计时计分器设计

您所在的位置:网站首页 实现球鞋推荐 基于51单片机篮球计时计分器设计

基于51单片机篮球计时计分器设计

2024-01-13 19:14| 来源: 网络整理| 查看: 265

基于51单片机篮球计时计分器设计

(仿真+程序+电路图+原理图+设计报告)

功能介绍 具体功能:

1.能记录整个赛程的比赛时间,可以修改、暂停比赛时间。

2.能随时刷新两队在赛程中的比分。

3.交换比赛场地时,能交换两队比分的位置。

4.比赛时间结束时,能发出报警指令。

5.有24秒倒计时功能,可通过按键随时复位24秒,如果24秒违例会启动蜂鸣器报警,同时比赛时间暂停,处理好后按一下24秒复位键,比赛继续。

#include #define LEDData P0 unsigned char code LEDCode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; int minit,second,count,count1; //分,秒,计数器 char min=15,sec=0; 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 led1=P2^7; sbit led2=P2^6; sbit led3=P2^5; sbit led4=P2^4; sbit led5=P2^3; sbit led6=P2^2; sbit led7=P2^1; sbit led8=P2^0; sbit led9=P3^7; sbit led10=P3^6; sbit led11=P3^5; sbit led12=P3^4; sbit alam=P1^7; //报警 bit playon=0; //比赛进行标志位,为1时表示比赛开始,计时开启 bit timeover=0; //比赛结束标志位,为1时表示时间已经完 bit AorB=0; //甲乙对交换位置标志位 bit halfsecond=0; //半秒标志位 unsigned int scoreA; //甲队得分 unsigned int scoreB; //乙队得分 char sec24=24; void Delay5ms(void) { unsigned int i; for(i=100;i>0;i--); } void display(void) { //-----------显示时间分-------------- LEDData=LEDCode[minit/10]; led1=0; Delay5ms(); led1=1; LEDData=LEDCode[minit%10]; led2=0; Delay5ms(); led2=1; //-------------秒点闪动------------ if(halfsecond==1) LEDData=0x7f; else LEDData=0xff; led2=0; Delay5ms(); led2=1; secondpoint=0; //-----------显示时间秒------------ LEDData=LEDCode[second/10]; led3=0; Delay5ms(); led3=1; LEDData=LEDCode[second%10]; led4=0; Delay5ms(); led4=1; //-----------显示1组的分数百位------- if(AorB==0) LEDData=LEDCode[scoreA/100]; else LEDData=LEDCode[scoreB/100]; led5=0; Delay5ms(); led5=1; //---------------显示1组分数的十位----------- if(AorB==0) LEDData=LEDCode[(scoreA%100)/10]; else LEDData=LEDCode[(scoreB%100)/10]; led6=0; Delay5ms(); led6=1; //---------------显示1组分数的个位----------- if(AorB==0) LEDData=LEDCode[scoreA%10]; else LEDData=LEDCode[scoreB%10]; led7=0; Delay5ms(); led7=1; //-----------显示2组分数的百位------- if(AorB==1) LEDData=LEDCode[scoreA/100]; else LEDData=LEDCode[scoreB/100]; led8=0; Delay5ms(); led8=1; //-----------显示2组分数的十位----------- if(AorB==1) LEDData=LEDCode[(scoreA%100)/10]; else LEDData=LEDCode[(scoreB%100)/10]; led9=0; Delay5ms(); led9=1; //-----------显示2组分数的个位----------- if(AorB==1) LEDData=LEDCode[scoreA%10]; else LEDData=LEDCode[scoreB%10]; led10=0; Delay5ms(); led10=1; //-----------显示时间分-------------- LEDData=LEDCode[sec24/10]; led11=0; Delay5ms(); led11=1; LEDData=LEDCode[sec24%10]; led12=0; Delay5ms(); led12=1; } //=========================按键检测程序================================================ void keyscan(void) { if(playon==0) { if(add1==0) { display(); if(add1==0); { if(minit0) minit--; else minit=0; min=minit; } do display(); while(dec1==0); } if(add2==0) { display(); if(add2==0); { if(second0) second--; else second=0; sec=second; } do display(); while(dec2==0); } if(exchange==0) { display(); if(exchange==0); { TR1=0; //关闭T1计数器 alam=1; //关报警 AorB=~AorB; //开启交换 minit=min; //并将时间预设为15:00 second=sec; sec24=24; } do display(); while(exchange==0); } } else { if(add1==0) { display(); if(add1==0); { if(AorB==0) { if(scoreA0) scoreB--; else scoreB=0; } } do display(); while(dec1==0); } if(add2==0) { display(); if(add2==0); { if(AorB==1) { if(scoreA0) scoreB--; else scoreB=0; } } do display(); while(dec2==0); } if(p24_sec==0) { display(); if(p24_sec==0) { sec24=24; TR0=1; alam=1; while(p24_sec==0) display(); } } } }

硬件设计

使用元器件:

单片机:STC89C51;

(注意:单片机是通用的,无论51还是52、无论stc还是at都一样,引脚功能都一样。程序也是一样的。)

万用板9*15;40脚IC座;

0.36四位一体共阳数码管;

0.36三位一体共阳数码管*2;

0.36两位一体共阳数码管;

10K排阻(103);2.2K电阻*13;

10K电阻;10uF电容;

按键*7;12M晶振;

30P电容 *2;9012三极管*13;

蜂鸣器;DC电源插座;

自锁开关;导线:若干;

具体功能实现:

设计资料 01 仿真图

本设计使用proteus7.8和proteus8.7两个版本设计,向下兼容,无需担心!具体如图!

02 原理图

本系统原理图采用Altium Designer19设计,具体如图!

03 程序

本设计使用软件keil4和keil5两个版本编程设计,无需担心!具体如图!

04 设计报告

七千字设计报告,具体如下!

05 设计资料

全部资料包括仿真源文件 、程序(含注释)、AD原理图、电路图、参考论文等。具体内容如下,全网最全! !

下面是开源51单片机设计资料

​大家共同学习进步:

链接:https://pan.baidu.com/s/18j2D5R9OUBLKDF1PrZkypg?pwd=zbbc  提取码:zbbc 

点赞分享,一起学习进步!一起成长。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3