毕业论文基于STC89C51单片机的篮球计时计分器的设计.docx
- 文档编号:23813345
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:58
- 大小:1.11MB
毕业论文基于STC89C51单片机的篮球计时计分器的设计.docx
《毕业论文基于STC89C51单片机的篮球计时计分器的设计.docx》由会员分享,可在线阅读,更多相关《毕业论文基于STC89C51单片机的篮球计时计分器的设计.docx(58页珍藏版)》请在冰豆网上搜索。
毕业论文基于STC89C51单片机的篮球计时计分器的设计
基于STC89C51单片机的篮球计时计分器的设计
摘要
随着科技的日益发展进步,单片机技术已经被广泛应用在科研、工作等重要领域内,目前也已经普及到我们的日常生活中,扮演着十分重要的角色。
本次设计是基于单片机的篮球计分器,以基本篮球规则为依据,设计结构简单且方便操作,对篮球比赛实现实时控制。
此次设计的计分器总共包括四个模块,他们是24秒显示、计时器、记分器、计节器。
实现的功能是:
24秒显示能按键控制24秒计时器,当控球时间超过24秒时,可发出报警信号。
计时器可按键调节,可以随时暂停计时,暂停比赛,在每节结束和全场结束时报警。
记分器记录两队的积累分数,可通过按键分别加1、2、3分。
设计分为硬件设计和软件设计。
硬件设计的主要包括的是:
LED数码管显示、按键控制系统设计以及辅助功能的设计。
软件设计包括:
功能选择、倒计时的实现。
本文主要介绍了用单片机设计实现篮球计分器的整个流程,采用C语言编写程序。
设计引用MAX7219专用LED驱动芯片,解决了多位LED数码管同时显示的问题。
其中时间显示和比分显示部分由两组共阴极LED数码管显示。
时间显示部分可以以分为单位进行计时调整。
比分显示部分可以实现在半场结束后手动换场,两个显示模块均采用动态扫描方式进行显示。
按键控制部分采用独立按键,共设八个按键,实现调整分数、调整时间、比赛的开始/暂停、复位键和交换场地键等功能。
报警部分由蜂鸣器加三级管驱动,实现了发出按键声音和结束报警的功能。
采用单片机控制使这个系统按键操作使用简单,安装方便。
解决了篮球比赛计数器的安装问题,节约了线材,适合在各种规模的体育场馆使用,完全可以代替传统的用钟表进行计时的方法,当然稍加改动也可以用于其他球类比赛,是体育器材向智能化发展的一个实例。
关键词:
STC89C51单片机;温度控制;恒温箱;DS18B20
Abstract
Withtheincreasingdevelopmentofadvancesintechnology,chiptechnologyhasbeenwidelyappliedintheimportantareasofresearch,work,etc.,nowalsohasspreadintoourdailylives,ithasdevelopedintoamorematuretechnology,thedesignwillfocusonSCMmedicalincubatortemperaturecontrolsystemtodoin-depthresearch.Smartthermostatnotonlyhaveanumberoffunctions,whichareextremelyversatile.Itcannotonlymaketheupperlimitfortheprecisecontroloftemperaturecontrol,butwhenthetemperatureisnotsetwithintherangeoftime,butalsothroughtherelaytodrivethecorrespondingloadofwork,andatthesametimethebuzzerandwarninglightswillissueawarningsignal,averyintelligent.
Mostofmicrocontroller-basedincubatortemperaturecontrolsystemisinuseinlaboratory,industrial,pharmaceutical,agriculture.Inthelaboratoryespeciallybiologicallaboratories,wehavetogetmoreaccurateexperimentaldata,forconstanttemperaturetestenvironmentdemanding.Soforthelaboratory,theroleoftheincubatorisveryimportant.Intheindustrialproductionprocess,weincubatorforrelativelymorestringentrequirements,suchasheat,coldtreatmentproducts,etc.,directlyaffectthequalityoftheproduct.Inmedicinemedicalincubatorismainlyusedforstoringdrugsandreagents,transport,vaccines,Refrigeratedblood,warmeddialysate,salinewarmingthelike.Fromtheabovewecanclearlyseetheimportantroleoftheincubator.Inagriculturegreenhouse,thetemperaturecontrolsystemisessentialforthegrowthofcropsforagriculture,sothatallaspectsoflifeinthetemperaturecontrolsystemisalwaysinaveryimportantposition.
Keywords:
MCU—80C51;Incubator;Temperaturecontrol
2篮球计数器系统总体设计2
2.1基本功能介绍2
2.2系统构成框图3
2.3篮球计时器的工作过程3
3系统的硬件设计4
3.1系统硬件部分组成4
3.2时钟频率电路设计6
3.3复位电路的设计7
3.4显示电路的设计8
3.5开关键盘的设计9
4系统的软件设计10
4.1软件任务分析10
4.2主程序设计10
4.3键盘识别及处理程序设计11
4.4显示子程序设计12
4.5复位程序设计13
5系统的调试14
5.1软件模拟调试14
5.2硬件接线15
5.3实物调试16
5.4调试总结19
结论与展望20
致谢21
参考文献22
附录A系统原理图23
附录B系统仿真图24
附录C实物图25
附录D系统源程序26
1概述
单片机将我们带入了智能的电子领域,许多复杂的系统若用单片机进行设计,便能达到电路更简单、功能更齐全的效果。
若把经典的电子系统当作一个僵硬的电子系统,那么智能的现代电子系统则是一个具有“生命”的电子系统。
单片机的使用领域已十分广泛,几乎很难找到哪个领域没有单片机的踪迹。
智能仪表、实时工控、通讯设备、导航系统、家用电器等,各种产品一旦用上了单片机,就能起到使产品升级换代的功效。
单片机具有集合程度非常高、外形小、系统控制功能强与扩展空间大等特点,而且能快速地处理指令,有很高的稳定性,因此在仪器仪表的制造领域占有一席之地【1】。
就其应用性而言,单片机改变了传统的测量方式、引领了仪器仪表制造应与用技术的浪潮。
使用此项技术使仪器仪表实现了更加智能、应用更加广泛、适用场景更加多变的功能。
本设计是由STC89C52RC单片机编程控制LCD1602显示器做显示的篮球计时计分系统。
本系统具有比赛定时设置、赛程时间暂停、甲、乙双方比分以及比赛节数。
它具有价格低廉、性能稳定、操作方便且易携带等特点。
本设计是基于单片机的计时计分系统,通过串口通信动态传输数据,使计时计分系统有了更多更完善的功能。
单片机系统的硬件结构给了篮球计分器系统“身躯”,而单片机的应用程序赋予其新的“生命”。
2篮球计数器系统的总体设计
2.1基本功能介绍
(1)赛程时间设置
在计时电路中,按键开关K1、K4、K5、K6用来设置时间。
比如:
比赛时上半场时间为10分,在上电显示开机画面,则通过按K1键,进入节时间调整;再分别按K5、K6键对时间加减,默认为12分钟一节,设置好后按K4键退出时间设置,等待比赛开始。
当比赛规定时间结束时,双方分数仍然相同,这时系统默认再进行5分钟加时,不可调整。
(2)赛程时间启/停设置
时间设置好后按K8键开始进行比赛时间倒计时,倒计时开始后再按一次,比赛时间暂停。
可随时进行时间暂停。
(3)比分刷新控制
由于在比赛中,甲、乙两队的比分是不断变化的,所以需设置比分刷新控制装置;此功能由K1-K6完成:
K1键:
完成甲队加1分操作
K2键:
完成甲队减1分操作
K3键:
完成甲队局数比分加1分操作
K4键:
完成甲队局数比分减1分操作
K5键:
完成乙队加1分操作
K6键:
完成乙队减1分操作
K7键:
完成乙队局数比分加1分操作
K8键:
完成乙队局数比分减1分操作
另外通过K8可以开始比赛
(4)赛程结束报警
当比赛结束时,系统会自动发出报警声,提示比赛结束,之后报警结束。
2.2系统构成框图
系统的主要功能模块方框图如图2-1所示。
图2-1系统构成框图
2.3篮球计时计分器的工作过程
1.整个篮球比赛计时计分器的工作过程如下:
首先在比赛之前,接通电源,系统自动复位,此时第一行显示双方总分数为000和000;第二行依次显示:
节数、节倒计时时间、24秒倒计时时间。
2.开机后显示Welcometouse,如果不需要设定单节比赛时间的话直接按下K2按键,默认12分钟每节比赛时间,进入比赛界面,如果需要需要设定按下K1按键后显示set-time:
00,按K5+,K6-,设定完成后按K4即可进入比赛界面。
3.进入比赛界面后,按K8开始计时比赛,此时可以加2分和3分,加分后自动暂停,重新24秒计时,需再次按下K8继续比赛,比赛期间不可加1分,1分只有罚球可得,罚球时是暂停的,所以在暂停时A队和B队加一分才管用,两罚不进按下k5之后重新计时继续比赛。
24秒内如果没有加分,进攻违例报警2秒,按K8继续开始比赛。
如果四节比赛时间到后比分相同自动进入加时赛。
加时赛5分钟,时间不可修改。
由于对于各队的分数加减是利用系统中的中断程序完成,并且在将计时电路的中断优先级设计成大于加减分的中断优先级,故而计时程序电路在此过程中可以正常工作。
比赛的中途,假如有一支队伍因换人而请求暂停比赛,得到裁判的同意,操作员即可对应的按键,就可以实现对比赛暂停计时的功能,恢复比赛时,再次按下对应的按键就可实现对比赛的继续计时的功能。
至本场比赛结束,蜂鸣器会发出2秒钟响声,表示比赛结束。
3系统的硬件设计
3.1系统硬件部分组成:
系统硬件主要是由单片机STC89C52RC、显示电路、报警电路和按键开关四个部分组成。
(1)器件的选择
本系统在设计过程中主要选取了以下一些器件:
单片机:
STC89C52RC。
显示器件:
LCD1602显示器。
报警器件:
5V有源蜂鸣器。
按键:
独立式按键。
(2)显示部分硬件的设计
1.LCM1602的接口信号说明如表3-1:
编号
引脚符号
功能说明
编号
引脚符号
功能说明
1
VSS
电源地
9
D2
DATAI/O
2
VDD
电源正极
10
D3
DATAI/O
3
VL
液晶显示偏压信号
11
D4
DATAI/O
4
RS
数据/命令选择端(H/L)
12
D5
DATAI/O
5
R/W
读/写选择端(H/L)
13
D6
DATAI/O
6
E
使能信号
14
D7
DATAI/O
7
D0
DATAI/O
15
BLA
背光正极
8
D1
DATAI/O
16
BLK
背光负极
表3-1LCM1602的接口信号
2.基本操作时序如下:
1)读状态:
RS=L,RW=H,E=H
2)写指令:
RS=L,RW=L,D0~D7=指令码,E=高脉冲
3)读数据:
RS=H,RW=H,E=H
4)写数据:
RS=H,RW=L,D0~D7=数据,E=高脉冲
3.初始化设置
1)显示模式设置如表3-2:
表3-2显示模式设置
2)显示开/关及光标设置如表3-3:
表3-3显示开/关及光标设置
3.2时钟频率电路设计
时钟电路的作用在于能够发生单片机在运行时的时间单位的时钟脉冲,这种脉冲式控制其工作的信号,可以监管单片机按照指挥进行运作。
在此过程中,中央处理器会先从数据寄存器中提取所参照的指令的代码,紧接着对指令进行翻译,然后会根据时序电路发出的信号去实现指令所指导的步骤任务【2】。
CPU发出的时序信号有两类,一类用于内部对各个实现不同功能的组件的控制,另一类用于对片外存储器或I/O端口的控制
外部时钟方式外部时钟方式是使用外部振荡器产生的脉冲信号,常用于多片单片机同时工作,以便于多片单片机之间的同步,一般为低于12MHz的方波,常见的89C52单片机的外部接法:
外部的时钟源直接连接到XTAL1端,XTAL2端悬空NC外部振荡信号输入.至于内部接法,在单片机的组成部分中有一个可以实现提高增益的组件,该组件为反向放大器【3】。
其输入端单片机的引脚XTAL1输出为XTAL2。
电路如下图图3-4所示。
图3-4振荡电路
XTAL2XTALGND内部时钟电路的电路中所使用的电容C1和C2的典型值通常取为30pF左右,对在外部连接的电容的值虽然没有具体的规格上限值,可是所使用的电容的规格大小还是对晶体振荡器频率及其稳定程度、产生振荡的速度都具有很大的影响。
晶体振荡器的频率范围通常是在1.2MHz-12MHz之间,晶振的频率提高,系统时钟时钟频率也会随之而提高,单电容必须安置在得与单片机芯片靠近的位置,为了防止产生对应的附加电容,并以此来提高振荡器的稳定程度、可靠程度【4】。
3.3复位电路的设计
单片机在开始运行到正常工作的过程中时或正在工作时由于外部的干扰而导致程序失去控制,或工作中由于程序错误导致单片机处于一种死循环的状态,每当在此种情况下都需要通过复位电路来实现系统的复位操作。
复位电路的作用是使系统的处理器CPU以及外部电路与系统的其他部分的功能部件能迅速地恢复到一正常的初始运行状态,而且可以从此状态正常开始工作下去。
以下给大家介绍一种名为看门狗的复位电路:
图3-5看门狗型复位电路
对于系统的软件程序设计是使电路稳定工作的主要原因,即是按一定时间发送给复位电路的相应信号的寄存位置,在通常情况下,这个程序都会被安置在系统内部的定时器的内部中断子程序中。
但是,经常会因为电路的设计导致程序不能正常工作,其产生的缘由是:
每当系统产生错误时系统的定时器恢复到初始状态以及断开之时,产生的错误状态不能被此电路纠正回来。
这是由于系统定时断开信号会可以持续的发送,就算在错误的情况下,此复位电路也能被正常复位【5】。
为了应对这种情况,在系统中添加了定时的预定的设计程序。
是在系统初始状态时加入一个可寻信号地址,使程序在这个地址里面运行一个预设的系统的断开程序与另外的一个死循环的程序。
如此,即是在程序发生错误的时候,它进入之前预定的程序的概率会变大,并且只要进入预定的程序,系统起定时脉冲作用的功能就会停止工作,此时,此复位电路就会产生一种可以将中央处理器复位的脉冲信号。
即达到复位的效果,实现复位的功能。
3.4显示电路的设计
同键盘一样,显示器也是人机交流的重要组成部分。
计算机的运行结果和运行状态可以通过显示器显示出来。
单片机应用系统中常用的显示器有LED和LCD两种方式。
LED显示最为普遍,发光二极管LED(LightEmittingDiode)是一种通电后能发光的半导体器件,其导电性质与普通二极管类似。
LED数码显示器就是由发光二极管组合而成的一种新型显示器件,但是由于低功耗的要求,LCD显示器越来越被广泛地使用。
LED数码管显示器是由若干个发光二极管组成的,当发光二极管导通时,相应的点或线段发光,将这些发光二极管排成一定的图形,控制不同组合的二极管导通,就可以显示出不同的字形和符号。
单片机系统中常用的LED显示器为七段显示器,再加上一个小数点,因此也可以把它称之为八段数码管显示器【6】。
其机构形式有共阴极和共阳极两种。
共阴极是把所有组成八段数码管的发光二极管的阴极连在一起,通常接地,通过控制每一只发光二极管的阳极电平来使其发光或熄灭,阳极为高电平则发光,阳极为低电平则熄灭;共阳极是把组成八段数码管的所有发光二极管的阳极连起来,通常为高电平(如+5V),通过控制每一只发光二极管的阴极电平的高低来使其发光或是熄灭,阴极为低电平发光,为高电平则熄灭。
图中的com端在应用的时候可以作为位选端,8只发光二极管被分成两组所以有两个com端,在使用的时候它们并联起来。
(1)共阴极接法
刚好与共阳极相反,对于共阴极LED显示器,当公共端接地时(为0电平),而阳极dp、g、f、e、d、c、b、a各段位01110011时,显示“P”字符,也就是说对于共阴极LED显示器,“P”字符的字形代码是073H。
(2)LED数码显示器的显示段码
为了显示字符,要为LED显示器提供显示段码(或字形代码),组成一个“8”字形字符的7段,再加上1个小数点位,共8段,因此提供给LED显示器的显示段码为1的字符,各段码的对应关系如图3-6所示。
图3-6数码管的引脚结构图
3.5开关键盘的设计
按钮开关的本质属于机械、有弹性的开关。
当开启开关按钮时,即按下按钮,按钮内置的复位弹簧被压缩,使静片触点与动片触点相接触,接通了键盘引脚,当松开按钮时,按钮内置的复位弹簧弹开动片触点,使静片触点与动片触点相分离,断开键盘引脚。
由于按钮内的弹簧具有弹性,使按键从按下到稳定接触要经历一段时间,并在这段时间内会发生抖动。
按键抖动波形如图3-7所示。
图3-7按键抖动电压波形
常见的电子控制装置中都可以实现对数据的输入或操作设置特殊功能。
因为它有按键输入电路的设计,在整个控制系统电路中,如果按键数不多可以采用独立式按键的方法。
单稳态锁存器常常是独立式按键用来消除抖动的方式,所以判定按下了哪个键可以通过检测输入线的电平状态就可以实现【4】。
当在按键较多的时候常采用软件的方法消除抖动,按键开关输入目前面临的问题是如何针对按键抖动采取合适措施处理,和确定是否按下了按键。
判定是否有按下按键主要取决于跟按键相连接的引脚状态是处于高电平状态还是低电平状态。
一般来说分为硬件和软件两种消除按键抖动的方法。
4系统软件设计
4.1软件任务分析
显示部分软件的设计根据硬件单位连接然后进行软件的编写。
开关电路时间长短与开关的机械性有关,一般为5-10ms。
单片机对非编码键盘的控制方式:
独立式键盘的编程。
复位电路:
复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态重新开始工作。
4.2主程序设计
主程序主要由系统初始化段、开中断、键盘识别、键值处理、两个4位共阴极LED显示器扫描显示子程序和中断处理子程序等组成。
通过对以上各段和子程序的结合,以实现系统功能。
该系统主程序流程图如下图4-1所示。
图4-1主程序流程图
4.3键盘识别及处理程序设计
按键识别及处理程序主要由键盘识别和键值处理组成。
其中键盘识别子程序不断地对键盘进行判断是否有键按下。
当有键按下时则转到键码处理即甲、乙总分处理子程序对相应按键进行相应处理,即可实现对甲、乙两队总分的计算与处理。
键盘识别即依次判断第一列、第二列、第三列、第四列是否有键按下。
如果有键按下,先得出列,再反向赋值得出行,最后得出所在行和列的位置。
键值处理即先定义0~9这九个按键,再对三次按键值进行保存,再来判断是甲队还是乙队加减分,再判断是加还是减,最后判断加或减多少分,实现分别给甲、乙总分进行加分和减分。
键值处理即甲、乙总分处理子程序流程图如下图4-2所示。
图4-2键值处理子程序流程图
4.4显示子程序设计
由于该系统使用的是8位LED显示器显示计分器比分,因此显示采用动态扫描显示方法,即由显示器扫描显示子程序控制显示器逐个循环从左至右依次点亮各个显示器。
这样虽然在任一时刻只要一个显示器点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果一样。
显示器扫描显示子程序显示每一位用如图4-3所示流程方法完成。
图4-3显示子程序流程图
4.5复位程序设计
按钮与单片机P0.6/AD6引脚相连,当每次按下该按钮后,系统将通过软件实现对计分复位功能。
在主程序运行过程中,只要系统识别到与单片机P0.6/AD6引脚相连的按键按下,程序则会转去执行复位程序,完成对甲、乙总分寄存单元的清零,显示器各位的显示数寄存单元的复位,执行完毕后,返回主程序。
流程图如4-4所示。
图4-4复位程序流程图
第5章系统调试
5.1软件模拟调试
本设计主要是用proteus软件绘图以及伟福软件进行编程仿真的。
调试步骤由两个部分组成:
首先,确定程序中错误的确切性质和位置;然后,对程序代码进行分析,确定问题的原因,并设法改正这个错误。
具体地说,由以下步骤组成:
1.从仿真显示出来的结果来深入,进行逆向的思考,找出软件程序中有问题的部分;
2.仔细分析调试所使用的程序代码,发现程序有误的部分;
3.对找到的错误或者不当的代码进行从新编写,订正程序;
4.对于修改过的程序进行重新的测试,若测试结果正常,达到修改的目的,可以实现预期的功能,则进行下一步奏,否则回到上一步奏,继续修改。
5.2硬件接线
这个电路是在老师的指导下设计的,电路的设计在理论上完全行得通,不过接线是设计中最关键的一步,我的接线原则是从全局出发,逐个模块连接调试,最后总体调试。
在这个指导思想下,我的安装还算是是成功的。
逐个模块接线再调试,可以为总体调试省去很多时间,只要每个模块正常运行,几个模块通过地址总线连接之后,就不会出现太大的问题了。
调试前的直观检查:
1、连线是否正确,在通电之前应先检查一下电路的连线是否正确,包括错线,少线和多线的情况。
查找的方法有:
按照电路图检查安装的线路,这种方法的特点是,根据电路图来确定,按一定的顺序逐一检查安装好的线路,由此,可容易查出错线和少线的情况,还有一种方法就是按照实际的线路来对照原理电路进行查线,这是一种以元件为中心进行查线的方法。
把每个元件引脚的连线一次查清,检查每个接线处在电路图上是否存在,这种方法不但可以查出错线和少线,还容易查处多线的情况。
2、元器件安装时情况
检查元、器见引脚之间有无短路;连接处有无接触不良;二极管和电容极性等是否连接有误。
电源、信号源连接是否正确。
3、电源端对地是否存在短路,在通电前,断开一根电源线,用万用表检查电源对地端是否存在短路
模拟调试结果记录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 基于 STC89C51 单片机 篮球 计时 计分 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)