基于单片机篮球比赛计时计分器,基于单片机的篮球赛计时计分器设计
chanong
|接下来是专门设计的11个按钮,与计时器和记分器配合,调整时间和分数,其中8个按钮用于设置、切换场地、开始和暂停等功能。
1.3 设计任务及要求
任务:设计一个在球场上使用的篮球计时得分器。
要求: 1. 能够记录整个赛程的比赛时间并能够更改比赛时间。
2、A队和B队整个过程中的得分可以随时更新。
3、如果中间交换场地,A队和B队的成绩可以互换。
4. 游戏结束时可以播放闹钟声音。
5. 含+5V、+12V直流稳压电源。
2 系统总体规划及硬件设计2.1 总体规划:
本系统采用单片机AT89C51作为本设计的核心部件。显示装置采用7段共阳极LED。本设计中,总共连接了10个7段共阳极LED显示屏,其中6个用于记录AB队的得分,每队3个LED显示屏的显示范围从0到999分达到。另外四个LED显示屏用于记录比赛时间,其中两个用于显示分钟,两个用于显示秒。比赛时间由计时决定。也就是说,您在比赛前设置时间,在比赛开始时启动计时器,并等到计时器归零。计时范围可达0-999分钟,完全满足真实比赛赛程的需要。
接下来,为了配合计时器和记分器调整时间和比分,我们特地安装了11个按钮,其中3个用于设置、场地变更、开始和暂停,其余8个按钮用于其他操作。调整,比赛比分。 AT89C51单片机是智能控制器的核心,控制整个系统电路的运行。 74LS164将单片机输出的串行输入信号转换成并行信号输出,以驱动LED。显示屏显示比赛时间和比赛比分。两队等信息;键盘用于发出控制命令;报警电路在24秒进攻时间结束或一节结束时发出声光报警信号。
1)以AT89C51为控制核心的微机控制电路
2)键盘电路采用软件延迟去抖电路设计,输入接口采用串行方式,减少了占用CPU的接口,降低了硬件成本,同时也提高了系统的可扩展性。
3)显示电路采用静态显示方式,采用串行输入并行输出的74LS164集成电路,该电路驱动能力强,可直接驱动LED显示,减少了显示电路与单片机的连接线。
4)设计了复位电路。智能控制器配备有微控制器开始工作时所需的复位电路。
2.2 系统硬件配置:
该篮球比赛计时记分系统是由相应的键盘控制电路、LED显示、声光报警、电源等电路组成的时间计算系统。人员易于控制,可处理数据,输出比赛时间和比分,并驱动显示电路显示数值。采用单片机系统的篮球比赛计时记分器的系统结构图如下所示。
图1 系统框图
3 硬件电路设计3.1 键盘模块设计
此设计需要调整小时和分钟等功能,因此键盘设计是必须的。在非编码键盘中,每个按键的功能只是接通或断开相应的触点,每个按键的键码不是由硬电路产生的,而是由相应的扫描处理程序扫描形成的。因此,非编码键盘的硬件电路非常简单,在微型计算机中得到广泛应用。
此设计使用单独的非编码键盘。每个按钮彼此独立,需要来自CPU的I/O输入数据线。控制乐谱调整的八个按钮分别连接到P1.0至P1.7。控制切换字段和开始/暂停的三个按钮连接到CPU的P3.0至P3.2端口。如果没有按下任何按钮,CPU 从P1 端口读取的所有引脚电平将为“0”。 ' (+5V); 当按下按钮时,该按钮对应的端口线变为低电平。微控制器定期对P1 端口执行程序查询,以确定是否按下了键盘上的按键以及按下了哪些按键。
11个控制按钮定义如下:
S1 RST/VPD 复位按钮
S2 P1.0 A队加1分
S3 P1.1 A队加2分
S4 P1.2 A队加3分
S5 P1.3 A队输1分
S6 P1.4 B队加1分
S7 P1.5 B队加2分
S8 P1.6 B队加3分
S9 P1.7 B队负1分
S10 P3.0 开始/暂停按钮
S11 P3.1 场地切换按钮
S12 P3.2 时间设置按钮
控制按钮设计如下:
图2 键盘电路设计图
3.2 LED显示模块设计
3.2.1 采用AT89C51 的LED 显示LED 是发光二极管的缩写,LED 数码管结构简单,价格低廉。 LED数码管常用于微控制器显示器。 89C51单片机的LED数码管显示可分为静态和动态两种。静态显示的特点是每个LED管能够同时稳定地显示自己的字体,而动态显示是指每个LED管依次重复显示自己的字符。每个LED 似乎同时显示不同的字符。
静态显示:所谓静态显示是指微控制器可以输出一次显示,然后保持该显示直到下一次发送新的显示模型。此类显示器使用时间短,工作可靠,但缺点是使用的元件较多,电路相对复杂,成本较高。然而,随着大规模集成电路的发展,多功能显示装置已被开发出来。示例:具有锁存器、解码器、驱动器和显示器的四合一显示设备。使用起来更方便。这种显示方式适用于显示位数较少的情况。此显示方法中的每个7 段显示需要8 位输出端口控制。
动态显示:所谓动态显示是指单片机周期性地扫描显示设备。在这种方法中,显示设备以分时方式操作,一次只能显示一个设备,但由于公认的图像残留现象,仍然感觉所有设备都在同时显示。时间是一样的。这种显示方法的优点是使用较少的硬件,因此成本较低,但需要更多的机器时间,并且一旦微控制器不再运行显示程序,显示就会停止。动态显示器的亮度与通电电流以及点亮时间和间隔的比例有关。许多微控制器开发系统和仿真器上的6 位显示器都使用这种类型的显示器[2]。
3.2.2 74LS164芯片简介74LS164是一款8位移位寄存器(串行输入,并行输出),具有将串行信号转换为并行信号的功能。当清除端子(CLEAR)为低电平时,输出端子(QAQH)为低电平。串行数据输入(A、B) 控制数据。如果A 或B 处于低电平,则新数据输入被禁止,并且Q0 通过时钟引脚(CLOCK) 脉冲上升沿的作用驱动至低电平[3]。当A 或B 之一为高电平时,另一个允许输入数据并通过CLOCK 上升沿的动作确定Q0 的状态。
表1:164是8位移位寄存器,典型的主要电气特性如下:
74LS164的引脚图和逻辑图如下所示。
图3 74LS164封装引脚图
图3 74LS164封装引脚图
表2:74HC164端子符号和功能
表3:74LS164 真值表
注:H - 高电平,L - 低电平,- 最近 前一个时钟电平[6]。
表4:74HC164 : 的推荐工作条件
3.2.4 显示电路设计为保证显示的可靠性,本微机控制系统采用静态显示。本设计利用74LS164移位寄存器实现LED的静态显示,这样可以让CPU发送数据并由74LS164进行控制,减少了CPU的工作量。所用数码管采用共阳极接法,电源电压为5V。 AT89C51单片机的串口模式为移位寄存器模式[7]。 10 个外部74LS164 作为LED 显示屏的静态接口连接。 AT89C51的P0和P2端口用作数据输出线,P0.1和P2.4用作移位时钟脉冲。
下图所示为AT89C51通过74LS164与10个共阳极LED的接口电路。图中,Q0-Q7端口连接所有LED的a、b、c、d、e、f、g、SP引线用于字体显示,其余引脚用于数据和电源连接。该显示屏有两个功能:显示时间和显示两队的得分。它使用四个LED 来显示时间,两个表示分钟,两个表示秒。采用小数点,最大显示99.59,精确到小数点后两位。用六个LED来显示两队的得分,小数点为99.59。如果使用的话,最高分是999分。
AT89C51通过P0.0至P0.5连接到74LS164。 10个74LS164移位寄存器根据分数和时间的不同用途分为两组。 P0.0端口为乐谱数据输出端口,提供显示数据。 74LS164.端口P0.1是移位寄存器时钟输入,P0.2是乐谱同步清零输入[8],P0.3是时间数据输出端口,向74LS164提供显示时间数据,P0.4也是移位寄存器时钟输入寄存器时钟输入,P0.2 为时间同步清零输入端。
该静态显示电路通过74LS164的寄存器和锁存器实现数据输入和存储,允许LED重复显示或用新数据替换以前的数据。
74LS164是TTL单向8位移位寄存器,可实现串行输入和并行输出。其中A、B(引脚1、2)为串行数据输入端,这两个引脚按照逻辑和算术规则输入信号,如果只有一个输入信号,可以并联。 CLK(引脚8)是时钟输入引脚,可以连接到串口的TXD引脚。当每个时钟信号的上升沿施加到CLK端子时,移位寄存器移位一位,并且在八个时钟脉冲之后,二进制数的所有八位被传送到74LS164。 CLR(引脚9)为复位端,当R=0时,移位寄存器的各位复位为0,时钟脉冲仅在R=1时有效。 QA.QH 的并行输出端子(引脚3-6 和10-13)连接到LED 显示屏的hg.a 各段的相应引脚。如果给出8个脉冲,进入74LS164的第一个数据将到达最高有效位,如果有下一个脉冲,第一个脉冲将从最高有效位移出。如果将四个7LS164首尾相连,并将时钟端相互连接,当输入8个脉冲时,单片机P3.0端输出的数据将输入到第一个74LS164,当输入7个脉冲时,数据将被输入到第一个74LS164。将从微控制器输出。包含从P3.0端子输出的数据。输入第二个8个脉冲,脉冲到达后,第二个74LS164输入数据,第一个74LS164输入新数据。这样,当第四个8个脉冲完成时,第一个发送的数据将发送到最左边的164,其他数据将发送到第1、2、3、4个74LS164单片机。按顺序显示[9 ]。显示电路图如下。
图5 显示了原理图设计。
3.3 声光报警及显示电路
本系统设计了报警电路来设定单场比赛的时间值,系统在计时过程中,当检测到设定的时间已到,即整场比赛结束时,将设定其单场比赛的时间值。自带报警电路,有效。 [十]。单片机将P3.6引脚由低电平变为高电平,当报警开关闭合时,三极管导通,蜂鸣器发出报警信号。声光报警电路原理图如下:
图6 声光报警示意图
3.4 微机控制设计
3.4.1 MCU 系统的I/O 端口分配系统的I/O 端口分配如下,TXAL1 和TXAL2 是MCU 的外部时钟振荡电路,晶振启动后,产生约100mA 的正弦波。输出3V。 OSC 电路以与晶体振荡器相同的频率自振荡[11]。
P1.0至P1.7端口为键盘输入端口,这8个键用于调整A队和B队的分数。 P3.0端口和P3.2端口之间还连接了另外三个外部按钮,其功能是开始/暂停、更改场地和设置时间。
端口P0.0P0.2连接4个LED数码管,显示比赛时间,端口P2.0P2.4连接6个LED数码管,显示A、B队的比分。
P3.6端口连接报警电路。
3.4.2 AT89C51 MCU 概述微控制器(也称微处理器)是在一块硅芯片上集成了各种部件的微型计算机[12],这些部件包括中央处理单元、CPU、数据存储器、RAM、程序存储器ROM、定时器/计数器以及各种I/O接口电路。 AT89C51 是MCS51 系列微控制器的一部分。 MCS51系列单片机是Intel公司推出的通用单片机,具有以下结构特点。
(1)8位CPU。
(2) 内置振荡电路和时钟电路。
(3) 32 条I/O 线。
(4) ROM 和RAM 的外部存储器寻址范围均为64K。
(5) 两个16位定时器/计数器。
(6)5个中断源,2个中断优先级。
(7) 全双工串行接口。
AT89C51微控制器系列是指其他公司的MCS51系列和8051衍生产品。这些衍生产品是在基本型的基础上加上高级语言型、闪存型、EEPROM型、A/D型、DMA型、多并行型等各种增强功能的产品。这些产品注入了8 位。凭借新的活力,微控制器[13]为其开发和应用开辟了广阔的前景[14]。
AT89C51引脚图:
图7 AT89C51引脚图
AT89C51 :主要特点
兼容MCS-51
4K字节可编程闪存
全静态运行:0Hz 至24Hz
3级程序存储器锁定
128*8位内置RAM
32条可编程I/O线
两个16位定时器/计数器
5个中断源可编程串行通道
·低功耗空闲模式和掉电模式
片内振荡器和时钟电路
AT89C51 是一款低电压、高性能CMOS 8 位微芯片,具有4K 字节闪存可编程和可擦除只读存储器[15](FPEROM - 闪存可编程和可擦除只读存储器),俗称单片机。芯片,是处理器。微型计算机。该器件采用Atmel 的高密度非易失性存储器制造技术制造,与行业标准MCS-51 指令集和输出引脚兼容。 ATMEL 的AT89C51 是一款高效的微控制器,由于在单个芯片中结合了多功能8 位CPU 和闪存,因此为许多嵌入式控制系统提供了高度灵活且廉价的解决方案[16]。
引脚说明:
VCC:电源电压。
GND:接地。
P0 口:P0 口是一个8 位开漏双向I/O 口,每个引脚能够吸收8TTL 栅极电流。第一次向端口P1 引脚写入1 将其定义为高阻输入。 P0可用作外部程序数据存储器,可定义为数据/地址的低8位。 FIASH编程时,P0口作为原码输入口,FIASH进行验证时,P0输出原码。此时,P0外部引脚必须拉至高电平。
P1端口:P1端口是一个8位双向I/O端口,内部有上拉电阻,P1端口缓冲器可以接收和输出4TTL栅极电流。如果对P1口引脚写1,内部会上拉,可以作为输入使用,但如果外部将P1口拉低至低电平,内部上拉会输出电流。在FLASH编程和验证期间,P1端口被接收为地址的低8位。
P2 端口:P2 端口是一个8 位双向I/O 端口,内部带有上拉电阻。 P2端口缓冲器可以接收和输出四个TTL栅极电流。当“1”写入P2 端口时,该引脚被内部上拉电阻拉高并充当输入。因此,当用作输入时,P2端口引脚被外部拉低,输出电流。这是由于内部上拉所致。当使用端口P2 访问具有16 位地址的外部程序存储器或外部数据存储器时,端口P2 输出地址的高8 位。当给定地址“1”时,在读或写外部8位地址数据存储器时,利用内部上拉,P2端口输出特殊功能寄存器[17]的内容。端口P2 在闪存编程和验证期间接收高8 位地址和控制信号。
P3 端口:P3 端口引脚是8 个双向I/O 端口,内部有上拉电阻,可以接收和输出4 个TTL 栅极电流。当P3口写“1”时,内部上拉至高电平,作为输入使用。作为输入时,外部下拉至低电平,P3口输出电流(ILL),这是上拉的原因,P3口也可以作为AT89C51的一些特殊功能口使用。下图所示:
引脚可选功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(定时器0外部输入)
P3.6 /WR(外部数据存储器写选通)
端口P3同时接收多个用于闪存编程和编程验证的控制信号。
RST:复位输入。当振荡器复位器件时,RST 引脚必须保持高电平两个机器周期。
ALE/PROG:访问外部存储器时,地址锁存器允许使用输出电平来锁存地址的状态字节。在FLASH编程时,该引脚用于输入编程脉冲。通常情况下,ALE 端子输出频率恒定的正脉冲信号。该频率是振荡频率的1/6。因此,它可以用作外部输出的脉冲或用于计时目的。但请注意,当用作外部数据存储器时,ALE 脉冲始终会被跳过。如果要禁用ALE 输出,请将SFR8EH 地址设置为0。目前,ALE 仅在MOVX 和MOVC 指令为ALE 时才起作用。此外,该引脚被稍微拉高。如果微处理器处于外部执行状态并且ALE 被禁用,则设置该位无效[18]。
/PSEN:外部程序存储器选通信号。在从外部程序存储器获取指令期间,/PSEN 在每个机器周期被置位两次。然而,当访问外部数据存储器时,这两个有效的/PSEN信号是不可见的。
/EA/VPP:如果/EA 保持低电平,则在此期间使用外部程序存储器(0000H 至FFFFH),无论内部程序存储器是否存在。请注意,在加密模式1 下,/EA 内部锁定为RESET,如果/EA 引脚保持高电平,内部程序存储器将被锁定。在FLASH编程期间,该引脚还用于提供12V编程电源(VPP)。
XTAL1:反相振荡放大器输入和内部时钟运算电路输入。
XTAL2:反相振荡器的输出。
3.4.3 单片机外部时钟产生电路时序控制部分起到控制器的作用,由时序控制逻辑、指令寄存器和振荡器OSC 电路组成。 OSC是控制器的核心,可以向控制器提供时钟脉冲。引脚ATXL1为反相放大管的输入端,XTAL2为输出端。通过将外部定时反馈环路连接到XTAL1 和XTAL2,OSC 可以进行自我调节。 -颤动。单片机的内置电路OSC和外部设备构成时钟发生电路,所有CPU操作均与时钟脉冲同步执行。片上振荡器的振荡频率非常接近晶体振荡器频率,通常选择在1.2MHz 至12MHz 之间。 C1和C2是反馈电容器,其值在5pF和30pF之间选择,典型值为30Pf[19]。该电路选择的电容器为30pF,晶体振荡器频率为12MHz [20]。
图8 时钟产生电路
XTAL1和XTAL2:这两个端子是片内振荡电路的输入线,用于连接外部晶振和微调电容。将交变电场施加到晶体的两个引脚上会导致恒定频率的机械变形,并且这种机械振动会产生交变电场。这种物理现象称为压电效应。一般来说,机械振动的振幅和交变电场的振幅都很小。然而,当交变电场的频率达到一定值时,振幅迅速增大并发生共振,称为压电振动[21]。该特定频率是晶体的固有频率,也称为谐振频率。用于连接AT89C51片内OSC的定时反馈环路,如上图所示。晶振开始振荡后,必须能够在XTAL2线上输出3V左右的正弦波,以便MCS-51芯片内部的OSC电路能够以与晶振相同的频率自振荡。通常,OSC输出时钟频率fOSC在0.5MHz至16MHz之间,典型值为12MHz或11.0592MHz。电容C1和C2帮助起振,典型值为30pF,可以通过调节来达到微调fOSC的目的。
3.4.4 单片机的外部复位电路单片机必须在上电时复位。这是因为中央处理单元(CPU)和其他功能组件进入特定的初始状态并从该状态开始运行。单片机通过外部电路复位,只要时钟电路工作后单片机的RST引脚出现24个时钟振荡脉冲(2个机器周期)以上的H电平,就可以对单片机进行复位。它将被重置为初始化状态。 MCS-51单片机的RST引脚是复位信号输入端。示例:如果MCS-51微控制器的时钟频率为12MHz,则复位脉冲宽度必须至少为2s[10]。下图所示为微控制器复位电路[22]。
图9 AT89C51单片机复位电路
3.5 稳压电源设计
3.5.1 稳压电源的结构稳压直流电源主要由电源变压器、整流电路、滤波电路、稳压电路四部分组成,其原理框图如图16所示。电网电压为220V、50Hz,电源变压器降压后得到满足电路需要的交流电压Ui2,整流电路将脉动直流电压Ui3变换为不变化的脉动直流电压Ui3方向。它会随着时间的推移而改变大小。然后使用滤波器去除交流分量并获得相对平坦的电压。直流电压Uo,为了获得稳定的输出直流电压,本设计还采用了稳压电路,使输出电压更加稳定[15]。
图10 直流稳压电源原理框图
3.5.2 三端固定集成稳压器简介三端固定集成稳压器有两个系列:7800 和7900。 7800系列是3端固定正输出稳压器,7900系列是3端固定输出稳压器。固定负输出电压调节器。其主要特点是稳压性能好、外围元件简单、安装调试方便、价格低廉,现已成为集成稳压器的主流产品。 7800系列具有正电压输出。即,输出端与公共端之间的电压为正。 UI为输入端,UO为输出端,GND为公共端(地)。三个电位分布为UI>UO>UGND(0V)。最小输入/输出电压差为2V,但出于可靠性考虑,通常应选择4-6V。最大输入电压为35V。
7900系列具有负电压输出,即从输出端向公共端施加负电压。 7900和7800外观相同,但引脚排列不同,2为输出端,3为输入端。 7900的电位分布为UGND(0V)>-UO>-UI。对于三端固定输出集成稳压器,输入电压选择的原则是:
UImaxUIU0+(UI—U0) Imin
当U0=5~18V时,UImax=35V
当U0=20~24V时,UImax=40V
只要在CW7800的输入端施加正输入电压,并将CW7800的公共端接地,其输出端即可输出芯片的标称正电压值U0。在实际应用电路中,除了芯片输入输出端连接大滤波电容外,芯片读出处通常还连接小电容(0.01u至10uF)Ci和Co接地。 Ci用于抑制芯片自激振荡。如果输入线很长,其电感效应会相互抵消并防止自激振荡。 Co用于缩小芯片的高频带宽并降低高频噪声。 Ci和Co的具体值取决于芯片的输出电压和应用电路方法。一般来说,集成稳压器必须防止芯片自激并降低高频噪声。图11 是CW7800 的接线图[23]。
图11 CW7800接线图
在CW7900的输入端加负输入电压Ui,芯片公共端接地,在输出端得到标称负电压Uo。电容Ci用于抑制输入电压Ui中的纹波,防止芯片自激振荡,Co用于抑制输出噪声。接线图与7800相同。 CW7805、CW7809、CW7815、CW7812、CW7912、CW7915集成稳压器:主要参数
3.5.3 电源设计本系统需要+5V和+12V两个电源,如图1所示,输出直流电压为5V和12V,由电源变压器T1、桥式整流电路和T1组成。 它一直。防自激滤波电容器,由电容器和固定三端稳压器(CW7805、CW7812等)组成。 220V交流电通过电源变压器转换为交流低压,并经过桥式整流电路和滤波器。
波电容的整流和滤波,在固定式三端稳压器CW7805的IN和GND两端形成一个并不十分稳定的直流电压。此直流电压经过CW7812和CW7805的稳压和C3和C5的滤波便在稳压电源的输出端产生了精度高、稳定度好的输出直流电压[25]。电源电路原理图如下所示: 图12 电源设计图 3.6 硬件原理图 系统硬件图如下图所示: 图13 硬件设计电路图 4 软件程序设计 本设计中采用的处理器是AT89C51单片机,由此可采用面MCS-51的程序设计语言,包括ASM51汇编语言和C51高级语言,这两种语言各有特点。汇编语言更接近机器语言,常用来编制与系统硬件相关的程序,如访问I/O端口、中断处理程序、实时控制程序、实时通信程序等;而数学运算程序则适合用C51高级语言编写,因为用高级语言编写运算程序可提高编程效率和应用程序的可靠性[26]。 考虑到汇编语言的以下特点,在智能测控装置的基本功能软件开发中,程序主要采用ASM51汇编语言编写: (1)汇编语言是最基本的程序设计语言。迄今为止,汇编语言仍然是计算机系统底层软件(例如汇编程序、PC机的BIOS等)设计的基本语言; (2)能充分利用机器的硬件功能与结构特点。汇编语言与机器语言密切相关,因此能透彻地反映计算机硬件的功能与特点。程序员可充分利用机器硬件系统的许多特性(如寄存器、标志位以及一些特殊指令等)。这样能充分发挥程序设计的技巧; (3)用汇编语言编写的程序比起用高级语言编写程序具有更高的系统性能。汇编语言程序具有执行速度快和节省存储空间的特点,它可以精确地描述算法,把计算过程和控制过程刻画得更具体; (4)实时性能好。用汇编语言编制的程序可以对各种接口芯片及I/O端口直接进行控制,实时性能好。对于一些应用领域(例如工业监控系统等)汇编语言是不可缺少的,一般高级语言不适合这种应用,因为一般高级语言不能充分地利用计算机硬件所提供的诸如中断等方面的功能[22]。 4.1 主程序设计 主程序功能:完成系统初始化操作,判断时间是否超限,如果超限则转报警处理,如果未超限则读入控制按钮的状态,并根据输入状态,散转执行相应的功能子程序。 全部程序主要由主程序,时间中断程序,鸣音子程序,时间显示程序,比分显示程序,调时时间显示程序,交换场地程序组成。 4.2 主流程图 图14 主程序软件流程图







