基于AT89S52单片机的篮球计时计分器设计毕业设计论文.docx
《基于AT89S52单片机的篮球计时计分器设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于AT89S52单片机的篮球计时计分器设计毕业设计论文.docx(25页珍藏版)》请在冰豆网上搜索。
![基于AT89S52单片机的篮球计时计分器设计毕业设计论文.docx](https://file1.bdocx.com/fileroot1/2023-1/2/b562e698-2af2-445f-bc23-66a08af75b22/b562e698-2af2-445f-bc23-66a08af75b221.gif)
基于AT89S52单片机的篮球计时计分器设计毕业设计论文
毕业设计(论文)
基于AT89S52单片机的篮球计时计分器设计
摘要
随着单片机载各个领域的广泛应用,许多用单片机作控制的球赛计时计分器系统也应运产生,如用单片机控制LCD液晶显示器计时计分器,用单片机控制LED七段显示器计时计分器等。
本设计介绍一种有AT89S52编程控制基于LCD12864液晶显示的篮球比球赛计时计分系统。
本系统具有赛程定时设置、赛程时间暂停、蜂鸣报警、记录犯规、比分加减、进行加时赛等功能。
本设计具有价格低廉、性能稳定、操作方便且修改灵活等特点。
广泛适合各类学校和小团体作为赛程计时计分。
主控芯片采用AT89S52单片机,采用C语言进行编程,编程后利用KeiluVision3来进行编译,再将生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能是否能够正常实现。
仿真成功后,焊接硬件电路,通过ISP下载器将hex文件烧制到单片机。
关键词:
单片机液晶显示蜂鸣报警定时设置
Abstract
WiththeMCUcontainsawiderangeofapplicationsinvariousfields,manywithasinglechiptimingforthecontrolofthegamescoringdevicetransportsystemshouldalsoproduce,suchasliquidcrystaldisplayLCDwithMCUtimescoringdevice,LEDsevensegmentdisplaywithmicrocontrollertimingcontrolpoints,etc..
ThispaperdescribesaprogrammablecontrolwithAT89S52LCD12864liquidcrystaldisplaybasedongametimescoringthanbasketball.Thesystemhasasettimeschedule,scheduletimetopause,beepalarm,recordfouls,thescoreadditionandsubtraction,forovertimeandotherfunctions.Thisdesignhaslowprice,stableperformance,easytooperateandmodifyflexible.Wideforalltypesofschoolsandsmallgroupsastheracetimepoints.
MasterchipAT89S52microcontroller,usingCprogramminglanguage,programmedtobecompiledusingKeiluVision3,andthengeneratetheHEXfileintothechip,usingproteussimulationsoftware,testingwhetherthefunctionofthenormalimplementation.Afterasuccessfulsimulation,weldinghardwarecircuit,throughtheISPdownloaderhexfilewillburntothemicrocontroller.
KeyWords:
Scm,liquidcrystaldisplayBeepAlarmTimingSet
第一章设计方案选择与论证
1.1方案选择与论证
篮球比赛主要实现的基本功能有:
开始和暂停、比赛时间倒计时、24秒倒计时、加减分操作、蜂鸣报警、时间和比分的显示等基本功能。
因此,必须要有相关的输入模块、控制模块和显示模块等。
对于输入模块,有独立按键输入和矩阵式按键输入。
前者的组键模式单一,适用于输入对象比较少的场合;后者的组键模式灵活,可用于输入更多的控制对象。
对于控制模块,可通过数字芯片进行控制,也可通过单片机进行控制。
显然,单片机控制方式无疑是最高效的。
对于显示模块,有LED数码管显示和LCD液晶显示,与液晶相比,LED体积大,更耗电,并且显示的内容少。
1.1.1方案一利用数字电路和数码管实现
用石英晶体振荡器或555定时器产生稳定的校时信号,555定时器应用普遍,操作简单故选用555定时器来完成报警电路和1秒脉冲。
运用了74LS157,74LS190,74LS00,74LS20及555定时器等基本元件。
此类元件价格便宜,应用简单,能实现较多的功能,是工程中的基本元件。
学会运用此类元件对我们具有重大意义。
其系统框图如图1-1所示。
图1-1数字电路实现系统框图
1.1.2方案二采用单片机和液晶显示电路实现
该方案以单片机为核心,作为控制模块,并以液晶作为显示模块,由单片机自带的时钟电路和相应的定时器来实现计时,由于篮球比赛的规则较多,故以矩阵式键盘来输入需要控制的对象。
由单片机的P1口来接键盘,蜂鸣器接在未用的I/O口线上。
液晶的数据线接在P0口相应的口线上。
其总的系统框图如图1-2所示。
图1-2单片机电路实现系统框图
1.1.3最终方案的选择
方案一的实现要用到多块数字芯片,数字电路的一个大的缺点就是,当信号改变时会在电路中产生冲击电流,对于数字芯片的稳定工作是一个很大的考验。
这数字系统设计中,在工作频率很高时,需要很高的硬件来维持系统的稳定。
且LED数码管显示比液晶更耗电,且体积较大,显示的位数也较少,综合考虑,选用方案二来实现本设计。
第二章系统硬件的实现
2.1单片机选择
单片机采用52系列单片机。
由ATMEL公司生产的AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
而且,它还具有一个看门狗(WDT)定时/计数器,如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路。
AT89S52有40个Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
其芯片外观及引脚图如下:
引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口。
图2-1AT89S52单片机图2-2AT89S52引脚图
2.2硬件电路实现
2.2.1电源供电模块
图2-3电源模块电路图
51单片机更容易受到干扰而出现程序跑飞的现象,克服这种现象出现的一个重要手段就是为单片机系统配置一个稳定可靠的电源供电模块。
此最小系统中的电源供电模块的电源可以通过计算机的USB口供给,也可使用外部稳定的5V电源供电模块供给。
电源电路中接入了电源指示LED,图中R11为LED的限流电阻。
S1为电源开关。
2.2.2时钟电路模块
图2-4振荡电路图
单片机系统里都有晶振,在单片机系统里晶振作用非常大,全称叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
2.2.3复位电路模块
图2-5复位电路图
单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。
2.2.4按键控制键盘模块
为了减少对I/O口的占用,通常将按键排列成矩阵形式,也称为行列键盘,这是一种常见的连接方式。
矩阵式键盘接口见图2-6所示,它由行线和列线组成,按键位于行、列的交叉点上。
当键被按下时,其交点的行线和列线接通,相应的行线或列线上的电平发生变化,MCU通过检测行或列线上的电平变化可以确定哪个按键被按下。
图2-6为一个4x4的行列结构,可以构成16个键的键盘。
很明显,在按键数量多的场合,矩阵键盘与独立式按键键盘相比可以节省很多的I/O口线。
图2-6矩阵式键盘
2.2.5液晶模块
设计中采用LCD12864液晶显示。
它一般串口、并口两种方式显示,而我们一般采用并口显示。
12864的4、5、6、15、17脚分别与单片机的P3.0~P3.4相连。
7~14脚与单片机的P0口相连。
1、20号脚接地,2号脚接电源,19号脚背光灯正端串一个电阻与电源相连,电阻起限流的作用,我们取R=10K。
3号脚是对比度(亮度)调整,这里
要用一个滑动变阻器来调整亮度,这里我们取电位器大小为10K。
LCD12864显示电路如图2-7所示:
图2-7液晶显示电路
(1)12864F简介
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
表2-112864F引脚说明
管脚号
管脚名称
电平
管脚功能描述
1
VSS
0V
电源地
2
VCC
3.0+5V
电源正
3
V0
-
对比度(亮度)调整
4
RS(CS)
H/L
RS=“H”,表示DB7——DB0为显示数据
RS=“L”,表示DB7——DB0为显示指令数据
5
R/W(SID)
H/L
R/W=“H”,E=“H”,数据被读到DB7——DB0
R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR
6
E(SCLK)
H/L
使能信号
7
DB0
H/L
三态数据线
8
DB1
H/L
三态数据线
9
DB2
H/L
三态数据线
10
DB3
H/L
三态数据线
11
DB4
H/L
三态数据线
12
DB5
H/L
三态数据线
13
DB6
H/L
三态数据线
14
DB7
H/L
三态数据线
15
PSB
H/L
H:
8位或4位并口方式,L:
串口方式
16
NC
-
空脚
17
/RESET
H/L
复位端,低电平有效
18
VOUT
-
LCD驱动电压输出端
19
A
VDD
背光源正端(+5V)
20
K
VSS
背光源负端
2.2.6报警模块
图2-8报警电路
蜂鸣器使用PNP三极管进行驱动控制,板上使用的是直流蜂鸣器,当P3.7输出低电平时,蜂鸣器鸣叫。
由于蜂鸣器为感性原件,可以在两端并接一个二极管来起到泄放作用。
第三章系统软件实现
3.1软件总体设计方案
本次单片机课程设计软件设计部分采用模块化程序设计,程序部分由主程序、T0中断程序、扫描显示子程序、计时加(减)1秒的子程序、暂停子程序、延时子程序等组成.其程序流程图如图3-1图3-2。
图3-1主程序流程图
图3-2扫描刷新显示子程序流程图
3.2主要子功能程序
voidcounter_down(void)
{
if(time>=20)//每1s倒计时做减一操作
{
sec--;
sec_24s--;
write(0x87);//24s倒计时显示
read(0x30+sec_24s/10);
read(0x30+sec_24s%10);
if(sec_24s==0)//24s结束发出3s连续报警
{
FM=0;
delay(3000);
FM=1;
sec_24s=24;
write(0x87);
read(0x30+sec_24s/10);
read(0x30+sec_24s%10);}
if((sec==-1)&&(min==0))//检测一节比赛是否结束
{fangui1=0;
fangui2=0;
write(0x9b);//犯规次数清零
read(0x30);
write(0x9c);
read(0x30);
TR1=0;//定时器1暂停
write(0x87);
read(0x30);
num++;
sec_24s=24;//24s计时复位
write(0x87);//24s倒计时显示
read(0x30+sec_24s/10);
read(0x30+sec_24s%10);
write(0x83);//更新倒计时显示
read(0x30+min/10);
read(0x30+min%10);
write(0x85);
read(0x30+sec/10);
read(0x30+sec%10);
write(0x86);
read(0x20);
read(0x20);
time=0;
}
3.2.2中断程序
voidtimer0()interrupt1//定时器0中断20次为1s
{
time0++;
TL0=0x00;
TH0=0x4c;
xitongdaojishi();//进入系统倒计时
}
/***定时器1中断***/
voidtimer1()interrupt3//定时器1中断20次为1s
{TF1=0;
time++;
TL1=0x00;
TH1=0x4c;
counter_down();//倒计时
}
Voidfenshu()
{hpoint++;//S3键:
主队加分
point_lcd(0x00,hpoint);//分数显示更新
hpoint--;//分数显示更新
point_lcd(0x00,hpoint);}
voidpoint_lcd(ucharadd,uchardat)
{
write(0x8b+add);
read(0x30+dat/100);
read(0x30+(dat%100)/10);
read(0x30+dat%10);
}
第四章PROTEUS仿真
4.1PROTEUS简介
Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:
ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2、MPLAB等软件。
④具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
采用C语言进行编程,编程后利用KeiluVision3来进行编译,再将生成的HEX文件装入芯片中即可,其仿真图如图4—1所示。
图4-1仿真电路
第五章硬件制作与调试
5.1硬件制作与调试
5.1.1系统PCB板的设计
PCB即印刷电路板,是电子电路的承载体。
在现代电子产品中,几乎都要使用PCB。
PCB板的设计是电路设计的最后一个环节,也是对原理电路的再设计。
因此PCB板的设计是理论设计到实际应用一个十分重要的内容。
印制电路板(PCB)是电子产品中电路元件和器件的支撑件.它提供电路元件和器件之间的电气连接。
PCB设计的好坏对抗干扰能力影响很大.因此,在进行PCB设计时.必须遵守印制电路板设计原则和抗干扰措施的一般原则,并应符合抗干扰设计的要求。
本次设计采用Altium公司PROTEL系列设计完成SCH到PCB的设计,并且手工完成电路焊接以及整机的装配。
5.1.2系统硬件调试
本系统的硬件调试分为以下阶段进行调试:
(1)逻辑错误调试
样机硬件的逻辑错误是由于设计错误和加工过程中的工艺性错误所造成的。
这类错误包括:
错线、开路、短路等几种,其中短路是最常见的故障。
(2)器件调试
元器件失效的原因有两个方面:
一是器件本身已损坏或性能不符合要求;二是由于组装错误造成的元器件失效,如电解电容、二极管的极性错误,集成块安装方向错误等。
(3)可靠性调试
引起系统不可靠的因素很多,如金属化孔、接插件接触不良会造成系统时好时坏;内部和外部的干扰、电源纹波系数过大、器件负载过大等造成逻辑电平不稳定;另外,走线和布局的不合理等也会引起系统可靠性差。
5.2软件及联机调试
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
KeilC51软件是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为μVision(通常称为μV2)。
Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:
μVisionIDE集成开发环境C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统。
5.2.1主控程序调试
应用Keil进行软件仿真开发的主要步骤为:
编写源程序并保存—建立工程并添加源文件—设置工程—编译/汇编、连接,产生目标文件—程序调试。
成功编译/汇编、连接后,选择菜单Debug-Start/StopDebugSession(或按Ctrl+F5键)进入程序调试状态,Keil提供对程序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。
Keil能以单步执行(按F11或选择Debug-Step)、过程单步执行(按F10或选择Debug-StepOver)、全速执行等多种运行方式进行程序调试。
如果发现程序有错,可采用在线汇编功能对程序进行在线修改(Debug-InlineAssambly…),不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。
对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理(Debug-Insert/RemoveBreakpoint或Debug-Breakpoints…等)。
在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况。
参考文献
[1] 吴金戌,沈庆阳.8051 单片机实践与应用,北京:
清华大学出版社,2003.12
[2] 何立民.单片机应用文集,北京:
北京航空航天大学出版社, 1991
[3] 公茂法.单片机人机接口实例集, 1998.2
[4] 何立明.单片机高级教 —— 应用与设计,北京:
北京航天航空大学出版社,2000 .4
[5] 李广弟,朱月秀.单片 2001 .8
[6] 楼然苗,李光飞. MCS - 51 系列单片机设计实例,北京:
北京航天航空大学出版社, 2001.3
[7] 李华.单片机原理与接口技术,北京:
清华大学出版社
[8] 王伟.高性能、低功耗带 RAM 实时时钟芯片 DS1302 (上),电子世界 :
第一期 ,1995
[9] 王伟.高性能、低功耗带 RAM 实时时钟芯片 DS1302 (下),电子世界 :
第四期 ,1995
[10] 刘光潭.中外集成电路简明速察手册,上海:
电子工业出版社, 1991 .
[11] 一九九九年产品目录(第一期) 1999 .
[12] 刘利.液晶显示原理,上海:
电子工业出版社, 2002. 5
[ 1 3] 李宏,张家田.液晶显示器件应用技术,北京:
机械工业出版社,2004
[14] 沈庆阳.汉字显示应用技术,上海:
电子工业出版社, 2002. 3
附录1系统原理图
附录2PCB图
附录3实物图
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人