基于单片机的篮球计分器设计.docx

上传人:牧羊曲112 文档编号:3385065 上传时间:2023-03-12 格式:DOCX 页数:28 大小:46.11KB
返回 下载 相关 举报
基于单片机的篮球计分器设计.docx_第1页
第1页 / 共28页
基于单片机的篮球计分器设计.docx_第2页
第2页 / 共28页
基于单片机的篮球计分器设计.docx_第3页
第3页 / 共28页
基于单片机的篮球计分器设计.docx_第4页
第4页 / 共28页
基于单片机的篮球计分器设计.docx_第5页
第5页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于单片机的篮球计分器设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的篮球计分器设计.docx(28页珍藏版)》请在三一办公上搜索。

1、基于单片机的篮球计分器设计1 概述 . 1 1.1 研究背景 . 1 1.2 基本功能及设计思路 . 2 2 总体方案设计 . 3 2.1 方案选取 . 3 2.2 总体设计 . 3 3 硬件电路设计 . 4 3.1 电源电路 . 4 3.2 晶振电路 . 4 3.3 键盘电路 . 5 3.4 复位电路 . 6 3.5 显示电路 . 6 4 系统软件设计 . 7 4.1 主程序设计 . 7 4.2 加分程序设计 . 8 4.3 交换程序设计 . 10 4.4 LED显示程序设计 . 10 4.5共阴极数码管字形表 . 11 5 总结 . 12 参考文献 . 12 附录1 系统原理图 . 13

2、附录2 源程序 . 14 附录3 系统调试 . 18 1 概述 1.1 研究背景 在这个电子信息技术迅速普及的今天,人们对电子产品的需求越来越多。二十一世纪的今天,科学技术迅猛发展,时代前进的脚步越迈越宽,应用自动1 化设备,现代化通讯,计算机处理,数字化信息,现代化显示设备等一些高新技术使人类迈向智能化发展。 在智能化产品中,单片机的应用已经越来越广泛,单片机以它体积小、质量轻、耗电省、可靠性高、价格低等优点,开始不断发展,并广泛应用于仪器仪表、家用电器、医疗设备、航天航空领域、工业专用设备的管理及过程控制等领域,在很多的大中型的电气设备以及小型的电子产品中也用到了单片机进行控制。单片机把我

3、们带入了智能化的电子领域,许多繁琐的系统若由单片机进行设计,便能收到电路更简单、功能更齐全的良好效果。若把经典的电子系统当作一个僵死的电子系统,那么智能化的现代电子系统则是一个具有“生命”的电子系统。 本设计就是基于单片机设计篮球计分系统,通过串口通信动态传输数据,使计分系统有了更多更完善的功能。单片机系统的硬件结构给予了篮球计分器系统“身躯”,而单片机的应用程序赋予了其新的“生命”,使其在传统的篮球计分器面前具有电路简单、成本低、运行可靠等特色。 1.2 基本功能及设计思路 1、利用89C51单片机设计篮球计分器系统,实现以下功能 用4位LED显示器显示两队分数; 能够随时手动对A、B两队分

4、别计分; 能够手动实现A、B两队的分数位置随场地交换而对应调换。 2、设计思路: 以AT89C51单片机为核心元件,利用独立式键盘控制,使4位共阴极LED 数码管以静态显示方式实时记录A、B两队的分数。独立式键盘由K1、K2、K3、K4、K5、K6、K7、K8构成。其功能如下: K1、K2:加1分; K3、K4:加2分; K5、K6:加3分; K7:半场换分; K8:显示复位。 A、B两队分别占用两位LED显示器,显示范围为099,能够基本满足一般比赛需要。 2 2 总体方案设计 2.1 方案选取 单片机在各种电子产品中的应用已经越来越广泛,很多的电子产品利用单片机所取得的便利得到了人们的好评

5、,针对基于单片机的篮球计分器的设计要求,实现其功能的方案有多种,现列举如下: 方案按键控制每次各队的加分值为1分或2分,如若进3分球,则需两键相加。并由半场换分按键和复位功能。分数通过4位LED显示器动态显示; 方案系统采用三个按键控制每次各队的加分值为1分、2分或3分。同样也有半场换分按键和复位功能。并通过4位LED显示器静态显示分数。 这二个方案都是基于单片机控制的,通过按键加分及数码管显示,不同的设计部分在于按键的数量和显示方式的选取上。 方案的按键数量较少,加上交换按键和复位按键共需要6个,但也能完成基本功能。不过在显示方面,动态方式编程较为复杂。 方案的按键虽然较多,但功能齐全,使用

