篮球计时计分器设计报告8400字_第1页
篮球计时计分器设计报告8400字_第2页
篮球计时计分器设计报告8400字_第3页
篮球计时计分器设计报告8400字_第4页
篮球计时计分器设计报告8400字_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

篮球计时计分器设计报告8400字

湖南铁道职业技术学院电气工程系电子设计大赛设计报告作品名称:基于单片机的篮球计时记分系统的设计作者:智能电子081班**创作时间:20XX年4月6日目录一、前言二、设计任务与要求三、总体方案四、单元模块设计五、程序六、操作说明七、设计总结八、参考文献九、附:(原理图)一、前言1、引言在当今社会随着物质生活的提高,人们对精神文化的需求也越来越高。篮球竞技就是其中非常重要的一个方面,而计时记分系统在竞赛中更是重中之重。

在篮球比赛中,总的倒计时是必需的,规定为12min。除此以外,为了加快比赛节奏,还规定了队员的持球时间不能超过24s,否则就犯规。这里所设计的计时器涵盖了以上要求,可用于篮球比赛中。用于对总时间和持球时间24s的限制。2、设计简介本设计是采用AT89S51单片机设计的一个用于篮球比赛的篮球计时计分器。本设计采用定时器T0中断进行计时,显示部分分为计时显示和计分显示两部分,均采用LED数码管动态显示,用于显示整个比赛赛程的比赛时间和两队的比分情况。采用四个键盘和外部中断0实现输入功能,用于赛前调节时间、比赛过程中计分、暂停和开始、比赛时间结束以后报警等功能。另外,本设计最大的特点是对设定时间的记忆功能。基于篮球比赛是分节进行的,每节有固定的时间。本设计可事先设定一节比赛的时间,一节比赛结束后,比分保持不变,再次开始后,是从上次设定的时间开始计时。本设计采用AT89S51单片机作为核心部件,整个系统结构简单、实用性强、操作简便、具有低功耗,可靠性,安全性以及低成本等特点,该设计方案完全满足篮球计分器的设计要求。

现在篮球比赛计时器的设计大都比较的复杂,所用芯片太多,造成整体的价格提高,而且软件设计比较的复杂。导致性价比不是很高,很难得到广泛的推广。我所设计的这个篮球比赛计时器一改他们的缺点,硬件比较的简单,软件也很容易。因此,实用性比较大。二、设计任务与要求1、设计任务:设计并制作一个用于篮球比赛计时计分器,能显示各种比赛时间,并显示比赛比分,能实现每次加、减分和时间修改操作,平时显示时间、时间精确到0.1S。2、设计要求:(一)采用单片机控制,响应迅速,判别精确;主控台面上有按键控制,可同时对比赛时的分数显示进行加分减分,能显示整个赛程的比赛时间,暂停时间和比赛的节数。(二)在比赛的过程中能够随时刷新各队在整个赛程中的比分,通过按键输入比分,显示在数码管上;按键分别为加1分、减1分键和改变当前记分球队功能键。(三)具有计时功能,能正确设置倒计时时间和比赛的节数,每节总时间倒计时,24S倒计时,倒计时到声光报警。比如,第1节开始12分种倒计时,屏幕显示“7200.0”“24.0”准备开始倒计时,按开始键开始倒计时。(四)具有开始、暂停功能。三、总体方案1、方案比较与选择一、单片机的选型方案一:51单片机虽然51单片机是8位的,采用总线结构,但具有编程控制简便、接口简单、工作可靠,价格经济,能耗少,容易实现系统小型化。方案二:61单片机61单片机是在51的基础上扩展起来的,虽然比51多了看门狗,并且是非总线结构,它是16位的,支持16位硬件乘法,还有专门的乘加指令,现在应用非常广泛,但61单片机价格较贵,要继续扩展,比较不方便。因此本系统采用51单片机来实现。二、计时方案方案一:采用计时芯片针对计算机系统对计时芯片的要求,各大芯片厂家推出了键时钟/倒计时/正计时各种芯片,可采用自动控制计时芯片,通过触发控制电路使计时器自动地计时,达到预定时间后芯片重新开始计时(实现倒计时功能);也可以通过触发控制电路使计时器不计时,达到预定时间后芯片重新开始计时(实现暂停功能),不需要程序干预。计算机可通过中断或查询方式读取计时器数据,实现计时的暂停的功能,并进行显示,计时功能的实现就无需占用CPU的时间,程序简单,控制精度高,因此在工业控制系统中多采用这一类专用芯片来实现计时功能。方案二:软件控制利用MCS-51内部的定时器/计数器进行中断定时,配合软件延时实现计时。该方案节省硬件成本,并且可综合运用定时器/计数器、中断以及程序设计的知识。因此本系统采用软件方法来实现计时。2、设计思路根据设计任务与要求,设计思路如下:系统采用51单片机软件方法来实现。设计出篮球记分、计时系统,能实现两队比分的加分、减分(防误操作)、计时和各种显示效果;其控制系统的模块有:6位动态显示记分模块、7位动态显示计时模块、两队加分减分模块、按键查询模块、分秒控制系统;计分统采用了指令冗余和按键延时去抖等抗干扰措施。程序由延时函数、显示函数、主函数、中断函数、按键扫描函数等组成,主函数中调用显示函数显示时间、比分并调用延时函数,比分与时间相互切换进而实现篮球比分、时间显示修改功能。(1)时间显示用7个数码管,分数显示用6个数码管,用来动态扫描方式显示。时间由单片机的P2口扫描,分数由P0口扫描。(2)时间的暂停与开始,分数的累加,通过接入键盘电路实现。系统共涉及4个按键,分别定义为:

