基于双MCU的篮球赛计时计分器设计与开发
2022-08-26王红玉宋卫东滕明星郭城
王红玉,宋卫东,滕明星,郭城
(南京邮电大学 通达学院,江苏 扬州 225127)
0 引 言
小团体举行篮球比赛已越来越频繁,如今其比赛多数仍依靠时钟计时和比分牌计分来实现,这种方式的计时计分具有明显缺点:人工计时计分产生误差,不易携带等。
因此为了使得比赛过程更加完美专业化使计时及计分的系统设置更加科学准确,便于运动员携带,本文特设计研发了这样一种可以由双单片机AT89C52编程完成并进行控制的键入打分,并能LED数码管进行显示的计时与计分的系统,从而具有性能稳定,易于操作,产品体积小便于携带等优点以便小团体比赛使用。
1 系统总体设计
设计过程包括:系统硬件结构设计和系统软件编程设计,以单片机(AT89C52)控制器为其核心器件,添加其上其他相关辅助元器件设计(如共阳极LED数码显示器、BCD -七段解码/驱动器74HC138和74HC573等器件以及控制面板)实现比赛中计时和计分功能。硬件电路的设计思路主要有包括核心单元电路设计(双单片机)方案、数码图形显示系统电路、键入功能电路设计(包括矩阵按键和独立按键)设计等,如图1所示;编程语言使用C语言,达到了制作一个简易的数字计时器系统与自主开发按键计分器软件的设计目的。设计采用了两片单片机,第一片单片机的P0口作为计分数据的输出端口,P1口为按键数据输入端口;第二片单片机的P2(4-7)和p3口为计时数据输出端口,P1口连接四个单独微动开关。计时计分部分,可灵活调整,可满足大小赛程规模要求。
图1 系统结构图
2 系统硬件设计
2.1 核心硬件——单片机
设计中采用的AT89C52单片机是一种高效低功耗的微控制器,可以同时实现了很好一定程度上的实现与工业标准MCS-51单片机的高度兼容,是其中一款增强型设计的51型单片机,内部逻辑器件主要是指由多个芯片内部的逻辑寄存器所组合构成的逻辑累加器,它主要内部结构包括:运算器,控制器,存储器,输入与输出的总线接口等等;具有两个128位和四个8位的内部存储器和RAM,两个16位的定时器和/两个周期的计数器,内置时钟和振荡器电路和一个外部的时钟电路。
图2 单片机AT89C52引脚图
2.2 复位电路模块
复位时钟电路目的是仅做为能使单片机可以继续的进行整个系统的初始化过程及初始化操作。当系统由于初始化程序的正常运行工作中发生出错事件和部分初始化过程操作时发生了错误事件或故障使单片机整个工作系统都暂时地处于一个半死锁状态时,为了可以快速地摆脱这该半个死锁状态,从而也考虑设置一个复位电路。在单片机时钟电路在正常或稳定的连续工作时钟模式控制下,使单片机时钟输出的RST引脚频率自动从低电水平变为高电平并能够一直地持续振荡到2 μs以上。因而如果只要给该单片机RST的引脚加上了一个具有大于24个时钟和振荡时钟周期的一个稳定高电平就表示已经成功可以使该单片机实现完全自动复位,复位工作完毕时程序将初始化为0000H,复位工作程序结束后RST将会变为一个稳定的低电平,程序从0000H开始执行。通过一套简单易学的单片机RC电路可完成单片机系统中的单片机上电自动复位程序和单片机在开机运行状态时用户操作的复位按键实现复位等功能,上电自复位可在用户接通单片机电源信号后即可自动复位实现自复位,在单片机系统正在启动运行过程时用户就可直接按下自动复位程序按键复位后即松开,使其RST引脚先有连续一段时间变化的高电平信号而后逐渐变为相对稳定的低电平状态从而自行实现复位。两片单片机使用了相同的复位电路如图3所示。
图3 复位电路原理图
2.3 时钟电路模块设计
时钟赋予了单片机灵魂,时钟频率是微控制器中功能部件操作的标准。单片机运行的速度和系统是否能够稳定运行都与时钟电路的质量有着密切的关系。AT89C52中有着的一种是以高动态增益的反相放大器所构成的内部并联振荡器,采用的内部串联的振荡电路,通过将在XTAL1端口上和在XTAL2端口下通过外接的两个晶振器件和的两个电容C1,C2(微调电容)按照一定频率的振荡方式来进行串联组合后而产生的谐振电路,为单片机提供时钟脉冲序列。两片单片机使用相同时钟脉冲序列。
2.4 矩阵按键模块设计
由一个4×4=16的共16个各自独立使用的按键单元所组成,在单片机的编程设计中可直接通过一个较为简易快捷且方便的方法实现:使用一个P口轻松实现16个的单独的按键单元具有不同的按键功能,采用扫描法原理来实现识别按键:按键按下时,跟该按键相接的行线与列线瞬间导通,而在无按键键入,此时,行线处在高电平。又当全部的列线都变为高电平时,则按键键入与否,都不会使得行线电平的有改变。通过,使高四位输出模拟信号为0,低四位则输出的模拟信号为1,收到数据低四位的信号不全为0时,说明有按键键入,然后由发送过去的数据的值,判断是哪一列有按键按下,然后再反过来,高四位输出为信号1,低四位输出为信号0,然后根据接收到的高四位的信号值判断是哪一行有按键键入,最终可由此判断出是哪个按键被按下。如图4所示。
图4 矩阵按键电路原理图
2.5 数码管显示模块设计
显示模块有计时显示和计分显示,主要由7个细长LED和一个圆形LED组成,驱动方法为:静态显示这种显示需要8位输出口控制,因此AT89C52单片机在并行口上外接74573作为静态显示的接口,如图5所示(表示为第二场在10分37秒时,A、B两队比分为42:31),此种显示方法二极管发光亮度高工作效率高。
图5 数码管显示电路原理图
2.6 蜂鸣器驱动电路模块
本系统的主要设计结构原理为采用电磁式蜂鸣器系统由振荡器,电磁线圈,磁铁,振动膜片部分以及外壳部分组成。技术参数利用谐振电磁线圈的高频共振工作原理在接通一个振荡器电源线圈接通后,振荡器内部会自发产生的一个脉冲信号电流通过并电流通过另外一个谐振电磁线圈并同时使在此谐振电磁线圈腔中产生出一个高频磁场从而会产生高频振动的膜片并同时在膜片受其低频电场作用情况下会形成高频周期性共振的高频振动从而来实现发声。单片机引脚的有序脉冲产生PWM波从而可以驱动蜂鸣器,采用三极管作为蜂鸣器的驱动信号放大器,三极管的基极接入第二片单片机的p2.3口,通过写入程序从而控制p2.3口产生控制信号的有序脉冲。如图6所示。
图6 蜂鸣器驱动电路原理图
2.7 译码器
74138除了基本译码的输入输出端外,还有三个输入使能端以便扩展为更多位数的译码电路和数据分配的实现,本系统用3-8译码器来作为数码管的现实中作为数码管片选的控制信号,控制数码管的点亮顺序。
3 程序与系统设计
3.1 计分器系统
通过将代码写入一块单独52单片机实现计分系统,这样使得整个系统看起来更加的清晰明了,增加系统稳定性。计分流程如图7所示。开始后单片机内有预先烧录进的定时代码函数(单位时间为10 μs),并实时监测按键是否有键入,检测到有键入后将键入的矩阵电流信号传送到单片机内,经过内置代码(DisDisplay函数)转换后再将电信号传送到译码器后最终将调制后的电信号送到显示器上显示出对应的键入的加减比分值。
图7 计分系统流程图
3.2 计分器系统分析
如图8 所示,在AT89C52单片机中内置(#define GPIO_KEY P1)后将4×4矩阵键盘接入第一片单片机P1.0~P1.7接口,使得前三排的按键能够对比赛得分和场次的数值进行输入。之后通过单片机输出给74573转换并由74573输出给三块数码管中,同时使用一片74138译码器来实现数字的增减。
图8 矩阵键盘
比分显示通过两块4位数码管;回合显示通过一块1位数码管;
矩阵按键如表1所示。
表1 矩阵按键
前三排:通过KeyDown函数进行检测并通过Score函数进行赋值后再通过Conut函数传送和Display函数动态扫描数码管,最终使得键入的数值能够显示到数码管上。
最后一排:通过(sbit O0=P2^3;sbit O1=P2^4;sbit O2=P2^5;sbit O3=P2^6;)定义后P2.3~P2.6输出到计分器单片机的P1.0~P1.3,如图9所示,这样将能够通过矩阵键盘也可以控制计分器单片机。
图9
3.3 定时器系统
AT89C52单片机是内部集成的有一个16位地址寄存器的可编程定时计数控制器计数/定时计数器为T0,由计数定时器TH0和计时器TL0这两个寄存器单元所组成,其每个寄存器数位都是大于8位字节位的,在用于某些特定用途的特殊用途寄存器单元中所占应所占地址:8AH-8DH。计数定时器初始值位就存放于此。除此,其内部控制的方式还有另外两个控制寄存器分别为:方式控制寄存器TMOD和时间控制寄存器TCON(都是8位的寄存器)。可用于:选择定时方式控制器和选择方式时间控制寄存器与内部控制的定时方式控制器/时间计数器之间进行的串行通信控制工作。即可作为可编程期间进行使用。初始化编程可如下所示:
3.4 计分器系统分析
AT89C52单片机中内置程序(#define GPIO_KEY P1)后将P1.0~P1.7接入4×4矩阵键盘,使得前三排的按键都能够控制得分和场次的数值。之后通过输出到74573转换并输出到三块数码管中,同时用一片74138译码器来实现数字的增减。
图10 计时系统流程图
3.5 计时器按键
计时器按键为备用按键,防止系统出现bug导致矩阵按键不能正常控制U2单片机。按键如图11所示。也通过KeyDown函数进行检测并通过Score函数进行赋值后再通过Conut函数传送和Display函数动态扫描数码管,feng函数等实现操作。 T1~T4:功能分别为:从新开始计时、继续计时、暂停计时并开始蜂鸣器报警、蜂鸣器暂停工作。
图11 计时器按键
4 整体系统仿真
电路搭建后,使用keil软件将我们编写好的C语言程序编译。程序输入完成后保存然后执行、编译。最后将所需的程序文件调入单片机中。确保电路无误前提下对其进行仿真,仿真过程中任意点击矩阵按键同时观察数码管显示是否符合预期设计。仿真图如图12所示(表示为第二场在10分37秒时,A、B两队比分为42:31)。
图12 仿真图
5 设计总结
此系统的稳定性较强:
单块单片机由于运算能力有限,在运行多个程序出现“死机”的概率较大。实际运行系统中不可避免的受到来自系统内部和外部的干扰,而内部干扰,大多数是由于电路设计的不合理,元件布局不当和程序问题(主要为:软件干扰)导致。使用两片52单片机分别为计数和计时的核心控制芯片,并通过keil编写并分别将代码写入两块芯片,调试成功后。整个功能稳定运行,不会出现信号相互干扰的情况。在各种比赛的紧张激烈的情况之下我们更需要一套能够稳定运行的系统,因此,此系统能够满足稳定计时计分的要求。
系统的扩展性较强:
由于是双52单片机控制,不单单能实现计数计分功能,本系统可实现的功能更多。更多的管脚,可根据需要为该系统增添其他配置。
例如:1)无线遥控设备、蓝牙连接控制设备可更为方便的远程控制。
2)可以根据当地的设备情况,外接Wi-Fi网络,并可以发送到制定服务器,并开放到所需的程序或网站,提供线上实时的比分情况。
3)外接感应设备,一定情况下,可实现进球自动加分。此系统设计清晰简洁
多个MCU协同工作实现预期功能,芯片分工明确,单个芯片工作负担小。降低了电路设计复杂性,而且使得软件开发更为简单,明了。
6 结 论
回顾整个设计历程,从最初的项目立项到如今的项目圆满完成,期间历经不少坎坷,所幸努力未有白费,而整个项目的圆满完成表明小组成员每一位的付出都是值得的。而在整个设计过程中,王红玉老师也为我们提供不少的建议,减少了我们设计过程中出现的错误,因此对于王红玉老师我们怀有敬意与感激。