湖南工程学院单片机篮球计分器.docx_第1页
湖南工程学院单片机篮球计分器.docx_第2页
湖南工程学院单片机篮球计分器.docx_第3页
湖南工程学院单片机篮球计分器.docx_第4页
湖南工程学院单片机篮球计分器.docx_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

等级: 课 程 设 计课程名称单片机原理及应用课程设计课题名称基于单片机的比赛计分器设计专 业测控技术与仪器班 级1402学 号201401200225姓 名方广指导老师汪超2017年3月3日电气信息学院课程设计任务书课题名称基于单片机的比赛计分器设计姓 名方广专业测控技术与仪器班级1402学号25指导老师汪超、寻大勇、林国汉等课程设计时间2017年2月20日-2017年3月3日(1、2周)审核人 汪超1、 任务及要求1、设计任务:1) 给甲,乙两队分别设置1个加分按钮,按一下能分别实现加一分。2) 给甲,乙两队分别设置1个减分按钮,按一下能分别实现减一分。3) 设置一个清零按钮,按一下能实现清零4) 设置预置分按钮5) 设置一个加减一分、两分和三分的切换按钮。2、设计要求:1) 设计方案要合理、正确;2) 系统硬件设计及焊接制作;3) 系统软件设计及调试;4) 系统联调;5) 写出设计报告。二、进度安排第一周:周一:集中布置课程设计相关事宜,分发电子元件和PCB板。周二周三:焊单片机电路板和原理图绘制以及元件制作。周四周日:PCB封装设计、元件布局、PCB布线,周五检查原理图及PCB设计情况。第二周:周一周二:生产文件整理、PCB焊接调试。周三:系统调试。周四周五:设计报告撰写。周五进行答辩和设计结果检查。三、参考资料 1、微型计算机原理及应用许立梓编 机械工业出版社 20022、微型计算机接口技术及应用刘乐善编 华中理工大学出版社 2000 3、计算机硬件技术基础试验教程邹逢兴编 高等教育出版社 20004、16位微型计算机原理接口及其应用周佩玲编 中国科学技术大学出版社 2000 5、微型计算机原理与接口技术吴秀清编 中国科学技术出版社 20016、微型计算机接口技术邓亚平编 清华大学出版社 20017、单片机原理及及应用王迎旭编 机械工业出版社 20018、单片机应用程序设计技术 周航慈 著 北京航空航天大学出版社 20029、单片机实用技术问答 谢宜仁 主编 人民邮电出版社 2002目 录第1章 系统概述11.1 功能简述11.2 设计任务及要求1第2章 总体方案设计22.1 硬件总体设计22.2 系统软件设计2第3章 系统硬件设计33.1 AT89C51芯片33.2 键盘设计43.3 数码管选择4第4章 系统软件设计64.1 主函数设计64.2 按键设计74.3 显示子程序设计74.4 延时子程序设计8第5章 系统PCB版制作与调试105.1 系统PCB版焊接制造过程105.2 系统仿真105.3 系统调试10设计总结12参考文献13附录A 系统原理图:14附录B 实物调试图:15附录C 源程序清单:16第1章 系统概述1.1 功能简述 本设计内容为比赛计分器,主要用于各种体育比赛记录分数。采用矩阵式键盘作为输入,用户可分别对两队比分进行加1、加2、加3和减1减2、减3操作,其加减1,2,3分可以通过加减1分、2分和3分的切换按钮实现,并通过指示灯显示其每次按下加减分键所加减的分值。可以实现预置分。比分通过4个8段数码管显示器进行显示,每队比分显示2位。1.2 设计任务及要求1.2.1 设计内容(1)给甲乙队设置6个分数控制按键,甲队加减1,2,3分乙队加减1,2,3分。 (2)设置一个比分交换按键,按下后交换甲乙两队比分。(3)设置一个播放音乐按键,按下后播放终场音乐。 1.2.2 设计要求(1)方案合理、正确,系统稳定、可靠。(2)软件设计要求尽可能精练、简短和运行可靠。(3)硬件电路要求简单明了,以节约成本。 第2章 总体方案设计2.1 硬件总体设计系统框图,如图2.1所示。3x4矩阵键盘 89C51单片机4个8段数码显示器复位电路发光二极管图2.1 系统框图本设计用80C51单片机为核心,利用4个8段数码管显示器.采用动态显示输出比分,用户信息输入则采用34矩阵式键盘。89C52单片机有32根I/O线,所以不用扩展I/O口。用一片单片机即可满足本设计的输入输出。2.2 系统软件设计 软件设计主要分为3个部分:信息输入、信息处理、显示输出。主要包括:显示函数,按键获取函数,按键处理函数,进制转换函数。信息输入时采用矩阵式键盘来实现,所以需要检测键盘有无按键的子程序;信息处理需要对用户通过键盘输入的不同信息进行辨别并执行相应的处理;显示输出考虑到成本和电路体积,决定采用动态输出。第3章 系统硬件设计3.1 AT89C51芯片 AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51具有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本,如图3.1所示。图3.1 AT89C513.2 键盘设计根据设计共需要7个按键,可采用33矩阵式键盘,但考虑到常用键盘为34矩阵式键盘,而且方便以后功能的扩展和方便硬件的连接,所以最终决定采用34矩阵式键盘作为输入,7个按键分别标注于原理图,见图3.2。图3.2按钮功能图其中1/2/3分切换由发光二极管指示,加1减1分别对应。预置分是事先设定分数可以分别设定甲乙两队的初始分数。按下清零后,显示的分数清零。3.3 数码管选择3.3.1 数码管显示器数量选择两个队,每队2位比分,每个显示器只能显示一位,则至少需要采用4个8段数码管显示器。段数码管显示器采用动态显示输出比分。3.3.2 数码管共阴共阳接法的选择51单片机I/O口输出高电平时输出的电流很小,数码管不会太亮;因为本设计采用动态显示,单片机I/O口直接接数码管,所以决定采用共阳数码管。3.3.3 数码管驱动的选择为了使数码管亮度达到要求,数码管的位选端需要驱动,因为单片机I/O口的高电平输出的电流很小,需要驱动电路驱动,从而增加显示亮度。最简单便宜的驱动就是使用三极管,为低电平时开通,所以选择PNP型三极管,如图3.3。图3.3按钮功能图 其中1/2/3分切换由发光二极管指示,加1减1分别对应。预置分是事先设定分数可以分别设定甲乙两队的初始分数。按下清零后,显示的分数清零。第4章 系统软件设计4.1主函数设计主函数程序代码:MAIN: MOV NUMA,#0 MOV NUMB,#0 ;分数清零 MOV TEMP,#1 ;起始时的分数加1 MOV P1,#0DFH ACALL TRANM0: ACALL DISP ;调用显示函数 ACALL KEYSCAN ;调用按键获取函数 SJMP M0 ; 首先初始化将储存甲乙两对分数的内存单元清零,起始时TEMP置1,并使LED5点亮,调用进制转换函数,调用显示函数,调用按键获取函数,之后重复调用显示函数,调用按键获取函数.。函数间的调用关系,如图4.1。主函数进制转换函数显示函数延时函数按键获取函数延时函数按键处理函数进制转换函数图4.1函数关系调用图4.2按键设计按键获取,按键处理函数流程图,见图4.2。图4.2按键获取,按键处理函数流程图说明:由于图纸大小有限,还有B加分键处理,B减分键处理,以及按下无关键时显示不变。未在图纸中表示出来。4.3显示子程序设计 本程序是采用动态显示,用这种方法的好处在于每次刷新显示的时间相同,每个数码管显示的时间也相同,这样就可以让数码管清晰而且稳定的显示数据。显示子程序流程图,见图4.3。位 选 通取 段 码送 段 码调用延时程序关 段 码图4.3 显示子程序流程图4.4 延时子程序设计 延时子程序就是通过执行一些没用但又占用时间的指令的集合。这个子程序可以用于很多延时的地方因为它延时的时间可以通过R7进行改变,所以通用性好,可以将几个延时子程序合为一个,只用在调用前给,如图4.4。第5章 系统PCB版制作与调试5.1 系统PCB版焊接制造过程采用proteus软件来仿真,检验功能是否能够正常实现,单片机硬件仿真器给单片机开发者带来了极大的方便。在仿真前,下面准备工作将是必要的:(1)程序编完后,对代码仔细逐行检查。检查代码的错误,建立自己的代码检查表,对经常易错的地方进行检查。检查代码是否符合编程规范。(2)对各个子程序进行测试。测试的方法:用程序测试程序,编制一个调用该子程序的代码,建立要测试子程序的入口条件,再看看它是否按预期输出结果。 (3)接通电源按下开关后,LED显示为0000,按下S1,S1为甲队按键,如果要给甲队加1分,先按S5按键,再按S3按键,加2分,先按S6按键,再按S3按键,加3分,先按S7按键,再按S3按键。甲队减1分,先按S5再按S4,减2分先按S6再按S4,减3分先按S7再按S4。同理乙队也是如此。按S8交换两队比分。5.2 系统仿真首先将编译成功程序载入单片机系统开发板。通电后,LED5,电源指示灯点亮,数码管显示“0000”.。对应的 “4”键为甲加分按钮,当LED5亮时,每次按下“4”键,甲队分数加1;当LED6亮时,每次按下“4”键,甲队分数加2;当LED7亮时,每次按下“4”键,甲队分数加3;其中LED5,LED6,LED7的点亮与熄灭是通过对应的“1”键来控制,可以通过按“1”键来实现LED5,LED6,LED7之间的切换。对应的“8”键为甲队减分键,当LED5亮时,每次按下“8”键,甲队分数减1;当LED6亮时,每次按下“8”键,甲队分数减2;当LED7亮时,每次按下“4”键,甲队分数减3;“7”键为乙加分键,“B”键为乙队减分键,其实现功能与甲队一样。对应的“0”键为预置分按钮,按下“0”键之后,通过按甲乙队加、减分按钮配合分数切换键实现快速预置分。”RESET”为复位键,按下可以实现复位。数码管显示甲乙队当前分数,复位后,数码管显示“0000”。5.3 系统调试在实验室调试的时候能够正确按照程序所编写的语句来运行,先接通电源显示灯亮,按下S1再按S5按键,接着按S3按键便可以给甲队加分,同理给乙队加分也是如此,终场结束的时候按下S9便可以播放终场音乐,见附录B。设计总结做了两周的单片机课程设计,我有了很多的体会和感想。 比赛计分器设计,这个内容没有现成的程序和设计图,需要我们真正亲手去编。这两周的实习真的有点难度,程序里面的好多内容不懂,自我感觉是单片机我们所学的内容还不足以编出这个程序,但是只好硬着头皮去看去理解。但在学习过程中也充满了乐趣,当看懂了程序的一些语句,画出了要求的设计图,那我喜悦那种成就感油然而生。这次实习让我受益匪浅,无论从知识上还是其他的各个方面。上课的时候的学习从来没有真正的用单片机,只是从理论的角度去理解枯燥乏味。但在实习中使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在组里讨论或者是同学之间相互帮助。团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习,学好了单片机也就多了一项生存的本钱。最后感谢老师对我们的精心指导和帮助,感谢同学们对我的帮助。参考文献 1)微型计算机原理及应用许立梓编 机械工业出版社 2)微型计算机接口技术及应用刘乐善编 华中理工大学出版社 3)计算机硬件技术基础试验教程邹逢兴编 高等教育出版社 4)16位微型计算机原理接口及其应用周佩玲编 中国科学技术大学出版社 5)微型计算机原理与接口技术吴秀清编 中国科学技术出版社 6)微型计算机接口技术邓亚平编 清华大学出版社 7)单片机原理及及应用王迎旭编 机械工业出版社 8)单片机应用程序设计技术 周航慈 著 北京航空航天大学出版社 9)单片机实用技术问答 谢宜仁 主编 人民邮电出版社 附录A系统原理图:附录B 实物调试图:附录C源程序清单:NUMA EQU 30HNUMB EQU 31H ;甲乙两队的分数D1 EQU 32H ;显示缓存区32h35hD2 EQU 33HD3 EQU 34HD4 EQU 35HDUAN EQU P0 ;段显示端口WEI1 EQU P2.4 ;位选端口P2.4-P2.7WEI2 EQU P2.5WEI3 EQU P2.6WEI4 EQU P2.7TEMP EQU 36H ;存放切换的加减分数1/2/3KEYDATE EQU 37H ;存放按键值ORG 0000HMAIN:MOV NUMA,#0 MOV NUMB,#0 ;分数清零 MOV TEMP,#1 ;起始时的分数加1 MOV P1,#0DFH ACALL 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 A,P2ANL A,#0F0HCJNE A,#0F0H,K2 SJMP K4 ;是抖动返回K2:MOV KEYDATE,A ;存储按键值MOV P2,#0FHMOV A,P2ANL A,#07HORL A,KEYDATE ;取得键值存放在KEYDATE中MOV KEYDATE,AK3:MOV A,P2 ANL A,#07H CJNE A,#07H,K3 ;等待按键松开ACALL CHULI ;调用按键处理函数ACALL TRANK4: RET;*CHULI: MOV A,KEYDATE CJNE A,#0E6H,C0 MOV NUMA,#0 MOV NUMB,#0 MOV TEMP,#1 ;按下清零键,A,B队分数清零,加分为1 MOV P1,#0DFH RETC0: CJNE A,#0D6H,C2 INC TEMP ;按下分值切换键,按一下分值加1, MOV P1,#0BFH MOV A,TEMP CJNE A,#3,C01 MOV P1,#7FHC01: CJNE A,#4,C1 MOV TEMP,#1 ;分值循环1- 2- 3- 1 MOV P1,#0DFHC1: RETC2: CJNE A,#0E5H,C4 MOV A,NUMA ;按下A队加分按键,A队加分 ADD A,TEMP ;分值相加 CJNE A,#99,C3 ; MOV A,#0C3: MOV NUMA,A RETC4: CJNE A,#75H,C6 MOV A,NUMB ;按下B队加分按键,A队加分 ADD A,TEMP ;分值相加 CJNE A,#99,C5 ; MOV A,#0C5: MOV NUMB,A RETC6: CJNE A,#0E3H,C9 MOV A,NUMA ;按下A队减分按键,A队减分 SUBB A,TEMP ;分值相减 CJNE A,#0FCH,C7 RETC7: JC C8 MOV A,#99C8: MOV NUMA,A RETC9: CJNE A,#073H,C12 MOV A,NUMB ;按下B队加减按键,A队减分 SUBB A,TEMP ;分值相减 CJNE A,#0FCH,C10 RETC10: JC C11 MOV A,#99C11: MOV NUMB,AC12: RET ;*TRAN: MOV A,NUMA ;进制转换将10进制分数转化成2进制,然后显示 MOV B,#10 DIV AB MOV D1,A MOV D2,B MOV A,NUMB MOV B,#10 DIV AB MOV D3,A MOV D4,B RET;*DISP: MOV DPTR,#TAB ;显示函数, CLR WEI1 ;位选通 MOV A,D1 ; MOVC A,A+DPTR ;取段码 MOV DUAN, A ;送段码 ACALL DELAY2MS ; SETB WEI1 ;关位选 CLR

温馨提示

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

评论

0/150

提交评论