S1键功能:1、启动、暂停键,即当比赛需要启动、暂停时,可以使24s和总时间随时开始或者暂停;2、切换键,即显示比分状态切换显示时间状态;3、切换键,即退出1队加减分状态进入2队加减分状态;S2键功能:1、切换键,即显示比分状态切换显示时间状态;2、加分键,1队加分键、2队加分键即分数加1键;S3键功能:1、减分键,1队加分键、2队加分键即分数加1键;2、24秒倒计时复位键,即24秒倒计时完或中途状态中都能重新赋值24秒;S4键功能:12分倒计时复位键,即12分倒计时完开始下一节比赛计时即重新赋值12分钟;3、硬件电路的设计

根据设计要求与设计思路,确定该系统的设计方案,图1为该系统设计方案的硬件电路设计框图。硬件电路由7部分组成:即按键输入电路、单片机、时钟电路、复位电路、LED数码管段驱动电路和LED数码管位驱动电路,LED显示器。四、单元模块设计1、设计特点:本设计特点是采用模块化的设计。其优点是:每个模块的程序结构简单,任务明确,易于编写,调试和修改。程序可读性好,对程序的修改可局部进行,其他部分可保持不变。这里所设计的篮球比赛系统,也可以加以修改,用于其他比赛系统或其他用倒计时的系统中。根据模块的划分原则,将模块程序划分成几个模块,如图2所示:1、延时模块:程序调用前先声明,能随时随地调用。2、按键模块:按键扫描程序主程序中调用,方便快捷。3、数据输出模块:时间模块:每节总时间倒计时与24秒倒计时,倒计时到声光报警模块。比分模块:具有加减分功能,并在数码管上显示双方比分比赛双方比分能随时随地修改。4、定时中断模块:同时控制每节总时间倒计时和24S倒计时。2、软件设计流程图:3、设计结果设计的篮球比赛计时记分系统。按照设计要求实现了单节12rain的倒计时,24s进攻的倒计时,以及两队的记分功能,实现了篮球计时计分器的全部功能,符合NBA篮球计时计分要求。五、程序#include<reg51.h>typedefunsignedcharUINT8;typedefunsignedintUINT16;typedefunsignedlongintUINT32;全局声明----------------------------------*/codeUINT8SEGMENT[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};codeUINT8SELECT_Score[6]={0x7f,0xbf,0xdf,0xfb,0xfd,0xfe};codeUINT8SELECT_12munite[4]={0x7f,0xbf,0xdf,0xef};codeUINT8SELECT_24sec[3]={0xfb,0xfd,0xfe};#defineS10x0e#defineS20x0d#defineS30x0b#defineS40x0fUINT16ScoreA,ScoreB;UINT16sec=240,munite=7200;sbitBELL=P3^5;延时函数----------------------------------*/voidDelay(UINT16t){UINT16i,j;for(i=0;i<t;i++)for(j=0;j<113;j++);}键盘扫描---------------------------------*/UINT8Scankey(void){UINT8key;if((P3&0x0f)==0x0f)return(0xff);Delay(10);if((P3&0x0f)==0x0f)return(0xff);key=P3&0x0f;while((P3&0x0f)!=0x0f);return(key);}12分计时显示函数-----------------------------------*/voidDisplay_munite(UINT16munite,UINT8flag){staticUINT8count=0,count1=0;P2=0xff;switch(count){case0:P0=SEGMENT[munite/1000];break;case1:P0=SEGMENT[munite%1000/100];break;case2:P0=SEGMENT[munite%100/10]&0x7f;break;case3:P0=SEGMENT[munite%10];break;}count1++;if(flag==1&&count1<100){}elseP2=SELECT_12munite[count];count1%=200;count++;count%=4;}24秒计时显示函数-----------------------------------*/voidDisplay_sec(UINT16sec,UINT8flag){staticUINT8count=0,count1=0;P2=0xff;switch(count){case0:P0=SEGMENT[sec/100];break;case1:P0=SEGMENT[sec%100/10]&0x7f;break;case2:P0=SEGMENT[sec%10];break;}count1++;if(flag==1&&count1<100){}elseP2=SELECT_24sec[count];count1%=200;count++;count%=3;}计分显示函数-----------------------------------*/voidDisplay_Score(UINT8ScoreA,UINT8ScoreB){staticUINT8count=0;P2=0xff;switch(count){case0:P0=SEGMENT[ScoreA/100];break;case1:P0=SEGMENT[ScoreA%100/10];break;case2:P0=SEGMENT[ScoreA%10];break;case3:P0=SEGMENT[ScoreB/100];break;case4:P0=SEGMENT[ScoreB%100/10];break;case5:P0=SEGMENT[ScoreB%10];break;}P2=SELECT_Score[count];count++;count%=6;}中断初始化-----------------------------------*/voidTimer0_Int(void){TMOD=0x01;TH0=0x4c;TL0=0x00;IE=0x82;}比分加减、启动暂停函数---------------------------------*/voidAdjust(void){UINT8c,e,num;UINT8ScoreA,ScoreB;c=Scankey();switch(c){caseS1:TR0=!TR0;break;caseS2:TR0=0;while(1){Display_Score(ScoreA,ScoreB);Delay(2);e=Scankey();switch(e){caseS1:num++;break;caseS2:if(num==0)ScoreA+=1;if(num==1)ScoreB+=1;break;caseS3:if(num==0)ScoreA-=1;if(num==1)ScoreB-=1;break;}if(num==2)break;}break;caseS3:TR0=0;sec=240;BELL=1;break;caseS4:TR0=0;munite=7200;BELL=1;break;}}主函数-----------------------------------*/main(){Timer0_Int();while(1){Adjust();Delay(2);if(sec==0){TR0=0;Display_sec(0,1);BELL=0;}elseif(munite==0){TR0=0;Display_munite(0,1);BELL=0;}elseDisplay_sec(sec,0);Delay(2);Display_munite(munite,0);}}定时器T0-----------------------------------*/voidTimer_sec_Int(void)interrupt1{staticUINT8num=0;TH0=0x4c;TL0=0x00;num++;while(num==2){sec--;num=0;munite--;num=0;}}五、操作说明书1、设计功能说明本设计以89S5l单片机为核心器件,组成一个电子计时记分系统;系统显示由8位数码管组成,分别为记分牌与倒计时牌;可随时记分,随时暂停,随时开始。2、操作说明1、接通电源,系统初始化,数码管显示倒计时状态为小节总倒计时和进攻倒计时:“720.0,24.0”。2、当按下开始/暂停按钮S1后,计时的缓冲区初始化开始倒计时,系统通过不断地查询加减分按键(S2,S3)是否按下,若有,经过按键去抖动程序后,查询到当按下S2键,系统从倒计时状态切换到比分状态显示,显示为“000,000”然后选择给红队或者篮队加减分,并进行相应队的记分显示处理,同时不断地查询按键,判断有无其他指令。如有无暂停,有就调用暂停程序,执行暂停;同时查询S4键有无按下重新赋值进攻时间24S,当第一节比赛结束后,按下S3键重新赋值总倒计时12分,这样又进行第二节的比赛。第三节、第四节与第一节的处理方法相同。中途可以任意时候接连按下S1两次,从比分显示状态切换至倒计时显示状态。3、进入比分显示状态后,系统默认为先为红队加减分状态。按下S1键,则切换至为篮队加减分状态。同时,系统不断地查询按键,判断是加分(S2)还是减分(S3)指令,并作出相应的命令。附:系统共涉及的4个按键,分别定义资料:

