单片机实训之篮球记分牌(共11页).docx
《单片机实训之篮球记分牌(共11页).docx》由会员分享,可在线阅读,更多相关《单片机实训之篮球记分牌(共11页).docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上桂林电子科技大学信息科技学院单片机原理及应用实训报告学 号 姓 名 匿名者 指导教师:小行星 2015 年 9 月 27 日(请核对时间)专心-专注-专业实训题目:篮球记分牌1 系统设计1.1 设计要求1.1.1 设计任务设计一个基于单片机的篮球计分牌,实现两队的计分功能与24秒计时功能。1.1.2 性能指标要求基本要求(1) 按照题目要求独立设计系统所需电路,并完成硬件电路的制作及调试。(40分)(2)结合硬件能够正常计分(1,2,3)。(10分) (3)能够正常显示分值。(10分) (4)能够正常修改工作模式(计分与24秒)。(10分) (5)能够24秒的误差不小
2、于1秒。(15分)2、发挥部分 能够两队球员犯规次数计数。(15分)1.2 设计思路及设计框图1.2.1设计思路在制作之前首先明确器件所要实现的功能,篮球记分牌顾名思义就是要记录篮球比赛中双方的比分(1分,2分,3分),进攻时间24s,双方的犯规次数等,明确功能之后便是分析与设计电路图,而此次的实训设计将分为两个部分,一个是硬件部分,另一个是软件部分;首先是在硬件部分,通过按下各种按键实现比分分数的录入,犯规暂停及显示切换,然后输出至数码管显示相应的内容;在软件程序方面,通过去定义不同的按键,编写判断语句,当其被按下时要实现怎样的功能效果,是计分,切换,还是暂停,尤其是显示进攻24s的时间可以
3、通过调用中断函数来实现;程序部分需要注意的几个地方就是中断内初值的设置,八段共阴数码管的位选和段选代码,这些地方设置如果不对会出现显示错误或者达不到预期;1.2.2总体设计框图 在本题目中用到的参考原理图如下:基本框图:C51单片机显示模块键盘2 各个模块程序的设计对于此次单片机实训来说,软件就像是人的大脑,而硬件就像是人的身体,硬件是个实体,软件则是灵魂;这次实训的软件,我将其划分为五个部分的内容,分别是中断部分,延时部分,显示部分,按键部分以及主函数;其中的中断函数void timer0 (void) interrupt 1 using 0承担了进攻24s倒计时,双方比分,犯规次数的显示,
4、用到的是定时器T0中断,12MHz的晶振,为了能使计时时间的误差小于1s,在设置初始值时用到了此前实验课中使用的0x3CB0,这在12MHz的晶振中刚好是50ms的计时时间,定义一个变量,让其循环累加20次,则刚好是1秒钟的时间,每经过一秒就让24s减1,并输出至数码管显示;此外,还对双方比分,犯规次数进行了扫描显示,通过在主函数中改变变量的值,在中断中判断相应值的变化用来切换不同的显示内容;延时函数void delay (uint t)在程序中的作用主要是作为按键的消抖,如果少了这个延时,则在按下按键时可能会出现错误,这个在硬件中的表现就是按键的灵敏性,如果延时不够(灵敏性高),按一次可能会
5、加很多分;反之就是按键迟钝,所以适当的延时很重要。显示函数void display(),因为功能中有一个暂停的功能,而要实现暂停就要关闭中断,从而会导致当暂停键按下后数码管不显示数值(全黑),所以另外写了个显示函数嵌套在暂停中,其内容基本和中断内的显示切换一致。按键函数button(),是整个程序的核心,也是实现硬件电路的基础,这次实训的八个按键,要灵活运用,尽量用较少的按键实现最多的功能;基于篮球记分牌的计分功能,我将加3分的按键改为了减1分,因为加3分可以先按一次加1分再按一次加2分,这样就可以多出一个按键用来减分,这里有个好处就是防止按错计分的键而无法修改;此外再定义一个按键用来切换两支
6、队的输入状态,并用不同LED灯的加以标注,当切换到A队时某一盏灯亮起,这时可以对其进行计分的操作,当然还有专门记录犯规的按键,切换显示模式的按键,暂停的按键,这八个按键就构成的可操作模块;主函数里则是对中断进行初始化,调用显示函数,按键函数;3 调试过程对于一个器件的硬件和软件刚设计出来以后,还不能马上用于实际,需要通过各种测试验证,对于出现的各种错误还得进行反复修改,硬件的修改,软件的修改,而这如果顺利的话是很快的,但往往不是这样,就比如这次我所做的单片机实训,虽然东西是做出来了,但在烧入程序进行验证时还是出现了很多问题;这些问题的出现6有很多不确定性,可能是电路的某一个地方焊得不好,或者是
7、程序中的某个变量不合理,所以,在进行调试之前务必确保硬件电路的正确,将会节省很多时间;很幸运,因为篮球记分牌所用到的元器件并不算多,所以电路板很好检查,刚开始我就把蜂鸣器错接在了三极管的发射极,应该是集电极才对。将所有器件焊接完成后用万用表的蜂鸣档对电路进行短路检测,没有发现问题。用usb ISP 下载线连接计算机与下载口,将程序的.hex文件烧录到AT89S52这枚芯片中,发现数码管的位选出现了错误,如24s的十位应该显示在右边,个位显示在左边,但数码管现实却颠倒了,此外还有LED灯的位置也没有设置正确,蜂鸣器一直在叫,这些都不是什么大问题,通过修改芯片P2口的位选后数码管的数值显示正确了,
8、LED灯的功能显示也正确了,唯独那个蜂鸣器的问题没有解决,这应该和电路原理图中蜂鸣器的摆放位置有关,或者是连接三极管的电阻阻值太小;在验证过程中改动较多的除了位选码还有就是按键的延时消抖设置了,只有不断的该延时并验证才可知道合理的延时时间,因为除了按键延时还有显示延时,而这个显示延时程序我改了好久也没有能够修改成功,所以我的数码管显示的数值一直是闪烁的,这也是本次实训中一个不足和遗憾的地方,这个后面我会通过参考资料加以修正,以达到完美。4 功能测试4.1 测试仪器与设备测试仪器与设备单片机程序下载线 1条万用表 1个 PC机 1台4.2 性能指标测试能够通过按下不同的按键,实现了篮球比赛双方比
9、分,犯规,以及进攻24s的切换,实现了加1分,加2分,减1分,暂停,A,B队操作状态切换,总体上完成了此次实训的基本要求。没有实现的功能是蜂鸣器在电路中得作用。5 实训心得体会算起来这应该是大学至今第四个实训吧,不过不像之前的只是单纯的硬件电路的焊接,或者软件编程,这次是合二为一,既要做板子又要写程序,工作量是以往最大的,不过觉得自己上学期的软件部分学得还不错,要实现应该不成什么问题。这次单片机实训做的东西是篮球记分牌,也是相对较为简单的一个,我认为简单只是说明元器件少,要写的程序少,但是它的价值不亚于其他。在我选好题目以后就马上行动了,因为老师没有提供原理图和程序的参考资料,所以我得去图书馆
10、寻找相应的书籍,果不其然还真找到了,上面刚好也有篮球记分牌的知识点,十分高兴,但是不可能照搬书上的东西,再说也不可能都对应的上,唯有把它弄懂,于是我就整天抱着本厚厚的书在课余时间里畅游,程序当然是整个实训的灵魂了,我的首要目标就是要弄清楚如何编写程序去实现所要求的功能,当然程序是不能离开实际的,在脑海里大概模拟出实体物件的轮廓,比如定义一个按键变量,判断其是否按下,当按下时执行什么操作,是让分数加1还是减1,或则是切换显示,此时数码管怎样显示,断码与位选码又该如何选择,另外LED应该亮哪一盏灯将问题细化成几个部分,什么功能将写在什么函数中,什么时候去调用,每一个环节都紧扣在一起。我不仅参考了图
11、书馆的书,还将此前上理论实验课书中相应的知识也温习了一遍,因为这里边有个24s倒计时要用到了定时中断,按键消抖要用到延时,当然还有数码管的段选码和位选码,以及LED的位选,总总的这些经过了一个假期的冲刷已经忘得差不多了,所以要想读懂参考程序,还得再把这些给捡回来。虽然有参考书作为辅助,但和实际还是有很大出入的,因为程序的编写要以实际硬件为基准,不可能完全照搬,而且可能还实现不了。于是我大概清楚了软件程序的编写,在硬件电路出来之前我就已经吧程序准备好了,还在脑子里编译了一遍,应该可行。在拿到元件清单后有点惊讶,因为电路板是那种已经实现打好孔的“万能板”,也就是不需要自己去弄PCB板,腐蚀等等,虽
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 篮球 记分牌 11
限制150内