基于51单片机的篮球计时计分器_第1页
基于51单片机的篮球计时计分器_第2页
基于51单片机的篮球计时计分器_第3页
基于51单片机的篮球计时计分器_第4页
基于51单片机的篮球计时计分器_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

目录摘要 1Abstract 2绪论 31.设计原理 41.1原理图设计 41.2各元器件介绍 51.2.1数码管介绍 51.2.2排阻 51.2.3AT89C52单片机芯片 61.3各部分电路分析 81.3.1振荡电路 81.3.2外部复位电路 81.3.3开关电路 91.3.4显示电路 91.3.5扬声器电路 103.软件设计 113.1设计思路 113.2设计框图 123.3编程前的准备 134仿真结果 146心得体会 16附录 17本科生课程设计成绩评定表 30

摘要篮球比赛计分器的设计是为了解决篮球比赛时计分与计时准确方便和灵活适用的问题而提出的,我组设计的篮球比赛计分器硬件部分主要利用AT89S52单片机完成了计分与计时的功能,并通过两个四位七段数码管分别用来显示比赛时间和甲、乙比赛双方的分数,软件部分利用KeilC51软件来进行编译,通过Proteus软件进行仿真,最后将生成的HEX文件烧入到单片机芯片中。采用该系统可根据实际情况进行时间的准确显示和比分修改,具有低功耗、可靠性强、安全性高以及低成本等特点,主要不足之处在于计时显示部分有时会出现显示不稳定的情况,基本满足了本次设计要求。关键词:单片机;篮球赛计分;篮球赛计时;数码管

1.2各元器件介绍1.2.1数码管介绍 此次设计用到的是共阴数码管。计分选择的是四位共阴数码管,即当位选信号为低电平时,该数码管被选中有效。图1.2四位共阴数码管管脚图详解图1.3四位共阴数码管实物引脚图1.2.2排阻图中的RESPACK-8是9脚排阻。最左边为8个电阻的公共端,接在高电平上,另外8个引脚分别与P0口的引脚接在一起,使P0口各位不是输出低电平时,成高电平。图1.4排阻引脚图1.2.3AT89C52单片机芯片P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用做高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在Flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。在程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TT

逻辑电平。当对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作为定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如表1-1所示。在Flash编程和校验时,P1口接收低8位地址字节。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TT逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(如执行MOVX@DPTR)时,P2口送出高8位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TT

逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口也作为AT89S52特殊功能(第二功能)使用,如表1-2所示。在Flash编程和校验时,P3口也接收一些控制信号。表1.1P3口的第二功能表端口引脚第二功能P3.0RXD(串行数据接收端)P3.1TXD(串行数据发送端)P3.2/INT0(外部中断0申请输入端)P3.3/INT1(外部中断1申请输入端)P3.4T0(记时器0计数输入端)P3.5T1(记时器1计数输入端)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)

1.3各部分电路分析1.3.1振荡电路图1.5外部振荡电路图石英晶体的振荡频率为12MHz,故机器周期为1us。本次设计要使用到AT89C51单片机的时钟振荡功能。AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入和输出端。这个放大器与作为反馈元件与片外石英晶体或者陶瓷谐振器一起构成自激振荡器。1.3.2外部复位电路TU图1.6外部复位电路TU图1.6外部复位电路1.3.3开关电路图1.7键盘电路键盘按键在没有按下时,连接的为高电平,当有按键按下时,对应按键所连接的连接线拉低为低电平1.3.4显示电路图1.8显示电路其中ABCDEFGDP为每片数码管的内部LED灯的段选线,1,2,3,4(下面的是1,2)是位选线。低电平有效。

1.3.5扬声器电路图1.9扬声器电路当P3.6口输出高电平时,扬声器响,P3.6口输出低电平时,扬声器不响。

