体育比赛计分器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计
体育比赛计分器
一、设计目的
1.掌握单片机定时器的设计方法
2.掌握单片机扩展显示器、键盘的方法
二、技术指标
1.系统可适用于多项体育比赛的计分;
2.键盘设置比赛的最高分数,达到最高分数时能够进行声光显示;
3.能够显示比赛时间(比赛暂停时能够显示暂停间)时间到时能够进行声光显示;
4.LED显示比赛分数。
三、方案对比
方案一:采用计时芯片
针对计算机系统对计时芯片的要求,各大芯片厂家推出了键时钟、倒计时、正计时等各种芯片,可采用自动控制计时芯片,通过触发控制电路使计时器自动计时,达到预定时间后芯片重新开始计时(实现倒计时功能);也可通过触发控制电路使计时器不计时,达到预定时间后芯片重新开始计时(实现暂停功能),不需要程序干预。计算机可通过中断或查询方式读取计时器数据,实现计时的暂停功能,并进行显示,计时功能的实现就无需占用CPU的时间,程序简单,控制精度高,因此在工业系统中这一类专用芯片实现计时功能。
方案二:
利用AT89C51内部定时器|计数器进行中断定时,配合软件延时实现计时功能。该方案节省硬件成本,并可综合运用定时器、计数器及程序设计的知识,因此本设计采用软件实现计时。
四、方案概述
本系统采用单片机AT89C51作为本设计的核心元件,利用七段共阳LED作为显示器件,并用74LS573作为驱动芯片。在此设计中共接入10个七段共阳LED显示器,其中六个用于记录甲乙两队的分数,每队三个,显示分数范围可达0-999,可满足各种体育比赛需要。另外四个用于记录比赛时间,其中两个用于显示分钟,两个用于显示秒钟,显示时间范围可达0-99分钟,也可满足各种比赛需要。
比赛分两种模式,一种为限定比赛时间,即赛前需设定比赛用时,比赛开始后进行倒计时,倒计时为零时停止比赛;另一种为限定比赛最高分数,即赛前需设定最高比赛分数,一方到达该分数即停止比赛。
为方便实现计时器和计分器调整时间和比分,设置了键盘,其中按键T和S分别代表两种模式,根据具体情况选择比赛模式。另外有十个按键代表0-9十个数字,方便进行时间或分数的设定,其余4个按键,用于分别实现甲乙两队的加减分功能,最后还有一个按键用于实现开始和暂停功能。
最后还设计了定时报警系统,即比赛时间到或达到设定的最高分数时,扬声器发出报警声,提示比赛结束。
五、总体框图及流程图
1、总体框图
2、流程图
六、各模块设计
1、模式选择
本设计分为两种模式。第一种为设定比赛最高时长,第二种为设定比赛最高分数。其工作原理为:按下按钮T即选择比赛最高时长模式,按下按钮S即选择比赛最高分数模式。其中按钮T和S在矩阵键盘中,矩阵键盘中其他十四个键为0-9十个数字和甲乙两队加减分键。
2、计时电路
计时电路主要有矩阵式按键,单片机,LED显示器构成。矩阵式按键为4*4矩阵,LED 选用共阳极四位数七段数码管,段选端通过74LS573与单片机P0口相连,起到驱动作用,位选端通过反相器与单片机P2.4-P2.7相连。
其工作过程如下:比赛准备开始时,由矩阵式按键输入比赛时长。时间设置完成后,按下启动按钮,定时器T0开始计数,采用倒计时。比如:设定时间为45分钟,则在LED上显示“4500”四位数。定时器T0计数60秒后中断返回,继续定时计数下一个60秒;同时则在4位LED显示器上显示“4459”四位数,这样一直持续下去,直到变成“0000”四位数时比赛结束。如果比赛需要暂停,则按下K7键即可暂停计时。
计时电路如下图:
3.计分电路
计分电路有单片机,LED显示器,按键组成,其中,LED显示器选用共阳极六位数七段数码管,段选端通过74LS573与单片机P0口相连,起到驱动作用,位选端通过反相器与单片机P3.0-P3.5口相连,其中三位显示甲队分数,另外三位显示乙队分数,显示范围为0-999。按键共四个,分别为甲队+1、-1,乙队+1、-1,分布在4*4矩阵键盘中,当其中任意一个按下时,即产生一个低电平,使单片机产生中断,从而使相应LED显示。
4、矩阵键盘
5、振荡电路:
本次设计要用到AT89C51的时钟振荡功能。AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入输出端,这个放大器与作为
反馈元件的片外石英晶体或陶瓷谐振器一同构成自激振荡器。
当定时时间到或者达到最高分时,蜂鸣器会发出报警信号,比赛结束。
六、总电路图
七、程序
KEYBUF EQU 30H
ORG 0000H
ORG 0050H
START: MOV SP,#60H
MOV R1,#00H
MOV R2,#00H
MOV R3,#04H ;设置时间位数为4
MOV R0,#40H ;键值所在地址
ACALL DISPLAY ;显示加减分数
MOV KEYBUF,#00H
WAIT: ACALL DISPLAY1
ACALL DISPLAY
;=========第1行按键===============
MOV P1,#0FFH
CLR P1.4
MOV A,P1
ANL A,#0FH
XRL A,#0FH
JZ NOKEY1
LCALL DELAY10MS
MOV A,P1
ANL A,#0FH
XRL A,#0FH
JZ NOKEY1 ;软件防抖动
MOV A,P1
ANL A,#0FH
CJNE A,#0EH,NK1
MOV KEYBUF,#0
LJMP DK ;判断是否已经输入4位数字NK1: CJNE A,#0DH,NK2
MOV KEYBUF,#1
LJMP DK
NK2: CJNE A,#0BH,NK3
MOV KEYBUF,#2
LJMP DK
NK3: CJNE A,#07H,NK4
MOV KEYBUF,#3
LJMP DK
NK4: NOP ;第一行没有键按下
DK1A: MOV A,P1
ANL A,#0FH
XRL A,#0FH
JNZ DK1A ;判断键是否放开
;=========第2行按键===============
NOKEY1:
MOV P1,#0FFH
CLR P1.5
MOV A,P1
ANL A,#0FH
XRL A,#0FH
JZ NOKEY2