篮球比赛积分器的毕业设计论文Word格式.docx
《篮球比赛积分器的毕业设计论文Word格式.docx》由会员分享,可在线阅读,更多相关《篮球比赛积分器的毕业设计论文Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
参考文献15
附录16
附录一:
系统原理图16
附录二:
源程序清单17
引言
篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。
篮球比赛的计时计分系统由计时器,计分器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。
由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。
世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。
篮球计时计分器就是以单片机为核心的计时计分系统,由计时器、计分器以及综合控制器等组成。
第一章系统方案选择
1.1课题选择
基于篮球比赛计分器的课程设计
1.1.1题目要求
在篮球比赛过程中,根据比赛情况(得1分、2分、3分),分别通过3个计分按键进行加分(加1分、2分、3分),当前总分值通过两个数码管显示出来。
如计分错误(多加分数)可通过第4个按键进行减分,每按一次按键减1分。
画出电路原理图,程序流程图,编出相应程序。
1.1.2课题意义
1)对以前所学知识进行系统的复习,全面的综合并将其联贯。
特别是单片机定时部分,有了比较深入的了解。
另外对一些画图软件也有了一定的了解,如PROTEL99SE,VISIO等软件。
2)学会了独立的分析和解决问题和进行相关社会调查的能力。
3)学会了查阅文献的方法和培养查阅文献的良好习惯。
4)提高专业相关外文的阅读、翻译能力。
提高专业英语水平。
5)提高编写程序的水平,优化软件结构。
提高电脑绘图水平。
1.2设计方案
1.2.1单片机的选型
方案一:
8051单片机
虽然8051单片机是8位的,采用总线结构,但具有编程控制简便、接口简单、工作可靠,价格经济,容易实现系统小型化。
方案二:
80C51单片机
80C51单片机是在8051的基础上扩展起来的,虽然
8051单片机与80C51单片机从外形看是完全一样的,其指令系统、引脚信号、总线等完全一致(完全兼容),但是80C51单片机具有能耗低的有点,所以采用了80C51单片机。
因此本系统采用51单片机来实现。
1.2.2计时方案
采用计时芯片
针对计算机系统对计时芯片的要求,各大芯片厂家推出了键时钟/倒计时/正计时各种芯片,可采用自动控制计时芯片,通过触发控制电路使计时器自动地计时,达到预定时间后芯片重新开始计时(实现倒计时功能);
也可以通过触发控制电路使计时器不计时,达到预定时间后芯片重新开始计时(实现暂停功能),不需要程序干预。
计算机可通过中断或查询方式读取计时器数据,实现计时的暂停的功能,并进行显示,计时功能的实现就无需占用CPU的时间,程序简单,控制精度高,因此在工业控制系统中多采用这一类专用芯片来实现计时功能。
软件控制
利用MCS-51内部的定时器/计数器进行中断定时,配合软件延时实现计时。
该方案节省硬件成本,并且可综合运用定时器/计数器、中断以及程序设计的知识,因此本系统采用软件方法来实现计时。
第二章系统概述
2.1功能简述
本设计内容为比赛计分器,主要用于各种体育比赛记录分数。
采用矩阵式键盘作为输入,用户可分别对两队比分进行加1、加2、加3和减1减2、减3操作,其加减1,2,3分可以通过加减1分、2分和3分的切换按钮实现,并通过指示灯显示其每次按下加减分键所加减的分值。
可以实现预置分。
比分通过4个8段数码管显示器进行显示,每队比分显示2位,
2.2按钮设置
计分器应该有7个按键分别标注于原理图,见图1-1。
图1-1按钮功能图
其中1/2/3分切换由发光二极管指示,加1减1分别对应。
预置分是事先设定分数可以分别设定甲乙两队的初始分数。
按下清零后,显示的分数清零
第三章总体方案设计
3.1系统框图
系统框图,见图2-1。
图2-1系统框图
本设计用80C51单片机为核心,利用4个8段数码管显示器.采用动态显示输出比分,用户信息输入则采用3×
4矩阵式键盘。
89C52单片机有32根I/O线,所以不用扩展I/O口。
用一片单片机即可满足本设计的输入输出。
3.2软件总体设计
软件设计主要分为3个部分:
信息输入、信息处理、显示输出。
主要包括:
显示函数,按键获取函数,按键处理函数,进制转换函数。
信息输入时采用矩阵式键盘来实现,所以需要检测键盘有无按键的子程序;
信息处理需要对用户通过键盘输入的不同信息进行辨别并执行相应的处理;
显示输出考虑到成本和电路体积,决定采用动态输出。
第四章系统硬件设计
4.1单片机的选择
因为我们上课时学的是MCS-51单片机,它的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强且引脚功能兼容,容易掌握和使用等独特的优点,所以就选择了MCS-51单片机。
4.2键盘设计
根据设计共需要7个按键,可采用3×
3矩阵式键盘,但考虑到常用键盘为3×
4矩阵式键盘,而且方便以后功能的扩展和方便硬件的连接,所以最终决定采用3×
4矩阵式键盘作为输入。
4.3.数码管的选择
4.3.1数码管显示器数量选择
两个队,每队2位比分,每个显示器只能显示一位,则至少需要采用4个8段数码管显示器。
段数码管显示器采用动态显示输出比分。
4.3.2数码管共阴共阳接法的选择
51单片机I/O口输出高电平时输出的电流很小,数码管不会太亮;
因为本设计采用动态显示,单片机I/O口直接接数码管,所以决定采用共阳数码管。
4.3.3数码管驱动的选择
为了使数码管亮度达到要求,数码管的位选端需要驱动,因为单片机I/O口的高电平输出的电流很小,需要驱动电路驱动,从而增加显示亮度。
最简单便宜的驱动就是使用三极管,为低电平时开通,所以选择PNP型三极管。
第五章软件设计
5.1主函数设计
主函数程序代码:
MAIN:
MOVNUMA,#0
MOVNUMB,#0;
分数清零
MOVTEMP,#1;
起始时的分数加1
MOVP1,#0DFH
ACALLTRAN
M0:
ACALLDISP;
调用显示函数
ACALLKEYSCAN;
调用按键获取函数
SJMPM0;
首先初始化将储存甲乙两对分数的内存单元清零,起始时TEMP置1,并使LED5点亮,调用进制转换函数,调用显示函数,调用按键获取函数,之后重复调用显示函数,调用按键获取函数.。
函数间的调用关系,见图4-1。
图4-1函数关系调用图
5.2按键获取,按键处理函数
按键获取,按键处理函数流程图,见图4-2。
图4-2按键获取,按键处理函数流程图
说明:
由于图纸大小有限,还有B加分键处理,B减分键处理,以及按下无关键时显示不变。
未在图纸中表示出来。
5.3显示子程序
本程序是采用动态显示,用这种方法的好处在于每次刷新显示的时间相同,每个数码管显示的时间也相同,这样就可以让数码管清晰而且稳定的显示数据。
显示子程序流程图,见图4-3。
显示子程序流程图图4-3
5.4延时子程序
延时子程序就是通过执行一些没用但又占用时间的指令的集合。
这个子程序可以用于很多延时的地方因为它延时的时间可以通过R7进行改变,所以通用性好,可以将几个延时子程序合为一个,只用在调用前给R7赋值,即可根据用户的需要延时,流程图见图4-4。
第六章系统的安装调试说明
6.1软件调试
软件调试主要是在仿真软件完成的。
在写好源程序,画出原理图之后,在电脑上进行软件仿真。
系统原理图附后。
6.2软硬联调
首先将编译成功程序载入单片机系统开发板。
通电后,LED5,电源指示灯点亮,数码管显示“0000”.。
对应的“4”键为甲加分按钮,当LED5亮时,每次按下“4”键,甲队分数加1;
当LED6亮时,每次按下“4”键,甲队分数加2;
当LED7亮时,每次按下“4”键,甲队分数加3;
其中LED5,LED6,LED7的点亮与熄灭是通过对应的“1”键来控制,可以通过按“1”键来实现LED5,LED6,LED7之间的切换。
对应的“8”键为甲队减分键,当LED5亮时,每次按下“8”键,甲队分数减1;
当LED6亮时,每次按下“8”键,甲队分数减2;
当LED7亮时,每次按下“4”键,甲队分数减3;
“7”键为乙加分键,“B”键为乙队减分键,其实现功能与甲队一样。
对应的“0”键为预置分按钮,按下“0”键之后,通过按甲乙队加、减分按钮配合分数切换键实现快速预置分。
”RESET”为复位键,按下可以实现复位。
数码管显示甲乙队当前分数,复位后,数码管显示“0000”。
结论
这次课程设计使我受益匪浅。
刚开始时觉得自己的课题无处入手,但通过老师的讲解和查询资料,开始有了自己的思路,整理出了总体方案,然后设计出硬件原理图,源程序等。
在这次设计中困难最大的就是调试,收获最多的也是调试,因为调试的时候你必须对程序相当的熟悉,对每一条指令相当了解,并且硬件的连接也要清晰的印在脑海里,只有这样你才能让软件和硬件结合在一起,实现预期功能。
在编程结束时需要编写END指令,这也是初学者编程时经常忘记的。
当然也有值得高兴的地方,我的设计通过加减分键和分数切换键配合实现加减1,2,3分只用了3个键,而两队分别设置加减1,2,3分就需6个键。
我认为这样的设计更科学。
总之,在课程设计中遇到了不少的困难,在老师的细心讲解和辅导下,最终完成了本次设计,让我从中学到了不少的知识。
致谢
经过近半年的忙碌和工作,我的毕业设计已经完成,作为一个专科生的我,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有老师的指导与帮助,很难完成课题的设计。
在这里首先要感谢我的指导老师纪春明。
他虽然平日里工作繁多,但在我们做毕业设计的每个阶段,从开题报告到论文定稿的设计,绘制原理图等整个过程中的每个步骤都给予了我悉心的指导与帮助。
我的设计较为复杂烦琐,但是老师仍然细心地纠正过程中我出现的错误。
除了敬佩老师的专业水平外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。
其次还要感谢大学三年来所有的老师,是他们为我们打下坚实的专业基础,正是因为你们的悉心指导,此次毕业设计才会顺利完成。
最后感谢河北建材职业技术学院三年来对我的大力栽培。
母校,谢谢您!
参考文献
[1]、《微型计算机原理及应用》许立梓编机械工业出版社2002
[2]、《微型计算机接口技术及应用》刘乐善编华中理工大学出版社2000
[3]、《计算机硬件技术基础试验教程》邹逢兴编高等教育出版社2000
[4]、《16位微型计算机原理接口及其应用》周佩玲编中国科学技术大学出版社2000
[5]、《微型计算机原理与接口技术》吴秀清编中国科学技术出版社2001
[6]、《微型计算机接口技术》邓亚平编清华大学出版社2001
[7]、《单片机原理及及应用》王迎旭编机械工业出版社2001
[8]、《单片机应用程序设计技术》周航慈著北京航空航天大学出版社2002
[9]、《单片机实用技术问答》谢宜仁主编人民邮电出版社2002
附录
系统原理图
源程序清单
NUMAEQU30H
NUMBEQU31H;
甲乙两队的分数
D1EQU32H;
显示缓存区32h—35h
D2EQU33H
D3EQU34H
D4EQU35H
DUANEQUP0;
段显示端口
WEI1EQUP2.4;
位选端口P2.4---P2.7
WEI2EQUP2.5
WEI3EQUP2.6
WEI4EQUP2.7
TEMPEQU36H;
存放切换的加减分数1/2/3
KEYDATEEQU37H;
存放按键值
ORG0000H
MOVNUMA,#0
KEYSCAN:
MOVP2,#0FFH;
采用反转法读取按键值
MOVP2,#0F0H
MOVA,P2
ANLA,#0F0H
CJNEA,#0F0H,K0
SJMPK4
K0:
MOVR5,#5
K1:
ACALLDELAY2MS;
10ms延时去抖动
DJNZR5,K1
CJNEA,#0F0H,K2
SJMPK4;
是抖动返回
K2:
MOVKEYDATE,A;
存储按键值
MOVP2,#0FH
ANLA,#07H
ORLA,KEYDATE;
取得键值存放在KEYDATE中
MOVKEYDATE,A
K3:
MOVA,P2
ANLA,#07H
CJNEA,#07H,K3;
等待按键松开
ACALLCHULI;
调用按键处理函数
ACALLTRAN
K4:
RET
CHULI:
MOVA,KEYDATE
CJNEA,#0E6H,C0
MOVNUMB,#0
MOVTEMP,#1;
按下清零键,A,B队分数清零,加分为1
MOVP1,#0DFH
RET
C0:
CJNEA,#0D6H,C2
INCTEMP;
按下分值切换键,按一下分值加1,
MOVP1,#0BFH
MOVA,TEMP
CJNEA,#3,C01
MOVP1,#7FH
C01:
CJNEA,#4,C1
分值循环1-2-3-1
C1:
C2:
CJNEA,#0E5H,C4
MOVA,NUMA;
按下A队加分按键,A队加分
ADDA,TEMP;
分值相加
CJNEA,#99,C3;
MOVA,#0
C3:
MOVNUMA,A
RET
C4:
CJNEA,#75H,C6
MOVA,NUMB;
按下B队加分按键,A队加分
CJNEA,#99,C5;
C5:
MOVNUMB,A
C6:
CJNEA,#0E3H,C9
按下A队减分按键,A队减分
SUBBA,TEMP;
分值相减
CJNEA,#0FCH,C7
C7:
JCC8
MOVA,#99
C8:
C9:
CJNEA,#073H,C12
按下B队加减按键,A队减分
CJNEA,#0FCH,C10
C10:
JCC11
C11:
C12:
RET
TRAN:
进制转换将10进制分数转化成
2进制,然后显示
MOVB,#10
DIVAB
MOVD1,A
MOVD2,B
MOVA,NUMB
MOVB,#10
MOVD3,A
MOVD4,B
DISP:
MOVDPTR,#TAB;
显示函数,
CLRWEI1;
位选通
MOVA,D1;
MOVCA,@A+DPTR;
取段码
MOVDUAN,A;
送段码
SETBWEI1;
关位选
CLRWEI2
MOVA,D2
MOVCA,@A+DPTR
MOVDUAN,A
ACALLDELAY2MS
SETBWEI2
CLRWEI3
MOVA,D3
SETBWEI3
CLRWEI4
MOVA,D4
SETBWEI4
MOVDUAN,#0FFH;
RET
DELAY2MS:
MOVR6,#5
D0:
MOVR7,#248
DJNZR7,$
DJNZR6,D0
TAB:
DB28H;
0
DB0EBH;
1
DB32H;
2
DB0A2H;
3
DB0E1H;
4
DB0A4H;
5
DB24H;
6
DB0EAH;
7
DB20H;
8
DB0A0H;
9
DB60H;
A
DB25H;
B
DB3CH;
C
DB23H;
D
DB34H;
E
DB74H;
F
DB0D7H;
-.
DB0F7H;
-
DB61H;
H
DB70H;
P
DB0DFH;
.
DB27H;
O
DB0FFH;
全黑
END