篮球赛计时计分器课程设计_第1页
篮球赛计时计分器课程设计_第2页
篮球赛计时计分器课程设计_第3页
篮球赛计时计分器课程设计_第4页
篮球赛计时计分器课程设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、篮球赛计时计分器课程设计目录第 1章 系统概述 1 1.1 功能简述 1 1.2 按钮设置 1第 2章 总体方案设计 2 2.1系统框图 2 2.2 软件总体设计 2第 3章 系统硬件设计 3 3.1 80C51单片机 3 3.2 3×4矩阵式键盘 3 3.3 8段数码管显示器 3 3. 4 系统原理图 3 第 4章 软件设计 4 4.1 主函数设计 4 4.2 按键码获取,按键处理函数 5 4.3 显示子函数 6 4.4 延时子函数 7第 5章 系统的安装调试说明 85.1 软件调试 8 5.2 软硬联调 8总结 9参考文献 10 附录 A 系统原理图 11 附录 B 源程序清单

2、12第 1章 系统概述1.1 功能简述本设计内容为比赛计分器,主要用于各种体育比赛记录分数。采用矩 阵式键盘作为输入,用户可分别对两队比分进行加 1、加 2、加 3和减 1减 2、减 3操作,其加减 1, 2, 3分可以通过加减 1分、 2分和 3分的切换按 钮实现,并通过指示灯显示其每次按下加减分键所加减的分值。可以实现 预置分。比分通过 4个 8段数码管显示器进行显示,每队比分显示 2位,1.2 按钮设置计分器应该有 7个按键分别标注于原理图 , 见图 1-1。 图 1-1按钮功能图其中 1/2/3分切换由发光二极管指示,加 1减 1分别对应。预置分是事 先设定分数可以分别设定甲乙两队的初

3、始分数。按下清零后,显示的分数清零。第 2章 总体方案设计2.1 系统框图系统框图,见图 2-1。 图 2-1 系统框图本设计用 80C51单片机为核心,利用 4个 8段数码管显示器 . 采用动态 显示输出比分, 用户信息输入则采用 3×4矩阵式键盘。 89C52单片机有 32根 I/O线, 所以不用扩展 I/O口。 用一片单片机即可满足本设计的输入输出。2.2 软件总体设计软件设计主要分为 3个部分:信息输入、信息处理、显示输出。主要 包括:显示函数,按键获取函数,按键处理函数,进制转换函数。信息输 入时采用矩阵式键盘来实现,所以需要检测键盘有无按键的子程序;信息 处理需要对用户通

4、过键盘输入的不同信息进行辨别并执行相应的处理;显 示输出考虑到成本和电路体积,决定采用动态输出。第 3章 系统硬件设计3.1 80C51单片机因为我们上课时学的是 MCS-51,所以就选择了 STC89C52单片机,因 为它与 INTEI MCS-51兼容, 并且它们都具有相同的 CPU 和指令系统, 引 脚功能兼容,容易掌握和使用。3.2 3×4矩阵式键盘根据设计共需要 7个按键,可采用 3×3矩阵式键盘,但考虑到常用键 盘为 3×4矩阵式键盘,而且方便以后功能的扩展和方便硬件的连接,所以 最终决定采用 3×4矩阵式键盘作为输入。两个队,每队 2位比分

