1摘要单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。本设计是篮球计时计分器,主要在篮球比赛中用于记录整个赛程的比赛时间和显示甲、乙两队在比赛过程中的比分情况。该计时计分器有部分组成:一部分用来实现计时功能,其基本原理和定时闹相似;另一部分用来实现计分功能,其基本原理和计数器相似,只不过所要记录和显示的对象是按键按下的次数,每按下一次计数值加一。主控芯片采用AT89C51,采用汇编语言进行编程,编程后利用KeiluVision3来进行编译,再生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能是否能够正常实现。该设计能够实现计时和计分功能,采用共阴极数码管进行动态显示,加分的部分用按键来完成,每按一次发送一个计数脉冲,计数值加一。但是效果病不是很完美,计时显示部分有时候会出现不稳定的情况,通过对晶振和电容值调整后仍然没有改变效果,而且该设计最大遗憾是没有实现中场时交换比分和结束时进行报警的功能。2目录1概述............................................................31.1发展背景.....................................................31.2系统的功能...................................................32系统总体方案及硬件设计...........................................42.1系统组成.....................................................42.2系统定时控制部件设计.........................................42.3系统的复位电路设计...........................................52.4显示系统的设计...............................................63软件设计........................................................73.1程序流程图...................................................73.2计时部分设计................................................73.3加分部分设计................................................93.4显示子程序设计..............................................103.5延时子程序设计..............................................114Proteus软件仿真................................................124.1不工作状态仿真图............................................124.2计时、计分工作状态仿真图....................................125课程设计体会...................................................13参考文献.........................................................14附1生成机器代码.................................................15附2源程序代码..................................................16附3系统原理图:................................................2231概述1.1发展背景体育比赛计时记分系统是对体育比赛过程中所产生的时间、比分等数据进行快速采集记录、加工处理、传递利用的信息系统。根据不同运动项目的不同比赛规则要求,体育比赛的计时记分系统包括测量类、评分类、命中类、制胜类、得分类等多种类型。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,足球比赛的计时记分系统是一种得分类型的系统。篮球比赛的计时记分系统由计时器、记分器等多种电子设备组成。同时,根据目前高水平足球比赛要求,完善的足球比赛计时记分系统设备应该能够与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现提高比赛现场感、表演娱乐观众等功能。1.2系统的功能随着科技的迅猛发展,单片机在计算机应用领域中起到了越来越重要的作用.单片机体积小,功能强,集成了微型机的各部件,大大缩短了系统内信号传送的距离,从而提高了系统的可靠性及运行速度。该系统主要是线以下两种功能:○1计分:能同时显示甲、乙两队比分,最大计分数为99。能分别对甲、乙两队比分进行加分。○2计时:从比赛开始时启动计时工作方式,初始时间为00,最大计时为99分钟,经过修改后应该还能实施计时暂停,还能设定为倒计时。○3哨音提示:设定的比赛时间到了,能自动哨音提示比赛结束.42系统总体方案及硬件设计2.1系统组成篮球比赛计分的准确性和计时的精确度是要求很高的,而单片机在这方面有着出色的表现。本系统采用频率为12MHz的芯片,整个系统由按键、计时显示、计分显示等部分组成:该系统组成方框图如图1所示:图1:系统原理框图单片机是该系统电路的核心组成部分,系统的各种功能都是在单片机内通过编程来实现。单片机选用ATMEL公司的AT89C51.AT89C51是一个内含4K字节FLASHRAM(闪速存储器)、128字节RAM和32条I/O口线的8位单片微处理器。AT89C51的的X1(19脚)和X2(18脚)外接6MHZ晶振,为单片机提供时钟信号。晶振两引脚各串一个瓷片电容,容值为20P~50P,用于提高晶振频率的稳定性。2.2系统定时控制部件设计定时控制部件是在规定的时刻发出各种操作所需的全部内部和外部控制信号,使各功能元件协调工作,完成指令所规定的功能。主要任务是产生一个工作时序,其工作需要时钟电路提供一个工作频率。MCS-51内部有一个用于构成震荡器的高增益反向放大器,此放大器的输入端和输出端分别是XTAL1和XTAL2,在XTAL1和XTAL2上外接时钟源可构成时钟电路。单片机的生产工艺不同,时钟的产生方式也不同有内部和外部时钟产生两种时钟方式。按钮单片机芯片时间显示比分显示5图2内部时钟产生方式本系统采用的是内部时钟产生方式,如图2所示:在XTAL1和XTAL2两端跨接晶体或陶瓷谐振器,于内部反向器构成稳定的自激振荡器。其发出的脉冲直接送入片内的定时控制部件。2.3系统的复位电路设计图3上电加按钮电平复位MCS-51单片机通常采用上电复位、按钮电平复位、外部脉冲复位、上电加按钮电平复位、程序运行监视复位等方式。我采用的是上电加按钮电平复位,电路图如图所示,是上电自动复位与按钮电平复位的组合。上电复位利用电容充电来实现,即上电瞬间RST/Vpd端的电位与Vcc相同,随着充电电流的减少,RST/Vpd的电位下降,最后被钳位在0伏,按钮电平复位,当按钮按下后,电源Vcc同过电阻施加在单片机复位端RST/Vpd上,实现单片机的复位。P1.0P1.1P1.2C322pR17k5R37k5C12u2C22u2X1CRYSTAL62.4显示系统的设计根据系统设计要求,为了显示比赛的时间及比分,采用了8个7段LED显示器,其中4个用于显示比赛时间,其余4个用于显示主队和客队的分数.图4显示部分电路图8位动态LED显示器由2个8位并行的控制端口(PA72PA0,PB72PB0)进行控制,其中一个控制段选码,一个控制位选码。由于所有位的段选皆由一个I/O口控制,因此,在任一瞬间;8位LED显示器要么全部或多位显示同一个字符,要么只在一个指定位上显示该字符,这取决于位选控制I/O端口的状态。可使显示器和各位轮流依次显示一瞬间,在此瞬间,从段选口送出该位的段选码,如此循环反复,只要保证每秒钟对所有位的循环在20次以上,由于人眼的视觉暂留效应,就会看到显示器的各位“同时”显示各自的内容。P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.0P0.1P0.2P0.3P0.4P0.5P0.6P1.4P1.5P1.2P1.3P1.0P1.1P3.0P2.0P2.3P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P2.1P2.2P3.0P3.1P3.2P3.3P3.4P3.5P3.6P2.0P2.1P2.2P2.3P0.7红队蓝队计时部分73软件设计3.1程序流程图3.2计时部分设计MAIN:LCALLFLASH1LCALLFLASH2主程序采用长条转指令进入计时部分,第一步跳转将所有计数初值清零,再一次跳转进入计时循环。FLASH1:SETBIT0SETBEA8MOVONE,#00MOVTWO,#00MOVTHREE,#00MOVFIVE,#00MOVSIX,#00RETDAY:MOVA,ONEMOVB,#10DIVABMOV11H,A;将商放在11H中MOVA,BMOV12H,ALCALLDSP;调显示子程序INCONEMOVA,ONECJNEA,#60,DAY;当累计到60时,进一位此程序为显示计时秒部分,首先对缓存区ONE清零,然后采用DIV指令,将其拆分成分别显示的十位与个位,并分别将两个内容送入不同缓存去,通过长跳转指令进入显示部分,当显示过后,再一次将显示秒的缓存区加一,然后与60相比,判断是否相等,当相等时程序顺序执行,程序进入显示分部分,若不等,程序返回,再次对秒位进行判断控制,实现循环。MOVONE,#00MOVA,ONEMOVA,#00CLRAINCTWOMOVA,TWOMOVB,#10DIVABMOV21H,A;显示分计数的十位MOVA,BMOV22H,ALCALLDSP;调显示子程序MOVA,TWOCJNEA,#59,DAY1;当分累计到60时向时进位此段为显示分的部分,通过秒的进位进行判断控制,当秒每累计到60次时,程序通过CJNE指令顺序执行,对分进行操作,同样通过除指令,分别送入不同9缓存去,进行显示,并与60相比,若相等程序顺序执行进入显示小时部分,若不等,程序跳转返回到秒位显示部分,继须等待60次。MOVTWO,#00INCTHREEMOVA,THREEMOVB,#10DIVABMOV31H,AMOVA,BMOV32H,ALCALLDSP;调显示子程序MOVA,THREECJNEA,#24,DAY2;当时累计到24时,进入循环MOVONE,#00MOVTWO,#00MOVTHREE,#00AJMPMAINRET此段程序为计时部分显示小时的部分,当分位累计到60次时,程序顺序执行,对小时位进行操作,同样通过跳转进入显示程序,并与24相比,若不等,程序跳回显示秒位,等待其进位,从而等待分进位,再次判断与60关系,进入小时部分,从而进行循环,若相等,程序将所有秒,分,时的缓存区清零。并返回主程序。3.3加分部分设计CCTV:LCALLDISP