找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3062|回复: 0
打印 上一主题 下一主题
收起左侧

单片机篮球赛电子计时记分牌课程设计论文下载

[复制链接]
跳转到指定楼层
楼主
ID:378141 发表于 2018-7-23 21:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
电子技术课程设计报告
篮球赛电子计时记分牌

摘  要
      篮球赛电子计时记分牌是根据篮球比赛特点设计的独立的信息采集、分配、评判和显示的系统,能实现比赛时间和分数的实时、准确、快捷处理和呈现。本设计原理简单,主要采用AT89C52单片机作为微控制器,集合矩阵键盘、数码管和LED指示灯,通过键盘控制记分牌的工作状态,通过数码管和LED指示灯来反馈信息。本设计在充分考虑了篮球比赛的实际情况基础上设计,具有友好的人机交互接口,并且可以防止人为误操作造成的不良后果,具有一定的实用性。

目  录
1 设计任务
1.1 设计的目的和意义
1.2 设计任务与要求
2 硬件系统设计
2.1 总体方案设计
2.2 芯片选型与具体电路设计
2.2.1 单片机的选型
2.2.2 复位和振荡电路的设计
2.2.3 键盘输入模块的设计
2.2.4 信息提示模块的设计
2.3 系统总体电路
2.4 系统所用元器件
3 软件系统设计
3.1 软件系统总体设计方案
3.2 软件系统流程图
3.2.1 主程序流程图
3.2.2  按键检测子程序设计
3.2.3  数码管显示子程序设计
4 系统调试
5 总结
5.1 经验总结
5.2 心得体会
参考文献
附录:篮球赛电子计时记分牌单片机程序代码






1 设计任务  1.1 设计的目的和意义
目前球场记分牌在传统操作模式下,采用记分员手动翻动记分牌记分,工作方式单一。由于种种弊端,电子记分板已经开始在一些大型的体育场流行起来,不仅发展速度迅猛并会逐渐取代传统的电子记分牌。
电子记分板根据篮球比赛的特点,采用单片机为核心控制LED数码管,具有亮度高、可视性好、功耗小、使用寿命长等优点;具有性能稳定,尺寸适中,运输安装方式灵活,物美价廉等特点,特别适用于中、小型体育馆和训练馆。
  1.2 设计任务与要求
设计题目:篮球赛电子计时记分牌
设计要求:
  • 分别设计篮球比赛用的计时牌和记分牌;
  • 上下半场各20分钟,要求能随时暂停,启动后继续计时,一场比赛结束后应可清零重新开始比赛;
  • 能按照篮球计分规则计分并显示。
2 硬件系统设计  2.1 总体方案设计
篮球记分器的硬件电路分成主控模块、键盘输入模块、信息提示模块三部分进行设计,系统整体结构如图1所示。






图1 系统硬件结构图
主控模块以AT89C52为核心,完成输入输出信息处理、计时器中断响应、数值计算等,协调整个系统有条不紊地工作。键盘输入模块作为人机交互接口,允许用户控制系统的工作状态,完成如计时计分开始/暂停、交换场地、计时计分清零、比赛队伍分数调整等功能。信息提示模块包含4个2位8段数码管、6个LED和一个蜂鸣器,用于实时显示系统工作状态,方便用户进行下一步操作。
  2.2 芯片选型与具体电路设计  2.2.1 单片机的选型
主控模块以AT89C52单片机作为微控制器。AT89C52单片机是一种低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。由于它的这些优良特性,AT89C52单片机在电子行业中有着广泛的应用。采用AT89C52作为微控制器,可以很好地满足篮球记分器的系统要求。
  2.2.2 复位和振荡电路的设计
图2给出了AT89C52单片机的引脚分布和最小系统接法。
图2 AT89C52单片机最小系统原理图
复位电路可以实现上电复位和按键复位两种复位方式:上电复位电路由电容串联电阻构成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以适当组合RC的取值就可以保证可靠的复位。按键复位电路则是通过按下RESET按键拉高RST引脚电平来实现的。
晶体振荡电路由一个12MHZ石英晶振和两个30pF的电容组成,用于产生稳定的时钟脉冲信号供单片机工作。
  2.2.3 键盘输入模块的设计
