篮球记分牌硬件设计 完整版Word文件下载.docx
《篮球记分牌硬件设计 完整版Word文件下载.docx》由会员分享,可在线阅读,更多相关《篮球记分牌硬件设计 完整版Word文件下载.docx(65页珍藏版)》请在冰豆网上搜索。
功能选择、倒计时的实现。
本文主要介绍了单片机实现篮球记分牌的整个设计流程,采用汇编语言编写程序。
本课题选择AT89C51为核心控制元件,设计了日常比赛中用到的篮球记分牌。
设计同时引用MAX7219专用LED驱动芯片,解决了多位LED数码管同时显示的问题,硬件结构紧凑,成本低。
该单片机篮球记分牌可适应不同篮球规则,通过按键修改每个设置。
运行可靠,具有一定的使用价值和竞争价值。
关键词:
AT89C51单片机、LED数码管、MAX7219、汇编、篮球记分牌
第一章引言
1.1单片机的特点及发展概况
单片机是一个单芯片形态,面向控制对象的嵌入式应用计算机系统.它的出现及发展使计算机技术从通用型数值计算领域进入到智能化的控制领域.从此,计算机技术在两个重要领域——通用计算机领域和嵌入式计算机领域都得到了极其重要的发展,并正在深深地改变着我们的社会。
1.2单片机的基本组成
单片机的结构特征是将组成计算机的基本部件集成在一块晶体芯片上,构成一台功能独特的,完整的单片微型计算机.
1.3单片机的特点
单片机独特的结构决定了它具有如下特点.
(1)高集成度,高可靠性
单片机将各功能部件集成在一块晶体芯片上,集成度很高,体积自然也是最小的.芯片本身是按工业测控环境要求设计的,内部布线很短,其抗工业噪音性能优于一般通用的CPU.单片机程序指令,常数及表格等固化在ROM中不易破坏,许多信号通道均在一个芯片内,故可靠性高.
(2)控制功能强
为了满足对对象的控制要求,单片机的指令系统均有极丰富的条件:
分支转移能力,I/O口的逻辑操作及位处理能力,非常适用于专门的控制功能.
(3)低电压,低功耗
为了满足广泛使用于便携式系统,许多单片机内的工作电压仅为1.8V~3.6V,而工作电流仅为数百微安.
(4)优异的性能价格比
单片机的性能极高.为了提高速度和运行效率,单片机已开始使用RISC流水线和DSP等技术.单片机的寻址能力也已突破64KB的限制,有的已可达到1MB和16MB,片内的ROM容量可达62MB,RAM容量则可达2MB.由于单片机的广泛使用,因而销量极大,各大公司的商业竞争更使其价格十分低廉,其性能价格比极高.
1.4单片机的应用
由于单片机功能的飞速发展,它的应用范围日益广泛,已远远超出了计算机科学的领域.小到玩具,信用卡,大到航天器,机器人,从实现数据采集,过程控制,模糊控制等智能系统到人类的日常生活,到处都离不开单片机.其主要的应用领域如下。
(1)在测控系统中的应用
单片机可以用于构成各种工业控制系统,自适应控制系统,数据采集系统等.例如,工业上的锅炉控制,电机控制,车辆检测系统,水闸自动控制,数控机床及军事上的雷达,导弹系统等。
(2)在智能化仪器仪表中的应用
单片机应用于仪器仪表设备中促使仪器仪表向数字化,智能化,多功能化和综合化等方向发展.单片机的软件编程技术使长期以来测量仪表中的误差修正,线性化的处理等难题迎刃而解。
(3)在机电一体化中的应用
单片机与传统的机械产品结合使传统的机械产品结构简化,控制走向智能化,构成新一代的机电一体化产品.这是机械工业发展的方向。
(4)在智能接口中的应用
计算机系统,特别是较大型的工业测控系统中采用单片机进行接口的控制管理,单片机与主机并行工作,可大大提高系统的运行速度.例如,在大型数据采集系统中,用单片机对模/数转换接口进行控制不仅可提高采集速度,还可以对数据进行预处理.如数字滤波,误差修正,线性化处理等.
(5)在人类生活中的应用
单片机由于其价格低廉,体积小巧,被广泛应用在人类生活的诸多场合,如洗衣机,电冰箱,空调器,电饭煲,视听音响设备,大屏幕显示系统,电子玩具,信用卡,楼宇防盗系统等.单片机将使人类的生活更加方便舒适,丰富多彩。
1.5单片机的发展概况
单片机出现的历史并不长,它的产生与发展和微处理器的产生与发展大体上同步.
1970年微型计算机研制成功后,随即在1971年,美国Intel公司生产出了4位单片机4004,它的特点是结构简单,功能单一,控制能力较弱,但价格低廉.1976年Intel公司推出了MCS-48系列单片机,它以体积小,功能全,价格低等特点获得了广泛的应用,成为单片机发展进程中的一个重要阶段,此可谓是第一代单片机.
在MCS-48系列单片机的基础上,Intel公司在20世纪80年代初推出了第二代单片机的代表MCS-51系列单片机.这一代单片机的主要技术特征是为单片机配置了完美的外部并行总线和串行通信接口,规范了特殊功能寄存器的控制模式,以及为增强控制功能而强化布尔处理系统和相关的指令系统,为发展具有良好兼容性的新一代单片机奠定了良好的基础.
近几年出现了具有许多新特点的单片机,可称之为第三代单片机.它以新一代的80C51系列单片机为代表.同时16位单片机也有很大发展.
尽管目前单片机品种繁多,但其中最为典型的仍当属Intel公司的MCS-51系列单片机.它的功能强大,兼容性强,软硬件资料丰富.国内也以此系列的单片机应用最为广泛.直到现在MCS-51仍不失为单片机中的主流机型.在今后相当长的时间内,单片机应用领域中的8位机主流地位还不会改变.
1.6单片机在篮球记分牌中的应用
由于本次设计的简单篮球记分牌体积小,故要求其控制器体积更小以便能嵌入其结构之中。
单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足需求。
可以适应不同规则下操作。
其具体功能及实现在以下两章做详细介绍。
第二章硬件设计
2.1设计题目分析
题目:
篮球比赛电子记分牌
题目要求:
1.显示球队的英文名称(缩写)或用LED点阵显示中文名
2.显示比分用三位数表示
3.显示比赛剩余时间,进攻剩余时间,这些剩余时间变为0时发出相应警报
4.可用按键显示修改球队名称,及比赛剩余时间,并设置暂停键。
球队名___vs___
比分___:
___
比赛剩余时间__:
__
第__场进攻剩余时间__
2.2系统硬件设计
2.3
2.4
2.2.1面板设计:
球队名___VS___
active
比分___:
___
startattacksetn
比赛倒计时__:
__
setftupdown
第_场进攻倒计时__
按键操作
篮球记分牌的实现方法有很多,可以分为两大类:
第一类是全部采用硬件实现;
第二类是采用硬件和软件想结合的方法实现。
这里采用单片机实现电子钟属于第二种方法。
该设计的篮球记分牌基本功能如设计题目要求所述
(1)用三位英文字母缩写代表球队名,采用MAX7219专用LED驱动芯片实现静态显示,共6位LED
(2)
(3)
(4)采用单片机的动态扫描方式动态显示比分、比赛倒计时、进攻倒计时、场次,共需要13位LED数码管
(5)
(6)
(7)通过按键修改球队名称,及比赛剩余时间等,并设置暂停键,实现倒计时全部暂停。
按键有6个分别为START键ATTACK键UP键DOWN键SETN键SETFT键和一个状态开关active
(8)
(9)
(10)通过蜂鸣器发出倒计时到报警信号,节时到报警2秒钟,竟工倒计时到报警1秒
(11)
(12)
2.2.2按键及开关功能设定
START键
比赛开始/暂停
ATTACK键
进攻开始
UP键
加1
DOWN键
减1
SETN键
设置球队名、节时、节数、进攻限时
SETFT键
修改比分、修正比赛时间、修正进攻时间
开关active
比赛前/比赛中状态开关
硬件设计框图:
LED显示
2.2.3系统硬件设计
1.器件选型
(1)根据以上列出的主要功能,单片机可选用Atmel公司生产的,与8031完全兼容的AT89C51单片机,该单片机除了具有8031所有的功能外,该单片机还带有4KBdeFLASH的程序存储器,外部不需要扩展程序存储器,此时P0、P1、P2、P3可以用做通用I/O口使用。
另外,选用该单片机可以减低系统成本,由于不需要扩展外部
ROM存储器,系统的数量减少,使硬件结构更加紧凑,系统性能更好。
(4)MAX7219专用LED驱动芯片,是一种高集成化的串行输入/输出的共阴极LED显示驱动器。
每片可驱动8位7段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需3根线。
MAX7219内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了MCU有限的运行时间和程序资源。
(7)由于一个按键要实现多种状态转换所以,按键采用独立式键盘结构。
(10)报警电路采用单音频报警
(13)综合其优缺点,LED显示采用动静结合方式。
(14)
(15)
2.MAX7219芯片简介
MAX7219芯片上包括BCD译码器、多位扫描电路、段驱动器、位驱动器和用于存放每个数据位的8×
8静态RAM以及数个工作寄存器。
通过指令设置这些工作寄存器,可以使MAX7219进入不同的工作状态。
A.管脚说明
图1是MAX7219的管脚分布图。
其中:
(1)DIN 为串行数据输入端。
当CLK为上升沿时,数据被载入16b内部移位寄存器。
(2)CLK 为串行时钟输入端。
其最大工作频率可达10MHz。
(3)LOAD 为片选端,当LOAD为低电平时,芯片接收来自DIN的数据,LOAD回到高电平时,接收的数据将被锁定。
图2反映了DIN,CLK和LOAD的工作时序。
(4)DIG0~DIG7 为吸收显示器共阴极电流的位驱动线。
其最大值可达500mA,关闭状态时,输出+VCC。
(5)SEGA~SEGG,DP 为驱动显示器7段及小数点的输出电流,一般为40mA左右,可软件调整,关闭状态时,接入GND。
(6)DOUT 为串行数据输出端,通常直接接入下一片MAX7219的DIN端。
B.操作指令
MAX7219有5个工作状态寄存器,分别是译码方式选择、亮度调节、扫描位数设定、待机开关、显示器检测。
除空指令外,7219的所有操作指令都是2个字节,前一个是操作代码,后一个是操作数。
下面用十六进制数对控制命令加以说明。
C.译码方式选择
操作代码为“09H”,操作数为“0”或“0FFH”。
选中“0”则不使用BCD译码器,在显示数字或符号时,按每段点亮与否编排传送码。
而选中“0FFH”时,则按8421标准二进制编码来代表相应的显示数字,如表1所示。
需要说明的是,无论译码与否,表1中操作数的最高位D7均为小数点,“1”为亮,“0”为灭,所以表1中所列是小数点不亮时的操作数。
D.亮度调节
操作代码为“0AH”,操作数如表2所示。
这个指令可以用来调节显示器的亮度,改变其操作数可以改变MAX7219内部扫描脉冲的宽度,从而使电流的平均值有所变化,这个电流平均值可以从最小的1/32至最大的31/32之间进行16级调节。
MAX7219还提供了一种硬件调整显示器亮度的方式,即通过第18管脚的ISET和+VCC之间跨接的一个电阻来调节其亮度,段驱动平均电流大约为流过此电阻电流的100倍,实际应用中常用十几kΩ的电阻直接接入即可。
E.扫描位数设定
操作代码为“0BH”,操作数如表3所示。
如果所用的显示器少于8位,则应通过这条指令设置相应的位数。
因为设置的位数如果比实际使用的位数大,就会形成“虚位”,而一旦对“虚位”进行操作,将会引起整个显示器的混乱,这是需要加以注意的。
另外,扫描位数的设置,会影响到扫描频率的变化,相应地,显示器亮度也会随着变化,所以应先确定扫描位数,再设置显示器亮度。
F.待机开关
操作代码为“0CH”,操作数为“0”或“1”。
操作数为“0”,则显示器不工作(灭灯),反之,显示器正常工作。
待机状态下,7219的工作电流仅为150μA。
G.显示器检测
操作代码为“0FH”,操作数为“0”或“1”。
选择操作数为“1”时,可点亮整个显示器,通常用来检查数码管及连接电路是否存在故障。
检测时,不会改变各位原有的显示数据,即检测完毕后,再送入不检测指令“0”,又可恢复显示原数据。
H.位操作指令
位操作指令就是对8个数码管显示内容的操作,也是2个字节,第1个字节是位的代码,如表4所示,第2个字节则根据译码方式的选择,来使用表1中的编码。
需要说明的是,上述所有指令的输入,不分先后(但每个指令2个字节的秩序不能颠倒)。
通常,前5条指令一般在上电初始化程序中加以设置,而在工作程序中,仅使用位操作指令即可。
另外,MAX7219上电时,译码方式、亮度调节、扫描位数、待机开关、显示检测等5个控制寄存器全部归零。
I.与单片机的连接
MAX7219与51单片机的连接形式有2种,一种是将MAX7219的3个输入端DIN,CLK和LOAD与 1951单片机的任意3个端口连接;
一种则是直接与51单片机的串行接口相连。
以下分别介绍这2种方式。
J.
与单片机任意3个端口连接的方式
假定按图3所示方法连接。
MAX7219每次接收2个字节,高位在先,其指令可编写为:
******以下是MAX7219与单片机串行接口及MAX7219之间多片联级知识,在此只作粗略介绍*****
K. 用单片机的串行接口
如果将MAX7219的DIN接入单片机的RXD,CLK接入TXD,LOAD选任一口线,则可通过单片机串行口对MAX7219像对其他设备一样按模式0进行发送操作。
但由于串行口数据缓冲寄存器SBUF为右移发送,所以MAX7219的所有命令和操作数与第一种方式相比均应反转,见表5~9。
注意表6中操作数的最低位D0为小数点。
L.MAX7219的多片级联
MAX7219可以多片级联,只需将上一片的DOUT连接下一片的DIN即可,CLK和LOAD线全部公用,连在一起。
在多片级联时,对MAX7219的操作指令要注意LOAD信号的起止点,操作开始时,LOAD下降为低电平,按照每片MAX7219两个字节,如果有N片,则
发送2N个字节后,LOAD上升为高电平。
还需注意的是,先发送的指令将到达级联的最后一片。
还有一条专为MAX7219多片级联设置的一条空操作指令,操作代码为“00H”。
当不希望对级联中的某片或某几片MAX7219进行操作时,就可以用空操作指令跳过这片或这几片。
例如,如果4个7219串联,为了写入第4个芯片,要在3个空操作指令码后发送2个字节的指令,当LOAD升为高电平时,数据被锁存到所有设备,前3个芯片收到的是空操作命令,而第4个收到预期的数据。
在本次设计中采用MAX7219专用LED驱动芯片,有以下几个优势:
首先,
MAX7219每片可以驱动8位LED数码管,可以多片级联,在本次设计中用到6位LED显示,不需要级联。
第二,MAX7219与单片机相连只需要3个口线,而采用MC14495则需要8个口线,这样就大大节省了口线资源;
第三,MAX7219内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了MCU有限的运行时间和程序资源。
综上所述,结合了单片机的动态显示和静态显示的优缺,达到优势互补,最终选择MAX7219做静态显示球队名称,单片机动态扫描13位LED显示比分、时间等
2.3硬件电路设计
在该电路中,无需进行存储器和I/O口的扩展,P0-P3口都可以作通用I/O口来实现其他功能。
P1.2~P1.7口作独立式键盘的输入口线,由于P1
口内部没有上拉电阻,所以在P1口外部需要外接上拉电阻。
独立式键盘采用一键多功能方式,与矩阵键盘相比,按键设置要少。
矩阵键盘适用于按键较多、功能单一的情况。
一键多功能,可以减少键的使用,相比在该设计情况下,用独立式键盘更好。
蜂鸣器由TTL系列集成电路7406驱动,通过单片机控制实现报警功能单片机1.0
引脚输出高电平时,7406输出低电平驱动蜂鸣器发声,P1.0输出低电平时蜂鸣器停止发声。
P0.0~P0.2口与MAX7219的数据端口连接,P0.0和P0.1、P0.2分别MAX7219模块DIN、LOAD、CLK端口相连,实现单片机与MAX7219模块的数据传输与控制。
P3口作为LED(共阴极)七段码输出端口,外加TTL7407驱动,数码管一般点亮电流为10mA左右,电流过大会损坏,电流太小数码管太暗,看不清晰。
综合电流及驱动等因素考虑,选择7407后电阻选择1K。
显示子程序分为动态显示子程序和静态显示子程序,动态显示与静态显示比较各有优缺。
静态显示的亮度高,占用CPU的时间短,但它的成本高。
为了简化硬件电路,降低成本,在单片机应用系统中采用动态扫描的方法,解决多位LED显示问题。
动态扫描显示的硬件接口简单,只需一个公共的七段码输出口(字形口)
一个选择显示位的数位选择口(字位口),显示时,从左到右轮流点亮每位显示器,只要保证扫描周期不超过一定的限度(一般在20ms以下)由于视觉的暂留,则可达到“同时”显示各位不同的数字或字符的目的。
动态显示的优点是成本低,接口电路简单,但它要求CPU繁地为显示服务。
考虑到成本和CPU负担,初期采用8155扩展芯片,完全用动态显示的方案不可取,采用Motorola公司生产的MC14495芯片结合动态显示接口资源不够用需要扩展,暂时取消。
最后引进MAX7219专用LED驱动芯片解决了单片机接口问题,结合动静态显示的优点,最终得到如上设计的电路图。
第三章系统软件设计
3.1软件设计思路和程序流程图
根据系统的功能要求和硬件的连接情况,软件可分为:
T0、T1定时中断模块和主程序模块。
两个中断模块都设定10ms基本定时,中断100次为1s,进而实现分、秒的计时功能,以及蜂鸣器的开关控制。
主程序模块通过循环执行的方式实现以下功能:
判断比赛前/中,比赛前调用静态显示子程序显示球队名称,比赛中则调用动态显示子程序显示比分、比赛时间、进攻时间、场次(节时),若有按键按下,则调用键盘处理子程序。
主程序模块的流程图如3—1所示:
比赛中?
读active键
在中断程序中,先重装定时器初值,基本计时单元加1,然后进行分、秒的计时,若倒计时为0则打开蜂鸣器,持续蜂鸣设定的时间后自动停止。
T0、T1中断服务的流程图如图3-2、3-3所示。
每节比赛结束后,计数器R7加1,到达比赛前设定的节数时,R7清0,相应的显示0节,以表示比赛结束。
T0、T1定时中断采用工作方式1(16位定时器),由于系统时钟频率为12MHZ,机器周期为1us。
要实现10ms的定时方式,在T0、T1的初值为
X=65536-12*100000*0.01/12=55536=D80FH
倒计时以二进制计数,在送入显示之前先拆分为单个BCD码,分别送入相对应的显示缓冲区。
停T1,进攻停止,进攻显示‘00’
图3-3T1中断子程序
当有键按下是先判断active开关闭合与否,开关闭合P1.1低电平,比赛开始,相应的SETN键无效,就是说比赛中先前设定的比赛规则和球队名称不可改变;
相反开关打开P1.1高电平,比赛之前,SETFT键无效,无法修改比分和时间,可以保持比分不变。
这样的设计可以防止误动作。
有键按下时,先延时10ms去除抖动影响,确定有键按下时调用键处理子程序。
键共有6个按键流程图如图3-4,根据按键的不同,跳转到相应的键处理小程序。
(1)SETN键,根据按SET键的次数,可以有不同的状态,根据这些状态通过UP键和DOWN键作出相应的修改,SETN键的状态转换图及流程图如图3-5和图3-6。
SETN键设置球队名称。
键处理子程
延时10毫秒
N
判断按键
Y
DOWN
UP
ATTACKK
START
SETFT
SETN
KEY-END
返回
图3-4键处理子程
(2)SETFT键,根据按SETFT键的次数,可以有不同的状态,根据这些状态通过UP键和DOWN键作出相应的修改,SETNFT键的状态转换图及流程图如图3-7和图3-8。
SETFT键设置比分、修改时间等。
(3)START键,START键有两种状态,开始和暂停。
STARTVAL值=1比赛开始,比赛倒计时开始,进