S1键功能:1、启动、暂停键,即当比赛需要启动、暂停时,可以使24s和总时间随时开始或者暂停;2、切换键,即显示比分状态切换显示时间状态;3、切换键,即退出1队加减分状态进入2队加减分状态;S2键功能:1、切换键,即显示比分状态切换显示时间状态;2、加分键,1队加分键、2队加分键即分数加1键;S3键功能:1、减分键,1队加分键、2队加分键即分数加1键;2、24秒倒计时复位键,即24秒倒计时完或中途状态中都能重新赋值24秒;S4键功能:12分倒计时复位键,即12分倒计时完开始下一节比赛计时即重新赋值12分钟;七、设计总结一、设计心得:1、勇往直前,迎难而上在此次任务中,我遇到了各种各样的问题,通过努力下最终解决了难题。问题是用来解决的,只要勇往直前,就可以解决所遇到的难题。2、努力学习,共创未来通过此次个人设计与制作,让我更深入的了解到单片机的功能,提高了对单片机学习的兴趣。培养了兴趣,找到了自己的知识盲点,对以后学习有很好的向导作用。二、不足与改进:1、硬件:本设计硬件有待进一步完善和提高。例:为节约成本只用了八个LED数码管,时间与比分不能同时显示,只能通过切换实现显示功能。不过这也是本设计的一大特点:成本低廉。2、软件程序:本设计程序也进一步完善和提高。例:为节约成本只用了四个按键控制,因而只能加减1分,不能实现加减2分、3分;无中场比赛调换双方比分位置功能;没有实现加时赛功能。3、总结:不过这些都是可以解决的问题,而且不难,只要在精心准备下,一定能更好。三、结束语

