电子记分牌说明书.docx
- 文档编号:23964883
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:23
- 大小:463.63KB
电子记分牌说明书.docx
《电子记分牌说明书.docx》由会员分享,可在线阅读,更多相关《电子记分牌说明书.docx(23页珍藏版)》请在冰豆网上搜索。
电子记分牌说明书
塔里木大学信息工程学院
《单片机原理与外围电路》课程论文
题目:
电子记分牌
姓名:
王兵
学号:
5011211423
班级:
计算机15-4
篮球赛电子记分牌
摘要:
篮球赛电子计时记分牌是根据篮球比赛特点设计的独立的信息采集、分配、评判和显示的系统,能实现比赛时间和分数的实时、准确、快捷处理和呈现。
本设计原理简单,主要采用AT89C51单片机作为微控制器,集合控制器、lCD液晶显示和报警,控制器控制记分牌的工作状态,通过lCD液晶显示和报警来反馈信息。
本设计在充分考虑了篮球比赛的实际情况基础上设计,具有友好的人机交互接口,并且可以防止人为误操作造成的不良后果,具有一定的实用性。
关键字单片机AT89C51LCD1液晶显示,篮球记分牌
Inthispaper:
asketballmatchelectronictimingscoreboardisdesignedbasedonthecharacteristicsofbasketballgameindependentinformationcollection,allocation,evaluationanddisplaysystem,canrealizethegametimeandscoresofreal-time,accurateandfastprocessingandrendering.Thissimpledesignprinciple,mainlyAT89C51single-chipmicrocomputerasthecontroller,setcontroller,lCDliquidcrystaldisplayandalarm,controltheworkingstateofthescoreboard,feedbackinformationthroughthelCDliquidcrystaldisplayandalarm.Thisdesigninfullyconsideringtheactualsituationofthebasketballmatchonthebasisofdesign,withafriendlyhuman-computerinteractioninterface,andcanpreventtheoperatingerrorcausedbytheadverseconsequences,hasacertainpracticality.
ThekeywordSinglechipmicrocomputerAT89C51Liquidcrystaldisplay(LCD)Basketballscoreboard
1绪论
1.1课题背景及研究意义
目前球场记分牌在传统操作模式下,采用记分员手动翻动记分牌记分,工作方式单一。
由于种种弊端,电子记分板已经开始在一些大型的体育场流行起来,不仅发展速度迅猛并会逐渐取代传统的电子记分牌。
电子记分板根据篮球比赛的特点,采用单片机为核心控制LED数码管,具有亮度高、可视性好、功耗小、使用寿命长等优点;具有性能稳定,尺寸适中,运输安装方式灵活,物美价廉等特点,特别适用于小型篮球体育馆和露天运动场。
1.2设计任务与要求
设计题目:
篮球赛电子记分牌
设计要求:
(1)分别设计篮球比赛甲乙两个队的记分牌;
(2)能实现两张记分牌的切换;
(3)能按照篮球赛记分规则记分并显示;
(4)将原有的一个指示灯基础上进一步改进为两个指示灯,作分别指示。
1.3单片机在体育赛事计分的应用
传统的篮球比赛计分是由工作人员人工翻动记分牌实现的,而比赛的时间则由工作人员计表控制。
由于人为因素,人工操作的比赛计分板难免会出现误差。
而作为微型控制系统的单片机具有集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的
优选机种和新电子产品的关键部位。
]
3[因此单片机在体育比赛记分牌的应用也成
为了一种不可避免的趋势。
1.4方案设计说明
设计方案之前,得先分解设计任务。
本次的设计任务是篮球记分牌,据常识,篮球记分牌应有分别给两队加分,暂停,显示屏既要显示时间又要显示分数。
在进行设计之前,应自己提出几个问题,待问题回答之后。
基本功、的设计方案就出来了。
在设计之前我提出了一下几个问题:
a:
硬件部分如何控制给A对B对加分,如何控制时间与分数的显示?
场地交换的时候又是如何实现分数显示交换的?
应该如何连接硬件,在硬件上设置控制端,控制端与单片机各引脚之间的连,如何选择?
b:
单片机只有一个CPU,如何实现即要扫描按键,又要显示比分,显示时间。
数码管工作的本质是将要显示的数据的字型码送给他,如何采集到变化的分数和时间并送给数码管。
用查表吗?
c:
分数时间显示都应该有对应的液晶显示,如何控制液晶显示,使时间和分数都显示在相对应的液晶显示屏上?
加分与倒计时在程序中最本质的东西是什么,如何用程序来说明这样的事件,各事件之间又是如何联系的。
虽然这些问题看似很普通,似乎在设计过程中都要面对这样的问题,何不事先就解决这些问题呢,在逐一回答这些问题的同时,该任务的设计方案已见雏形。
以下就是该方案的详细内容以及我问题的答案。
2系统概述
本系统采用单片机AT89C51为控制核心,系统主要包括显示模块、按键控制模块、报警模块等;
2.1显示模块
方案一:
采用七段码数码管显示。
数码管是指将所有发光二极管的一极接到一起形成公共极,因此数码管有共阴共阳之分。
以共阳数码管为例,共阳数码管在应用时应将公共极接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
因此每个数码管有9个接口。
数码管的驱动方式有静态扫描和动态扫描两种形式。
静态扫描编程简单,但电路复杂;动态扫描变成复杂,而且还需要使用其他芯片。
方案二:
采用1602液晶显示。
液晶的物理特性是:
当通电时导通,排列变得有秩序,是光线容易通过,不通电时排列混乱,阻止光线通过。
相比于数码管,LCD1602不仅可以显示的图形符号更丰富,而且具有轻薄、无辐射等优点。
比较以上两种方案,系统设计中采用方案二。
2.2 按键控制模块
方案一:
采用矩阵键盘。
矩阵键盘的长各分接口分别于单片机的I/O口连接,可以通过连接数量较少的I/O口,扩展出多个按键。
但其缺点是电路更复杂,编程更麻烦。
方案二:
采用独立按键。
每个独立按键与单片机I/O连接,虽然不能节省I/O口,但电路简单、编程容易
比较以上两种方案,由于本系统只需要4个按键,因此选者方案二。
2.3 报警模式
报警模块中,信号由单片机输出经PNP型三极管放大后进入蜂鸣器发出声响进行比赛时间的提示功能。
2.4 总体硬件组成框图
图1-1系统基本方框图
3系统硬件设计
3.1主控电路设计
AT89S51为ATMEL所生产的一种低功耗、高性能CMOS8位微控制器,在本系统中,AT89S51单片机内部的功能单元已经能够满足系统设计需要,不需要系统扩展。
AT89S51具有以下的特点:
●CPU与MCS-51兼容
●1000写/擦循环
●8K字节可编程FLASH存储器
●全静态工作:
0--33MHz
●三级加密程序存储器
●256*8位内部RAM
●32个可编程I/O线
●三个16位定时器/计数器
●8个中断源
●可编程串行通道
3.2LCD1602显示模块的硬件设计
1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块
图1-2液晶显示模块电路
其中A代表的是甲队记分牌、B代表乙队记分牌
3.2 按键控制模块
按键控制模块采用4个独立按键,K1、K2、K3、K4分别于单片机的P1^0、P1^1
P1^2、P1^3连接,每个按键的另一端直接与地相连接,因此是低电平有效。
其中K1、K2、K3、K4表示暂停、刷新24秒、A加1分、B加1分
图1-3按键控制模块电路图
3.3 蜂鸣器报警模块的硬件设计
蜂鸣器报警模块由一个蜂鸣器和一个PNP型的三极管组成,接单片机的P2^7
图1-4报警模块模块电路图
4软件控制系统
4.1主程序设计
本系统中单片机的主要功能就是利用内部的定时器计时,并随时接受控制模块的信息,将比赛的得分和剩余时间显示在1602液晶上。
程序流程图:
图1-5程序流程图
4.2仿真结果
1.如图4-3所示。
点击K3表示给A加分
按下K4表示给B加分
5结论
这一次的课程设计,我的课题是《篮球赛电子计时记分牌》。
由于这一系统包含单片机基础、数码管动态显示、矩阵键盘扫描、定时器和中断等知识体系,涉及面较广,通过这一课程设计,可以更好地检测和巩固学到的知识,加深自己对电子世界的认识。
在本次的设计中,针对每一个模块都曾有好几个方案,在反复比较论证之后,才得出最佳方案并应用于系统。
在各个模块的设计中,我除了得到了正确的结果之外,更多的是面对错误和失败,而这些错误大多数是由于自己对该部分电路原理掌握的不够透彻而造成的。
通过查阅资料,连接、调试电路和程序,我得出了一下几条心得体会,以后在设计过程中可以借鉴:
在Proteus里,电路状态不正常且不易发现问题时,使用电流计和电压计可直观检测电路动态变化,这也是Proteus里非常好用的一个功能;
参考文献
[1] 李川,汪秋蒙.ISP技术的原理及实现方法[J].科技资讯.2009,35期:
93-94.
[2] 万光毅.单片机实验与实践教程[M]. 北京:
北京航空航天大学出版社.2009.1.
[3] 张毅刚.单片机原理及应用[M]. 北京:
高等教育出版社.2008:
160-190.
[4] 胡烨,姚鹏翼,陈明.Protel 99SE原理图与PCB设计教程[M].机械工业出社.2005:
23-99.
[5] 马忠梅.单片机的C 语言应用程序设计[M].北京:
北京航空航天大学出版社.2006
[6] 周润景.基于Proteus的电路与单片机仿真系统设计与仿真[M]. 北京:
北京航空航天大学出版社. 2005.
[7] 金炯泰,金奎焕. 如何使用KEIL8051C编译器[M ]. 北京:
北京航空航天大学出版社.2010.
[8] 尹仕.电工电子制作基础[M].武汉:
华中科技大学出版社,2008. [9] 彭介华.电子技术课程设计指导[J].北京:
高等教育出版社,2009.
[9]徐泓. 医疗设备维护保养方法[J]. 黑龙江科技信息. 2008(21)
[10]冯梅琳,王芸,温家旺. 基于Proteus的温湿度数据采集系统设计与仿真[J]. 仪表技术. 2010(02)
[11]BehzadRazavi.DesignofAnalogCMOSIntegratedCircuits[M]..2001
[12]WANGXinhuan1,ZHOUFei2,ZHANGHongwei11SchoolofElectricalEngineering&Automation2ModerneducationaltechnologycenterHenanPolytechnicUniversityJiaozuo,China. TheResearchandPracticeofTeachingMethodReformforSingle-chipMicrocomputerCourse[A].Proceedingsof20124thInternationalConferenceonEducationTechnologyandComputer(ICETC2012)[C].2012
[13]郑威,潘定. 基于MAX038和单片机的高频精密函数信号发生器[A].Proceedingsof2010ThirdInternationalConferenceonEducationTechnologyandTraining(Volume4)[C].2010
[14]周亚训,金炜. 基于MATLAB/FDATooL的数字信号处理课程实验教学[A].Proceedingsof2010ThirdInternationalConferenceonEducationTechnologyandTraining(Volume8)[C].2010
[15] Mathematicmodelingandstabilityanalysisofthree-orderself-biasedPLL[A].Proceedingsof20114thIEEEInternationalConferenceonComputerScienceandInformationTechnology(ICCSIT2011)VOL10[C].2011
附录1:
仿真效果图
PBC效果
三维效果图
附录2:
源代码:
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodetab1[]="A:
";
ucharcodetab2[]="B";
ucharcodetab3[]="GAMEOVER";//比赛结束时显示
ucharcodetab4[]="AB";//比赛结束时显示
sbitlcden=P2^2;
sbitlcdrw=P2^1;//1602液晶的3个端口
sbitlcdrs=P2^0;
sbitkey1=P1^0;
sbitkey2=P1^1;//四个按键
sbitkey3=P1^2;
sbitkey4=P1^3;
sbitBell=P2^7;//蜂鸣器
uintkeyflag,flag;//标志位
uchari,num,count;
ucharsec,min,miao;
ucharAscore,Bscore;//两队得分
/*******************液晶函数****************************/
voiddelay(uintz)//液晶延时函数
{uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidwrite_com(ucharcom)//命令子函数
{lcdrs=0;//接受指令
P0=com;//给P0口送指令码
delay(5);
lcden=1;//E变为高电平
delay(5);//在此延迟期间,将指令送入
lcden=0;//E变为低电平,高脉冲结束
}
voidwrite_dat(uchardate)//数据子函数data
{
lcdrs=1;//接受数据
P0=date;//给P0口送数据
delay(5);
lcden=1;//E变为高电平
delay(5);//在此延迟期间,将数据送入
lcden=0;//E变为低电平,高脉冲结束
}
voidwrite_time(ucharadd,uchardate)//写入时间函数
{
ucharshi,ge;
shi=date/10;
ge=date%10;
write_com(0x80+add);
write_dat(0x30+shi);
write_dat(0x30+ge);
}
voidwrite_miao(ucharadd,uchardate)//写入24秒函数
{
ucharshi,ge;
shi=date/10;
ge=date%10;
write_com(0x80+0x40+add);
write_dat(0x30+shi);
write_dat(0x30+ge);
}
voidwrite_Ascore(ucharadd,uchardate)//写入A队得分函数
{
ucharbai,shi,ge;
bai=date/100;
shi=date/10%10;
ge=date%10;
write_com(0x80+add);
write_dat(0x30+bai);
write_dat(0x30+shi);
write_dat(0x30+ge);
}
voidwrite_Bscore(ucharadd,uchardate)//写入B队得分函数
{
ucharbai,shi,ge;
bai=date/100;
shi=date/10%10;
ge=date%10;
write_com(0x80+0x40+add);
write_dat(0x30+bai);
write_dat(0x30+shi);
write_dat(0x30+ge);
}
voidwrite_score(ucharadd,uchardate)//比赛结束写入得分函数
{ucharbai,shi,ge;
bai=date/100;
shi=date/10%10;
ge=date%10;
write_com(0x80+0x40+add);
write_dat(0x30+bai);
write_dat(0x30+shi);
write_dat(0x30+ge);
}
voiddelay_Bell(uintz)//蜂鸣器延时函数
{
uintx,y;for(x=z;x>0;x--)for(y=255;y>0;y--);
}
voidinit()//初始化函数
{
Bell=1;
keyflag=0;
flag=0;
min=12;
sec=0;
miao=25;
Ascore=0;
Bscore=0;
lcdrw=0;
lcden=0;//E的初始值为低电平,后面的程序给高电平从而满足E为高脉冲
write_com(0x38);//写入显示模式指令
write_com(0x0e);//显示是否打开以及光标的设置
write_com(0x06);//地址指针的加减和整屏是否移动
write_com(0x01);//清屏指令
write_com(0x80+0x00);//显示字符的初始位置
for(num=0;num<16;num++)
{write_dat(tab1[num]);}
write_com(0x80+0x40);//起始地址为53,将字符调到了第二行
for(num=0;num<2;num++)
{write_dat(tab2[num]);}
write_Ascore(2,Ascore);
write_Bscore(2,Bscore);
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;ET0=1;
TR0=1;//开定时器
}
voidkeyscan()//按键函数
{if(key1==0)
{delay(10);
if(key1==0)
{keyflag++;//键一按下,标志位加一
while(!
key1);
if(keyflag==1)
{TR0=0;}//关中断
if(keyflag==2)
{TR0=1;keyflag=0;
}
}
}
if(key2==0)//刷新24秒
{delay(5);
if(key2==0)
{while(!
key2);
miao=25;
}
}
if(key3==0)
{delay(5);
if(key3==0)
{while(!
key3);
Ascore++;write_Ascore(2,Ascore);
}//写入A队得分
}
if(key4==0)
{delay(5);
if(key4==0)
{
while(!
key4);
Bscore++;write_Bscore(2,Bscore);
}//写入B队得分
}
}
voidmain()
{
init();
while
(1)
{
keyscan();
if(flag==0)
{
write_com(0x80+0x40+7);//写入第一节FIR
write_dat('F');
write_dat('I');
write_dat('R');
}
if(flag==1)
{
write_com(0x80+0x40+7);//写入第二节SEC
write_dat('S');
write_dat('E');
write_dat('C');
}
if(flag==2)
{
write_com(0x80+0x40+7);//写入第三节THR
write_dat('T');
write_dat('H');
write_dat('R');
}
if(flag==3)
{
write_com(0x80+0x40+7);//写入第四节FOU
write_dat('F');
write_dat('O');
write_dat('U');
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 记分牌 说明书