3.软件设计3.1设计思路系统开始运行后,计时和计分的数码管被点亮。首先将定时器和A、B两队分数清零,然后设置定时,即设置一节比赛的时间,初始值为20分钟。按下启动/暂停键,计时器开始倒计时,当计时到时,蜂鸣器响2秒。在计时到之前,可按启动/暂停键可暂停计时,按动与单片机P1相连的8个按钮可实现A、B两队分数的加减,即罚球加1分,两分球加2分,三分球加3分,如果在比赛期间有计分错误的话,可以按下对应队伍的减1按钮进行调整。篮球比赛在打完半场(即两节)后,A、B两队需要交换场地,因此两边计分器的计分值需要进行交换,则在半场比赛结束后,需要按下比分交换键来交换比分,之后开始下半场的比赛,计时器和计分器开始工作。要实现上述功能,需要设计以下程序模块来实现:主程序、时间中断子程序、鸣音子程序、时间显示子程序、比分显示子程序、调时时间子程序、调时子程序、交换场地子程序。主程序用来实现系统初始化以及按键的控制、子程序的调用;时间中断子程序用来实现倒计时功能,即完成指定的计时后停止计时并复位至设定的计时值;时间显示子程序用来控制4输入七段共阴LED数码管的显示;比分显示程序控制2个2输入七段共阴LED数码管的显示;调时时间显示程序用来切换4输入七段共阴LED数码管的显示状态,在计时状态时,数码管的四位全部显示,前两位为分,后两位为秒,在调时状态时,只有后两位显示分钟数;调时子程序则完成初始计时时间的设置功能;交换场地程序用来调整交换两个2输入七段共阴LED数码管的显示值;鸣音子程序用来在计时时间到时使单片机P3.6输出高电平,与驱动电路共同作用使蜂鸣器发声报警。

开始3.2设计框图开始定时器清零;甲、乙两队比分清零定时器清零;甲、乙两队比分清零N设置定时N设置定时启动键是否按下启动键是否按下YY开始倒计时开始倒计时YY定时间时到否定时间时到否蜂鸣器响蜂鸣器响2秒YNYN是否结束比赛是否结束比赛是否暂停是否暂停NNN是否改变比分N是否改变比分交换键是否按下NN交换键是否按下NNYYY甲乙两队对应加减比分Y甲乙两队对应加减比分甲乙两队甲乙两队交换比分显示位置结束3.3编程前的准备编程前,必须设置好地址、数据以及控制信号。编程单元的地址加在P0口和P1口的P2.0口以及P3.0,P3.2,P3.3,数据从P0口输入,为低电平,RST保持高电平,/Vpp引脚是编程电源的输入端,按要求加上编程电压。编程时,可采用4—20MHZ的时钟振荡器,本次设计采用12MHZ的石英晶体振荡器。具体过程是:(1)给时钟显示分配地址,分钟存在21H,秒钟存在20H,24H存放修改时间的分钟低位,25H存放分钟低位。30H到33H为时间缓冲区。34H到37H为分数缓冲区。(2)P2口设置一个引脚为低电平,其他都为高电平,循环左移或循环右移依次显示各数据,应为要显示的数据存储空间也是连续的,可以通过同步移动实现数据的输出。(3)通过外部键盘控制开始计时和停止计时,可通过查询法查看键盘状态,要消抖。通过多IT0取反,实现计时工作的进行还是暂停。每次中断或者转移子程序要进行现场保护。(4)设置中断优先级,此次设置的是改变定时优先级高,定时中断换场中断优先级低。

4仿真结果初始状态显示设置定时为40分钟开始计时,并进行相应计分交换比分显示位置(交换场地)

6心得体会在本次毕业设计,我通过基于典型单片机AT89C51的设计和应用,对于单片机工作原理,功能有了宏观的了解,并对单片机汇编程序的应用有了新的、进一步的认识。在本次设计的过程中,我发现很多的问题,给我的感觉就是下手很难,很不顺手,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路。另外单片机系统的知识似懂非懂,而且很多知识当时弄明白了,现在要用的时候又不记得,造成我用了大量的时间去查阅各种资料和程序命令,因此整个过程时间安排不合理。由于设计的计划没有安排好,设计的时间极为仓促,尤其是在硬件调试的过程中出现了很大的问题。另外资料的查找也是一大难题,这就要求我们在以后的学习中,应该注意到这一点,更重要的是我们要学会把从书本中学到的知识和实际的电路联系起来,这不论是对我们以后的就业还是学习,都会起到很大的促进和帮助。 在用keil编译过程中,对与语法错误检查得非常仔细,对我们设计程序有很大的帮助。用proteus进行仿真时,对所设计的程序的逻辑检查起到了很好的效果,根据仿真结果我们发现了很多问题并做了修正。使用这两个软件对我们这次课程设计的成功完成起到了很大的促进作用。在此次实物制作过程中,使用开发板连接电路做出来的实物与仿真效果相同没有问题,但是自己买的元器件回来自己焊的实物出了一些问题,我们设计使用的是共阴数码管,但由于开的清单上字写得比较含糊,老板发成了共阳数码管,故不能正常显示数字。但是直接使用开发板连接电路进行调试的时候,可以实现此次设计所要完成的功能。总体上来说此次设计是成功的,完成了篮球计时计分器的设计与制作。

