篮球比赛记分器设计Word文档下载推荐.docx

上传人:b****4 文档编号:16574218 上传时间:2022-11-24 格式:DOCX 页数:23 大小:167.86KB
下载 相关 举报
篮球比赛记分器设计Word文档下载推荐.docx_第1页
第1页 / 共23页
篮球比赛记分器设计Word文档下载推荐.docx_第2页
第2页 / 共23页
篮球比赛记分器设计Word文档下载推荐.docx_第3页
第3页 / 共23页
篮球比赛记分器设计Word文档下载推荐.docx_第4页
第4页 / 共23页
篮球比赛记分器设计Word文档下载推荐.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

篮球比赛记分器设计Word文档下载推荐.docx

《篮球比赛记分器设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《篮球比赛记分器设计Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。

篮球比赛记分器设计Word文档下载推荐.docx

通过《单片机原理与应用》课程设计,掌握单片机及其扩展系统设计的方法和设计原则及相应的硬件调试的方法。

进一步加深单片机及其扩展系统设计和应用的理解。

通过课程设计培养理论联系实际,用所学的知识和自身课外的拓展学习加深对专业课的理解和学习;

训练综合运用电路设计及相关电子仪器,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

成绩评定表

指导

教师

评价

意见

评价项目

学习态度及表现

作品设计完成情况

设计报告完成情况

最终成绩评定

指导教师签字:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1