6、方便。并且电路不是太过复杂,编程较为简单。 最终方案:经过以上比较,方案按键使用不方便,且软件设计复杂。因此选用方案,即以8位独立式键盘分别实现加1分、加2分、加3分、半场换分和显示复位的功能,并用4位共阴极LED显示器以静态显示方式显示分数。 2.2 总体设计 篮球计分器的设计是基于满足设计要求的前提并且根据理论上的可实现性和硬件上的经济实用性,而进行设计的重要环节。本节从人们对系统功能需求出发,在综合考虑各种因素的情况下,设计出篮球计分器的总体构架。 1、加分功能设计:通过显示缓冲区为中间加分媒介。每当按键按下时,首先通过外部中断源实现中断,进入中断后判断键值再进入相应加分子程序,对相应显

7、示缓冲区加分。 2、分数调换功能:同样是利用外部中断源实现中断,中断服务程序应能实现中场分数位置调换的功能。 3、分数显示功能:用同步移位寄存器74HC164实现4位LED数码管静态显示。3 通过查表指令在字形表中找到与显示缓冲区对应的字形码,然后串行移位输出即可。 基于89C51单片机的篮球计分器总体设计框图如图2所示。 74HC1644位LED数码管+5V电源AT89C51时钟电路8位独立式键盘74LS21图2 篮球计分器总体框图 在框图所示的系统构架中,8位独立式键盘包括6位加分按键,1位分数调换按键和1位复位按键。其中加分按键通过7421实现中断扫描,分数调换按键则直接通过外部中断1入

8、口P3.3实现中断服务。 3 硬件电路设计 3.1 电源电路 单片机正常工作电压为5V,因此设计的电源电路主要是提供单片机工作电压。图3.1是为单片机提供电压的电源电路,包括变压、整流、稳压、滤波等环节。在这个电路中采用了三端集成稳压器LM7805,可以输出5V的直流电压以供给单片机。 Vin1VoutLM78052VCCD1T142C1TRANS1BRIDGE10.33uFC20.1uF+C310uF图3.1 电源电路 3.2 晶振电路 电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。4 通过基准频率来控制电

9、路中的频率的准确性。同时,它还可以产生振荡电流,向单片机发出时钟信号。 图3.2是单片机的晶振电路。片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz24MHz之间选取。C1、C2是反馈电容,其值在20pF100pF之间选取,典型值为30pF。本电路选用的电容为30pF,晶振频率为12MHz。 C4XTAL1XTAL2Y112MC530P30P图3.2 晶振电路 3.3 键盘电路 键盘电路在篮球计分器中的主要作用是用于实现加分和交换分数位置。键盘可分为独立式键盘和行列式键盘。本设计中由于按键数少于8个,所

10、以采用独立式按键电路。另外采用中断扫描方式扫描键盘的状态,当然也可以直接用编程扫描方式,两者工作思路基本一样。具体电路如图3.3所示。AT89C51单片机的直流输入电流为15mA,当直流电源电压为+5V时,可选择5.1K的上拉电阻保证单片机的正常工作。 +5K1K2K3K4K5K6+5P0.0P0.1P0.2P0.3P0.4P0.574LS21P3.2K7P3.3图3.3 键盘电路 5 3.4 复位电路 复位电路的主要功能是使单片机进行初始化,在初始化的过程中需要在复位引脚上加大于2个机器周期的高电平。复位后的单片机地址初始化为0000H,然后继续从0000H单元开始执行程序。在复位电路中提供

11、复位信号,等到系统电源稳定后,再撤销复位信号。但是为了在复位按键稳定的前提下,电源稳定后还要经一定的延时才撤销复位信号,以防在按键过程中引起的抖动而影响复位。图3.4所示的 RC 复位电路可以实现上述基本功能。 +5C610uF10KRSTK6图3.4 复位电路 3.5 显示电路 显示电路是用于显示分数。采用LED数码管进行显示是因为LED数码管具有以下几个优点:(1)能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容。(2)发光响应时间极短(0.1s),高频特性好,单色性好,亮度高。(3)体积小,重量轻,抗冲击性能好。 数码管有共阴极和共阳极两种类型,其公共端主要进行位控制,笔画

12、端则是进行字符控制,数码管有静态显示和动态显示两种方法。本设计采用的是4位共阴极LED数码管的串行驱动电路来达到显示的目的。驱动器采用74HC164,由单片机89C51的P3.0和P3.1来控制LED数码管的显示。显示电路图如3.5所示。因为共阴极数码管可以不用外接电阻,所以原理图中的电阻可去掉。 6 U1RXD1298714ABQ0Q1Q2Q3Q4Q5Q6Q734561011121312345678DS1DPYaabcfbgdeecdfdpgdpDS2TXDCLRCLKGNDVCCU21298714ABCLRCLKGNDVCCU3Q0Q1Q2Q3Q4Q5Q6Q7345610111213123

