最新单片机篮球比赛记分器.docx
- 文档编号:10973522
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:49
- 大小:447.82KB
最新单片机篮球比赛记分器.docx
《最新单片机篮球比赛记分器.docx》由会员分享,可在线阅读,更多相关《最新单片机篮球比赛记分器.docx(49页珍藏版)》请在冰豆网上搜索。
最新单片机篮球比赛记分器
单片机篮球比赛记分器
DA
CHANGCHUNINSTITUTEOFTECHNOLOGY
篮球比赛记分器
TheGameOfBasketballScoringDevice
设计题目:
篮球比赛记分器
学院名称:
电气与信息工程学院
专业名称:
电子信息工程
任务分配表
班级
学号
姓名
完成主要任务
电子1042
08
PCB的绘制仿真与实现
电子1042
13
程序的修改
PCB的绘制仿真与实现PROTEUS原理图绘制与仿真
电子1042
35
文档的编写
程序的修改
PROTEUS原理图绘制与仿真
篮球比赛记分器
摘要:
本文设计了一个篮球比赛记分器主要利用单片机AT89C51作为核心元件,利用3组4位共阳极的数码管作为显示器件,以C语言作为编程语言,在Protues和Keil搭建的软件仿真平台下进行仿真,本设计包含了AT89C51系列单片机的最小系统的构成,同时在此基础上扩展了一些实用性强的外围接口,可以进一步了解译码器74LS247的应用,LED七段数码管的结构和工作原理,主要实现了计时和显示A/B队的分数,并能及时进行加分,减分,鸣笛警示等功能。
本系统具有成本低廉、性能稳定、高准确度显示、操作方便且易携带等特点。
广泛适合各类学校和小团体作为赛程计分。
关键词:
AT89C51单片机;74LS247;七段数码管;仿真;嵌入式
0引言
进入21世纪,伴随着电子,信息通信技术的应用与普及开发,人们对电子技术的要求也越来越高,目前嵌入式单片机渗透到我们生活的各个领域。
单片机是一种集成在电路芯片,是采用超大规模集成电路技术,把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。
按照历史性、本质性、普遍性要求,嵌入式系统应定义为:
“嵌入到对象体系中的专用计算机系统”,可分软件部分和硬件部分,而当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在单片机上。
所以,以MCU为核心,就是各种各样的单片机,是嵌入式硬件部分的实现方式之一,它主要是因为把处理器和存储器等部件集成在一块芯片上。
体育比赛计时计分器是对体育比赛过程中所产生的时间、比分等数据进行快速采集记录、加工处理、传递利用的工具。
篮球比赛的计时计分器是一种得分类型的工具。
虽然篮球比赛中很早就开始研究应用了电子计分器,但通常都是利用模拟电子器件、数字电子器件或是模拟、数字混合组成的,其稳定性和高准确度计分仍存在一些问题。
以嵌入式单片机为核心,利用3组4位共阳极的数码管作为显示器件的篮球比赛计分屏,计分准确,具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点。
1系统方案
我们小组共提出了两种数码管显示方案:
一是共阳极数码管静态显示,二是共阳极数码管动态显示。
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极的数码管。
共阳数码管在应用时应将公共极接地,当某一字段发光二极管的阳极为低电平时,相应字段就点亮。
反之,相应字段就不亮。
共阳极数码管静态显示:
静态显示就是显示驱动电路具有输出锁存功能,即各个LED的显示字符一经确定,相应的段码将维持输出不变,直到送入另一个字符的段码为止。
正因为如此,静态显示器的亮度都比较高。
静态显示的程序设计,是将一个两位数的个位与十位分开,并且用查表指令,输出对应位的表格代码。
共阳极数码管动态显示:
动态显示,是数码管有一个I/O口控制LED片的多段复用,共阳极分别由相应的I/O口线控制,形成各片的分时选通。
若要各位数码管能够同时显示出与本位相应的显示字符,就必须采用动态显示方式,即在某一时刻,让某一位的位选线处于选通状态,而且其他各位的位选线处于关闭状态,这样在同一时刻,两个数码管只有选通的那一位显示字符,而另一个是灭着的。
同样,在下一时刻,只让第二个的位选线处于选通状态,另一位选线关闭,如此循环下去,就可以使两位数码管显示出所要显示的字符。
虽然这些字符不是在同一时刻出现,但由于LED片灯的余晖和人眼的视觉暂留作用,只要每位显示间隔足够短,就可以造成两位同时亮的假象,达到同时显示的效果。
设计基本与静态设计相同,不同之处是在多了位选信号。
在程序设计中在每次输出字符时,都要给相应的那位进行置位,另一位复位,确保每次只有一个数码管亮。
数码管静态显示需要静态驱动:
静态驱动也称直流驱动,静态驱动是指每个数码管的每一个段码都有一个单片机的I/O端口进行驱动,或者使用BCD码二/十进位转换器进行驱动,静态驱动的优点是编程简单,数据稳定,显示亮度高,无闪烁,占用CPU时间少,缺点是功耗比较大,占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40个I/O端口来驱动,而一个89S52单片机可用的I/O端口才32个。
故实际应用时必须增加位驱动器进行驱动,增加了硬体电路的复杂性。
数码管动态显示需要动态驱动:
动态驱动是将所数码管的8个显示片段的同名端连在一起,另外为每个数码管的公共极COM端增加位选通控制电路,位选通有各自独立的I/O线控制,当单片机输出字型码时,所有数码管都接受到相同的字型码,将需要显示的数码管的选通COM端电路的控制打开,该位就显示出字形,没有选通的数码管就不会亮,通过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功能更低、硬件电路也较静态显示简单。
经方案对比和考虑设计要求和器件的限制,我组的课程设计采用的是共阳极数码管的动态显示。
2系统硬件电路
该系统硬件电路包括:
单片机AT89C51、时钟电路、复位电路、电源电路、按键控制电路、计分电路、计时电路、报警电路。
软件包括用Keil进行C语言编程,用Protues进行仿真,具体系统硬件结构框图如图2-1所示。
图2-1篮球赛计分器的硬件结构框图
(一)元器件的选择
本设计主要选择了以下元器件:
如表2-2所示:
元器件名称
所属类
所属子类
AT89C51(单片机)
MicroprocessorIC’s
8051Family
7SEG-MPX4-CA-BKUE
Optoelectrionics
7-Segment-Display
7SEG-MPX4-CA
Optoelectrionics
7-Segment-Display
SW-SPDT
Switchs&Relays
Miscellaneous
74LS247
TTL74LSseries
All—Sub-Categories
MINRES4.7K(电阻4.7K)
Resistors
All—Sub
BUTTON
All-Categories
All—Sub-Categories
7404
TTL74LSseries
All—Sub-Categories
SOUNDER
Speakers&sounders
All—Sub-Categories
表2-2元器件列表
(二)单片机AT89C51简介:
AT89C51是一种带4K字节FLASH存储器(FPEROM——FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图2-3所示
图2-3AT89C51外形及引脚排列
主要特性:
·与MCS-51兼容
·4K字节可编程FLASH存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24MHz
·三级程序存储器锁定
·128×8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口的8位皆为漏极开路输出简称OD;内部无上拉电阻,所以执行输出功能时,外部必须接上拉电阻;若要实现输入功能,必须先输入高电平“1”,才能读取该端口所连接的外部数据;若系统连接外部存储器,则P0可作为地址总线和数据总线的多功能引脚,此时内部具有上拉电阻,无需外接上拉电阻。
P1口:
P1口为8位,可位寻址的双向I/O口;内部具备约30千欧姆的上拉电阻,实现输出功能时,不需要连接外部上拉电阻;实现输入功能时,必须先输入高电平“1”,才能读取该端口所连接的外部数据;P1口的8位类似漏极开路输出,但内部已接上上拉电阻,每个引脚可驱动4个LS型TTL负载。
P2口:
P2口为8位、可位寻址的双向输入/输出口,内部具备约30千欧姆的上拉电阻,实现输出功能时,不需要连接外部上拉电阻;实现输入功能时,必须先输入高电平“1”,才能读取该端口所连接的外部数据;P2口的8位类似漏极开路输出,但内部已接上上拉电阻,每个引脚可驱动4个LS型TTL负载;若系统连接外部存储器,而外部存储器的地址线超过了8根时,则P2可作为地址总线(A8-A15)的引脚。
P3口:
P3口为8位,可位寻址的双向I/O口;内部具备约30千欧姆的上拉电阻,实现输出功能时,不需要连接外部上拉电阻;实现输入功能时,必须先输入高电平“1”,才能读取该端口所连接的外部数据;P3口的8位类似漏极开路输出,但内部已接上上拉电阻,每个引脚可驱动4个LS型TTL负载。
P3口也可作为AT89C51的一些特殊功能口,如下表2-4所示:
I/O口
备选功能/特殊功能
P3.0/RXD
串行输入口
P3.1/TXD
串行输出口
P3.2/
外部中断0
P3.3/
外部中断1
P3.4/T0
计时器0外部输入
P3.5/T1
计时器1外部输入
P3.6/
外部数据存储器写选通
P3.7/
外部数据存储器读选通
表2-4AT89C51的一些特殊功能口
RST:
复位信号。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间,用以完成单片机的复位初始化操作。
ALE/
:
地址锁存控制信号。
在系统扩展,访问外部存储器时,ALE用于控制把P0口输出的低8位的地址锁存起来,以实现低位地址和数据的隔离。
此外,由于ALE是以晶振1/6的固定频率输出脉冲,因此可作为外部时钟或者外部定时脉冲使用。
ALE只有在执行MOVX,MOVC指令时,ALE才起作用。
:
外部程序存储器读选通信号。
在读外部ROM时,
有效(低电平有效),以实现外部ROM的读操作。
在具体应用时,外部ROM读取时,在每个机器周期会动作两次,外部RAM读取时,两个
信号被跳过不会输出。
/VPP:
访问程序存储控制信号。
当信号保持低电平时,对ROM的读操作仅仅限定在外部程序存储器,当信号为高电平或者悬空时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
(三)晶振电路设计:
图2-5晶振电路图
晶振,就象是单片机的核心部件,提供时钟激励,保证单片机内部和外部电路的时序逻辑电路协调动作。
(四)复位电路的设计:
图2-6复位电路图
复位一般可用上电复位、按键复位两种方式完成,我们采用按键复位,根据元器件的要求时间常数,可以选定电容和电阻的规格。
(五)按键控制模块
键盘往往分成编码键盘和非编码键盘,编码键盘由按键和键处理电路组成,直接为计算机提供经过编码的按键键码;而非编码键盘则只提供按键,其余由计算机自己处理。
非编码键盘结构简单,可自由裁量设计,非常适用于单片应用系统。
1.按键特性与抖动处理
按键是一种机械弹性开关,当键按下时闭合,松开时断开。
因为有机械的接触,在触点闭合或断开的瞬间会出现电压抖动。
为了避免键输入错误,必须进行键抖动的处理。
去抖动由硬件和软件两种方法:
硬件方法就是在键盘中附加去抖动电路消除抖动;而软件方法则是采用时间延迟以躲避抖动,待触点状方法处理。
2.键盘接口及功能
非编码键盘是所用按键组成的集合。
为了保证键盘的正确输入,键接口必备以下功能:
(1)键扫描与识别,判断有无键按下以及按键位置,键扫描与识别是通过“行扫描”与“列状态”的配合来确定是否有键按下以及所在行、列的位置。
所谓行扫描就是一次给每条行线送低电平,而其余各行线送高电平,并检测对每一行扫描时所产生的列状态。
键盘扫描有下列三种方式:
程控扫描方式:
只有单片机空闲时才调用扫描程序响应用户键入请求。
定时扫描方式:
单片机定时调用扫描程序对键盘进行扫描,即时响应用户键入请求。
中断扫描方式:
与中断请求电路配合,当有键按下时产生中断请求,由单片机响应并执行中断服务程序扫描键盘。
(2)去键抖动
消除按键抖动带来的误输入。
检测键关闭后,延时10ms后再检测一次,两次检测相同再进一步进行键处理。
(3)键编码
生成易于处理的键码。
由于键位码比较零乱,因此接下来的工作是根据需要把反映闭合键和键位置的键位码换乘反映键功能的键码。
有了键码,才好通过散转指令把程序执行到闭合键所对应的服务程序上去。
键码既可以根据键位码查询表求得,也可以根据键码编排规律计算得到。
(4)等待键释放
为了保证键一次闭合仅进行一次处理,编键码之后,再以延时扫描的方法等待键释放。
键释放后键处理工作完成。
本系统设计除复位按键外共配置了8个独立键盘来实现系统功能的控制。
8个按键分别为KEY1(A队加一键)连接到P3.0,KEY2(A队减一键)连接到P3.1,KEY3(B队加一键)连接到P3.4,KEY4(B队减一键)连接到P3.5,AB转换(上下半场换场时切换比分,连接到P3.3)、start(开关,连接到P3.7)、蜂鸣器开关(连接到P3.2)计时器十分位控制(连接到P1.6),计时器分位控制(连接到P1.7)本设计中主要采用独立按键,按键扩展电路如图2-7
图2-7独立按键扩展电路
(六)数码管显示模块
本设计的计时、计分功能的显示均采用共阳数码管显示。
我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。
所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。
数码管又分为共阳极和共阳极两种类型,其实共阳极就是将八个LED的阳极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。
而共阴极就是将八个LED的阴极连在一起。
其原理图如图2-8:
引脚图共阳极共阴极
图2-8共阴极和共阳极八段数码管原理图
其中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电源。
一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。
显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。
数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。
所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。
可以看出两个编码的各位正好相反。
如下图:
共阴示例
共阳示例
图2-9共阴极和共阳极八段数码管显示举例
(七)蜂鸣器警示模块
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
在比赛结束时,蜂鸣器自动响,再通过按键关闭它。
其扩展电路如图:
图2-10蜂鸣器扩展电路图
(八)BCD七段数码管驱动/译码器
常用的BCD对七段显示器译码器/驱动器的IC包装设计有TTL之7446、7447、7448、7449与CMOS之4511等。
其中7446、7447必须使用共阳极七段数码显示器,7448、7449、4511等则使用共阴极七段显示器。
74LS247的功能用于将BCD码转化成数码块中的数字,通过它解码,可以直接把数字转化为数码管的显示数字,从而简化了程序,节约单片机的I/O开销,因此是一个非常好的芯片。
74LS247的引脚如下图2-11所示:
图2-1174LS247引脚图
引脚的功能:
(1)A、B、C、D为输入端,abcdefg为输出端。
当输入DCBA=0010时,则输出abcdefg=0010010,使数码管显示“2”;
当输入DCBA=0110时,则输出abcdefg=1100000,使数码管显示“6”;关系如表2-12所示:
输入
DCBA
输出
F(a)F(b)F(c)F(d)F(e)F(f)F(g)
字形
0000
1111110
0
0001
0110000
1
0010
1101101
2
0011
1111001
3
0100
0110011
4
0101
1011011
5
0110
1011111
6
0111
1110000
7
1000
1111111
8
1001
1111011
9
表2-12BCD七段译码真值表
(2)LT、RBI与BI/RBO为控制引脚,其功能分述如下:
74LS247电路是由与非门、输入缓冲器和七个与或非门组成的BCD——7段译码器/驱动器。
7个与非门和一个驱动电路成对连接,以产生可用的BCD数据及其补码至7个与或非译码门。
剩下的与非门和3个输入缓冲器作为试灯输入(LT)、灭灯输入/动态灭灯输出(BI/RBO)以及动态灭灯输入(RBI)端。
该电路接受4位二进制编码——十进制数(BCD)输入并借助于辅助输入端状态将输入数据译码后去驱动一个七段显示器。
输出结构设计能承受7段显示器所需要的相当高的高压,驱动显示器各段所需要的高达24mA的电流可以由其高性能的输出晶体管来直接提供。
BCD输入计数9以上的显示图案是鉴定输入条件的唯一信号。
该电路有自动前、后沿灭零控制(RBI和RBO)。
试灯(LT)可在端处在高电平的任何时刻去进行,该电路还含有一个灭灯输入(BI)。
它用来控制灯的亮度或禁止输出。
1)需要0-15的输出功能时,灭灯输入(BI)必须为开路或者保持在高电平状态,若不要灭掉十进制零,则动态灭灯输入(RBI)必须开路或者处于高电平状态。
2)当低电平直接加到灭灯输入(BI)时,不管其他任何输入端的电平如何,所有段的输出端都关死。
3)当动态灭灯输入(RBI)和输入端A、B、C、D都处于低电平而试灯输入(LT)为高电平时,则所有段的输出端进入关闭且动态灭灯输出(RBO)处于低电平状态。
4)当灭灯输入/动态灭灯输出(BI/RBO)开路或者保持在高电平状态,且将低电平加到试灯试灯输入(LT)时,所有段的输出都得打开。
注:
BI/RBO是用做灭灯(BI)与/或动态灭灯输出(RBO)的线与逻辑。
(9)计分显示屏的设计图
图2-13计分显示屏的设计图
图2-14倒计时计分显示屏的设计图
3系统软件设计
篮球赛计时计分系统的软件设计部分采用模块化程序设计,程序部分由主程序、计时计分刷新显示程序模块、数码管显示记录程序模块等组成。
51单片机内部有两个16位可编程的定时器/计数器,分别称为定时器/计数器0和定时器/计数器1,它们具有四种工作方式,其控制字和状态均在相应的特殊功能寄存器中,通过对控制寄存器的编程,就可方便地选择适当的工作方式。
特殊控制器有工作方式控制寄存器(TMOD),定时/计数器控制寄存器(TCON),中断允许控制寄存器IE。
定时/计数器的核心是的16位加法计数器,定时器T0的加法计数器用特殊功能寄存器TH0、TL0表示,TH0表示加法计数器的高8位,TL0表示加法计数器的低8位。
TH1和TL1则分别表示定时/计数器T1的高8位和低8位。
它们均是8位寄存器,在特殊功能寄存器中占地址8AH-8DH。
它们用于存放定时或计数的初始值。
此外,内部还有一个8位的工作方式寄存器TMOD和一个8位的控制寄存器TCON,用于选择和控制定时/计数器的工作。
这些寄存器可根据需要由程序读写。
当然16位加法计数器的输入端每输入一个脉冲,16位加法计数器的值自动加1,当计数器的计数值超过加法计数器字长所能表示的二进制数的范围而向第17位进位,即计数溢出时,置位定时中断请求标志,向CPU申请中断。
1、工作方式寄存器TMOD
TMOD用于控制T0和T1的工作方式,其格式如表3-1所示:
位
D7
D6
D5
D4
D3
D2
D1
D0
位符号
GATE
C/
M1
M0
GATE
C/
M1
M0
门控开关
计数/定时
方式选择
门控开关
计数/定时
方式选择
T1方式字段
T0方式字段
表3-1方式控制寄存器TMOD
各位定义如下:
M1,MO:
工作方式控制位,可构成表3-2所示四种工作方式:
M1
M0
工作方式
说明
0
0
0
13位定时器;
0
1
1
16位计数器;
1
0
2
可自动再装载的8位计数器;
1
1
3
T0分成两个独立的8位计数器
表3-2方式控制寄存器TMOD的工作方式
C/
:
计数工作方式/定时工作方式选择位。
置0时,设置为定时工作方式;置1时,设置为计数工作方式。
GATE:
门控位,用以决定是由软件还是硬件启动/停止计数。
GATE=0,
/
被封锁,只要用软件对TR0(或TR1)置“1”就启动了定时器;GATA=1时,定时器/计数器的计数受外部引脚输入电平的控制。
TMOD的所有位在复位后清0。
TMOD不能位寻址,只能按字节操作设置工作方式。
2、定时/计数控制寄存器TCON
TFl,TRl,TF0和TR0位用于定时器/计数器;IEl,ITl,IE0和IT0位用于中断系统。
其格式如表3-3所示:
位
D7
D6
D5
D4
D3
D2
D1
D0
位符号
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
表3-3控制寄存器TCON
各位定义如下:
TF1:
定时器1溢出标志位。
当定时器1计满溢出时,由硬件使TF1置“1”,并且申请中断。
进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。
TR1:
定时器1运行控制位。
由软件清“0”关闭定时器1。
当GATE=1,且
为高电平时,TR1置“1”启动定时器1;当GATE=0,TR1置“1”启动定时器1。
TF0:
定时器0溢出标志。
其功能及操作情况同TF1。
TR0:
定时器0运行控制位。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 单片机 篮球比赛 记分