5、,每个显示器只能显示一位,则至少需要采用 4个 8段数码管显示器。段数码管显示器采用动态显示输出比分。51单片机 I/O口输出高电平时输出的电流很小,数码管不会太亮;因 为本设计采用动态显示, 单片机 I/O口直接接数码管, 所以决定采用共阳数 码管。为了使数码管亮度达到要求,数码管的位选端需要驱动,因为单片机 I/O口的高电平输出的电流很小,需要驱动电路驱动,从而增加显示亮度。 最简单便宜的驱动就是使用三极管,为低电平时开通,所以选择 PNP 型三 极管。3. 4系统原理图 (见附录6第 4章 软件设计4.1主函数设计主函数程序代码 :MAIN: MOV NUMA,#0MOV NUMB,#0

6、 ; 分数清零MOV TEMP,#1 ; 起始时的分数加 1MOV P1,#0DFHACALL TRANM0: ACALL DISP ; 调用显示函数ACALL KEYSCAN ; 调用按键获取函数SJMP M0 ;首先初始化将储存甲乙两对分数的内存单元清零,起始时 TEMP 置 1, 并使 LED5点亮,调用进制转换函数,调用显示函数,调用按键获取函数, 之后重复调用显示函数,调用按键获取函数 . 。函数间的调用关系,见图 4-1。图 4-1函数关系调用图 74.2按键获取,按键处理函数按键获取,按键处理函数流程图,见图 4-2。 图 4-2按键获取,按键处理函数流程图说明:由于图纸大小有限

7、,还有 B 加分键处理, B 减分键处理 , 以及按 下无关键时显示不变。未在图纸中表示出来。84.3显示子程序本程序是采用动态显示, 用这种方法的好处在于每次刷新显示的时间相 同,每个数码管显示的时间也相同,这样就可以让数码管清晰而且稳定的 显示数据。显示子程序流程图,见图 4-3。 图 4-3 显示子程序流程图94.4 延时子程序延时子程序就是通过执行一些没用但又占用时间的指令的集合。 这个子程序可以用于很多延时的地方因为它延时的时间可以通过 R7进行改变, 所以通用性好, 可以将几个延时子程序合为一个, 只用在调用前给 R7赋值,即可根据用户的需要延时, 流程图见图 4-4。 图 4-4

8、 延时子程序流程图10第 5章 系统的安装调试说明5.1 软件调试软件调试主要是在仿真软件完成的。在写好源程序,画出原理图之后,在 电脑上进行软件仿真。系统原理图附后。5.2 软硬联调首先将编译成功程序载入单片机系统开发板。 通电后, LED5, 电源指示 灯点亮,数码管显示“ 0000” . 。对应的 “ 4”键为甲加分按钮,当 LED5亮时,每次按下“ 4”键,甲队分数加 1;当 LED6亮时,每次按下“ 4”键, 甲队分数加 2;当 LED7亮时,每次按下“ 4”键,甲队分数加 3;其中 LED5,LED6,LED7的点亮与熄灭是通过对应的“ 1”键来控制,可以通过按 “ 1”键来实现

9、LED5,LED6,LED7之间的切换。对应的“ 8”键为甲队减分 键,当 LED5亮时,每次按下“ 8”键,甲队分数减 1;当 LED6亮时,每 次按下“ 8”键,甲队分数减 2;当 LED7亮时,每次按下“ 4”键,甲队分 数减 3; “ 7”键为乙加分键, “ B ”键为乙队减分键,其实现功能与甲队一 样。对应的“ 0”键为预置分按钮,按下“ 0”键之后,通过按甲乙队加、 减分按钮配合分数切换键实现快速预置分。” RESET ”为复位键,按下可 以实现复位。数码管显示甲乙队当前分数,复位后,数码管显示“ 0000” 。总 结这次课程设计虽然只有短短的两周时间,但我受益匪浅。刚开始时觉 得

10、自己的课题无处入手,但通过老师的讲解和查询资料,开始有了自己的 思路,整理出了总体方案,然后设计出硬件原理图,源程序等。在这次设 计中困难最大的就是调试,收获最多的也是调试,因为调试的时候你必须 对程序相当的熟悉,对每一条指令相当了解,并且硬件的连接也要清晰的 印在脑海里,只有这样你才能让软件和硬件结合在一起,实现预期功能。 在编程结束时需要编写 END 指令,这也是初学者编程时经常忘记的。当然 也有值得高兴的地方,我的设计通过加减分键和分数切换键配合实现加减 1, 2, 3分只用了 3个键,而两队分别设置加减 1, 2, 3分就需 6个键。我 认为这样的设计更科学。总之,在课程设计中遇到了不

11、少的困难,在老师的细心讲解和辅导下, 最终完成了本次设计。在此,由衷感谢汪超老师的指导和帮助。参考文献1 、 微型计算机原理及应用许立梓编 机械工业出版社 20022、 微型计算机接口技术及应用刘乐善编 华中理工大学出版社 2000 3、 计算机硬件技术基础试验教程邹逢兴编 高等教育出版社 2000 4、 16位微型计算机原理接口及其应用周佩玲编 中国科学技术大学 出版社 20005、 微型计算机原理与接口技术 吴秀清编 中国科学技术出版社 2001 6、 微型计算机接口技术邓亚平编 清华大学出版社 20017、 单片机原理及及应用王迎旭编 机械工业出版社 20018、 单片机应用程序设计技术

12、 周航慈 著 北京航空航天大学出版社 20029、 单片机实用技术问答 谢宜仁 主编 人民邮电出版社 2002附录 A 系统原理图: 附录 B 源程序清单:NUMA EQU 30HNUMB EQU 31H ; 甲乙两队的分数D1 EQU 32H ; 显示缓存区 32h 35h D2 EQU 33HD3 EQU 34HD4 EQU 35HDUAN EQU P0 ; 段显示端口WEI1 EQU P2.4 ; 位选端口 P2.4-P2.7 WEI2 EQU P2.5WEI3 EQU P2.6WEI4 EQU P2.7TEMP EQU 36H ; 存放切换的加减分数 1/2/3 KEYDATE EQU

13、 37H ; 存放按键值ORG 0000HMAIN:MOV NUMA,#0MOV NUMB,#0 ; 分数清零MOV TEMP,#1 ; 起始时的分数加 1MOV P1,#0DFHACALL TRANM0: ACALL DISP ; 调用显示函数ACALL KEYSCAN ; 调用按键获取函数SJMP M0 ;* KEYSCAN:MOV P2,#0FFH ; 采用反转法读取按键值MOV P2,#0F0HMOV A,P2ANL A,#0F0HCJNE A,#0F0H,K0SJMP K4K0: MOV R5,#5K1: ACALL DELAY2MS ;10ms 延时去抖动DJNZ R5,K1MOV

14、 A,P2ANL A,#0F0HCJNE A,#0F0H,K2SJMP K4 ; 是抖动返回K2: MOV KEYDATE,A ; 存储按键值MOV P2,#0FHMOV A,P2ANL A,#07HORL A,KEYDATE ; 取得键值存放在 KEYDATE 中 MOV KEYDATE,AK3: MOV A,P2ANL A,#07HCJNE A,#07H,K3 ; 等待按键松开ACALL CHULI ; 调用按键处理函数ACALL TRANK4: RET;* CHULI: MOV A,KEYDATECJNE A,#0E6H,C0MOV NUMA,#0MOV NUMB,#0MOV TEMP,

15、#1 ; 按下清零键 ,A,B 队分数清零,加分为 1 MOV P1,#0DFHRETC0: CJNE A,#0D6H,C2INC TEMP ; 按下分值切换键,按一下分值加 1, MOV P1,#0BFHMOV A,TEMPCJNE A,#3,C01MOV P1,#7FHC01: CJNE A,#4,C1MOV TEMP,#1 ; 分值循环 1- 2- 3- 1MOV P1,#0DFHC1: RETC2: CJNE A,#0E5H,C4MOV A,NUMA ; 按下 A 队加分按键, A 队加分ADD A,TEMP ; 分值相加CJNE A,#99,C3 ;MOV A,#0C3: MOV N

16、UMA,ARETC4: CJNE A,#75H,C6MOV A,NUMB ; 按下 B 队加分按键, A 队加分ADD A,TEMP ; 分值相加CJNE A,#99,C5 ;MOV A,#0C5: MOV NUMB,ARETC6: CJNE A,#0E3H,C9MOV A,NUMA ; 按下 A 队减分按键, A 队减分 SUBB A,TEMP ; 分值相减CJNE A,#0FCH,C7RETC7: JC C8MOV A,#99C8: MOV NUMA,ARETC9: CJNE A,#073H,C12MOV A,NUMB ; 按下 B 队加减按键, A 队减分 SUBB A,TEMP ; 分

17、值相减CJNE A,#0FCH,C10RETC10: JC C11MOV A,#99C11: MOV NUMB,AC12: RET;* TRAN: MOV A,NUMA ; 进制转换将 10进制分数转化成 2进制,然后显示MOV B,#10DIV ABMOV D1,AMOV D2,BMOV A,NUMBMOV B,#10DIV ABMOV D3,AMOV D4,BRET;* DISP: MOV DPTR,#TAB ; 显示函数,CLR WEI1 ; 位选通MOV A,D1 ;MOVC A,A+DPTR ; 取段码MOV DUAN, A ; 送段码ACALL DELAY2MS ;SETB WEI1 ; 关位选CLR WEI2MOV A,D2MOVC A,A+DPTRMOV DUAN, AACALL DELAY2MSSETB WEI2CLR WEI3MOV A,D3MOVC A,A+DPTRMOV DUAN, AACALL DELAY2MSSETB WEI3CLR WEI4MOV A,D4MOVC A,A+DPTRMOV DUAN, AACALL DELAY2MSSETB WEI4MOV DUAN,#0FFH;RET;* DELAY2MS:MOV R6,#5D0: MOV R7

温馨提示

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

最新文档

评论

0/150

提交评论