课程设计题八:篮球比赛计分器
要求:
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
一、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--;}
}}
}
课程设计题八:篮球比赛计分器相关推荐
- 单片机c语言篮球比分_单片机篮球比赛计分器设计方案与程序详解
摘 要 本系统是采用单片机AT89C51作为本设计的核心元件.利用7段共阳LED作为显示器件.在此设计中共接入了2个7段共阳LED显示器,用于记录该队的分数, 2个LED显示器显示范围可达到0~99分 ...
- Python课程设计大作业:获取比赛数据并进行机器学习智能预测NBA的比赛结果
前言 该篇是之前遗漏的大三上的Python课程设计.刚好今天有空就补发了一篇文章.全部的代码在最后附录中.爬虫类的代码直接全部放到一起了,读者可以自行研究.百度网盘可以私聊我进行获取. 一.课程设计项 ...
- C语言课程设计题库及答案,C语言课程设计题目.docx
C语言课程设计题目 一. 设计要求与设计报告 设计要求: 1. 任意选定以下一个题目完成 2. 模块化程序设计 3. 锯齿形程序书写格式 设计报告格式: 1. 设计的目的 2. 总体设计(程序设计组成 ...
- 学习汇编语言 -王爽,自已完成的一道课程设计题 (5)
课程设计1 (材料详见书上211页) 题目描述: 以下是我解答的完整的代码: :>-------------------------------------------------------- ...
- 自学c语言中相关知识,设计出医院住院管理系统.要求如下所述:,C语言课程设计题Z目.doc...
C程序课程设计 题目及任务 设计题目.任务 从以下三个题目中任选一个 题目一:汽车售票系统 任务:自学C语言中相关知识,设计出汽车售票系统.要求如下所述: 每天"武汉火车站→天河机场&quo ...
- 武汉工程大学信息与计算科学专业面向对象程序设计课程设计题
课程设计内容(从以下任务中任选一个) 1 售票处的服务系统 设计民航售票处的计算机系统可以为客户提供以下各项服务: (1)查询航线:根据旅客提出的终点站名输出以下信息:航班号.飞机号.星期几飞行.最 ...
- 八人抢答器讲解_课程设计题一:八人抢答器
要求: 1.八人抢答逻辑:只有一个最先抢答有效. 2.在主持人控制下,10秒内抢答有效. 3.采用数码管显示抢答10秒倒计时,若有抢答直接结束,显示结果. 4.抢答结束后用数码管显示抢答结果:抢答有效 ...
- 课程设计题一:八人抢答器
要求: 1.八人抢答逻辑:只有一个最先抢答有效. 2.在主持人控制下,10秒内抢答有效. 3.采用数码管显示抢答10秒倒计时,若有抢答直接结束,显示结果. 4.抢答结束后用数码管显示抢答结果:抢答有效 ...
- java编写篮球比赛计分,android 篮球比赛计分器
[实例简介] 篮球计时器的源码,其中有每节比赛时间设定,两队队员信息输入,两队分数设置,抢断,助攻,范规数量对比,可查询两队队员信息 [实例截图] [核心代码] bab97e0a-cfae-4a21- ...
最新文章
- 160个Crackme041之无源码修改Delphi程序
- 论文,风险管理(背诵)
- 【HTML5】Server-Sent服务器发送事件
- web.config从.net framework3.5向4.0迁移注意事项
- 死锁产生的原因及解决方法
- 方舟无限资源服务器,方舟生存进化无限资源版
- 使用pandas和xlwt,xlrd结合操作excel实现自动化
- 【收藏资源】Git分支模型(master/hotfix/develop/feature/release)
- (zt) ipad 使用技巧整理
- lattepanda安装linux系统,lattepanda alpha Ubuntu18.04下配置串口登录
- linux下查找文件的命令
- EPICS记录参考4--所有输入记录都有的字段和所有输出记录都有的字段
- 物理学在计算机领域的应用,物理学在计算机中的应用.pdf
- oracle 查找非中文,Oracle中如何判断一个字符串是否含有汉字
- voxel hashing
- Unreal Engine 4 渲染目标(Render Target)教程之 使用渲染目标绘制(上)
- js 分析——百度模拟登录(二)
- 傅里叶变换及其应用讲义(stanford_ee261)
- Python入门的必备图书在这里
- android检测代码是否执行,Android如何判断一个应用在运行