本设计系统采用MCS-51单片机AT89S51实现,外围电路简单,可维护性强;完全能满足篮球比赛中计时、记分的设计要求,通过改变系统软件的方法,还可以将该系统改为乒乓球、排球计分系统。八、参考文献[1]王静霞主编.《单片机应用技术(C语言版)》[M].电子工业出版社,2009年.[2]刘守义主编.《单片机应用技术》[M].西安电子科技大学出版社,2002年.[3]张大明主编.《单片微机控制应用技术》[M].机械工业出版社,2000年.[4]李俊婷主编.《计算机辅助电路设计与ProtelDXP》[M].高等教育出版社,2005年.[5]百度资讯.九、附:(原理图)

+篮球计时计分器设计报告发表于:2022.12.26来自:字数:8800手机看范文湖南铁道职业技术学院电气工程系电子设计大赛设计报告作品名称:基于单片机的篮球计时记分系统的设计作者:智能电子081班**创作时间:20XX年4月6日目录一、前言二、设计任务与要求三、总体方案四、单元模块设计五、程序六、操作说明七、设计总结八、参考文献九、附:(原理图)一、前言1、引言在当今社会随着物质生活的提高,人们对精神文化的需求也越来越高。篮球竞技就是其中非常重要的一个方面,而计时记分系统在竞赛中更是重中之重。

