单片机实训篮球记分牌实训报告.docx
- 文档编号:9646930
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:18
- 大小:460.17KB
单片机实训篮球记分牌实训报告.docx
《单片机实训篮球记分牌实训报告.docx》由会员分享,可在线阅读,更多相关《单片机实训篮球记分牌实训报告.docx(18页珍藏版)》请在冰点文库上搜索。
单片机实训篮球记分牌实训报告
桂林电子科技大学信息科技学院
《单片机原理及应用》实训报告
学号**********
姓名刘琦
指导老师韩桂明赵志鹏张锟
2012年9月19日
1.系统设计
本次实训的内容为设计一个篮球计分器。
1.1设计要求
1.1.1基本要求
(1)按照题目要求独立设计系统所需电路,并完成硬件电路的制作及调试。
(40分)
(2)结合硬件能够正常计分(1,2,3)。
(10分)
(3)能够正常显示分值。
(10分)
(4)能够正常修改工作模式(计分与24秒)。
(10分)
(5)能够24秒的误差不小于1秒。
(15分)
1.1.2发挥部分
能够两队球员犯规次数计数。
(15分)
1.2设计原理
主控芯片采用AT89S52,采用C语言进行编程,编程后利用KeiluVision3来进行编译,再生成的HEX文件通过下载口导入芯片中。
然后根据按键功能查看是否实现功能。
将12MHZ的石英晶体振荡器和单片机对应的引脚正确连接,将晶振产生的时钟信号作为定时信号。
篮球计分牌分为三个部分:
开关控制、数码管显示和警示电路。
P1口接7按键,分别作为显示切换,比分+1、+2、+3功能,秒计时暂停重置,犯规计数。
队伍加分会有LED灯提示。
P0口和P2口分别接数码管的段选和位选。
主要在篮球比赛中用于记录24秒犯规计时和显示红蓝两队在比赛过程中的比分情况,本计时计分器有两部分组成:
一部分用来实现计时功能,其基本原理和定时闹钟相似;另一部分用来实现计分功能,其基本原理和计数器相似,只不过所要记录和显示的对象分别是按键按下的次数和扫描脉冲次数。
在本题目中用到的参考原理图如下:
图1原理图
基本框图:
图2整体框图
1.3方案比较
方案一:
根据提供的原理图制作
开题之时老师给了我们原理图能够按要求实现基本的加分,计时功能。
方案二:
改进原理图
通过改进原理图我们增加了按键和蜂鸣电路从而实现警报和发挥功能的实现。
方案二比实现的功能更多,更符合记分牌的实际。
实现方案二的
条件只需方案一的基础上增加按键和蜂鸣电路即可。
所以本次实训我们选择方案一。
1.4方案论证
1.4.1总体思路
系统采用51单片机来实现。
设计出篮球记分、计时系统,能实现两队比分的加分、计时和犯规计数功能;
程序由延时函数、中断服务函数、主函数等组成,主函数中通过判断按键按下实现加分,犯规计数、警告提示、显示切换和倒计时调控等功能。
1.4.2设计方案
2、模块电路的设计
2.1AT89S52芯片模块
本次实验所用到的主要芯片,AT89S52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),期间采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器
(CPU)和Flash存储单元,功能强大AT89S52单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
2.2振荡电路模块
晶振模块给电路提供一定频率的稳定的震荡(脉冲)信号。
2.3蜂鸣器模块
当倒计时到时,通过程序可以将AT89S52的P2.4口置1,经过三极管的开关电路接通蜂鸣器,使蜂鸣器开始工作,表示倒计时时间到了。
2.4显示模块
排阻保护电路使数码管正常输出相应的数据信息。
2.5LED警示
通过LED灯来指示队伍、提示犯规、计时提示等功能。
2.5按键模块
按键控制加分、切换、计时控制等。
2.6电源部分
为电路提供电源,使其工作。
2.7下载口
下载口的作用就是程序烧录入口。
3、开发软件及编程语言简介
3.1KeilC编程软件
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍KeilC51开发系统各部分功能和使用
3.2C编程语言
C编程语言有以下特点:
(1)仅需要初步了解51系列单片机的存储结构,无需知道单片机指令系统;
(2)由C51编译器管理数据类型、存储器寻址、SFR分配使用等;
(3)程序可读性强,能够将不同的选择与特定的操作有机结合;
(4)编程及调试时间短、效率高;
(5)丰富的库函数提供了众多子程序,使程序设计更为方便、简洁;
(6)使用模块化编程十分方便,使得以编号的程序易于植入新程序;
(7)能够与汇编语言交叉使用,用C语言编写与硬件无关的运算部分程序,用汇编语言编写与硬件有关的部分程序。
4、制作与调试过程
4.1制作过程
⏹设计电路原理图;
⏹上网查阅C51管脚及数码管管脚资料;
⏹把器件安在打好孔的万用板上,然后焊接;
⏹焊接好后,接通5V电源,检查电路是否显示正常;
⏹根据硬件写出实现实训要求的对应程序,并进行调试,直到能全部正确实现要求的功能。
4.2调试过程
测试仪器与设备
●单片机程序下载线1条
●万用表1个
●.PC机1台
指标测试:
以实现两队比分的正确显示,可以进行24S正常倒计时并报警,能记两队的犯规次数。
●软件调试还算顺利,没有太大的问题。
●第一次硬件调试时,发现有一盏LED没有亮,确定是LED灯坏了便从新焊上一个好的。
●第二次硬件调试时,发现蜂鸣器不响,对照原理图程序查找原因但最终没能发现问题所在。
但其他功能基本实现。
5、心得体会
通过这次实训,让我学习了很多。
动手能力得到了进一步加强,对单片机所学的理论知识也有了进一步理解。
实训中也暴露出我在理论学习中的不足之处,对单片机的很多方面内容还不够了解,有些地方还需有待加强学习。
正是理论学习的不足导致我在一开始无法确定原理图的正确性,实训的宝贵时间就这样流失了。
通过不断地翻书查资料确定没问题后才开始焊板子。
这次焊板子使用导线连接管脚以前没有试过多次焊错,或焊不好。
本以为很好搞定的焊接又花了我大把时间。
就是这样我急赶慢赶的完成了硬件部分的全部工作转入程序设计阶段。
我找到了一些程序这些程序不是不能用就是共实现太少。
我在其基础上增设功能改变编程结构得倒了能够实现计分、计时、计数功能的篮球计分拍程序。
在这过程中时间短暂我集中精力边改边下边检验。
最终得到了一个可行的程序。
程序的结构清晰简单,实现的功能也很全面。
这是我最高兴的时候。
这就是本次实训给我带来的最好的礼物。
6、参考文献
【1】喻宗泉,《单片机原理与应用技术》,西安电子科技大学出版社
【2】张欣,《单片机原理与C51程序设计基础教程》,清华大学出版社
【3】李光飞,《单片机课程设计实例指导》,北京航空航天大学出版社
【4】张迎新张俊谟,《单片初级机教程》,北京航空航天大学出版社
【5】李光飞胡佳文楼然苗谢象佐,《单片机课程设计》,北京航空航天大学出版社
7.附录
附录一:
原理图
附录二:
程序
#include
//***************************数码管段代码表**********************************//
unsignedcharTab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
unsignedchara=0,b=0,ag=0,bg=0;
unsignedcharmiao=24,go=0,qh=0;
unsignedintbittime=0,bitdisplay=0;
sbits1=P1^0;
sbits2=P1^1;
sbits3=P1^2;
sbits4=P1^3;
sbits5=P1^4;
sbits6=P1^5;
sbits7=P1^6;
sbitfm=P2^4;
///***************定时中断服务程序***********************//
voidtimer0(void)interrupt1using0
{
TH0=0Xf8;TL0=0x30;//定时器赋初值
switch(bitdisplay)
{
case0:
P2=0xfe;
if(qh==0)P0=Tab[a/10];
if(qh==1)P0=Tab[miao/10];
if(qh==2)P0=Tab[ag/10];
break;
case1:
P2=0xfd;
if(qh==0)P0=Tab[a%10];
if(qh==1)P0=Tab[miao%10];
if(qh==2)P0=Tab[ag%10];
break;
case2:
P2=0xfb;
if(qh==0)P0=Tab[b/10];
if(qh==1)P0=0x00;
if(qh==2)P0=Tab[bg/10];
break;
case3:
P2=0xf7;
if(qh==0)P0=Tab[b%10];
if(qh==1)P0=0x00;
if(qh==2)P0=Tab[bg%10];
break;
}
bitdisplay++;bittime++;
if(bitdisplay==4){bitdisplay=0;}
if(bittime==500)
{bittime=0;
if(go)
if(miao--==0)
{go=0;miao=24;P3=0x7f;fm=1;}
elsefm=0;//24秒倒计时
}
}
//**延时程序***//
voiddelay(unsignedintt)
{
unsignedinti,j;
for(i=0;i for(j=0;j<200;j++); } //**************主程序*********************// voidmain(void) { TMOD=0x01;TH0=0xf8;TL0=0x30;//定时2ms EA=1;ET0=1;TR0=1;//开启定时器 while (1) { if(! s4) { if(! s1) {delay(25); if(! s1){a++;P3=0xef;if(a==100)a=0;} } if(! s2) {delay(25); if(! s2) {b++;P3=0xbf;if(b==100)b=0;} } }//加一分 if(! s5) { if(! s1) {delay(25); if(! s1){a=a+2;P3=0xef;if(a==100)a=0;} } if(! s2) {delay(25); if(! s2) {b=b+2;P3=0xbf;if(b==100)b=0;} } }//加两分 if(! s6) { if(! s1) {delay(25); if(! s1){a=a+3;P3=0xef;if(a==100)a=0;} } if(! s2) {delay(25); if(! s2) {b=b+3;P3=0xbf;if(b==100)b=0;} } }//加三分 if(! s3) {delay(25); if(! s3) {if(qh<2) qh=qh+1; elseqh=0; }//显示切换 } if(! s4) {delay(25); if(! s4) {if(go++==1) go=0;}//倒计时 } if(! s5)//重置24s倒计时 {delay(25); if(! s5) {miao=24;go=0;} } if(! s7) { {if(! s1) {delay(25); if(! s1){ag++;go=0;P3=0xef;if(ag==100)ag=0;} } if(! s2) {delay(25); if(! s2){bg++;go=0;P3=0xbf;if(bg==100)bg=0;} } }//计犯规 } } }}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 篮球 记分牌 报告