附录此次设计的汇编程序ORG 0000HLJMP MAINORG 0003HLJMPCHANGEORG 000BHLJMPTIMEORG 0013HLJMPTIAOSHIORG 001BHLJMPYANSHIMAIN: MOV SP,#50HMOV TCON,#04HMOV 20H,#00H;秒 MOV 21H,#0CH;分 MOV 22H,#00H;A队分数 MOV 23H,#00H;B队分数MOV 24H,#02HMOV 25H,#01H MOV 26H,#0CH;分钟定时区MOV 30H,#00H MOV 31H,#00H;时间缓冲区MOV 32H,#02HMOV 33H,#01HMOV 34H,#00H MOV 35H,#00H;分数显示缓冲区MOV 36H,#00HMOV 37H,#00HMOV TMOD,#11HMOV TH0,#0D8HMOV TL0,#0F0H MOV TH1,#0D8H MOV TH1,#0F0HMOV IE,#10001111BMOV IP,#05HMOV R2,#64H CLR P3.6START: LCALL DISPT LCALL DISPF JNB P1.0,PP1;A队加一分 JNB P1.1,PP2;A队加两分 JNB P1.2,PP3;A队加三分JNB P1.3,PP4;A队减一分 JNB P1.4,PP55;B队加一分 JNB P1.5,PP66;B队加两分 JNB P1.6,PP77;B队加三分JNB P1.7,PP88;B队减一分 JB P3.0,STARTLCALL DELAYJB P3.0,STARTSTOP1: JNB P3.0,STOP1LCALL DELAY JNB P3.0,STOP1 CPL TR0;按键奇数次开始,偶数次暂停 LJMP STARTPP55: LJMP PP5PP66: LJMP PP6PP77: LJMP PP7PP88: LJMP PP8PP1: LCALL DELAYJB P1.0,PPBSTOP11:JNB P1.0,STOP11LCALL DELAYJNB P1.0,STOP11INC 22HMOV A,22HLJMP STOREAPP2: LCALL DELAYJB P1.1,PPBSTOP22:JNB P1.1,STOP22LCALL DELAYJNB P1.1,STOP22MOV A,22HADD A,#02MOV 22H,ALJMP STOREAPP3: LCALL DELAYJB P1.2,PPBSTOP33:JNB P1.2,STOP33LCALL DELAYJNB P1.2,STOP33MOV A,22HADD A,#03MOV 22H,ALJMP STOREAPP4: LCALL DELAY JB P1.3,PPBSTOP44:JNB P1.3,STOP44LCALL DELAYJNB P1.3,STOP44DEC 22HMOV A,22HSTOREA:MOV B,#0AHDIV ABMOV 34H,BMOV 35H,APPB: LJMP STARTPP5: LCALL DELAYJB P1.4,PPCSTOP55:JNB P1.4,STOP55LCALL DELAYJNB P1.4,STOP55INC 23HMOV A,23HLJMP STOREBPP6: LCALL DELAYJB P1.5,PPCSTOP66:JNB P1.5,STOP66LCALL DELAYJNB P1.5,STOP66MOV A,23HADD A,#02MOV 23H,ALJMP STOREBPP7: LCALL DELAYJB P1.6,PPCSTOP77:JNB P1.6,STOP77LCALL DELAYJNB P1.6,STOP77MOV A,23HADD A,#03MOV 23H,ALJMP STOREBPP8: LCALL DELAYJB P1.7,PPCSTOP88:JNB P1.7,STOP88LCALL DELAYJNB P1.7,STOP88DEC 23HMOV A,23HSTOREB:MOV B,#0AHDIV ABMOV 36H,BMOV 37H,APPC: LJMP STARTDELAY: MOVR4,#5HDL00: MOVR5,#0FFHDL11: DJNZ R5,DL11DJNZ R4,DL00 RET;;;;;;;;;;;;;;;;;;时间中断程序;;;;;;;;;;;;;;;TIME: PUSH ACCPUSH PSW MOVTH0,#0D8HMOVTL0,#0F0HDJNZ R2,RET0 MOVR2,#64H MOV A,20H CLR C DEC A MOV20H,A MOVA,21H CJNE A,#00H,PFF;非0分跳转 MOVA,20H CJNE A,#00H,PFF;非0分0秒情况跳转 CLR TR0;比赛结束停止计时 MOV20H,#00H MOV21H,#00H MOV32H,#00H MOV33H,#00H LCALL MINGYIN MOV21H,26H MOV30H,#00H MOV31H,#00H MOV32H,24H MOV33H,25HLJMP RET0PFF: MOVA,20HCJNE A,#0FFH,OUT MOV20H,#59; MOV30H,#09H MOV31H,#05H MOVA,21H DEC A MOV21H,AOUT: MOVA,20H MOVB,#0AH DIV AB MOV30H,B MOV31H,A MOVA,21H MOVB,#0AH DIV AB MOV32H,B MOV33H,ARET0: POPPSW POP ACC RETIYANSHI: PUSH ACC;定时器1中断PUSH PSWMOVTH1,#0D8HMOVTL1,#0F0HDJNZ R2,RET1MOVR2,#64H DJNZ 39H,RET1 MOV 39H,#30H MOV R2,#64H CLR TR1 CLR P3.6RET1: POP PSWPOP ACCRETI ;;;;;;;;;;;;;;鸣音子程序;;;;;;;;;;;;MINGYIN:SETBP3.6 MOV R2,#9FHAAA: MOV R3,#9FHBBB: DJNZ R3,BBB LCALL DELAY LCALL DELAY LCALL DELAY DJNZ R2,AAALCALL DELAYCLR P3.6 SETB TR1RETI;;;;;;;时间显示程序;;;;;;;;;;;DISPT:MOV R0,#30HMOV R3,#0F7HMOV A,R3PLAYT: MOV P2,AMOV A,@R0MOV DPTR,#DSEG1MOVCA,@A+DPTRMOV P0,A LCALL DL1MOV P2,#0FFHMOV A,R3 RR AJNB ACC.7,LD1INC R0MOV R3,A LJMP PLAYTLD1: RET;;;;;;;;;;比分显示程序;;;;;;;;;;;;;;DISPF: MOV R0,#34HMOV R3,#7FHMOV A,R3PLAYF: MOV P2,AMOV A,@R0MOV DPTR,#DSEG1MOVCA,@A+DPTR MOVP0,ALCALL DL1MOV P2,#0FFHMOV A,R3 RR AJNB ACC.3,LD1INC R0MOV R3,A LJMP PLAYF AJMP LD1;;;;;;;;;;调时时间显示程序;;;;;;;;;;DISPW:MOV R0,#24HMOV R3,#0F7HMOV A,R3PLAYW: MOV P2,AMOV A,@R0MOV DPTR,#DSEG1MOVCA,@A+DPTRMOV P0,A LCALL DL1MOV P2,#0FFHMOV A,R3 RR AJNB ACC.1,LD1INC R0MOV R3,A LJMP PLAYWDL1: MOVR7,#05HDL: MOVR6,#0FFHDL6: DJNZR6,DL6DJNZR7,DLRETDSEG1: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH;;;;;;;;;调时子程序;;;;;;;;;;;;;TIAOSHI:PUSH ACCPUSH PSWJB P3.3,CHULCALL DELAYJB P3.3,CHUSTOPQ:JNB P3.3,STOPQLCALL DELAYJNB P3.3,STOPQIF10: LCALL DISPWLC

温馨提示

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

评论

0/150

提交评论