13、45678DPYaabcfbgdeecdfdpgdpDS31298714+5ABCLRCLKGNDVCCU4Q0Q1Q2Q3Q4Q5Q6Q734561011121312345678DPYaabcfbgdeecdfdpgdpDS41298714ABCLRCLKGNDVCCQ0Q1Q2Q3Q4Q5Q6Q734561011121312345678DPYaabcfbgdeecdfdpgdp图3.5 显示电路 4 系统软件设计 系统软件设计主要由加分中断服务程序,交换中断服务程序,LED显示程序等几部分构成。本章节系统的介绍了篮球计分器的主程序和各主要功能子程序的设计流程,具体的程序代码见附录2。 4.

14、1 主程序设计 主程序构成无限循环,主要完成单片机初始化,等待加分和交换中断的功能。主程序的流程图如图4.1所示。 7 开始单片机初始化等待中断请求N是否有中断YP3.2口中断判断键值对应两队加分P3.3口中断两队分数位置调换图4.1 主程序流程图 主程序流程说明: 电路主要分为以下几个部分,分别是电源部分、按键部分、显示部分,各部分具有不同的子程序。 主程序的作用主要是先让单片机初始化,包括栈底指针的重新赋值、开中断、设置外部中断为脉冲触发等;然后使显示缓冲区清零,使让LED显示为零;再利用无条件转移指令SJMP $,等待加分中断和交换中断。待中断服务程序执行完后,再次返回主程序等待下一次中

