篮球比赛记分器设计Word文档下载推荐.docx
- 文档编号:16574218
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:23
- 大小:167.86KB
篮球比赛记分器设计Word文档下载推荐.docx
《篮球比赛记分器设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《篮球比赛记分器设计Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
通过《单片机原理与应用》课程设计,掌握单片机及其扩展系统设计的方法和设计原则及相应的硬件调试的方法。
进一步加深单片机及其扩展系统设计和应用的理解。
通过课程设计培养理论联系实际,用所学的知识和自身课外的拓展学习加深对专业课的理解和学习;
训练综合运用电路设计及相关电子仪器,51单片机软硬件结合的理论,结合实际分析和解决问题的能力。
2.设计要求
(1)设计比分显示功能,6位LED数码管显示,每队比分分别占用3位数码管;
(2)通过加分按钮分别给A、B2队加分,且加分分为加1分、加2分、加3分三种情况;
(3)设计比分对调功能;
(4)增加比赛时间倒计时功能;
(5)显示比分、显示时间切换,能手动切换也能自动切换;
(6)有撤销最近一次加分功能;
(7)时间重置且比分不清零功能;
(8)比分、时间清零功能;
(9)有开始/暂停功能;
(10)有24秒倒计时功能。
二、方案设计与论证
本设计需要计时功能,利用定时器0实现50毫秒定时中断,每20次中断即为1秒,从而对时间变量进行相应的操作。
检测按键及按键扫描可由子程序来完成,当检测到有按键时,可调用按键扫描子程序来读取键值,进而调用查询子程序对每个按键的功能进行设定。
本设计的暂停/开始、切换、比分对调等功能可均由位寻址区的位变量控制,因此,当检测到相关按键时只对相关位变量操作即可实现相关功能。
显示子程序可根据位寻址区的相关位变量的值决定是显示时间还是显示比分从而实现对切换时间比分的控制。
本设计的总体设计方案是:
利用定时器0中断实现时间的操作,在主程序完成初始设定和相关赋值后不断的调用转换子程序和显示子程序并检测按键若没有按键则继续调用转换子程序和显示子程序并检测按键以此循环,当检测到有按键时便调用读键值子程序和查询按键子程序以完成按键的设定功能,之后再跳回调用转换子程序继续主程序大循环。
本设计的大致模块如图1所示
图1系统大致模块
三、硬件设计
本设计利用实验室现有的伟福Lab6000综合实验/仿真系统的硬件。
1.硬件电路
本设计的LED显示电路和键盘电路如图2,显示控制的位码由74HC374输出,经ULN2003反向驱动后,做LED的位选通信号。
位选通信号也可以做为键盘列扫描码,键盘扫描的行数据从74HC245读回,374输出的列扫描码经245读入后,用来判断是否有键被按下,以及按下的是什么键。
如果没有键按下,由于上拉电阻的作用,经245读回的值为高,如果有键按下,374输出的低电平经过按键被接到245的端口上,这样从245读回的数据就会有低位,根据374输出的列信号和245读回的行信号,就可以判断哪个按键被按下。
LED显示的段码由另一个74HC374输出。
键盘和LED显示电路的地址译码见表1,电路图中的X由KEY/LEDCS的接线决定。
图2LED显示电路和键盘电路
地址译码表如表1所示。
表1地址译码表
片选号
地址范围
CS0
08000H~08FFFH
CS1
09000H~09FFFH
CS2
0A000H~0AFFFH
CS3
0B000H~0BFFFH
CS4
0C000H~0CFFFH
CS5
0D000H~0DFFFH
CS6
0E000H~0EFFFH
CS7
0F000H~0FFFFH
四、程序设计
1.程序流程图
(1)主程序流程图
(2)中断服务程序流程图
(3)转换子程序(num2seg)流程图
(4)读键值子程序(getkey)流程图
(5)显示子程序(displayled)流程图
(6)查键子程序(chaxun)流程图
2.程序模块功能
主程序功能:
循环调用各子程序。
Dispalyled子程序功能:
根据位变量的值完成6位数码管的逐次显示。
Num2seg子程序功能:
将时间MIN、SEC、ERSI及比分等变量的百位、十位、个位分离出来并转换成相应的显示段码存放在各自的缓冲区。
Getkey子程序功能:
读出键值并查表使得最终的键值与实际按键表面所标示的数值(0~F)相同。
Chaxun子程序功能:
判断被按下的按键并根据该按键设定的功能执行相应的操作赋值。
中断服务程序功能:
完成计时功能,每当到1秒钟时,使秒SEC减1,直到时间为0,此时停止计时并将显示切换到比分显示。
3.硬件资源分配表
存储单元、寄存器
用途
备注
60H-65H
时间显示缓冲区
存放时间段码
66H-6BH
比分显示缓冲区
存放比分段码
6CH….
存放A队比分
TEAMA
6DH
存放B队比分
TEAMB
6EH
记录最近一次加分情况
VALUE
7AH
存放分钟变量
MIN
7BH
存放秒变量
SEC
7DH
存放键值
KEYVALUE
7FH
存放24秒倒计时的当前值
ERSI
20H.0
控制比分显示顺序
0:
AvsB;
1:
BvsA
20H.1
控制比分时间显示
显示时间;
1:
显示比分
20H.2
暂停/开始
暂停;
开始
20H.3
控制自动切换
不切换;
自动切换
R3
用于定时(50ms*20=1s)
每来一次中断R3减1
R6、R7
用于延时子程序
R6大小决定延时时长
四、运行结果分析
1.软硬件调试
程序编辑完成后编译根据提示逐步修改错误直到编译无错误提示,硬件仿真时,按键功能不是很好,经过分析,得出结论,在中断服务程序没有对相关的寄存器进行压栈,进行压栈处理后,程序便能很好的实现预期的功能。
2.运行结果
利用实验室现有实验箱进行硬件仿真,程序运行良好,基本实现预设功能。
五、设计总结
经过一周的努力,课程设计也接近了尾声,我的课程设计也最终完成了。
在没有做课程设计之前觉得课程设计只是对这学期所学单片机知识的单纯总结。
课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。
通过这次课程设计使我明白了自己原来的知识还是比较欠缺,自己要学的知识还很多。
通过这次课程设计,我明白学习是一个长期积累的过程,在以后的工作、生活中应该不断的学习,努力提高自己的知识和综合素质。
在这次对篮球比赛计分器的设计,让我也了解了一些关于硬件上的基本知识,更进一步地熟悉了一些常用芯片的结构及掌握了一些芯片的工作原理和具体的使用方法。
总之,在做课程设计的一周时间里,感觉很充实,收获也很多,尤其要感谢同学间的相互帮助和老师的指导。
我会在今后的学习生活中继续努力。
六、参考资料
[1]胡辉.单片机原理与应用.中国水电水利出版社.2007
[2]李叶紫.王喜斌.胡辉.MCS-51单片机应用教程.清华大学出版社2004
[3]彭伟.单片机C语言程序设计实训100例.北京航空航天大学出版社2010
七、附录(程序代码)
org0000h
outbitequ08002h
outsegequ08004h
inequ0a000h
ledbufequ60h
scorebufequ66h
teamaequ6ch
teambequ6dh
valueequ6eh
minequ7ah
secequ7bh
keyvalueequ7dh
ersiequ7fh
ljmpstart
org000bh
ljmpzd0
org0100h
ledmap:
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db7fh,6fh,77h,7ch,39h,5eh,79h,71h
delay:
movr7,#0
delayloop:
djnzr7,delayloop
djnzr6,delayloop
ret
displayled:
jb01h,qiehuan
movr0,#ledbuf
sjmpqh
qiehuan:
movr0,#scorebuf
qh:
movr1,#6
movr2,#00100000b
loop:
movdptr,#outbit
mova,#0
movx@dptr,a
mova,@r0
movdptr,#outseg
movx@dptr,a
movdptr,#outbit
mova,r2
movr6,#1
calldelay
mova,r2
rra
movr2,a
incr0
djnzr1,loop
ret
testkey:
movdptr,#in
movxa,@dptr
cpla
anla,#0fh
;
mova,01h
keytable:
db16h,15h,14h,0ffh
db13h,12h,11h,10h
db0dh,0ch,0bh,0ah
db0eh,03h,06h,09h
db0fh,02h,05h,08h
db00h,01h,04h,07h
getkey:
movp2,dph
movr0,#low(in)
movr1,#00100000b
movr2,#6
kloop:
mova,r1
movr1,a
movxa,@r0
anla,#0fh
jnzgoon1
djnzr2,kloop
movr2,#0ffh
sjmpexit
goon1:
deca
rla
movr2,a
mova,r1
movr1,#4
loopc:
rrca
jcexit
incr2
djnzr1,loopc
exit:
movdptr,#keytable
movca,@a+dptr
waitrelease:
movdptr,#outbit
clra
movr6,#10
calltestkey
jnzwaitrelease
movkeyvalue,a
num2seg:
mova,min
movb,#10
divab
movdptr,#ledmap
movca,@a+dptr
movledbuf+0,a
mova,b
movdptr,#ledmap
orla,#80h
movledbuf+1,a
mova,sec
movca,@a+dptr
movledbuf+2,a
movledbuf+3,a
mova,ersi
movledbuf+4,a
movledbuf+5,a
jb00h,b2a
mova,teama
sjmpb2an
b2a:
mova,teamb
b2an:
movb,#100
jnznormal
movscorebuf+0,#0
sjmpnormal1
normal:
movscorebuf+0,a
normal1:
jnznormal2
mova,scorebuf+0
jzweiling
movscorebuf+1,#3fh
sjmpnormal3
weiling:
movscorebuf+1,#0
normal2:
movscorebuf+1,a
normal3:
movscorebuf+2,a
jb00h,b2a2
sjmpb2am
b2a2:
b2am:
jnznormal4
movscorebuf+3,#0
sjmpnormal5
normal4:
movscorebuf+3,a
normal5:
mova,b
jnznormal6
mova,scorebuf+3
jzweiling1
movscorebuf+4,#3fh
sjmpnormal7
weiling1:
movscorebuf+4,#0
normal6:
movca,@a+dptr
movscorebuf+4,a
normal7:
movscorebuf+5,a
chaxun:
cjnea,#0,jpcx2
movteama,#0
movteamb,#0
movmin,#0
movsec,#0
movsubsec,#0
moversi,#0
clr02h
clr01h
ljmpchxfh
jpcx2:
cjnea,#1,jpcx3
moversi,#24
jb00h,teambp1
incteama
movvalue,#1
ljmpchxfh
teambp1:
incteamb
movvalue,#4
jpcx3:
cjnea,#2,jpcx4
jb00h,teambp2
movvalue,#2
teambp2:
incteamb
movvalue,#5
jpcx4:
cjnea,#3,jpcx5
jb00h,teambp3
movvalue,#3
teambp3:
movvalue,#6
jpcx5:
cjnea,#4,jpcx6
jb00h,teamap1
teamap1:
movvalue,#1
jpcx6:
cjnea,#5,jpcx7
jb00h,teamap2
teamap2:
jpcx7:
cjnea,#6,jpcx8
jb00h,teamap3
movvalue,#6
teamap3:
incteama
jpcx8:
cjnea,#7,jpcx9
cpl02h
jpcx9:
cjnea,#8,jpcx10
clr03h
cpl01h
jpcx10:
cjnea,#9,jpcx11
cpl00h
jpcx11:
cjnea,#0ah,jpcx12
movmin,#12
jpcx12:
cjnea,#0bh,jpcx13
cpl03h
jpcx13:
cjnea,#0ch,chxfh
mova,value
movvalue,#0
cjnea,#1,chexiao1
decteama
chexiao1:
cjnea,#2,chexiao2
decteama
chexiao2:
cjnea,#3,chexiao3
chexiao3:
cjnea,#6,chexiao4
decteamb
chexiao4:
cjnea,#5,chexiao5
chexiao5:
cjnea,#4,chxfh
chxfh:
zd0:
movth0,#34h
movtl0,#0dfh
pushpsw
pusha
push00h
push01h
push02h
push06h
push07h
jnb02h,zd0fh
djnzr3,zd0fh
movr3,#20
jnb03h,pass
djnzr4,pass
movr4,#4
pass:
mova,ersi
cjnea,#0,jixu
ljmpjishi
jixu:
decersi
jishi:
cjnea,#0,loop2
mova,min
cjnea,#0,loop3
setb01h
sjmpzd0fh
loop2:
decsec
loop3:
decmin
movsec,#59
zd0fh:
pop07h
pop06h
pop02h
pop01h
pop00h
popa
poppsw
reti
start:
movsp,#40h
movmin,#12
movsec,#00
movvalue,#00h
movteama,#0
movteamb,#0
movip,#00h
movtmod,#01h
movie,#82h
mov7dh,#0ffh
setbtr0
mloop:
lcallnum2seg
lcalldisplayled
lcalltestkey
jzmloop
lcallgetkey
mova,keyvalue
lcallchaxun
movkeyvalue,#0ffh
ljmpmloop
end
成绩评定表
指导
教师
评价
意见
评价项目
优
良
中
差
学习态度及表现
作品设计完成情况
设计报告完成情况
最终成绩评定
指导教师签字:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 篮球比赛 记分 设计