要求:

1、两队各三位显示,共计六位数码显示;

2、设A、B队加、减分按键,复位键;

3、加减分实现1分、2分、3分加减。

升级:

1、两队各三位显示,共计六位数码显示;

2、设A、B队加、减分按键、复位按键;

3、计时开始/暂停按键、归零按键、归12按键;

4、分钟加1按键、交换场地按键;

获取该 程序+protues 的方式:

1、CSDN下载:

https://download.csdn.net/download/qq_38351824/11338585

2、关注微信公众号下载:

     ① 关注微信公众号:Tech云  

     ②

3、可以关注点赞并在下方评论,我给你邮箱发过去。

一、Protues仿真图:

二、程序源码:

因为注释非常的全,这里就不再进行讲解了。

----------------------控制分数部分-------------------------

/*******************************************************************************
================================================================================
【平    台】STC89C51_sumjess平台
【编    写】sumjess
【E-mail  】1371129880@qq.com
【软件版本】V2.0
【最后更新】2019年06月10日
【相关信息参考下列地址】
【网    站】https://blog.csdn.net/qq_38351824http://www.51hei.com/bbs/mcu-2-1.html
---------------------------------------------------------------------------------
【dev.env.】MDK4.02及以上版本
【Target  】STC89C51
第一次修订:2019/05/09
第二次修订:2019/05/21
第三次修订:2019/06/10
【problem 】(1)库内补充的不全面;(2)库内解释部分不全面;(3)库内还存在一定的bug;
【direction】下一步的目标就是把库继续集成!
【explain 】为了方便使用,我也自己写了很多的库,和优化了算法和表示方式!
【warning】目前程序中暂无错误 !
---------------------------------------------------------------------------------
没有完美的代码,只有不断的奉献,大家一起努力;
赠人玫瑰手留余香,欢迎大家反馈bug!
================================================================================
********************************************************************************/   /控制分数单片机/
#include <reg51.h>#define LDUAN  P0        //段选
#define LWEI   P2        //位选
#define RDUAN  P1        //段选
#define RWEI   P2        //位选#define uchar unsigned char
#define uint  unsigned int
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//  0    1    2    3    4    5    6    7    8    9    a    b    c    d    e   f
sbit key1=P3^0;   //左边加分
sbit key2=P3^1;      //左边减分
sbit key3=P3^2;      //右边加分
sbit key4=P3^3;      //右边减分
sbit key5=P3^6;      //交换场地
sbit led1=P3^4;      //左边 LED
sbit led2=P3^5;      //右边 LEDuchar lnum,rnum,a;//左方分数计数、右方分数计数、中间变量void delay(unsigned int num)     //延时函数
{unsigned i,j;for(i=num;i>0;i--)for(j=120;j>0;j--);
}void main()
{led1=0;      //关闭LEDled2=0;     //关闭LEDwhile(1){
/数码管显示/P2=0xff;              LWEI=0xfb;LDUAN=table[lnum%100/10];delay(5);P2=0xff;LWEI=0xf7;LDUAN=table[lnum%100%10];delay(5);LWEI=0xfd;LDUAN=table[lnum/100];delay(5);P2=0xff;           RWEI=0xbf;RDUAN=table[rnum%100/10];delay(5);P2=0xff;RWEI=0x7f;RDUAN=table[rnum%10];delay(5);RWEI=0xdf;RDUAN=table[rnum/100];delay(5);/左边加分/
if(!key1)
{delay(10);       //延时消抖if(!key1){lnum++;       //分数加1led1=1;          //LED亮delay(500);   //延时led1=0;        //LED灭while(!key1); //等待按键释放}
}
/左边减分/
if(!key2)
{delay(10);       //延时消抖if(!key2){lnum--;         //分数减1led1=1;          //LED亮delay(500);   //延时led1=0;        //LED灭while(!key2); //等待按键释放}
}
/右边加分/
if(!key3)
{delay(10);       //延时消抖if(!key3){rnum++;       //分数加1led2=1;          //LED亮delay(500);   //延时led2=0;        //LED灭while(!key3); //等待按键释放}
}
/右边减分/
if(!key4)
{delay(10);        //延时消抖if(!key4){rnum--;             //分数减1led2=1;              //LED亮delay(500);           //延时led2=0;            //LED灭while(!key4);     //等待按键释放}
}
/左右分数交换/if(!key5)
{delay(10);        //延时消抖if(!key5){a=rnum;            //右边分数赋值给中间变量rnum=lnum;        //左右分数交换lnum=a;            //左右分数交换while(!key5);       //等待按键释放}
}
//}
}

----------------------------------控制时间部分-------------------------------