在篮球比赛中,总的倒计时是必需的,规定为12min。除此以外,为了加快比赛节奏,还规定了队员的持球时间不能超过24s,否则就犯规。这里所设计的计时器涵盖了以上要求,可用于篮球比赛中。用于对总时间和持球时间24s的限制。2、设计简介本设计是采用AT89S51单片机设计的一个用于篮球比赛的篮球计时计分器。本设计采用定时器T0中断进行计时,显示部分分为计时显示和计分显示两部分,均采用LED数码管动态显示,用于显示整个比赛赛程的比赛时间和两队的比分情况。采用四个键盘和外部中断0实现输入功能,用于赛前调节时间、比赛过程中计分、暂停和开始、比赛时间结束以后报警等功能。另外,本设计最大的特点是对设定时间的记忆功能。基于篮球比赛是分节进行的,每节有固定的时间。本设计可事先设定一节比赛的时间,一节比赛结束后,比分保持不变,再次开始后,是从上次设定的时间开始计时。本设计采用AT89S51单片机作为核心部件,整个系统结构简单、实用性强、操作简便、具有低功耗,可靠性,安全性以及低成本等特点,该设计方案完全满足篮球计分器的设计要求。

现在篮球比赛计时器的设计大都比较的复杂,所用芯片太多,造成整体的价格提高,而且软件设计比较的复杂。导致性价比不是很高,很难得到广泛的推广。我所设计的这个篮球比赛计时器一改他们的缺点,硬件比较的简单,软件也很容易。因此,实用性比较大。二、设计任务与要求1、设计任务:设计并制作一个用于篮球比赛计时计分器,能显示各种比赛时间,并显示比赛比分,能实现每次加、减分和时间修改操作,平时显示时间、时间精确到0.1S。2、设计要求:(一)采用单片机控制,响应迅速,判别精确;主控台面上有按键控制,可同时对比赛时的分数显示进行加分减分,能显示整个赛程的比赛时间,暂停时间和比赛的节数。(二)在比赛的过程中能够随时刷新各队在整个赛程中的比分,通过按键输入比分,显示在数码管上;按键分别为加1分、减1分键和改变当前记分球队功能键。(三)具有计时功能,能正确设置倒计时时间和比赛的节数,每节总时间倒计时,24S倒计时,倒计时到声光报警。比如,第1节开始12分种倒计时,屏幕显示“7200.0”“24.0”准备开始倒计时,按开始键开始倒计时。(四)具有开始、暂停功能。三、总体方案1、方案比较与选择一、单片机的选型方案一:51单片机虽然51单片机是8位的,采用总线结构,但具有编程控制简便、接口简单、工作可靠,价格经济,能耗少,容易实现系统小型化。方案二:61单片机61单片机是在51的基础上扩展起来的,虽然比51多了看门狗,并且是非总线结构,它是16位的,支持16位硬件乘法,还有专门的乘加指令,现在应用非常广泛,但61单片机价格较贵,要继续扩展,比较不方便。因此本系统采用51单片机来实现。二、计时方案方案一:采用计时芯片针对计算机系统对计时芯片的要求,各大芯片厂家推出了键时钟/倒计时/正计时各种芯片,可采用自动控制计时芯片,通过触发控制电路使计时器自动地计时,达到预定时间后芯片重新开始计时(实现倒计时功能);也可以通过触发控制电路使计时器不计时,达到预定时间后芯片重新开始计时(实现暂停功能),不需要程序干预。计算机可通过中断或查询方式读取计时器数据,实现计时的暂停的功能,并进行显示,计时功能的实现就无需占用CPU的时间,程序简单,控制精度高,因此在工业控制系统中多采用这一类专用芯片来实现计时功能。方案二:软件控制利用MCS-51内部的定时器/计数器进行中断定时,配合软件延时实现计时。该方案节省硬件成本,并且可综合运用定时器/计数器、中断以及程序设计的知识。因此本系统采用软件方法来实现计时。2、设计思路根据设计任务与要求,设计思路如下:系统采用51单片机软件方法来实现。设计出篮球记分、计时系统,能实现两队比分的加分、减分(防误操作)、计时和各种显示效果;其控制系统的模块有:6位动态显示记分模块、7位动态显示计时模块、两队加分减分模块、按键查询模块、分秒控制系统;计分统采用了指令冗余和按键延时去抖等抗干扰措施。程序由延时函数、显示函数、主函数、中断函数、按键扫描函数等组成,主函数中调用显示函数显示时间、比分并调用延时函数,比分与时间相互切换进而实现篮球比分、时间显示修改功能。(1)时间显示用7个数码管,分数显示用6个数码管,用来动态扫描方式显示。时间由单片机的P2口扫描,分数由P0口扫描。(2)时间的暂停与开始,分数的累加,通过接入键盘电路实现。系统共涉及4个按键,分别定义为:

