篮球计时计分器设计毕业论文.docx
- 文档编号:6379653
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:30
- 大小:326.26KB
篮球计时计分器设计毕业论文.docx
《篮球计时计分器设计毕业论文.docx》由会员分享,可在线阅读,更多相关《篮球计时计分器设计毕业论文.docx(30页珍藏版)》请在冰豆网上搜索。
篮球计时计分器设计毕业论文
篮球计时计分器设计
摘要:
此次设计隶属于计算机控制技术弱电课程设计,主要通过基于单片机AT89S51芯片作为本次核心控制元件,利用1602aLCD作为显示器件,键盘输入电路等相关的软件的有机结合以及喇叭等辅助器件,构成了一个满足基本设计要求的篮球计时计分器。
本系统可满足倒计时方式显示单节比赛剩余时间,可暂停,显示双方得分,按键输入可修改分值,如有错误可进行分值的相应修改。
整场比赛结束时有声音提示。
系统符合一般篮球计时器的工作要求。
采用液晶显示器1602aLCD,因为其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用,而且有利于硬件实物的成功。
设计的主要方法主要是先通过仿真确定方案的可行性,然后在进行局部测试看实物是否满足仿真的设计要求,最后把整体电路搭建完成做最后的测试和调试。
关键词:
AT89S51按键输入点阵字符型液晶模块1602A,计数器计时器
TheBasketball’sTimingandScoreIndicatorDesign
Abstact:
Thisdesignbelongstothecomputercontroltechnologyelvcurriculumdesign,mainlythroughbasedonAT89S51single-chipmicrocomputerchipasthecorecontroldevice,using1602aLCDasadisplaydevice,keyboardinputcircuitandotherrelevantsoftwareorganiccombinationoftheauxiliarydevicesandspeakers,constructedasatisfyingbasicdesignrequirementsofbasketballtimingJiFenQi.Thissystemcansatisfythecountdowndisplaysingledaygameremainingtime,canpause,showbothpartiesscoring,keystrokecanbemodifiedtoscore,ifthereareanyerrorscanbeconductedavalueofcorrespondingmodification.Thegameendedwhensoundreminders.Systemcomplieswiththegeneralbasketballtimerrequirements.AdoptLCD1602aLCD,becauseitsmicro-consumptionelectronic,smallvolume,flexible,andmanyotheradvantagesonpockettypeinstrumentandlowpowerconsumptioninapplicationsystemareincreasinglyapplied,andbehelpfulforhardwareformsofsuccess.Designofthemainmethodismainlydeterminedbysimulationfirst,thentheprojectisfeasibleinlocaltesttoseewhethersatisfythephysicalsimulationdesignrequirements,finallythewholecircuitstructuresfinishdoingthefinaltestinganddebugging.
Keywords:
AT89S51Dotmatrixcharacters1602AtypeLCDmodulecountertimer
第一章绪论
1.1设计意义
进入21世纪,伴随着电子、信息技术的应用与迅速普及,人们对电子技术的要求越来越高。
当今社会,科学技术日新月异,时代前进的步伐越迈越宽,应用自动化设备,计算机处理,现代化通讯,数字化信息,现代化显示设备等高新技术而建立的现代化智能。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
通过此次基于单片机设计的篮球计时计分系统,我们可以更清楚详细的了解单片机程序设计的基本指令功能、编程步骤和技巧来讲述单片机编程,并对AT89S51单片机的结构和原理进行讲述,以及基于单片机开发应用的相关芯片的工作原理,和相关外围电路的设计和调试过程进一步了解,有助于今后的工作和学习生活。
本次设计用由AT89S51编程控制LCD作显示的球赛计时计分系统。
该系统具有赛程时间暂停,及时刷新甲、乙双方的成绩等功能。
它具有价格低廉,性能稳定,操作方便并且易于携带等特点。
广泛适合各类学校或者小型团体作为赛程计时计分。
篮球比赛计时计分器是为了解决篮球比赛时计分与计时准确的问题。
此装置利用单片机AT89C51完成了计时和计分的功能。
本文详细地介绍了系统硬件与软件的设计过程,采用该装置可根据实际情况进行比分修改和时间的准确显示,具有低功耗,可靠性,安全性以及低成本等特点
1.2系统的基本要求及本人所做工作
本系统有三项主要功能:
一.倒计时方式显示单节比赛剩余时间,可暂停。
二.显示双方得分,按键输入可修改分值,设置三个按键分别加分1,2,3;如有错误可进行分值的相应修改设置一个按键每次减1分。
三.24秒倒计时显示,时间结束喇叭响;且显示每一个节次,每一小节比赛结束时有喇叭声音提示。
本人在这次课程设计过程中所做工作如下:
查询资料及硬件操作和后期的外围电路设计调试测试,以及最后的论文撰写。
第二章方案选择及设计思想
通过分析题目的要求,此次系统设计主要可分为三大模块,一是系统显示模块,二是单片机设计模块,三是键盘输入模块。
2.1系统显示模块
在显示模块的设计中,开始想到了常用的LED显示,但是考虑的后续硬件实现的复杂性(超过10以上的LED实物连接将十分复杂),于是在同学的建议下选取了方便但是没有接触过的LCD显示,因此也导致了一定程度的难度。
下面将对LCD1602a作个简单的介绍。
2.1.11602接口说明
1602采用标准的16脚接口,如下:
第1脚:
VSS为地电源
第2脚:
VDD接5V正电源
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光电源正极。
第16脚:
背光电源负极。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
LCD1602A引脚如表2.1所示。
表2.11602a引脚分配表
引脚名
引脚号
电平
输入/输出
功能
VSS
1
电源地
VCC
2
电源(+5V)
VEE
3
对比调整电压
RS
4
0/1
输入
0=输入指令
1=输入数据
R/W
5
0/1
输入
0=向LCD写入指令或数据
1=从LCD读取信息
E
6
1,1→0
输入
使能信号,1=读取信号
1→0(下降沿)执行指令
DB0
7
0/1
输入/输出
数据总线line0(最低位)
DB1
8
0/1
输入/输出
数据总线line1
DB2
9
0/1
输入/输出
数据总线line2
DB3
10
0/1
输入/输出
数据总线line3
DB4
11
0/1
输入/输出
数据总线line4
DB5
12
0/1
输入/输出
数据总线line5
DB6
13
0/1
输入/输出
数据总线line6
DB7
14
0/1
输入/输出
数据总线line7(最高位)
A
15
+VCC
LCD背光电源正极
K
16
接地
LCD背光电源负极
2.1.21602A的部分使用说明
写数据
CPU向数据寄存器通道写入数据,SPLC780根据当前地址指针计数器AC值的属性及数值将该数据送入相应的存储器的AC所指的单元里。
如果AC值为DDRAN地址指针,则认为写入的数据是字符代码并送入DDRAM的AC所指单元里。
如果AC值为CGRAM的地址指针,则认为写入的数据时自定义字符的字模数据并送入CGRAM内AC所指的单元里。
所以CPU在写数据之前需要设置地址指针或认为的确定地址指针的属性及数值。
在写入数据后地址指针计数器AC将根据最近设置的输入方式最大修改。
由此可知,CPU在写数据操作之前要做两项工作,其一是设置或确认地址指针计数器AC值的属性及数值,以确保所写数据能够正确到位,其二是设置或确认输入方式,以确保连续写入数据时AC值的修改方式符合要求。
读数据
在SPLC780的内部运行时序操作下,地址指针计数器AC值的每一次修改,包括新的AC值的写入,光标滚动位移所引起的AC值的修改或由CPU读写数据操作后所产生的AC值的修改,SPLC780都会把当前AC所指单元的内容送到数据输出寄存器内,供CPU读取。
如果AC值为DDRAM地址指针,则认为读的是DDRAM内AC所指的单元的字符代码,如果AC值为CGRAM的地址指针,则认为读取的是CGRAM内AC所指单元的自定义字符的字模数据。
2.2单片机设计模块
在单片机设计模块中,采用Atmel公司的AT89S51单片机作为控制器。
该单片机扩展功能强,软件编程灵活,自由度大,可通过软件编程实现各种算法和逻辑控制,并具有功耗低、体积小、技术成熟等优点,使其广泛应用于各个电子控制系统,完全能满足本系统的功能需求。
单片微型计算机(SingleChipMicrocomputer)简称单片机,是指在一块芯片上集成了中央处理器CPU、随机存储器RAM、程序存储器ROM或EPROM、定时器\计数器、中断控制器以及串行和并行I\O接口等部件,构成一个完整的微型计算机。
对于简单的输入和输出控制,51机显然最合适,51单片机是8位的,采用总线结构,但是具有控制简便,接口简单,工作可靠,价格经济,能耗少,容易实现系统小型化等特点。
本次设计采用常用的AT89C51,其基本结构框图如图2.1。
图2.1单片机结构框图
图2.2AT89C51引脚图
AT89S51简介
P0:
双向I/O口,寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部存储器时可作为8位准双向I/O口使用。
引脚为39-32。
P1:
8位双向I/O口,P1口写入’1’后可作为输入,引脚为1-8。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入,引脚为19。
XTAL2:
来自反向振荡放大器的输出,引脚为18。
AT89S51的引脚图如图2.2所示。
P3口介绍如表2.2所示:
表2.2AT89S51的P3口功能表
位线
引脚
功能
P3.0/RXD
10
串行口输入
P3.1/TXD
11
串行口输出
P3.2/INT0
12
外部中断0输入
P3.3/INT1
13
外部中断1输入
P3.4/T0
14
定时器T0外部计数脉冲输入
P3.5/T1
15
定时器T1外部计数脉冲输入
P3.6/WR
16
片外RAM写选通
P3.7/RD
17
片外RAM读选通
2.3键盘模块
此部分由按键开关组成,记分器有九个按键.其中K0按下得分减一.K9键按一下第一个队得分加一.其余的键分别实现加二,加三,节次,暂停的控制。
调节时间的时候,先同时按下K0和K9.这时时间的小时部分会跳闪,表示小时被选中了,这样就可以
对小时进行设置:
按一下K0时间加一,按一下k9时间减一,设置完后再同时按一下K9和K0,时间的分钟部分会跳闪。
对分钟数进行设置:
同样按一下K0分钟数加一,按一下K9分钟数减一,设置完后再同时按一下两个键就可以退出设置。
因为篮球计分系统电路结构比较简单,只有按键控制和数码显示两个部分,P0口接6个开关,分别作为比分的加一,加二,加三,减一,设置节次,暂停的按键控制。
P2口和P3口控制LCD的比分及时间显示。
第三章硬件设计
3.1原理框图
该系统包括单片机AT89S51,时钟电路,复位电路,按键控制电路,及LCD显示器五部分。
该电路控制简单,清晰明了,用LCD液晶显示,避免了用LED的复杂接线,便于实体硬件电路的焊接。
其系统框图如图3.1所示。
各部分的工作原理见第3.2节。
图3.1系统框图
3.2工作原理
3.2.1LCD显示器LCD1602
该显示器的RS,RW,E端与P2相连,引脚的作用分别是:
RS=0输入指令,RS=1输入数据,RW=0向LCD写入指令或数据,RW=1从LCD读取信息,E是使能信号。
D0~D7与P3相连是数据总线。
3.2.2时钟电路
时钟电路在单片机系统中起着非常重要的作用,是为保证系统正常工作的基础,在一个单片机系统中,时钟是保障系统正常工作的基准震荡定时信号。
图3.2是晶振电路,主要有晶振和外围电路组成,晶振频率大小决定单片机的快慢,我们这里采用的是12MHZ,另外有2个30P的电容。
其中接地用来削减谐波对电路的稳定性的影响。
图3.2时钟电路图
3.2.3复位电路
单片机系统的复位电路我们采用的是上电加按钮的复位电路形式,电阻采用220欧的阻值,采用22μ的电容。
其电路连接方式如图3.3。
当单片机的复位引脚RESET出现2个机器周期以上的高电平时,单片机就执行复位操作。
图3.3复位电路图
3.2.4按键电路
本设计共有9个设置按键,分别为+1,+2,+3,-1,暂停,设置节次按键。
按键与P0口相接。
其电路图如图3.4。
图3.4按键电路图
3.3元件清单
三极管9012×2单片机AT89S51×1按钮×10电阻10K×6电阻1K×2
液晶显示屏LCD1602a×1电容22μ×1电容30p×2
3.4电路图
该设计的总的原理电路图如图3.5所示。
当按下不同的按键时,显示器上显示相应的数据,第一列按键从上到下实现的功能分别是得分减一,A对加一分,B对加一分。
第二列按键从上到下实现的功能分别是倒计时暂停,A对加二分,B对加二分。
第三列按键从上到下实现的功能分别是节次显示,A对加三分,B对加三分。
每一节12分钟结束喇叭响。
图3.5原理电路图
第四章软件设计流程及描述
4.1系统模块层次结构图
液晶显示模块是一个慢显示器件,所以在执行每一条指令前要确认模块的忙标志,低电平便是不忙,否则此指令失效。
在对液晶模块的出事化中要先设置其显示模式,在液晶模块显示字符是光标是自动右移的,无需人工干预。
每次输入指令前都要判断液晶模块是否处于忙状态。
系统层次结构图如图4.1所示。
系统开始时需要对定时器和LCD进行初始化。
单片机需要对按键进行判断,判断是否有按键按下,并判断是那个按键按下,所以需要写入按键扫描函数。
比赛中需要暂停或休息,所以又需要写入延时函数。
另外显示器要显示数据也需要写入程序让其读取信号。
图4.1系统模块层次结构图
4.2程序流程图
定时器T0,T1及LCD的初始化,T0计每一小节的倒计时时间,T1计当前时间。
按键与P0口相接,读取P0口的数据判断是否有按键按下,若没有按键按下则继续返回读取P0口的数据。
若有按键按下就判断是哪个键按下,各个键的作用是:
A对加一分,加二分,加三分;B对加一分,加二分,加三分;得分减一,暂停/暂停复位,节次加一。
等待按键释放并将时间,分数,节次经P2,P3口输出在LCD上显示。
其总的流程图如图4.2。
图4.2总的程序流程图
4.3初始化程序
4.3.1T0,T1的初始化
voidTimer0Init(void)
{
TMOD=0x11;
TH0=0x3c;
TL0=0xb0;//50ms定时初值
TH1=0x3c;
TL1=0xb0;//10MS定时初值(T1计时用)
ET0=1;
ET1=1;
TR0=1;
TR1=1;
EA=1;
}
4.3.2LCD初始化
voidInit_LCD(void)
{
Delay(400);//稍微延时,等待LCM进入工作状态
Write_Comm(0x38);//8位2行5*8
Write_Comm(0x0c);//显示开/关,光标开闪烁开
Write_Comm(0x01);//清显示
Write_Comm(0x06);//文字不动,光标右移
Write_Comm(0x02);//光标归位
}
4.4LCD内部程序
4.4.1读忙判断程序
voidRead_Busy(void)
{
uchari=50;
Lcd_Port=0xff;
RS=0;
RW=1;
E=1;
while((i--)&&Busy);
E=0;
}
4.4.2写函数
写指令函数
voidWrite_Comm(ucharlcdcomm)
{
Read_Busy();
RS=0;
RW=0;
E=1;
Lcd_Port=lcdcomm;
E=0;
}
写字符函数
voidWrite_Char(uintnum)//写字符函数
{
Read_Busy();
RS=1;
RW=0;
E=1;
Lcd_Port=Lcddata[num];
E=0;
}
写数据函数
voidWrite_Data(ucharlcddata)
{
Read_Busy();
RS=1;
RW=0;
E=1;
Lcd_Port=lcddata;
E=0;
}
4.5按键扫描
voidkeyscan()
{
uchari,t=0xef;//11101111
KEY_IO=0x0f;
keytemp=(~KEY_IO)&0x0e;
if(keytemp!
=0)//00000000;00001000;00000100;00000010;00000001;
{
Delay(20);
for(i=0;i<3;i++)
{
KEY_IO=t;
keytemp=(~KEY_IO)&0x0e;
if(keytemp!
=0&flag_key==0)
{
flag_key=1;
switch(keytemp)
{
case0x08:
key=0*3+i;break;
case0x04:
key=1*3+i;break;
case0x02:
key=2*3+i;break;
default:
break;
}
第五章测试
5.1测试工具
4位半数字万用表,5V直流电源。
5.2测试结果
倒计时方式显示单节比赛剩余时间,可暂停。
显示双方得分,按键输入可修改分值,设置三个按键分别加分1,2,3,如有错误可进行分值的相应修改设置一个按键每次减1分。
24秒倒计时显示时间结束喇叭响,且显示每一个节次,比赛结束时有喇叭声音提示。
5.3仿真图
最后的仿真效果图如图5.3所示。
图5.3仿真图
第六章总结
通过本次本次课程设计的实践,发现了自己的很多不足,首先是自己知识掌握很多都一知半解,实践经验及动手能力比较薄弱,不管是程序设计阶段还是实际调试阶段都出现了很多错误。
在设计过程中,我经历了很多,也学到了很多,对于程序的改写一筹莫展的时候也有,此次设计是我们专业课程知识综合应用的实践训练,这是我们迈向社会,从事职业工作前一个必不少的过程。
“实践出真知”,通过这次课程设计,我认识到只有理论联系实践才可以把所学的东西真正掌握。
此次课程设计让我进一步了解了单片机的实际设计过程,了解了基本的设计方法和调试过程的基本步骤,以及学会了制板。
在这过程中出现了很多问题,在此特别感谢同学们的细心指导和帮助,以及指导老师赖春红对我的系统设计和硬件调试过程帮助和指导,有了他们我的设计才有了实物制作成功的保证。
参考文献
[1]万文略编著.单片机原理及应用.重庆:
重庆大学出版社,2004.
[2]孙德文编著.微型计算机技术.北京:
高等教育出版社,2005.
[3]张建勋编著.C语言程序设计教程.北京:
清华大学出版社,2008.
[4]于海生编著.计算机控制技术.北京:
机械工业出版社,2007.
[5]胡建明编著.MCS-51单片机篮球计分器的设计[N].期刊论文.广西轻工业.2008-9
[6]金素华,张尉.单片机调试方法的讨论.电子世界,2004-4-25
[7]AT89C51DATASHEEPPhilipsSemiconductors1999.dec
附录
源程序代码
#include
#include"intrins.h"//_nop_();延时函数用
#defineucharunsignedchar
#defineuintunsignedint
#defineLcd_PortP3//定义数据端口
#defineKEY_IOP0//键盘接口
sbitRS=P2^1;//定义和LCM的连接端口
sbitRW=P2^2;
sbitE=P2^5;
sbitBusy=P3^7;
sbitspeaker=P1^0;
uchardatakeytemp,key;
ucharL=0;
uchark=0;
ucharc=0;
ucharb=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 篮球计时计分器设计 毕业论文 篮球 计时 计分 设计