/*******************************************************************************
================================================================================
【平    台】STC89C51_sumjess平台
【编    写】sumjess
【E-mail  】1371129880@qq.com
【软件版本】V2.0
【最后更新】2019年06月10日
【相关信息参考下列地址】
【网    站】https://blog.csdn.net/qq_38351824http://www.51hei.com/bbs/mcu-2-1.html
---------------------------------------------------------------------------------
【dev.env.】MDK4.02及以上版本
【Target  】STC89C51
第一次修订:2019/05/09
第二次修订:2019/05/21
第三次修订:2019/06/10
【problem 】(1)库内补充的不全面;(2)库内解释部分不全面;(3)库内还存在一定的bug;
【direction】下一步的目标就是把库继续集成!
【explain 】为了方便使用,我也自己写了很多的库,和优化了算法和表示方式!
【warning】目前程序中暂无错误 !
---------------------------------------------------------------------------------
没有完美的代码,只有不断的奉献,大家一起努力;
赠人玫瑰手留余香,欢迎大家反馈bug!
================================================================================
********************************************************************************/   /控制时间单片机/
#include <reg51.h>
#define DUAN P0      //段选
#define WEI  P2      //位选#define uchar unsigned char
#define uint  unsigned intunsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//  0   1   2     3    4    5    6    7    8    9   a    b    c    d    e    f
sbit key0=P3^0; //归零
sbit key1=P3^1;    //归12
sbit key2=P3^2;    //分钟加一
sbit key3=P3^3;    //暂停/开始
sbit beep=P3^7;    //蜂鸣器uint addnum;           //加一分钟
uchar miaonum,fennum;   //秒数,分数
uchar b;void delay(unsigned int num)     //延时函数
{unsigned i,j;for(i=num;i>0;i--)for(j=120;j>0;j--);
}/*当用定时器的方式2时,设机器周期为Tcy,定时器产生一次中断的时间为t,那么需要计数的个数N=t/Tcy,装入THX和TLX中的数分别为THX=256-N,TLX=256-N256 ---因为计数器是8位,所以最大装载值256 = 2^8
*/
void Init_TIMER0_2(void)        //使用定时器0  ---  11.0592M晶振  1次中断为271.275μs,3686次为1s
{TMOD=0x02;                    //设置定时器0为工作方式2(M1M0为10)TH0=256-250;                //装初值11.0592M晶振定时271.275μs数为250TL0=256-250;EA=1;                      //开总中断ET0=1;                       //开定时器0中断TR0=1;                        //启动定时器0}void main()
{Init_TIMER0_2();//定时器初始化   beep=0;            //关闭蜂鸣器b=10;           //延时---蜂鸣器使用    fennum=12;     //分钟初始化miaonum=0;      //秒钟初始化while(1){
/数码管显示/P2=0xff;              WEI=0xef;DUAN=table[miaonum/10];delay(5);P2=0xff;WEI=0xdf;DUAN=table[miaonum%10];delay(5);P2=0xff;WEI=0Xf7;DUAN=0X40;delay(5);P2=0xff;WEI=0xfd;DUAN=table[fennum/10];delay(5);P2=0xff;WEI=0xfb;DUAN=table[fennum%10];delay(5);
/按键---清零/if(!key0)       //清零{delay(10);         //延时消抖if(!key0){fennum=0;  //分钟赋值为0miaonum=0;     //秒钟赋值为0}while(!key0);  //等待按键释放}
/按键---分钟归12/        if(!key1)        //分钟归12{delay(10);      //延时消抖if(!key1) {fennum=12;     //分钟赋值为12miaonum=0;     //秒钟赋值为0}while(!key1);    //等待按键释放}
/按键---分钟加1/     if(!key2)        //分钟加1{delay(10);       //延时消抖if(!key2) fennum++; //分钟加1while(!key2);     //等待按键释放}
/按键---暂停/开始/        if(!key3)      //暂停/开始{delay(10);      //延时消抖if(!key3){TR0=~TR0;      //定时器开关while(!key3);//等待按键释放}}}}void timer0() interrupt 1
{addnum++;
if(addnum==400)
{
if(fennum!=0)
{
if(miaonum==0)miaonum=59,fennum--,addnum=0;
else
miaonum--;
addnum=0;
}if(fennum==0)
{
if(miaonum==0)miaonum=0;else
miaonum--;
addnum=0;
}if(fennum==0)
{
if(miaonum==0)
{if(b==0)beep=0;
elsebeep=1,b--;}
}}
}

课程设计题八:篮球比赛计分器相关推荐

  1. 单片机c语言篮球比分_单片机篮球比赛计分器设计方案与程序详解

    摘 要 本系统是采用单片机AT89C51作为本设计的核心元件.利用7段共阳LED作为显示器件.在此设计中共接入了2个7段共阳LED显示器,用于记录该队的分数, 2个LED显示器显示范围可达到0~99分 ...

  2. Python课程设计大作业:获取比赛数据并进行机器学习智能预测NBA的比赛结果

    前言 该篇是之前遗漏的大三上的Python课程设计.刚好今天有空就补发了一篇文章.全部的代码在最后附录中.爬虫类的代码直接全部放到一起了,读者可以自行研究.百度网盘可以私聊我进行获取. 一.课程设计项 ...

  3. C语言课程设计题库及答案,C语言课程设计题目.docx

    C语言课程设计题目 一. 设计要求与设计报告 设计要求: 1. 任意选定以下一个题目完成 2. 模块化程序设计 3. 锯齿形程序书写格式 设计报告格式: 1. 设计的目的 2. 总体设计(程序设计组成 ...

  4. 学习汇编语言 -王爽,自已完成的一道课程设计题 (5)

    课程设计1 (材料详见书上211页) 题目描述: 以下是我解答的完整的代码: :>-------------------------------------------------------- ...

  5. 自学c语言中相关知识,设计出医院住院管理系统.要求如下所述:,C语言课程设计题Z目.doc...

    C程序课程设计 题目及任务 设计题目.任务 从以下三个题目中任选一个 题目一:汽车售票系统 任务:自学C语言中相关知识,设计出汽车售票系统.要求如下所述: 每天"武汉火车站→天河机场&quo ...

  6. 武汉工程大学信息与计算科学专业面向对象程序设计课程设计题

    课程设计内容(从以下任务中任选一个) 1  售票处的服务系统 设计民航售票处的计算机系统可以为客户提供以下各项服务: (1)查询航线:根据旅客提出的终点站名输出以下信息:航班号.飞机号.星期几飞行.最 ...

  7. 八人抢答器讲解_课程设计题一:八人抢答器

    要求: 1.八人抢答逻辑:只有一个最先抢答有效. 2.在主持人控制下,10秒内抢答有效. 3.采用数码管显示抢答10秒倒计时,若有抢答直接结束,显示结果. 4.抢答结束后用数码管显示抢答结果:抢答有效 ...

  8. 课程设计题一:八人抢答器

    要求: 1.八人抢答逻辑:只有一个最先抢答有效. 2.在主持人控制下,10秒内抢答有效. 3.采用数码管显示抢答10秒倒计时,若有抢答直接结束,显示结果. 4.抢答结束后用数码管显示抢答结果:抢答有效 ...

  9. java编写篮球比赛计分,android 篮球比赛计分器

    [实例简介] 篮球计时器的源码,其中有每节比赛时间设定,两队队员信息输入,两队分数设置,抢断,助攻,范规数量对比,可查询两队队员信息 [实例截图] [核心代码] bab97e0a-cfae-4a21- ...

最新文章

  1. 160个Crackme041之无源码修改Delphi程序
  2. 论文,风险管理(背诵)
  3. 【HTML5】Server-Sent服务器发送事件
  4. web.config从.net framework3.5向4.0迁移注意事项
  5. 死锁产生的原因及解决方法
  6. 方舟无限资源服务器,方舟生存进化无限资源版
  7. 使用pandas和xlwt,xlrd结合操作excel实现自动化
  8. 【收藏资源】Git分支模型(master/hotfix/develop/feature/release)
  9. (zt) ipad 使用技巧整理
  10. lattepanda安装linux系统,lattepanda alpha Ubuntu18.04下配置串口登录
  11. linux下查找文件的命令
  12. EPICS记录参考4--所有输入记录都有的字段和所有输出记录都有的字段
  13. 物理学在计算机领域的应用,物理学在计算机中的应用.pdf
  14. oracle 查找非中文,Oracle中如何判断一个字符串是否含有汉字
  15. voxel hashing
  16. Unreal Engine 4 渲染目标(Render Target)教程之 使用渲染目标绘制(上)
  17. js 分析——百度模拟登录(二)
  18. 傅里叶变换及其应用讲义(stanford_ee261)
  19. Python入门的必备图书在这里
  20. android检测代码是否执行,Android如何判断一个应用在运行

热门文章

  1. matplotlib画图修改刻度线的粗细、刻度字体的大小以及标题字体的大小
  2. 川土微电子|国产隔离电源数字隔离芯片CA-IS36XX
  3. Android Studio 实现地图定位(移动开发技术作业)
  4. U-boot 对UEFI的支持
  5. AcWing - 求组合数 III(lucas逆元)
  6. 量化 计算机 金融,金融数据量化分析(上)
  7. Vue引用原生高德地图标注
  8. charles简介使用
  9. 独家专访李林 | 回归火币后的一年
  10. 【UE4 第一人称射击游戏】12-全自动步枪并显示剩余弹药量