15、断。 4.2 加分程序设计 硬件电路中设计了6个加分按键,采用中断和查询结合的方法扩充外部中 断源,实现相应加分的功能。加分程序的流程图如图4.2所示。 8 开始现场保护判断键值进入相应子程序软件去抖动判断键值N相应键是否按下Y加相应分数(DIS*)是否大于等于10Y减10查表加1Y字形码串行输出(DIS#)是否等于10N把相减的结果给DIS*恢复现场N显示缓冲区清零返回主程序结束图4.2 加分程序流程图 加分程序流程说明: 按下加分按键后,产生外部中断0,CPU从主程序跳转到加分中断服务程序继续执行。当在执行相应加分中断服务程序时,不允许其它按键按下有相应操作,所以必须在进入中断后通过CLR

16、 EA指令关中断,又因为为了避免保护现场时,一些寄存器的内容出现紊乱,此指令必须放在PUSH指令之前。CPU通过查询方式判断键值后进入相应的加分子程序。因为在操作按键时,无论是按下还是松开,触点在闭合和断开时均会产生抖动,此时逻辑电平是不稳的,如果得不到正确处理,可能会引起单片机对按键命令的错误执行,所以必须执行一段延时子程序,用来软件去抖动。比如延时10ms: MOV R0,#0AH DL2: MOV R1,#7DH 9 DL1: NOP NOP DJNZ R1,DL1 DJNZ R0,DL2 延时子程序执行完后,再次判断键值,倘若仍然能够检测到相应键值信号,则继续向下执行,否则返回主程序。

17、 继续向下执行时,首先让相应显示缓冲区加相应的分数,然后通过CJNE指令与10进行比较。若小于10,则串行输出显示,否则向相应高位进1,并减10。进1后的高位仍需与10进行比较,若小于10,则将上述减数重新赋予相应低位,然后串行输出,否则各位清零。输出刷新后,CPU返回主程序。 4.3 交换程序设计 由于篮球比赛中场结束之后,要交换场地,则分数的显示位置也要随之调换。硬件电路中设置K7键完成此项功能。交换程序流程图如图4.3所示。 开始保护现场(DIS0)给A(DIS2)与A中的值进行交换A中的值给(DIS1)给A(DIS3)与A中的值进行交换A中的值给(DIS1)跳转到字形码输出子程序 交换

18、程序流程说明: 结束图4.3 交换程序流程图 按下交换按键后,产生外部中断1,CPU从主程序跳转到交换中断服务程序中继续执行。通过中间寄存器A和交换指令XCH实现分数位置的交换。交换完成后,CPU返回主程序。 4.4 LED显示程序设计 硬件设计中利用4位LED静态显示电路显示分数。通过显示缓冲区利用10 MOVC A,A+DPTR查表指令找到指定字形码,并由串行口串行输出显示。LED显示程序流程图如图4.3所示。 开始将R7赋值为4把#DIS3给R0把给A把数据表首地址给DPTR通过查表指令查找字形码通过串行口发送字形码是否发送完毕YR0减1R7减1是否等于0Y恢复现场返回主程序结束NN图4

19、.3 LED显示程序流程图 LED显示程序流程说明: 首先将高位显示缓冲区的值,也就是字形表的检索值给累加器A,并将字形表首地址给DPTR,然后利用查表指令找到指定的字形码,最后由单片机的串行口串行输出。紧接着将下一位缓冲区的值给累加器A,同样由查表指令找到相应字形码,并串行输出。依次循环执行上述操作,直至4位全部输出后返回主程序。 4.5共阴极数码管字形表 硬件电路所用数码管为共阴极,所以串行口输出高电平有效。并且4位数码管的dp段都没有使用,因此始终为0。另外应特别注意的是字形码的高低位顺序应与硬件中数码管引脚的连接对应。共阴极数码管字形表如表4.1所示。 表4.1 共阴极数码管字形表 字

20、形 a b c d e f g dp 字形码 11 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 0FCH 60H 0DAH 0F2H 66H 0B6H 0BEH 0E0H 0FEH 0F6H 5 总结 本次设计叙述了篮球计分器的基本原理及使用方法,给出了一种篮球计分器的设计方案。此次

21、设计的篮球计分器,电路简单,而且易懂,使操作使用者使用非常方便,成本较低,灵敏可靠,计录准确,连接简单,具有非常高的使用价值。设计内容包括比分显示、比分调换等部分,可以使参加比赛的成员、裁判和观众一目了然的看到参赛队的成绩,以最快的速度评出结果.该篮球计分器还能广泛应用于各类知识竞赛。 本设计由AT89C51编程控制LED七段数码管作球赛计时计分系统具有赛程定性能稳定、操作方便且易携带等特点。可广泛适合各类学校和小团体作为赛程计分。 通过这次篮球计分器的设计,可以更清楚的了解单片机程序设计的基本指令功能、编程步骤和技巧,对AT89C51单片机的原理和结构进一步熟悉和掌握,并对一些绘图和仿真工具

22、积累了更多的使用经验。 参考文献 1 张迎新单片微型计算机原理、应用及接口技术北京:国防工业出版社,2004 2 郑锋 王巧芝 程丽平 张清鹏51单片机典型应用开发范例大全北京:12 中国铁道出版社,2011 3 彭为 黄科 雷道仲单片机典型系统设计实例精讲北京:电子工业出版社,2006 4 阎石数字电子技术基础北京:高等教育出版社,2006 5 夏路易 石宗义电路原理图与电路板设计教程Protel 99SE北京:北京希望电子出版社,2004 附录1 系统原理图 U1DS1Q0Q1Q2Q3Q4Q5Q6Q734561011121312345678DPYaabcfbgdeecdfdpgdpDS2Q

23、0Q1Q2Q3Q4Q5Q6Q734561011121312345678DPYaabcfbgdeecdfdpgdpDS3Q0Q1Q2Q3Q4Q5Q6Q734561011121312345678DPYaabcfbgdeecdfdpgdpDS4Q0Q1Q2Q3Q4Q5Q6Q734561011121312345678DPYaabcfbgdeecdfdpgdpC4C610uF10KY112MK8C530P30PVin1VoutLM78052VCC1298T142C1TRANS1BRIDGE10.33uFD1ABCLRCLKGNDVCCU2C20.1uF+C310uF714+51298714ABCLRCL

24、KGNDVCCU3K1K2K3K4K5K6+574LS211K72AND3393837363534333291011121314151617181920P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7RSTP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7XTAL2XTAL1GNDVCCP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0+5V401234567831302928+5V272625242322211298714ABCLRCLKGNDVCCU41298714

25、ABCLRCLKGNDVCC+5V13 附录2 源程序 K1 BIT P0.0 K2 BIT P0.1 K3 BIT P0.2 K4 BIT P0.3 K5 BIT P0.4 K6 BIT P0.5 DIS0 EQU 30H;定义显示缓冲区 DIS1 EQU 31H DIS2 EQU 32H DIS3 EQU 33H ORG 0000H LJMP MAIN;跳转到主程序 LJMP GRADE;跳转到加分中断服务程序 ORG 0013H LJMP EXCHANGE;跳转到交换中断服务程序 ORG 0033H MAIN: MOV SP,#3FH;对堆栈指针进行赋值 MOV IE,#85H;开中断

26、MOV TMOD,#05H;外部中断为下降沿脉冲触发 LCALL CLEAR LCALL DISPLAY1 SJMP $;等待中断 14 GRADE: CLR EA;关中断 JNB K1,LGRADE1;判断键值 JNB K2, LGRADE2 JNB K3, LGRADE3 JNB K4, RGRADE1 JNB K5, RGRADE2 JNB K6, RGRADE3 LGRADE1: LCALL DELAY;延时去抖动 JNB K1,SW1;再次确定K1键是否按下 SETB EA;开中断 RETI SW1: INC DIS1;K1键按下则加分 LJMP LCOMPARE LGRADE2:

27、LCALL DELAY;延时去抖动 JNB K2,SW2;再次确定K2键是否按下 SETB EA;开中断 RETI SW2: INC DIS1;K2键按下则加分 INC DIS1 LJMP LCOMPARE LGRADE3: LCALL DELAY;延时去抖动 JNB K3,SW3;再次确定K3键是否按下 SETB EA;开中断 RETI SW3: INC DIS1;K3键按下则加分 INC DIS1 INC DIS1 LJMP LCOMPARE LCOMPARE: MOV A,DIS1 CJNE A,#10,LCOMP;(DIS1)的值与10进行比较 SJMP LCARRY;(DIS1)等于

28、10则跳转到进位子程序 LCOMP: JC $+2;(DIS1)小于10则输出显示 LJMP DISPLAY2 SJMP LCARRY;(DIS1)大于10则跳转到进位子程序 LCARRY: CLR C 15 MOV A,DIS1 SUBB A,#10 INC DIS0 MOV A,DIS0 CJNE A,#10,$+9;(DIS0)的值与10进行比较 LCALL CLEAR;(DIS0)等于10则数码管显零 LJMP DISPLAY2 MOV DIS1,A LJMP DISPLAY2 RGRADE1: LCALL DELAY;延时去抖动 JNB K4,SW4;再次确定K4键是否按下 SETB

29、 EA;开中断 RETI SW4: INC DIS3;K4键按下则加分 LJMP RCOMPARE RGRADE2: LCALL DELAY;延时去抖动 JNB K5,SW5;再次确定K5键是否按下 SETB EA;开中断 RETI SW5: INC DIS3;K5键按下则加分 INC DIS3 LJMP RCOMPARE RGRADE3: LCALL DELAY;延时去抖动 JNB K6,SW6;再次确定K6键是否按下 SETB EA;开中断 RETI SW6: INC DIS3;K6键按下则加分 INC DIS3 INC DIS3 LJMP RCOMPARE RCOMPARE: MOV A

30、,DIS3 CJNE A,#10,RCOMP;(DIS3)的值与10进行比较 SJMP RCARRY;(DIS3)等于10则跳转到进位子程序 RCOMP: JC $+2;(DIS3)小于10则输出显示 LJMP DISPLAY2 SJMP RCARRY;(DIS3)大于10则跳转到进位子程序 RCARRY: CLR C 16 MOV A,DIS3 SUBB A,#10 INC DIS2 MOV A,DIS2 CJNE A,#10,$+9;(DIS2)的值与10进行比较 LCALL CLEAR;(DIS2)等于10则数码管显零 LJMP DISPLAY2 MOV DIS3,A LJMP DISP

31、LAY2 CLEAR: MOV DIS3,#00H;显示缓冲区清零 MOV DIS2,#00H MOV DIS1,#00H MOV DIS0,#00H RET DELAY: MOV R0,#0AH;延时10ms DL2: MOV R1,#7DH DL1: NOP NOP DJNZ R1,DL1 DJNZ R0,DL2 RET DISPLAY1: MOV R7,#4H;字形码输出 MOV R0,#DIS3 LP: MOV A,R0 MOV DPTR,#1000H MOVC A,A+DPTR;查表 MOV SBUF,A;将字形码串行输出 JNB TI,$ CLR TI;软件清除串行输出中断标志位D

32、EC R0 DJNZ R7,LP RET DISPLAY2: LCALL DISPLAY1 SETB EA;开中断 RETI EXCHANGE: 17 CLR EA;关中断 MOV A,DIS0;分数位置交换 XCH A,DIS2 MOV DIS0,A MOV A,DIS1 XCH A,DIS3 MOV DIS1,A LJMP DISPLAY2 ORG 1000H DB 0FCH,60H,0DAH,0F2H,66H DB 0B6H,0BEH,0E0H,0FEH,0F6H END 附录3 系统调试 对51单片机构成的系统而言,Proteus是一款较好的仿真调试软件。首先应用元件库中的已有元件绘制电路原理图,然后修改所需参数。 原理图绘制完成后,将由WAVE软件编制的系统软件下载到51片子里。最后点击运行,进行调试、修改和完善。 18 19

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号