云南机电职业技术学院
体育比赛计分系统是对体育比赛过程中所产生的时间,比分等数据进行快速采集记录,加工处理,传递利用的信息系统。根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类,评分类,命中类,制胜类得分类等多种类型。
篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时系统是一种得分类型的系统。篮球比赛的计时系统由计时器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。篮球计时计分器就是以单片机为核心的计时计分系统,由于对于单片机是刚刚学习,对于编程也不是十分熟练,故本次设计的内容相较简单,达不到正式比赛需求,仅供学习之用。
2系统总体方案及硬件设计
2.1AT89C51简介
单片机是在一块芯片中集成了CPU、RAM、ROM、
定时/计数器和多功能I/O口等计算机所需要的基本部
件的大规模集成电路,又称MCU。
其以体积小、功能全、性价比等诸多优点而独具
特色,在工业控制、尖端武器、通信设备、家用电器
等嵌入式应用领域中独占鳌头。如果说C语言程序设
计课程设计的基础课,那么单片机以其系统硬件构架
完整、价格低廉、学生能动手等特点,成为工科学生
硬件设计基础课。其管脚图如右图所示。
图2.1AT89C51管脚图
云南机电职业技术学院
图2.189C51单片机内部结构图
时钟电路由AT
89C51的18、19管脚的时钟端(_TAL1及_TAL2)以及12MHz晶振、30pF的电容组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由电阻,电容、开关组成,分别接至AT89C51的RST复位输入端。
时钟电路复位电路
2.2数码管显示原理
数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。我们分别把他命名为A,B,C,D,E,F,G,H。
图2.2数码管内部结构图dpedgnd3
云南机电职业技术学院
假设我们要显示一个数字2,那么A、B、G、E、D这5个段的发光管亮就可以了,C、F、H不亮,同时由于接法为共阳接法,那么为低电平是亮,为高电平是灭。从高往低排列,P1.7-P1.0写成二进制为0,把他转化为16进制则为A2H。我们可以根据硬件的接线把数码管显示数字编制成一个表格,见下表,以后直接调用就行了。
表2.1共阳极数码管显示
数码管的接口有静态接口和动态接口两种。静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阳接VCC,本次课程设计由于所需数码管较少,故可用些种方法接线。这种接法占用接口多,仅能接少量数码管。
动态接口采用各数码管循环轮流显示的方法,当循环显示的频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出,另一接口完成各数码管的轮流点亮。2.3系统总体方案
因所设计的篮球计分器功能较少,电路结构也相对简单。只有两个部分:开关控制和数码管的显示。P0口接四个开关,分别作为比分+1、+2、+3、清零的控制按键;P1口和P3口分别按静态接口方法接两个数码管来显示比分。
采用数码管静态接法,P3口接数码管个位显示、P1口接数码管十位显示、P0口接四个开关,中间串接上电阻来作分压用,使得其高低电平能够清楚的分开从而可以实现开关上高低电平的跳变,使数码管工作。
云南机电职业技术学院
3编程设计
3.1计数器设置
篮球比赛计分器其实就是一个计数器,本次课程设计就是利用单片机中的计数器来实现其计分的功能。在51单片机中有两个16位的定时/计数器T0,T1,分别由TH0、TL0和TH1、TL1组成,它们均是8位寄存器,在特殊功能寄存器中占地址8AH-8DH。它们用于存放定时或计数的初始值。此外,内部还有一个8位的方式寄存器TMOD和一个8位的控制寄存器TCON。用于选择和控制定时/计数器的工作。其格式见下面两表:
表3.1方式控制寄存器TMOD
表3.2控制寄存器
篮球比赛计分器利用单片机的计数器进行工作,计数器对外部脉冲的下降沿进行加1计数,直至计满回零。作为可编程器件,单片机中的计数器初始化编程步骤如下:
根据定计数要求计算计数器初值;将工作方式控制字写入TMOD寄存器;将计数初值写入TH_和TL_寄存器;启动定时器/计数器,即将TR_置位。
如果工作于中断方式,需置位EA(中断总开关)及ET_(允许计数器中断),并编写中断服务程序。3.2程序流程图
篮球比赛中,得分可分为1分、2分、3分三种情况。根据这样的设计要求,结合数码管的显示以及51单片机中计数器的工作实现方式、接口应用、中断控制等可设计出程序流程图如下所示:
云南机电职业技术学院
总分寄存器R0清0
七段数码管首送地址DPTR
START读取P0口的值
取出低4位
N是否有键按下
按键区抖动
再次读取P0的值
取出低4位
N是否真有键按下
哪个键按下的
S1加1分S2加2分S3加3分S4清零
等待按键释放
将总分转换为BD码
再将BCD码转换七段码经P1口和P3口输出显示
图3.2简易篮球比赛计分器流程图
3.3程序分析
数码管的显示,在TAB中加入数码管显示数字时对应的16进制数MOVDPTR,TAB
TAB:DB0C0H,0F9H,0A4H,0B0H,99H
DB92H,82H,0F8H,80H,90H
云南机电职业技术学院
数码管显示程序:
MOVA,R0
MOVB,10
DIVAB
MOVCA,@A+DPTR
MOVP1,A
MOVA,B
MOVCA,@A+DPTR
MOVP3,A
由于需要四个开关,取出A中的低四位来接开关,用ANL命令实现。其程序如下:MOVA,P0
ANLA,0FH
CJNEA,0FH,KEY1
SJMPSTART
四个开关加1、加2、加3、清零,直接通过加法在累加器中实现,以开关1为例,程序如下:
MOVR1,1
MOVA,R0
ADDA,R1
MOVR0,A
4Proteus软件仿真
4.1Proteus仿真软件简介
Proteus软件是的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。
Protues提供了丰富的资源:仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。仿真仪表资源:示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器
云南机电职业技术学院
可以在一个电路中随意的调用。Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标。另外Proteus还提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。
在Protues中进行电路仿真时,先绘制好原理图,再调入已编译好的目标代码文件:.HE_,随后便可在PROTEUS的原理图中模拟的实物运行状态和过程,进行观察从而改良自己的设计方案。操作简单,非常适合初学者进行单片机的仿真,进而了解其原理,增强实践。
4.2仿真过程
在用Protues进行仿真之前,先要用WAVE软件将我们编写好的汇编程序编译。具体方法是先新建一项目,之后输入编写的程序,输入完成后保存然后执行项目、编译,在目标文件夹内生成编译好的程序文件,其中.HE_文件就是我们所需要的,在之后电路设计好后用于放入AT89C51中执行其功能。
在生成.HE_文件后,进入Protues软件,此时软件已自动打开一新建项目。
图4.2仿真电路图
云南机电职业技术学院
5调试分析
在仿真成功之后,便可进行实践了。实物和仿真还是有一定的差别的,制作实物时要考虑的方面比仿真多的多。做实物时,不仅要考虑到电路正确同时也要注意版面的设计,不仅设计功能要求实现,版面的美观也是必不可少的一方面,这就要注意尽量少的接线。
在电路板刚刚焊好后,与以前制作的单片机板连接在一起,接好电路,烤入程序后发现数码管一直处于数字混乱状态,经检查后确定不是硬件出现的问题,想着原因可能程序读入时出现错误,试着重新将程序烤入单片机中,显示结果果然变得正常,实践成功。6设计总结
本次设计叙述了篮球计时计分器的基本原理及使用方法,给出了一种篮球计时计分器的设计方案。利用单片机程序设计原理,来实现篮球计时计分器的各项功能。此次设计的篮球计时计分器,电路简单,而且易懂,使操作使用者使用非常方便,成本较低,灵敏可靠,计录准确,连接简单,具有非常高的使用价值。
这次课程设计历时二个星期多左右,通过这两个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。
在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。虽然这只是一次的极简单的课程制作,可是平心而论,也耗费了我们不少的心血。通过这次课程设计,我想说:为完成这次课程设计我确实很辛苦,但苦中仍有乐,当我们仿真实验成功的时候,当我们连好线,按下按钮,LED亮了起来的时候我们的心中就不免兴奋,不免激动。以前种种艰辛这时就变成了最甜美的回忆!对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!
云南机电职业技术学院
Protel99SE电路原理图
附录二参考文献
[1]清源科技编著《Protel99SE电路原理图与PCB设计及仿真》机械工业出版社[2]谢等编《单片机原理与应用及C51程序设计》清华大学出版社[3]谭编《C程序设计》清华大学出版社
[4]周编《模拟电子技术》西安电子科技大学出版社
[5]徐编《单片微型计算机原理接口与应用》北京邮电大学出版社
云南机电职业技术学院
附录三程序清单include
defineucharunsignedchardefineuintunsignedint
sbitkey1=P0^0;
sbitkey2=P0^1;
sbitkey3=P0^2;
sbitkey4=P0^3;
ucharge,shi,bai,_;
uinttemp;
voiddelayms(uint_ms){
ucharcodetable[]={
0_c0,0_f9,0_a4,0_b0,0_99,0_92,0_82,0_f8,0_80,0_90
voiddisplay(ucharbai,shi,ge){
P1=0_f7;P0=table[bai];delayms(10);
11/点球键/两分球键/三分球键/清零键/延时子程序uinti,j;for(i=_ms;i>0;i--)for(j=110;j>0;j--);/显示0,1,2,3,4,5,6,7,8,9/显示子程序
云南机电职业技术学院
}P1=0_fb;P0=table[shi];delayms(10);P1=0_fd;P0=table[ge];delayms(10);
/按键子程序voidkeyscan()
if(key1==0){/点球加1分delayms(10);/消除抖动if(key1==0){}
12ge++;/自加1次if(ge==10){}while(!key1);/等待松手,松手即加一ge=0;shi++;if(shi==10){}shi=0;bai++;if(bai==10)bai=0;
云南机电职业技术学院
}if(key2==0){}if(key3==0){/两分球加2分delayms(10);/消除抖动if(key2==0){}ge+=2;if(ge==10){}while(!key2);/等待松手,松手即加2ge=0;shi++;if(shi==10){}shi=0;bai++;if(bai==10)bai=0;/自加2次/三分球加3分delayms(10);/消除抖动if(key3==0){
云南机电职业技术学院
}}ge+=3;if(ge==10){}ge=0;shi++;/自加3次if(shi==10){}shi=0;bai++;if(bai==10)bai=0;while(!key3);/等待松手,松手即加3/三分球加3分if(key4==0){}delayms(10);/消除抖动if(key4==0){}while(!key4);/等待松手,松手即加3
14bai=0;shi=0;ge=0;
云南机电职业技术学院
voidmain(){
}temp=0;/初始化显示000bai=temp/100;/分开来显示百位,取余shi=temp%100/10;/分开来显示十位,求模,取余ge=temp%10;while(1){}display(bai,shi,ge);keyscan();/分开来显示个位,求模