S1键功能:1、启动、暂停键,即当比赛需要启动、暂停时,可以使24s和总时间随时开始或者暂停;2、切换键,即显示比分状态切换显示时间状态;3、切换键,即退出1队加减分状态进入2队加减分状态;S2键功能:1、切换键,即显示比分状态切换显示时间状态;2、加分键,1队加分键、2队加分键即分数加1键;S3键功能:1、减分键,1队加分键、2队加分键即分数加1键;2、24秒倒计时复位键,即24秒倒计时完或中途状态中都能重新赋值24秒;S4键功能:12分倒计时复位键,即12分倒计时完开始下一节比赛计时即重新赋值12分钟;3、硬件电路的设计

根据设计要求与设计思路,确定该系统的设计方案,图1为该系统设计方案的硬件电路设计框图。硬件电路由7部分组成:即按键输入电路、单片机、时钟电路、复位电路、LED数码管段驱动电路和LED数码管位驱动电路,LED显示器。四、单元模块设计1、设计特点:本设计特点是采用模块化的设计。其优点是:每个模块的程序结构简单,任务明确,易于编写,调试和修改。程序可读性好,对程序的修改可局部进行,其他部分可保持不变。这里所设计的篮球比赛系统,也可以加以修改,用于其他比赛系统或其他用倒计时的系统中。根据模块的划分原则,将模块程序划分成几个模块,如图2所示:1、延时模块:程序调用前先声明,能随时随地调用。2、按键模块:按键扫描程序主程序中调用,方便快捷。3、数据输出模块:时间模块:每节总时间倒计时与24秒倒计时,倒计时到声光报警模块。比分模块:具有加减分功能,并在数码管上显示双方比分比赛双方比分能随时随地修改。4、定时中断模块:同时控制每节总时间倒计时和24S倒计时。2、软件设计流程图:3、设计结果设计的篮球比赛计时记分系统。按照设计要求实现了单节12rain的倒计时,24s进攻的倒计时,以及两队的记分功能,实现了篮球计时计分器的全部功能,符合NBA篮球计时计分要求。五、程序#include<reg51.h>typedefunsignedcharUINT8;typedefunsignedintUINT16;typedefunsignedlongintUINT32;全局声明----------------------------------*/codeUINT8SEGMENT[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};codeUINT8SELECT_Score[6]={0x7f,0xbf,0xdf,0xfb,0xfd,0xfe};codeUINT8SELECT_12munite[4]={0x7f,0xbf,0xdf,0xef};codeUINT8SELECT_24sec[3]={0xfb,0xfd,0xfe};#defineS10x0e#defineS20x0d#defineS30x0b#defineS40x0fUINT16ScoreA,ScoreB;UINT16sec=240,munite=7200;sbitBELL=P3^5;延时函数----------------------------------*/voidDelay(UINT16t){UINT16i,j;for(i=0;i<t;i++)for(j=0;j<113;j++);}键盘扫描---------------------------------*/UINT8Scankey(void){UINT8key;if((P3&0x0f)==0x0f)return(0xff);Delay(10);if((P3&0x0f)==0x0f)return(0xff);key=P3&0x0f;while((P3&0x0f)!=0x0f);return(key);}12分计时显示函数-----------------------------------*/voidDisplay_munite(UINT16munite,UINT8flag){staticUINT8count=0,count1=0;P2=0xff;switch(count){case0:P0=SEGMENT[munite/1000];break;case1:P0=SEGMENT[munite%1000/100];break;case2:P0=SEGMENT[munite%100/10]&0x7f;break;case3:P0=SEGMENT[munite%10];break;}count1++;if(flag==1&&count1<100){}elseP2=SELECT_12munite[count];count1%=200;count++;count%=4;}24秒计时显示函数-----------------------------------*/voidDisplay_sec(UINT16sec,UINT8flag){staticUINT8count=0,count1=0;P2=0xff;switch(count){case0:P0=SEGMENT[sec/100];break;case1:P0=SEGMENT[sec%100/10]&0x7f;break;case2:P0=SEGMENT[sec%10];break;}count1++;if(flag==1&&count1<100){}elseP2=SELECT_24sec[count];count1%=200;count++;count%=3;}计分显示函数-----------------------------------*/voidDisplay_Score(UINT8ScoreA,UINT8ScoreB){staticUINT8count=0;P2=0xff;switch(count){case0:P0=SEGMENT[ScoreA/100];break;case1:P0=SEGMENT[ScoreA%100/10];break;case2:P0=SEGMENT[ScoreA%10];break;case3:P0=SEGMENT[ScoreB/100];break;case4:P0=SEGMENT[ScoreB%100/10];break;case5:P0=SEGMENT[ScoreB%10];break;}P2=SELECT_Score[count];count++;count%=6;}中断初始化-----------------------------------*/voidTimer0_Int(void){TMOD=0x01;TH0=0x4c;TL0=0x00;IE=0x82;}比分加减、启动暂停函数---------------------------------*/voidAdjust(void){UINT8c,e,num;UINT8ScoreA,ScoreB;c=Scankey();switch(c){caseS1:TR0=!TR0;break;caseS2:TR0=0;while(1){Display_Score(ScoreA,ScoreB);Delay(2);e=Scankey();switch(e){caseS1:num++;break;caseS2:if(num==0)ScoreA+=1;if(num==1)ScoreB+=1;break;caseS3:if(num==0)ScoreA-=1;if(num==1)ScoreB-=1;break;}if(num==2)break;}break;caseS3:TR0=0;sec=240;BELL=1;break;caseS4:TR0=0;munite=7200;BELL=1;break;}}主函数-----------------------------------*/main(){Timer0_Int();while(1){Adjust();Delay(2);if(sec==0){TR0=0;Display_sec(0,1);BELL=0;}elseif(munite==0){TR0=0;Display_munite(0,1);BELL=0;}elseDisplay_sec(sec,0);Delay(2);Display_munite(munite,0);}}定时器T0-----------------------------------*/voidTimer_sec_Int(void)interrupt1{staticUINT8num=0;TH0=0x4c;TL0=0x00;num++;while(num==2){sec--;num=0;munite--;num=0;}}五、操作说明书1、设计功能说明本设计以89S5l单片机为核心器件,组成一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论