篮球24秒可控计时器设计.docx
- 文档编号:23004197
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:28
- 大小:846.56KB
篮球24秒可控计时器设计.docx
《篮球24秒可控计时器设计.docx》由会员分享,可在线阅读,更多相关《篮球24秒可控计时器设计.docx(28页珍藏版)》请在冰豆网上搜索。
篮球24秒可控计时器设计
安徽大学
本科毕业论文(设计、创作)
题 目:
篮球24秒可控计时器设计
学生姓名:
····学号:
········
院(系):
电子信息工程学院专业:
电子信息工程
入学时间:
二〇一〇 年 九 月
导师姓名:
······ 职称/学位:
······
导师所在单位:
安徽大学电子信息工程学院
完成时间:
二〇一四 年 五 月
篮球24秒可控计时器设计
摘要
论文描述了篮球24秒可控计时器的硬件电路和软件编程。
电路主要由四个模块构成:
单片机最小系统、独立按键控制电路、驱动显示电路、报警电路。
篮球24秒可控计时器主要构成模块是单片机,由C语言编程控制,利用单片机内部的定时器/计数器、中断等资源,设计出实用地篮球比赛计时器,能有效地模拟比赛过程中正常进攻、回合超时、中途暂停等场景。
系统设有初始键、开始键、投球键(暂停/继续键),通过操作这些按键,运用到比赛的所有实际场景中,保证比赛的正常进行。
关键词:
单片机;24秒倒计时;C语言;数码管显示;报警电路
Basketball24secondstimercontroldesign
Abstract
ArticlesdescribesthehardwareandsoftwareprogrammingofControlledBasketball24SecondsTimer.Thecircuitconsistsoffourmodules:
smallestMCUsystem,theindependentbuttoncontrolcircuit,driverdisplaycircuit,alarmcircuit.ControlledBasketball24SecondsTimermoduleismainlycomposedofMCUcontrolledbytheCprogramminglanguage,usingMCUinternaltimer/counter,interruptandotherresourcestodesignapracticalbasketballgametimer,caneffectivelysimulatenormalattack,roundmatchestimeout,midwaypauseduringtherace.Systemhasaninitialbutton,startbutton,pitchingbutton(pause/resumebutton),throughtheoperationofthesebuttons,adapttoalltheactualsceneofthegame,andensurethattheplayersenjoythegame.
Keywords:
scm;24secondscountdown;clanguage;digitaldisplay;alarmcircuit
目 录
1引言1
1.1总体要求1
1.2设计方案1
2工作原理及基本组成1
2.1电路组成1
2.2工作原理及流程图2
2.3单片机最小系统2
2.4按键电路3
2.5显示电路3
2.5.1数码管4
2.5.2锁存器5
2.5.3锁存器与数码管的电路连接6
2.6声音报警电路7
2.6.1蜂鸣器7
2.6.2三极管驱动7
2.6.3蜂鸣器连接驱动电路9
3软件设计9
3.1按键检测9
3.1.1按键检测与消抖9
3.1.2按键检测与中断10
3.2计时程序与数码管显示12
3.2.1单片机定时器/计数器12
3.2.2定时器的初始值设定13
3.2.3数码管显示程序14
3.3报警电路控制程序15
4比赛场景模拟16
4.1投球超时16
4.2正常投球16
4.3回合中途暂停16
5结论16
主要参考文献17
致 谢18
1引言
本系统充分利用专业所学知识,巧妙地把单片机、模拟电路、数字电路和C语言方面的内容结合在一起,设计出以单片机为核心、C语言作控制程序、模电和数电部件为外设的综合应用系统。
它能实现篮球比赛计时的功能,良好地仿真出比赛回合所需的场景,具体实际应用价值。
1.1总体要求
24秒计时器具有控制显示24秒的计时功能。
系统设置外部操作按键,分别为初始键、开始键、投球键,控制计时器的初始置数、启动、暂停/继续。
设置计时器初始时间为24秒,递减计时,其计时间隔为1秒。
当球员投球后(用投球键模拟),系统停止计时;若没有投球动作,计时器递减到零后也停止计时,此时数码管显示为“00”秒,并发出报警信号。
1.2设计方案
篮球24秒定时计数器采用51单片机控制,通过按键操作模拟开始进攻、投球、回合结束,并以数码管和蜂鸣器作为显示和声音输出器件。
在该系统中,单片机部分为核心模块,接入12MHz的晶振,提供时钟脉冲;利用单片机内部的定时器,准确记录时间变化;外接的三个按键为其提供输入信号,经过单片机内部处理后,输出相应信号到数码管和蜂鸣器,从而让球员知道准确的比赛情形。
由于C语言有强大的编程功能、更贴近用户编写和阅读的特点,该系统使用C语言编程,并未采用教科书讲述的汇编语言。
2工作原理及基本组成
2.1电路组成
电路由单片机最小系统、按键、数码管、蜂鸣器四部分组成,见图2-1。
图2-1:
电路组成
2.2工作原理及流程图
MCS-51单片机内部有两个16位定时器/计数器,简称为定时器T0和T1,本系统选择定时器/计数器T0在工作模式1(16位定时器/计数器)下定时计数。
当单片机接收到初始键指令后控制数码管显示“24”秒;接收到开始键指令后单片机控制数码管开始“减1秒”计时;在倒计时归零前,如果收到投球键的指令,数码管停止计时并保持当前值,如果再次收到投球键指令(模拟进攻方换人暂停或防守方犯规后继续的情形),数码管从当前数值继续减一计时;当时间减到“00”秒,数码管停止计时并自动恢复到初始值,蜂鸣器发出超时警报。
工作情形的流程图如下(图2-2(a)为投球超时;图2-2(b)为正常投球;图2-2(c)为回合中途暂停):
(a)
(b)
(c)
图2-2:
三种工作情形
2.3单片机最小系统
单片机最小系统是单片机能维持正常工作的基本电路,包括单片机、供电模块、复位模块、晶振电路。
单片机的正常工作电压是5V,其中第40脚接高电平、第20脚接低。
端口为高电平,表示CPU从内程序存储器开始读取指令。
复位电路采用按键电平复位,按下复位按键,RES/VPD端获得两个机器周期的脉冲,实现复位操作,按键释放后,电容器经过下拉电阻放电,第9脚回复低电平。
复位电路如下图所示:
图2-4:
复位电路
图2-3:
单片机最小系统
2.4 按键电路
篮球24秒计时器所需的按键只有3个,故可采用较少按键组成的非编码键盘,也称开关键盘或线性键盘。
如图2-5所示,四个独立的按键开关一端接地,另一端接单片机的对应引脚。
单片机I/O接口的初始电平为高电平,当其中某个按键按下后,单片机对应引脚从高电平变成低电平,从而检测该按键被按下,并由程序控制对应模块的变化。
图2-5:
按键电路
2.5显示电路
显示电路由两个七段数码管和驱动电路组成,显示的数字范围是00~99,能够用于篮球24秒计时器的全部时间显示(0~24秒)。
2.5.1数码管
七段数码管中有8个发光二极管,形成8段显示,7个发光二极管组成“8”字,1个发光二极管显示小数点。
每个数码管显示一个数字,内部结构如图2-6所示。
图2-6:
数码管结构
数码管分为共阳极和共阴极两种,共阳极数码管内部8个发光二极管的阳极连在一起,共阴极数码管内部8个发光二极管的阴极连在一起,本系统采用共阳极的数码管。
为了让数码管正常显示数字、字符或符号,要输入不同的信号组合,点亮对应的数码段,形成8字形加一个小数点的字形段码。
数码管内部段码位对应关系如表2-1所示,其中段码位是外界输入给数码管的8位数据,每位对应驱动管的一个引脚。
表2-1:
段位码与数据线对应关系
段位码
D7
D6
D5
D4
D3
D2
D1
D0
显示段
dp
g
f
e
d
c
b
a
数码管显示十六进制需要进行编码,如显示“0”点亮数码管的段位为a,b,c,d,e,f,对应的编码为C0(H),其他数字一次类推,对应的笔形码如表2-2所示。
表2-2:
字形与段码的对应关系表(共阴极)
数字
十六进制编码
数字
十六进制编码
0
0x3f
8
0x7f
1
0x06
9
0x6f
2
0x5b
A
0x77
3
0x4f
B
0x7c
4
0x66
C
0x39
5
0x6d
D
0x5e
6
0x7d
E
0x79
7
0x07
F
0x71
2.5.2锁存器
单片机I/O端口驱动能力不够,无法让数码管正常显示,故接驱动电路驱动数码管显示。
本系统采用锁存器(74HC573)作为驱动级芯片,连接在单片机和数码管之间,接收单片机的输出信号,控制数码管显示正确时间。
74HC573是八进制3态反转透明锁存器,输入与标准CMOS输出兼容,接上拉电阻后和LS/ALSTTL输出兼容。
当锁存使能端为高电平时,器件的锁存对于数据是透明的(即说输出同步)。
当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
其特点如下:
1、输出能直接接到CMOS,NMOS和TTL接口上
2、操作电压范围:
2.0V~6.0V
3、低输入电流:
1.0uA
4、CMOS器件的高噪声抵抗特性
5、三态总线驱动输出
6、置数全并行存取
7、缓冲控制输入
8、使能输入有改善抗扰度的滞后作用
74HC573的八个锁存器都是透明的D型锁存器,当使能端(G)为高电平时,Q输出
将随数据端(D)的输入变化。
当使能端为低电平时,输出端的原来数据保持不变。
输出控制不影响锁存器的内部工作,原有数据能保持,甚至输出被关闭后,新的数据也可以置入。
74HC573可以驱动大电容或低阻抗负载,也可以直接接系统总线,特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器。
74HC573的引脚图和功能表分别见图2-7和表2-3。
图2-7:
74HC573引脚图
表2-3:
字形与段码的对应关系表(共阳极)
输入
输出
输出使能
锁存使能
D
Q
L
H
H
H
L
H
L
L
L
L
X
不变
H
X
X
Z
其中:
X为不用关心,Z为高阻抗
2.5.3锁存器与数码管的电路连接
锁存器连接数码管,其中一个锁存器接数码管的段选端,控制单个数码管对应段的点亮,即按各个数字的十六进制编码输入信号;另一个锁存器接数码管的位选端,控制对应位置中数码管的点亮,最多可以扩展到8个数码管,即用单片机的8个I/O端口控制8个数码管的显示。
图2-8:
数码管与锁存器连线图
数码管显示的原理有静态显示和动态扫描。
静态显示是每一个数码管的段码都要独占锁存器输出口,单片机把需要显示的字码送到I/O口,通过锁存器驱动后数码管能显示对应的字符,直到下一次送出另外一个字码前,显示的内容不会消失;动态扫描将所有数码
管的8个段码中的a-dp的各个相同段连接在一起,接到同一个输出端口,而数码管的位选端分别接在另外的输出口,这两个输出口的两组信号相互作用产生各种数字组合。
各位数码管按照一定顺序轮流显示,只要扫描频率足够高,利用人眼的“视觉暂留”现象,就能连续稳定的显示。
静态显示的优点是显示稳定、亮度高,节约CPU处理时间,但占有I/O端口较多,硬件成本高。
动态扫描的特点是降低显示部分成本,减少显示接口的连线结构。
本系统采用动态扫描显示,提高CPU处理速度,方便拓展数码管的位数。
如图2-8所示,数码管的段选端接在同一个锁存器的输出端口,其位选端接在另一个锁存器的输出端口,锁存器U2、U3接在单片机的同一I/O口。
2.6声音报警电路
声音报警电路在单片机的控制下发出报警声音,提醒球员本回合比赛超时。
报警声音由蜂鸣器发出,它需要接驱动电路,然后连接单片机的I/O端口。
2.6.1蜂鸣器
蜂鸣器是一体化结构的电子讯响器,直流电压供电,广泛用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机等电子产品中作发声器件。
蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器这两种类型,在电路中用字母“H”或“HA”表示。
图2-9:
蜂鸣器
压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等构成。
有的压电式蜂鸣器外壳上还装有发光二极管。
多谐振荡器由晶体管或集成电路组成。
当电源接通后,多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。
在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。
振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
2.6.2三极管驱动
蜂鸣器的工作电流通常至少有十几毫安,功率较大时会达到上百毫安,单片机I/O的输出电流远远小于这个数值,所以必须接驱动电路,才能让蜂鸣器正常工作。
常用的驱动芯片有很多,比如74HC165、74HC365(六缓冲器/总线驱动)等等。
但本系统只需要驱动一个蜂鸣器工作,因此采用简单的三极管放大电路作为驱动即可。
三极管是一种电流控制电流的半导体器件,其作用是把微弱信号放大成辐值较大的电信号。
按制作工艺分类,三极管有双极结型晶体管(BJT)和场效应晶体管(MOS)。
其中,双极结型晶体管在电流电压放大能力有着突出的有点,而且电路多样,参考资料较多,电路形式非常灵活,适应性强,成本低,购买方便,它作为本系统驱动电路中最关键的器件,是不可多得的选择。
双极结型晶体管由靠得很近的两个PN结构成的半导体器件。
BJT有NPN或PNP三个区域,前者是NPN晶体管,后者是PNP晶体管,这两种晶体管及其电路符号如图2-10所示。
发射极、基极和集电极分别用英文字母E、B、C表示,发射区和基区之间的PN结称为发射结,集电区和基区之间的PN结称为集电结。
基区的宽度必须远远小于该层材料种少数载流子的扩散长度,否则就成了两个背靠背的独立PN结。
图2-10:
BJT管示意图
双极型晶体管输出特性可分为三个区:
截止区、饱和区、放大区。
截止区:
发射结和集电结均为反向偏置,管子失去放大能力。
如果把三极管当作一个开关,这个状态相当于断开状态。
饱和区:
发射结和集电结均为正向偏置。
在饱和区集电极电流不受基极电流的控制,管子失去放大作用,如果把三极管当作一个开关,这时处于闭合状态。
放大区:
发射结正偏,集电结反偏。
这是三极管可以放大基极输入的电流,其放大倍数与管子自身性能相关。
正是利用三极管处在截止区和饱和区的开关通断特性,它便能用在单片机控制的数字电路中。
单片机输出的高电平对应三极管的一个状态,输出的低电平对应三极管的另一个状态。
2.6.3蜂鸣器连接驱动电路
蜂鸣器通过驱动电路连接到单片机的I/O端口,只要单片机将引脚的电平由高变为低,便能控制蜂鸣器发声。
图2-11:
蜂鸣器连接驱动电路
如图2-11所示,双极型晶体管是PNP型晶体管,其发射极(e)接蜂鸣器的的低电平端,基极(b)接单片机的I/O端口。
系统启动后,单片机引脚的电平为高电平,晶体管处于截止状态,发射极为高电平,蜂鸣器不工作;当程序控制单片机引脚变为低电平后,晶体管导通,发射极变为低电平,蜂鸣器开始工作,发出声音。
3软件设计
篮球24秒定时计数器系统需要特定的控制程序,我们采用熟悉的C语言编程。
程序分为按键检测、数码管显示、蜂鸣器控制、主程序四大模块,其中数码管显示程序是最复杂的部分。
3.1按键检测
3.1.1按键检测与消抖
本系统所用按键为机械弹性按键,当机械触点断开、闭合时,机械开关就会出现机械振动,电压信号如图3-1。
由于机械触点的弹性作用,按键在闭合时不会马上稳定地接通,断开时也不会一下子断开。
因而在闭合及断开的瞬间均伴随有一连串的抖动。
抖动时间的长短由按键的机械特性决定,通常为5ms~10ms。
这是一个很重要的时间参数,在很多场合都可能用到。
由图3-1我们可以知道,按下按键的瞬间会出现抖动,弹起来也会出现抖动,而且是阻尼振动,按键扫描程序是按顺序执行的。
假如按键不消除抖动,那么单片机检测到改变后电平的次数就不止一次。
按键一次,单片机可能会检测到多次。
当我们将按某个按键设置为按一次时,某个变量增加1,如果不采取按键消抖措施,按一次会增加多次。
这样就不能通过按键来精确地改变参数,因此消除抖动能实现按一次按键让单片机读出一次按键操
作。
按键消抖分为硬件消抖和软件消抖。
硬件消抖有三态门实现等硬件消抖电路,需要专门设计,而且成本代价偏高。
相比之下,软件消抖更易实现。
检测出键闭合后执行延时程序,产生5ms~10ms的延时,在前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则可判定真正有键按下。
当检测到按键释放后,也要产生5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。
带消抖的按键检测程序如下:
if(key==0)
{
delay(10);//延时10毫秒
if(key==0)
{
flag=1;//按键按下
}
}
key==0表示检测到有按键按下。
这是因为单片机的I/O口通过单片机接地,按下按键后该端口电平被拉低,即key==0;delay(10)为延时10毫秒的子程序,减小按键抖动的干扰;10毫秒的延时后单片机继续检测按键是否按下,若该端口仍然为低电平,则判定按键确实按下,并将标记flag=1。
3.1.2按键检测与中断
本系统需要使用三个按键,程序与此类似,并用flag=1表示初始键按下、flag=2表示开始键按下、flag=3表示投球键按下。
其中,投球键采用中断方式控制。
在系统正常运行时,不会检测投球键是否按下;当按下投球键后,系统能马上停止计时,这样保证了程序的高效运行。
单片机有5个中断源:
2个外部中断请求INT0和INT1、2个片内定时器/计数器T0和T1的溢出中断请求、串行口中断请求TI或RI(合为一个中断源)。
51单片机中断级别、中断允许寄存器IE、中断优先级寄存器IP如表3-1所示:
表3-1:
中断级别
中断源
默认中断级别
序号(C语言用)
INIT0---外部中断0
最高
0
T0---定时器/计数器0中断
第2
1
INIT1---外部中断1
第3
2
T1----定时器/计数器1中断
第4
3
TI/RI---串行口中断
第5
4
T2---定时器/计数器2中断
最低
5
表3-2:
中断允许寄存器IE
位序号
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
符号位
EA
---
ET2
ES
ET1
EX1
ET0
EX0
表3-3:
中断优先级寄存器IP
位序号
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
位地址
---
---
---
PS
PT1
PX1
PT0
PX0
启动键采用中断控制的程序如下:
voidstart_interrupt()
{
TMOD=0x01;//设置定时器0位工作模式1(M1,M0位0,1)
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
EX0=1;//启动外部中断0;
flag_start=1;//投球和暂停标志
}
voidswitch()interrupt0
{
~flag_start;
if(flag_start==0)
TR0=0;//关闭定时器0,停止计时
else
TR0=1;//继续按投球键,打开定时器0,开始计时
}
3.2计时程序与数码管显示
24秒倒计时的精确控制可依靠简单的延时程序,但这种方案效率低下、且计时不准确。
8051单片机内部专门的定时器/计数器可实现较为精确的定时控制,不像延时程序占用CPU大量资源,因此我们采用它作为内部计时的工具。
3.2.1单片机定时器/计数器
单片机定时器/计数器有专门的操作单元,用户设置工作方式寄存器TMOD和控制寄存器TCON的不同数值,从而实现不同的定时效果。
特殊功能寄存器TMOD的地址为89H,它不能位寻址,在设置时一次写入。
表3-4列出了TMOD各个位的名字,1和0表示各个位可以置1或置0,控制两个定时器/计数器的工作方式。
表3-4:
TMOD的各位定义
GATE
C/T
M1
M0
GATE
C/T
M1
M0
1/0
1/0
00/01/10/11
1/0
1/0
00/01/10/11
GATE=0用TR0和TR1来控制T1和T0的启动,GATE=1则用外部中断来控制。
C/T为0表示定时器模式。
为1表示计数器模式,对T0或T1的外部负跳变脉冲计数。
M1M0用来选择T0和T1的工作方式,如表3-5所示。
表3-5:
工作方式一览表
M1M0
工作方式
功能描述
00
工作方式0
13位计数器
01
工作方式1
16位计数器
10
工作方式2
自动再装入8位计数器
11
工作方式3
定时器0:
分成两个8位计数器;
定时器1:
停止计数
定时器控制寄存器TCON除可字节寻址外,各位还可以位寻址。
其各位的定义如表3-6所示。
表3-6:
TCON的各位定义
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
1/0
1/0
1/0
1/0
1/0
1/0
1/0
1/0
其中IE0、IE1不用软件设置。
TF0、TF1在定时器溢出的时候由硬件置1,响应中断的时候硬件清零,但是也可以用软件清零。
3.2.2定时器的初始值设定
本系统选用工作方式1,它对应的是一个16位的定时器/计数器。
寄存器THO和TL0分别为定时器的高八位和第八位,其定时时间为
T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 篮球 24 可控 计时器 设计