欢迎来到天天文库
浏览记录
ID:57193898
大小:162.09 KB
页数:11页
时间:2020-08-05
《单片机实训之篮球记分牌.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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秒的误差不小于1秒。(15分)2、发挥部分能
2、够两队球员犯规次数计数。(15分)1.2设计思路及设计框图1.2.1设计思路在制作之前首先明确器件所要实现的功能,篮球记分牌顾名思义就是要记录篮球比赛中双方的比分(1分,2分,3分),进攻时间24s,双方的犯规次数等,明确功能之后便是分析与设计电路图,而此次的实训设计将分为两个部分,一个是硬件部分,另一个是软件部分;首先是在硬件部分,通过按下各种按键实现比分分数的录入,犯规暂停及显示切换,然后输出至数码管显示相应的内容;在软件程序方面,通过去定义不同的按键,编写判断语句,当其被按下时要实现怎样的功能效果,是计分,切换,还是暂停,尤其是显示进攻24s的
3、时间可以通过调用中断函数来实现;程序部分需要注意的几个地方就是中断内初值的设置,八段共阴数码管的位选和段选代码,这些地方设置如果不对会出现显示错误或者达不到预期;1.2.2总体设计框图在本题目中用到的参考原理图如下:基本框图:C51单片机显示模块键盘2各个模块程序的设计对于此次单片机实训来说,软件就像是人的大脑,而硬件就像是人的身体,硬件是个实体,软件则是灵魂;这次实训的软件,我将其划分为五个部分的内容,分别是中断部分,延时部分,显示部分,按键部分以及主函数;其中的中断函数voidtimer0(void)interrupt1using0承担了进攻24
4、s倒计时,双方比分,犯规次数的显示,用到的是定时器T0中断,12MHz的晶振,为了能使计时时间的误差小于1s,在设置初始值时用到了此前实验课中使用的0x3CB0,这在12MHz的晶振中刚好是50ms的计时时间,定义一个变量,让其循环累加20次,则刚好是1秒钟的时间,每经过一秒就让24s减1,并输出至数码管显示;此外,还对双方比分,犯规次数进行了扫描显示,通过在主函数中改变变量的值,在中断中判断相应值的变化用来切换不同的显示内容;延时函数voiddelay(uintt)在程序中的作用主要是作为按键的消抖,如果少了这个延时,则在按下按键时可能会出现错误,
5、这个在硬件中的表现就是按键的灵敏性,如果延时不够(灵敏性高),按一次可能会加很多分;反之就是按键迟钝,所以适当的延时很重要。显示函数voiddisplay(),因为功能中有一个暂停的功能,而要实现暂停就要关闭中断,从而会导致当暂停键按下后数码管不显示数值(全黑),所以另外写了个显示函数嵌套在暂停中,其内容基本和中断内的显示切换一致。按键函数button(),是整个程序的核心,也是实现硬件电路的基础,这次实训的八个按键,要灵活运用,尽量用较少的按键实现最多的功能;基于篮球记分牌的计分功能,我将加3分的按键改为了减1分,因为加3分可以先按一次加1分再按一
6、次加2分,这样就可以多出一个按键用来减分,这里有个好处就是防止按错计分的键而无法修改;此外再定义一个按键用来切换两支队的输入状态,并用不同LED灯的加以标注,当切换到A队时某一盏灯亮起,这时可以对其进行计分的操作,当然还有专门记录犯规的按键,切换显示模式的按键,暂停的按键,这八个按键就构成的可操作模块;主函数里则是对中断进行初始化,调用显示函数,按键函数;3调试过程对于一个器件的硬件和软件刚设计出来以后,还不能马上用于实际,需要通过各种测试验证,对于出现的各种错误还得进行反复修改,硬件的修改,软件的修改,而这如果顺利的话是很快的,但往往不是这样,就比
7、如这次我所做的单片机实训,虽然东西是做出来了,但在烧入程序进行验证时还是出现了很多问题;这些问题的出现6有很多不确定性,可能是电路的某一个地方焊得不好,或者是程序中的某个变量不合理,所以,在进行调试之前务必确保硬件电路的正确,将会节省很多时间;很幸运,因为篮球记分牌所用到的元器件并不算多,所以电路板很好检查,刚开始我就把蜂鸣器错接在了三极管的发射极,应该是集电极才对。将所有器件焊接完成后用万用表的蜂鸣档对电路进行短路检测,没有发现问题。用usbISP下载线连接计算机与下载口,将程序的.hex文件烧录到AT89S52这枚芯片中,发现数码管的位选出现了错
8、误,如24s的十位应该显示在右边,个位显示在左边,但数码管现实却颠倒了,此外还有LED灯的位置也没有设置正确
此文档下载收益归作者所有