简单设计篮球积分计时器文档格式.docx
- 文档编号:21710159
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:13
- 大小:494.01KB
简单设计篮球积分计时器文档格式.docx
《简单设计篮球积分计时器文档格式.docx》由会员分享,可在线阅读,更多相关《简单设计篮球积分计时器文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
因此,实用性比较大。
1、设计任务:
设计并制作一个用1602LCD作为显示篮球比分的记分牌,记分牌上显示A、B对号,两队的比分,能实现每次加、减分和时间开始暂停等操作,显示时间、时间精确到1S。
2、设计要求:
(一)采用单片机控制,响应迅速,判别精确;
主控台面上有按键控制,可同时对比赛时的分数显示进行加分减分,能显示整个赛程的比赛时间,暂停时间和比赛的节数。
(二)在比赛的过程中能够随时刷新各队在整个赛程中的比分,通过按键输入比分,显示在数码管上;
按键分别为加1分、减1分键。
(三)具有倒计时功能,能正确显示所用的时间,每节比赛的时间是12分钟,当时间跳到0后,时间到光报警。
(四)具有开始、暂停、复位功能。
三、总体方案
1、方案比较与选择
一、单片机的选型
51单片机
虽然51单片机是8位的,采用总线结构,但具有编程控制简便、接口简单、工作可靠,价格经济,能耗少,容易实现系统小型化。
二、计时方案
软件控制
利用MCS-51内部的定时器/计数器进行中断定时,配合软件延时实现计时。
该方案节省硬件成本,并且可综合运用定时器/计数器、中断以及程序设计的知识。
因此本系统采用软件方法来实现计时。
2、设计思路
根据设计任务与要求,设计思路如下:
系统采用51单片机软件方法来实现。
设计出篮球记分、计时系统,能实现两队比分的加分、减分(防误操作)、倒计时和各种显示效果;
其控制系统的模块有:
LCD液晶屏显示记分模块和计时模块、两队加分减分模块、分秒控制系统;
计分统采用了指令冗余和按键松手有效消抖等抗干扰措施。
程序由显示函数、主函数、中断函数、按键扫描函数等组成,主函数中调用显示函数显示时间、比分,比分与时间同时显示。
(1)时间显示用梁老师曾给过的LCD液晶显示器的初始化程序,用来动态扫描方式显示。
(2)时间的暂停与开始,分数的累加以及复位功能,通过接入键盘电路实现。
系统共涉及6个按键,分别定义为:
K1键功能:
加分键,A队分数加;
K2键功能:
减分键,A队分数减;
K3键功能:
加分键,B队分数加;
K4键功能:
减分键,B队分数减;
K5键功能:
时间控制键,控制时间的开始和暂停;
K6键功能:
复位键,所有显示复位,从0开始;
3、硬件电路的设计
根据设计要求与设计思路,确定该系统的设计方案,图1为该系统设计方案的硬件电路设计框图。
硬件电路由3部分组成:
即按键输入电路、单片机、LCD显示模块。
图1
1、设计特点:
本设计特点是采用模块化的设计。
其优点是:
每个模块的程序结构简单,任务明确,易于编写,调试和修改。
程序可读性好,对程序的修改可局部进行,其他部分可保持不变。
这里所设计的篮球比赛系统,也可以加以修改,用于其他比赛系统中。
根据模块的划分原则,将模块程序划分成几个模块,如图2所示:
1、按键模块:
按键扫描程序主程序中调用,方便快捷。
2、数据输出模块:
时间模块:
倒计时时间显示,比赛时间到点亮光报警模块。
比分模块:
具有加减分功能,并在LCD液晶显示器显示分数及已经使用的时间。
3、定时中断模块:
最小显示1s,用T0定时中断,写出中断的初始化函数,计算出初值,因为最小显示是1s,而定时器中断最大时间是60ms,所以1s=1000ms,故定时50ms,跳变20次显示1s。
4、LCD液晶显示器模块:
此模块用的是梁老师曾给过的LCD程序,故我调用他的程序。
2、软件设计流程图:
3、设计结果
设计的篮球比赛计时记分系统。
按照设计要求实现了所用时间的累积,以及两队的记分功能,实现了篮球计时计分器的全部功能,符合普通篮球计时计分要求。
一、主程序:
#include<
reg52.h>
#include"
.\LCD1602\LCD1602.h"
//调用LCD1602里的函数
#defineucharunsignedchar//宏定义
#defineuintunsignedint//宏定义
charc=0,e=0,i=0,t=12;
unsignedcharss;
sbitL=P1^3;
//提示灯
sbitK1=P1^4;
//用于给A对加分
sbitK2=P1^5;
//给A对减分
sbitK3=P1^6;
//给B对加分
sbitK4=P1^7;
//给B对减分
sbitK5=P3^0;
//比赛开始暂停按键
sbitK6=P3^1;
//复位键
/**************按键控制分数*****************/
voidkey()
{
if(TR0==0)
{
K1=1;
//中断没开始的时候,K1置1,按键锁定
K2=1;
//中断没开始的时候,K2置1,按键锁定
K3=1;
//中断没开始的时候,K3置1,按键锁定
K4=1;
if(K6==0)
{
c=0;
e=0;
i=0;
t=0;
ss=0;
}
}//当中断关闭时,K1、K2、K3键锁定,不能使用
if(TR0==1)
if(K1==0)
c++;
while(K1==0);
//消抖,按键放开的时候分数加1
}//按键K1控制A队分数加
if(K2==0)
c--;
if(c==-1)
{
c=0;
}
while(K2==0);
//消抖,按键放开的时候分数减1
}//按键K2控制A队分数减
if(K3==0)
e++;
while(K3==0);
}//按键K3控制B队分数加
if(K4==0)
e--;
if(e==-1)
e=0;
while(K4==0);
//消抖,按键放开的时候分数减1
}//按键K4控制B队分数减
if(K5==0)
if(K5==0)
TR0=~TR0;
//定时器的启动与暂停
while(K5==0);
//消抖,按键放开的时候K5操作有效
}//K5控制定时器的启动,进入倒计时
}
/*****************中断函数初始化**********************/
voidtime()
TMOD=0x01;
//00000001中断方式设置,T0设置在方式1
TH0=15536/256;
//初值设定,(65536-x)*12/(12*10^6)=50*10^3
TL0=15536%256;
ET0=1;
//中断允许标志
EA=1;
//中断总开关打开
/********************主函数***********************/
voidmain(void)
LCD_init();
//LCD初始函数调用
time();
//中断初始函数调用
while
(1)
write_LCD_str(0,0,"
A:
B"
);
//显示字符串
write_LCD_str(10,0,"
Time"
write_LCD_char(0,1,c/10+0x30);
//A队分数十位显示
write_LCD_char(1,1,c%10+0x30);
//A队分数个位显示
write_LCD_str(2,1,"
:
"
write_LCD_char(5,1,e/10+0x30);
//B队分数十位显示
write_LCD_char(6,1,e%10+0x30);
//B队分数个位显示
write_LCD_char(11,1,t/10+0x30);
//分钟十位此案时
write_LCD_char(12,1,t%10+0x30);
//分钟个位显示
write_LCD_str(13,1,"
:
"
write_LCD_char(14,1,ss/10+0x30);
//秒钟十位显示
write_LCD_char(15,1,ss%10+0x30);
//秒钟个位显示
key();
//按键函数调用
}
/***************中断倒计时**********************/
voidjk()interrupt1
{
//初值
i++;
if(i>
19)//当i加到20的时候,程序往下运行
{
i=0;
ss--;
//秒数减运算
if(ss==-1)//当秒数减到小于0的时候
{
ss=59;
t--;
//分数减运算
if(t==-1)//当分数减到小于0的时候
{
t=0;
//时间分钟后显示为0
//时间秒钟后显示为0
L=~L;
//点亮提示灯
TR0=0;
//当时间减到0的时候,时间显示为00:
00,关闭中断
二、调用的LCD液晶显示器程序:
(自己写有关书籍有介绍~!
)
五、操作说明书
1、设计功能说明
本设计以AT89C52单片机为核心器件,组成一个电子计时记分系统;
系统显示用LCD液晶显示器,显示各队分数以及比赛所用的时间,随时暂停,随时开始。
2、操作说明
1、接通电源,系统初始化,LCD液晶显示器显示
,以及时间
。
2、当按下开始/暂停按钮K5后,计时的缓冲区初始化开始倒计时,系统通过不断地查询加减分按键(K1,K2,K3,K4)是否按下,若有,经过按键去抖动程序后,若查询到当按下K1键,则A队分数加1;
若查询到当按下K2键,则A队分数减1;
若查询到当按下K3键,则B队分数加1;
若查询到当按下K4键,则B队分数减1。
当开始/暂停键没有按下时,加减分键被锁定,按下无用。
3、任何时候按下K5键都会使比分以及时间复位,显示最初的值。
附:
系统共涉及的6个按键,分别定义资料:
七、设计总结(心得)
为期两周的单片机课程设计拉下了帷幕,我深刻体会到了其中的苦与乐,感悟甚是深切.
在没有做课程设计以前,觉得课程设计只是对知识的单纯总结,但是通过这次课程设计发现自己的看法有点太片面,课程设计不仅是对前面所学知识的一种检验,也是对自己能力的一种提高,通过这次课程设计使自己明白了原来的那点知识是非常欠缺的,要学习的东西还很多,通过这次课程设计,明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质,并将理论与实际相结合,学以致用,不再是纸上谈兵,。
对我们学生来说,理论与实际同样重要,这是我们以后在工作中说明自己能力的一个重要标准。
我在整个设计过程中懂得了许多东西,当遇到一不了的问题,跟同伴一起商量、合作,或许能收到事半功倍的效果。
不管学什么,一定要打好基础,并将其学好、学精,但空有知识也不一定就能说明什么,还得能为己所用;
还有更重要的是培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力,使自己充分体会到了在设计过程中的成功喜悦。
虽然这个设计做的不是很完美,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益;
最后,也是我感触比较深的一点,这次课程设计时为数不多的独立完成的一次,虽然过程中遇到很多困难,让自己犯愁过,彷徨过,急躁过,可当自己很快调整好心态,从跌倒的地方爬起来继续,最后取得成功,不止是成功后的喜悦,也是一次锻炼!
[1]王静霞主编.《单片机应用技术(C语言版)》[M].电子工业出版社,2009年.
[2]刘守义主编.《单片机应用技术》[M].西安电子科技大学出版社,2002年.
[3]张大明主编.《单片微机控制应用技术》[M].机械工业出版社,2000年.
[4]李俊婷主编.《计算机辅助电路设计与ProtelDXP》[M].高等教育出版社,2005年.
[5]XX资讯.
1、仿真电路图
2、原理图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 设计 篮球 积分 计时器