用户通过键盘输入模块对系统进行控制。键盘采用3*3矩阵式按键,其中按键“START/PAUSE”控制计时计分的开始与暂停,按键“EXCHANGE”用于在半场结束后交换双方记分牌上的分数,按键“CLEAR”用于在比赛结束后清除比分,其余的按键“A+1”、A+2”、“A+3”、“B+1”、“B+2”、“B+3”用于给参加比赛的A、B两队加上相应的分数。3*3矩阵按键的6条引线分别接至AT89C52的I/O口P3_0~P3_5,在单片机内部采用行列扫描法检测到按键按下,从而执行相应的任务。
矩阵键盘的连接方式如图3所示。
图3 矩阵键盘的连接方式
  2.2.4 信息提示模块的设计
信息提示模块包含4个2位8段共阴极数码管(图4)、6个LED指示灯(图5)和一个蜂鸣器。
4个数码管分别用两位数字显示比赛分钟、秒钟和赛场上两个篮板的分数。由于单片机I/O口资源有限,为了不占用太多的接口,在此使用P0口向数码管同时送出数据(段选信号)和地址(位选信号),使用两个74HC573锁存器来分离数据和地址,而P2_0和P2_1口分别用于使能段选锁存器和位选锁存器。由于P0口的电流驱动能力有限,所以外接了排阻RP1,从而增强了对数码管的驱动能力。
图4 数码管连接原理图
LED1、LED2、LED3分别指示比赛状态“开始”、“暂停”和“结束”;LED4用于“进球”指示,在比赛进行时按下任何一个加分按键,“进球”指示灯会闪一下;在上半场比赛结束后按下“EXCHANGE”键,“交换场地”指示灯LED5会亮,同时两个篮板的比分互换。“ERROR!”指示灯LED6用于指示用户的操作出错。6个LED采用共阳极连接方式,其阴极分别接单片机P1_0~P1_5口,当单片机某口输出低电平时,对应的LED亮。
图5 LED指示灯连接原理图
蜂鸣器接在P1_6口上,在半场结束或比赛结束后会发出提示音。
  2.3 统总体电路
图6给出了系统硬件原理总图。
  2.4 系统所用元器件
本系统所用的元器件清单如表1所示。
表1  本系统所用的元器件
元器件名称
数量
电阻
8
电容
3
单片机 AT89C52
1
锁存器 74HC573
2
LED
6
2位8段数码管
4
蜂鸣器
1
排阻
1
12M晶振
1
按键开关
10
5V电源
1
导线
若干

3 软件系统设计  3.1 软件系统总体设计方案
单片机程序采用美国Keil Software公司出品的51系列兼容单片机C语言开发系统Keil C编写。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
Keil采用工程方式集中管理源程序,编写单片机程序首先要建立工程,然后在工程中添加源代码文件。在本系统的工程中包含6个C代码文件,对应功能介绍如下:
My_func.h              ——自定义的头文件。存放常用宏定义、单片机I/O位定义、数据类型定义和所有函数的声明。在其他C文件里只需要写一句#include "my_func.h",即可直接调用任意函数,省去了重复写定义和声明的麻烦。
Main.c ——包含主程序main(),是整个程序执行的入口。在main()函数里,调用init()进行单片机的初始化,并在大循环里调用key_respond()和display()不断扫描按键输入、输出显示数据。同时设置定时器T0以工作方式1计时,从而在中断服务程序void Timer() interrupt 1里实现1s间隔的倒计时。
Key_scan.c ——包含按键扫描程序key_scan()。该函数采用行扫描法获取按键的状态,并将对应的键码传给Key_respond.c中的函数key_respond()。
Key_respond.c ——包含按键响应函数key_respond()。该函数里决定是否对按键请求进行响应:如果不响应,则调用宏LED_ERROR()使“ERROR!”指示灯闪动;如果响应,则调用相应函数完成不同的操作,如比赛状态的开始和暂停、加分、交换场地和分数清零等。
Display.c ——包含数码管显示驱动函数display()。在这个函数里实现比赛分数设置、比分交换、计时控制等,并通过P0口送出段选信号,通过P2_0和P2_1送出位选信号,从而控制数码管的动态显示。
My_func.c ——被调用函数的集合,包含延时函数void delay_ms(unsigned int xms)、初始化函数init()和蜂鸣器发声函数sounder()。

  3.2.1 主程序流程图
