本科毕业设计篮球计时计分器的设计与实现Word文件下载.docx
- 文档编号:21967487
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:24
- 大小:343.10KB
本科毕业设计篮球计时计分器的设计与实现Word文件下载.docx
《本科毕业设计篮球计时计分器的设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《本科毕业设计篮球计时计分器的设计与实现Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
1前言
进入21世纪,伴随着电子,信息通信技术的应用与普及开发,人们对电子技术的要求也越来越高,目前嵌入式单片机渗透到我们生活的各个领域。
单片机是一种集成在电路芯片,是采用超大规模集成电路技术,把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统[1]。
而当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在单片机上。
按照历史性、本质性、普遍性要求,嵌入式系统应定义为:
“嵌入到对象体系中的专用计算机系统”,可分软件部分和硬件部分[2]。
所以,以MCU为核心,就是各种各样的单片机,是嵌入式硬件部分的实现方式之一,它主要是因为把处理器和存储器等部件集成在一块芯片上[3]。
在单片机的应用正在不断深入的同时,传统技术日益更新。
几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
随着单片机的发展,人们对事物的要求越来越高,单片机的应用软件技术也发生了巨大的变化,从最初的汇编语言,开始演变到C语言开发,不但增加了语言的可读性,结构性,而且对于跨平台的移植也提供了方便,另外一些复杂的系统开始在单片机上采用操作系统,一些小的RTOS等,一方面加速了开发人员的开发速度,节约开发成本,另外也为更复杂的实现提供了可能。
当前比较流行的RTOS有:
WINCE,uClinux,Linux,uC/OS等等[4]。
单片机往往作为一个核心部件来使用,仅单片计时计分机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
单片机把我们带入了智能化的电子领域,许多繁琐的系统若由单片机进行设计,便能收到电路更简单、功能更齐全的良好效果[5]。
若把经典的电子系统当作一个僵死的电子系统,那么智能化的现代电子系统则是一个具有“生命”的电子系统。
随着各式各样的电子产品的问世和发展层出不穷,篮球计分屏是一个无处不在的电子产品,经过多年的发展,技术已经相当成熟了。
根据目前高水平篮球比赛要求,完善的篮球比赛计时系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。
随着电子技术的产业结构调整,生产工艺的飞速发展和篮球的广泛推广,市场对篮球计分器的需求也越来越大。
本设计用AT89C52单片机为核心,包括复位模块,按键模块[7],显示模块[8]等。
单片机控制的两组数码管中,一组是用来显示赛事倒计时的时间,令一组来显示两球队的比分情况[6]。
另外在硬件完成后在Keil软件用C语言进行编程,对单片机进行程序的烧录,最后测试功能的完成。
具有计分准确,体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点[7]。
2系统设计基本要求与方案论证
2.1系统设计基本要求
(1)记录整个赛程的比赛时间,并修改比赛时间;
(2)随时刷新甲、乙两队在整个过程中的比分;
(3)中场交换比赛场地时,交换甲、乙两队比分;
(4)比赛结束时,发出报警声。
2.2系统方案论证
2.2.1以单片机作为整个系统的核心
采用单片机进行设计,能使许多繁琐的系统电路更简单、功能更齐全的良好效果,这样不但可以降低整个设计的复杂性和成本,而且也提高了整个系统的稳定性。
由于本系统结构简单,用51单片机就足够实现其功能而且主要用定时器,因此本系统采用51单片机来实现[8]。
由于本设计需要亮度比较的大的显示因此以七段数码管作为显示器件,为了节约I/O口采用动态扫描的方式。
本系统需要人机互动,因此需要键盘。
在选择键盘时由于单片机的I/O充足,在设计时为了方便选用独立式键盘。
在设计报警部分,由于只要简单的发声器件因此蜂鸣器就足以够本系统的使用。
2.2.2采用模拟和数字混合电路来实现
采用拟和数字混合电路,例如门电路、触发器、555定时器、集成运算法器等元器件也可以完成此系统的设计。
但是其实现的硬件电路也会相当的复杂,尤其对于缺乏硬件电路实践经验的开发人员来说,其实现起来是相当困难的。
在设计时显示部分可以使用液晶模块或者七段数码管但其硬件实现都比较复杂。
键盘部分用编码键盘可以简单一些,但其价格比较昂贵。
但同时使用其他的键盘如独立式键盘、矩阵式键盘,但会增加硬件的复杂性。
报警部分的设计相对来说还是比较容易实现。
2.2.3系统的总体方案
通过对方案一与方案二比较容易看出:
方案一更适合我们的实际要求,而且可以缩短我们的开发周期并且使系统变得简单、易于实现。
利用AT89C52单片机为核心,包括复位模块,按键模块,显示模块等。
单片机控制的两组四位一体的数码管中,一组是用来显示赛事倒计时的时间,例如00—99分的显示,同时根据不同的比赛可以设置不同的倒计时时间,另一组来显示甲乙两球队的比分情况,通过按键根据比赛的实时情况进行加分减分。
即通过按键控制倒计时的设计及甲乙两队的比分情况[9]。
3系统的总体设计
该系统硬件电路包括:
单片机AT89C52、时钟电路、复位电路、电源电路、按键控制电路、计分电路、计时电路、报警电路。
本设计是采用单片机AT89C52作为本设计的核心元件。
利用7段共阴LED作为显示器件。
在此设计中共接入了2组四位一体的数码管,其中1组用于记录AB队的分数,每队2个LED显示器显示范围可达到0-99分,足够满足赛程需要,另外一组LED显示器则用来记录赛程时间,其中2个用于显示分钟,2个用于显示秒钟。
其次,为了配合计时器和计分器校正调整时间和比分,我特定在本计中设立了11个按键,其中8个用于比赛分数设置与调整,当比赛队A队得1分时,按下A+1键;
得2分时,按下A+2键;
得3分时,按下A+3键;
当加分出现错误时,可以按A-1键减1分,可以达到调整分数的作用;
依照同样的方法可以记录B队的得分。
3.1系统硬件设计
整个硬件系统主要包括单片机电路,电源电路,复位电路,数码管显示电路,报警电路,键盘电路组成。
单片机主要是利用AT89C52,复位电路是利用12M的晶振产生时钟频率,在键盘部分是通过单片机检测I/O口电平的变化来判断哪个按键有按下。
其硬件系统框图如图3.1所示。
图3.1篮球赛计分器的硬件结构框图
3.1.1时钟以及复位电路
时钟电路:
为整个系统的工作提供一个基准时钟,本设计使用12MHZ的晶振作为时钟源。
电容C1,C2的作用是引起时钟的起振。
复位电路:
采用上电复位,复位使单片机重新执行程序,恢复寄存器的默认值[10]。
其原理图如下:
图3.2时钟及复位电路
3.1.2键盘部分
键盘电路如图3.3所示,主要用于调节人机接口关系,实现对参数。
单片机通过检测I/O口电平的变化来判断哪个按键有按下,当没有按键按下时,I/O被上拉为高电平,有按键按下时被强制拉为低电平。
图3.3键盘电路
3.1.3报警部分
报警电路如下图3.4,通过报警电路给人们以警告信息。
由于单片机的I/O口驱动能力有限,在这里用了一个PNP的晶体管起电流放大作用驱动蜂鸣器工作。
电阻限流作用,防止晶体管因电流而发热烧坏。
图3.4报警电路
3.1.4显示部分
显示部分采用数码管的动态扫描方式,数码管采用共阴极的。
P0发送段码,P2发送位码来控制数码管的选通。
使每个数码管轮回点亮,由于人的视觉停留效应在适当的时间人们会认为所有的数码管是点亮的。
计分部分:
各使用两个数码管来计量两队的分数,分数变化的控制通过按键来控制。
计数范围为00-99。
定时部分:
各使用两个数码管来计量比赛时间,并采用倒计时的计数方式。
其原理图如图3.5所示:
图3.5显示部分
3.2系统软件设计
软件部分要求实现的功能有:
开始时所有显示屏都显示0;
有预置比赛时间的功能;
具有AB两队分别计分的功能;
有鸣笛警示功能;
只有当预置时间后,并按开始按钮,计时器才能开始倒计时,只有当开始计时后,AB两队才能进行加一分、加二分,减一分;
当比赛暂停时,计时显示屏停止倒计时;
当交换比赛场地时,按交换键,甲乙两队的比分交换;
当倒计时时间为零时,蜂鸣器自动鸣笛报警。
3.2.1定时器子程序
51单片机内部有两个16位可编程的定时器/计数器,分别称为定时器/计数器0和定时器/计数器1,它们具有四种工作方式,其控制字和状态均在相应的特殊功能寄存器中,通过对控制寄存器的编程,就可方便地选择适当的工作方式。
定时/计数器的核心是的16位加法计数器,定时器T0的加法计数器用特殊功能寄存器TH0、TL0表示,TH0表示加法计数器的高8位,TL0表示加法计数器的低8位。
TH1和TL1则分别表示定时/计数器T1的高8位和低8位。
它们均是8位寄存器,在特殊功能寄存器中占地址8AH-8DH。
它们用于存放定时或计数的初始值。
此外,内部还有一个8位的工作方式寄存器TMOD和一个8位的控制寄存器TCON,用于选择和控制定时/计数器的工作。
这些寄存器可根据需要由程序读写。
当然16位加法计数器的输入端每输入一个脉冲,16位加法计数器的值自动加1,当计数器的计数值超过加法计数器字长所能表示的二进制数的范围而向第17位进位,即计数溢出时,置位定时中断请求标志,向CPU申请中断。
(1)TMOD用于控制T0和T1的工作方式,其格式如表3.1所示:
表3.1方式控制寄存器TMOD
位
D7
D6
D5
D4
D3
D2
D1
D0
位符号
GATE
C/T
M1
M0
门控开关
计数/定时
方式选择
T1方式字段
T0方式字段
M1,MO:
工作方式控制位,可构成表3.2所示四种工作方式:
表3.2方式控制寄存器TMOD的工作方式
工作方式
说明
13位定时器;
1
16位计数器;
2
可自动再装载的8位计数器;
3
T0分成两个独立的8位计数器
C/T:
计数工作方式/定时工作方式选择位。
置0时,设置为定时工作方式;
置1时,设置为计数工作方式。
GATE:
门控位,用以决定是由软件还是硬件启动/停止计数。
GATE=0,INT0/INT1被封锁,只要用软件对TR0(或TR1)置“1”就启动了定时器;
GATA=1时,定时器/计数器的计数受外部引脚输入电平的控制。
TMOD的所有位在复位后清0。
TMOD不能位寻址,只能按字节操作设置工作方式。
(2)定时/计数控制寄存器TCON
TFl,TRl,TF0和TR0位用于定时器/计数器;
IEl,ITl,IE0和IT0位用于中断系统。
其格式如表3.3所示:
表3.3控制寄存器TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
各位定义如下:
TF0:
定时器0溢出标志。
其功能及操作情况同TF1。
TR0:
定时器0运行控制位。
其功能及操作情况同TR1。
在本系统的设计中主要使用定时器0的16位的定时模式,也就是工作模式1。
程序设计的子框图如图3.6所示:
图3.6程序设计
C源程序代码如下:
voidTimer_Inti(void)//定时器0初始化程序
{
TMOD=0X01;
//设置工作方式1
TH0=(65536-50000)/256;
//高位初始值
TL0=(65536-50000)%256;
//低位初始值
ET0=1;
//开定时器0中断
EA=1;
//开总中断
TR0=1;
//启动定时器0
}
voidTimer_ISR()interrupt1//定时器0中断服务程序
//重新赋初始值
//
if(count++==20)//定时1s基准
{
sec++;
//定时时间到,sec变量加1,count变量清零
count=0;
}
}
3.2.2键盘扫描子程序
键盘采用独立式键盘,按键是一种机械弹性开关,当键按下时闭合,松开时断开。
因为有机械的接触,在触点闭合或断开的瞬间会出现电压抖动。
为了避免键输入错误,必须进行键抖动的处理。
去抖动由硬件和软件两种方法:
硬件方法就是在键盘中附加去抖动电路消除抖动,而软件方法则是采用时间延迟以消除抖动。
其流程图如图3.7所示:
图3.7键盘扫描部分流程图
子程序如下所示:
voidKey_Scan(void)//键盘扫描子函数
{
if(key==0)//是否有按键按下
Delay(10);
//延时去抖
If(key==0)//再次检测是否有按键按下
While(key==0);
//等待按键释放
3.2.3显示子程序
显示部分采用共阴极的数码管动态扫描方式,子程序的设计框图如图3.8下所示:
图3.8显示子程序的设计
子程序代码示例如下:
unsignedcharcodeDSY_CODE[]=//段码
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x82,0xf8,0x80,0x90,0xff};
unsignedcharcodeBIT_CODE[]=
{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
//位码
voiddisplay()//显示子函数
unsignedchari;
while
(1)
for(i=0;
i<
8;
i++)
P0=~DSY_CODE[i];
//循环扫面
P2=BIT_CODE[i];
Delayms
(2);
//延时
3.2.4蜂鸣器报警子程序
蜂鸣器采用一定频率的脉冲来驱动其发声,子程序框图如图3.9所示:
图3.9蜂鸣器报警子程序流程图
程序代码如下:
voidbeep(unsignedchart)//蜂鸣器子函数
uchari;
100;
{
BEEP=~BEEP;
//高低电平取反
DelayMS(t);
BEEP=0;
//关闭蜂鸣器
4系统测试与分析
4.1系统测试
4.1.1硬件测试
(1)经过测量,电源电压达到标准的5V;
(2)用万用表测试,所有的电路都通了;
(3)用示波器检查晶振,看到示波器上显示标准的正弦波。
4.1.2功能测试
(1)当一节比赛完成时,蜂鸣器没有报警,后经修改程序,达到了当倒计时为0时方波驱动蜂鸣器开始报警,起到了提示的作用,完成了预期的目标。
(2)通过按键,完成了甲乙两队的比分刷新与暂停的功能当进行赛事计分时,A,B两队可以分别加一分,加两分,进行加分,当需要扣分时,按减分键进行减分,并当交换场地时,能交换A,B两队的比分。
较好的完成了既定的加分减分功能。
4.2系统分析
通过硬件测试和软件调试,本设计较好的完成了应有的指标和任务。
实现了单片机为核心主控外围电路的想法,各个电路模块在程序的控制下,基本实现了应有的功能。
5小结
本次设计采用了较少的元件,通过巧妙的电路设计,充分利用硬件资源,以较低的成本实现篮球计分器的计时和显示A/B队的分数,并能及时进行加分,减分,鸣笛警示等功能。
并且具有成本低廉、性能稳定、高准确度显示、操作方便且易携带等特点。
广泛适合各类学校和小团体作为赛程计分。
通过此次的毕业设计,提高了对本专业各个学科综合知识的实际运用能力,提高了自己实际动手能力,掌握了整个硬件开发流程和步骤以及调试方法,同时也提高了自身对产品开发的严谨性、系统性、科学性。
通过理论与实际的相结合,进一步深入的体会到一种学习的方法,特别是对电子设计方面。
首先,要明确总体的设计方案与方法;
其次,对各个部分进行设计与改进;
最后,将各个部分整合到一起进行比较、观察。
由于时间的限制,篮球积分器总的系统还存在一些不足之处,需要进一步完善,例如数码管的驱动问题,当时就是没有仔细考虑数码管的亮度问题,节省原件,就直接用单片机控制了。
其它的也可以进行功能扩展。
参考文献
[1]郭天祥主编.新概念51单片机C语言教程[M].电子工业出版社,2009.1:
2-15
[2]高吉祥主编.数字电子技术[M].电子工业出版社,2009.7:
25-32
[3]张旭主编.数码管动态扫描数据显示[J].伊春职业学院机电工程系,2012.9:
45-53
[4]高吉祥主编.模拟电子电路[M].电子工业出版社,2009.7:
34-40
[5]郭玉霞主编.MCS-51单片机原理与应用[M].北京航空航天大学出版社,2010.1:
56-78
[6]张义和主编.例说51单片机(C语言版)[M].电子工业出版社,2008.4:
110-132
[7]赵建领主编.51单片机开发与应用技术详解[M].电子工业出版社,2009:
107~289
[8]刘娟主编.单片机C语言与PROTUES仿真技能实训[M].中国电力出版社,2010.8:
78-105
[9]周润景主编.Protues入门实用教程[M].机械工业出版社,2007.9:
140-173
[10]谭浩强主编.C程序设计(第三版)[M].清华大学出版社,2010.8:
170-256
致谢
附录A原理图
.
图A原理图
附录BPCB双面板
图B1底层PCB
图B2顶层PCB
附录C实物图
图C实物图
附录D完整程序代码
#include<
reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
voiddelay(ucharx);
//延时(时间较短)
voiddelay1(ucharx);
//延时(时间较长)
voidJs_Jf_Scan(void);
//数码管动态扫描显示函数
voidKey_if(void);
//A、B两队分值处理函数
voidJs_50ms(void);
//定时50ms中断函数
voidKey_Y(void);
//预置时间函数
voidPtime(uchar);
//时间处理函数
voidsound(void);
//鸣笛警示函数
sbitCL1=P2^0;
//B队4位计分数码管位控线
sbitCL2=P2^1;
sbitCL3=P2^2;
sbitCL4=P2^3;
sbitKL1=P2^4;
//A队4位计分数码管位控线
sbitKL2=P2^5;
sbitKL3=P2^6;
sbitKL4=P2^7;
sbitS1=P1^3;
//驱动4位计时数码管位控线
sbitS2=P1^2;
sbitS3=P1^1;
sbitS4=P1^0;
sbitYK1=P1^6;
//预置分钟的十位
sbitYK2=P1^7;
//预置分钟的个位
sbitmusic=P1^4;
//P1.4接喇
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 毕业设计 篮球 计时 计分 设计 实现