在主程序文件main.c中包含两部分内容,分别是主函数和中断服务函数。
首先是主函数void main(),这是整个程序执行的入口,在这个函数里,首先调用init()进行单片机的初始化,然后进入大循环,反复调用key_respond()和display()两个函数不断扫描按键输入并输出显示数据。在中断服务函数void Timer() interrupt 1里,设置定时器T0以工作方式1计时,计时时长为50ms,计时器每溢出一次,变量intr_num自增一次,直至intr_num等于20,于是计时时长达到1s。在中断服务程序里,计时每达到1s,篮球计时牌上的秒钟数就自减1;秒钟减到0后,分钟自减1,然后秒钟从59开始继续自减。
主程序和中断服务程序流程如图8(a)、8(b)所示。


5 总结
  5.1 经验总结
这一次的课程设计,我的课题是《篮球赛电子计时记分牌》。由于这一系统包含单片机基础、数码管动态显示、矩阵键盘扫描、定时器和中断等知识体系,涉及面较广,通过这一课程设计,可以更好地检测和巩固学到的知识,加深自己对电子世界的认识。
在本次的设计中,针对每一个模块都曾有好几个方案,在反复比较论证之后,才得出最佳方案并应用于系统。在各个模块的设计中,我除了得到了正确的结果之外,更多的是面对错误和失败,而这些错误大多数是由于自己对该部分电路原理掌握的不够透彻而造成的。通过查阅资料,连接、调试电路和程序,我得出了一下几条心得体会,以后在设计过程中可以借鉴:
(1)在Proteus里,电路状态不正常且不易发现问题时,使用电流计和电压计可直观检测电路动态变化,这也是Proteus里非常好用的一个功能;
(2)电流表、电压表显示数值为0时,不一定是接法的问题,可以试着调整量程,可能是量程选大了;
(3)Proteus里的电源默认是5V,需要改动电压时,点击属性,在string项里填上需要的数值就可以了,如+15V;
(4)画完电路后怎么一次性去掉proteus元器件的TEXT标号?
  打开菜单template—set design defaults,把shou hidden text的勾去掉即可;
(5)在keil工程中如何创建能用于所有C文件的全局变量?
在头文件里声明 extern uchar glb_num;在主函数前定义 uchar glb_num;
(6)Proteus里可变电阻不好找,代号是POT-HG;按钮开关是button,拨动开关是switch。
  5.2 心得体会
本次课程设计的题目我很感兴趣,做得也非常认真。从方案的指定、元件的选择、电路的搭建与调试等多方面都付出了很多努力,甚至在遇到棘手的问题时彻夜坐在电脑旁反复修改调试。虽然辛苦,但是收获颇丰。
在这里要感谢很多同学和朋友在本次课程设计中给予我的支持和帮助。特别要感谢我的指导老师侯**和卢**,在我遇到困难的时候,他们给了我极大的帮助。尤其是在系统显示模块方案的确定上,老师多次给我耐心细致的指导。很庆幸能有这样负责任、有爱心的指导老师,帮我扫清了课程设计过程中的诸多障碍,也让我看到了师长的风范。

完整的Word格式文档51黑下载地址:
单片机课程设计—篮球赛电子计时记分牌.doc (536.59 KB, 下载次数: 41)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表