基于51单片机的乒乓游戏机设计附Proteus仿真毕业设计Word格式文档下载.docx
《基于51单片机的乒乓游戏机设计附Proteus仿真毕业设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机的乒乓游戏机设计附Proteus仿真毕业设计Word格式文档下载.docx(59页珍藏版)》请在冰豆网上搜索。
游戏者根据球的位置发出相应的动作,提前击球或出界均判失分。
(3)比赛用11分为一局来进行,甲乙双方都应设置各自的记分牌,任何一方先记满11分,该方就算胜了此局。
当记分牌清零后,又可开始新的一局比赛。
1.3.2设计方法
本设计是基于单片机的乒乓游戏机设计,分别进行了硬件和软件两部分的设计。
硬件设计包括单片机电路、译码电路、发光二极管电路、按键电路、显示电路等电路的设计。
软件设计是使用KeiluVision4软件编写与硬件模块相应的源程序。
利用Proteus软件对电路进行仿真,最后通过制作实物实现设计。
2乒乓游戏机设计方案
目前,有两种方案来设计乒乓游戏机设计。
方案一是基于单片机的乒乓游戏机设计。
方案二是基于FPGA的乒乓游戏机设计。
2.1基于单片机的乒乓游戏机设计
方案一是基于单片机的乒乓游戏机设计,结果用LCD1602显示屏显示。
软件方面,使用KeiluVision4进行编程。
硬件设计包含单片机电路、模拟球台电路、按键电路、显示电路等电路的设计。
软件设计包括:
主程序、按键组程序(球拍模拟和暂停/开始子程序)、发球程序、线路程序(包括线路选择和LED点阵子程序)、回球程序、LCD显示程序。
基于单片机的乒乓游戏机系统框图如图2.1所示。
图2.1基于单片机的乒乓游戏机的系统框图
2.1.1硬件设计
电源电路设计:
单片机正常工作电压为+5V,设计采用三端稳压集成电路输出+5V电压。
时钟电路设计:
单片机可以看成是在时钟驱动下的时序逻辑电路,即单片机必须在时钟的驱动下才能工作。
因此,单片机需要时钟电路支持,否则不能执行程序。
复位电路设计:
单片机的复位电路使系统的所有功能部件都处于一个确定的初始状态,防止单片机执行错误操作、发出错误的指令等失误。
单片机的复位方式有:
手动按钮复位和上电复位。
本设计采用手动按钮复位方式进行复位。
按键电路设计:
包含两个按键组,一个是模拟球拍按键电路,一个是暂停/开始
和复位按键电路。
模拟球拍按键分为左右两边,左右各四个。
这四个按键其中三个是对LED点阵线路的操作,一个是进行加速;
暂停/开始和复位按键是在运行任一程序时,对游戏机进行暂停或开始或复位。
模拟球台设计:
包括译码电路设计和发光二极管设计。
译码电路设计:
本设计中采用16个发光二极管,而单片机的端口较少,因此采用3-8译码器节约端口。
发光二极管设计:
由单片机控制74LS138译码器,74LS138译码器译码控制LED点阵得点亮顺序和相应点亮时间。
显示电路设计:
设计中采用LCD显示屏显示结果,左右两边分别用A、B表示。
2.1.2软件设计
主程序:
对乒乓游戏机进行初始化,定时器设置,对LED点阵输入数据等,延时扫描按键。
按键程序:
在回球和发球时,按键按下给单片机传入数据作出相应处理。
包括暂停/开始子程序,对系统进行暂停和开始。
发球程序:
绿色指示灯亮起时,B得到发球球权,否则A得到发球球权。
线路程序:
游戏发球有8个线路选择,AB分别4个线路选择,共有16个回球线路,存在数组b[16]中,包括LED点阵子程序,由单片机线路和delay_1(t)控制74LS138译码器,74LS138译码器译码控制LED点阵得点亮顺序和相应点亮时间。
回球程序:
当球在A边时,A可在相应delay_1(t)中感应A按键组的数据并作出相应处理;
当球在B边时,同理。
显示程序:
显示游戏比分,当A或B到达11分时进入相应win子程序。
2.2基于FPGA的乒乓游戏机设计
因为学校具备专门的实验箱,如果采用方案二只需编程便可实现。
通过对各部分编写VHDL程序,然后进行编译、仿真、逻辑综合、逻辑适配,最后进行编程下载,并通过程序验证结果。
用16个发光二极管代表乒乓球,在游戏机的两侧各设置两个开关,一个是发球开关,一个是击球开关。
甲方按动发球开关时,靠近甲方的第一盏灯亮,然后发光二极管由甲向乙依次点亮,代表乒乓球在移动。
当球过网后,按设计者规定的球位乙方就可以击球。
若乙方提前击球或没有击到球,则判乙方失分,甲方自动加分,重新发球比赛继续进行到一方记分到11分,该局结束,记分牌清零,可以开始新的一局比赛。
其系统框图如2.2所示。
图2.2基于FPGA乒乓游戏机的系统框图
2.3方案比较与选择
FPGA的运行速度很快,适合高速场合,而单片机的运行速度低的多;
FPGA的I/O口多,容易实现大规模系统,方便连接外设,而单片机的I/O口较少,适合小规模系统;
FPGA的内部程序是并行运行,具有处理复杂功能的能力,而单片机程序时串行
执行,程序需要执行完一条才能执行下一条,处理突发事件时只能调用中断资源;
FPGA包含单片机和DSP软核,即单片机和DSP能实现的功能,FPGA一般都能实现。
单片机设计属于软件范畴,它的硬件即单片机芯片是固定的,通过软件编程语言描述在硬件芯片上的执行的软件指令。
FPGA设计属于硬件范畴,它的硬件即FPGA是可编程的,是一个通过硬件描述语言在FPGA芯片上自定义集成电路的过程。
由上可知,FPGA具有很多优点,但是对本设计而言是大材小用,而且芯片造价较高,因此选用单片机完成本设计。
在国内,有很多成熟且性价比高的单片机,以51单片机为主。
本设计对芯片的要求不高,因此选用性价比高的单片机STC89C51。
STC89C51是ISP的系统可编程芯片,可以直接将程序烧录到芯片中,方便程序的修改和实物调试。
其工作电压要求低,工作频率可达48MHz。
并且可通过串口直接下载程序,数秒即可完成下载。
采用单片机完成设计,可利用Proteus绘制电路原理图,用KeiluVision4进行编程,然后进行仿真调试,减少出错。
并且采用C语言编程,移植性强,使端口的程序控制变得简单。
综上所述,采用方案一完成乒乓游戏机的设计。
3硬件电路的设计
3.1硬件核心电路选择
乒乓游戏机设计选用单片机作为主控芯片,设计选用性价比高的STC89C51单片机。
STC89C51与其它51单片机比较,具有成本低,性能好的优点,并且其具有在线编程功能,可以直接将程序烧录到芯片中,不需要对硬件进行修改。
就乒乓游戏机而言,STC89C51能通过程序的编写实现所需的功能。
3.1.1单片机STC89C51简介
单片机STC89C51是宏晶科技推出的超强抗干扰/低功耗的单片机,指令代码与引脚结构完全兼容传统的8051单片机。
其最高工作时钟频率为80MHz,片内含8KBytes的可反复擦写1000次的FlashROM,芯片内集成了通用8位中央处理器和ISPFlash存储单元,具有在系统可编程特性,配合PC端的控制程序即可将用户的程序代码下载到单片机内部,并且速度更快。
STC89C51的芯片擦除特性:
整个PEROM阵列与三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚低电平10ms来完成。
在芯片擦除中,代码阵列全被写“1”,且在任何非空存储字节被重复编程以前,必须执行该操作。
STC89C51芯片及其引脚如图3.1所示。
图3.1STC89C51芯片及其芯片引脚图
3.1.2单片机端口分配
乒乓游戏机需要八个端口接按键;
16个发光二极管则通过两个3-8译码器与单片机连接,需要六个端口;
LCD显示屏需要7个端口;
单片机时钟电路接两个端口;
复位电路接复位端口;
暂停/开始按键需要两个端口;
发球指示灯和暂停指示灯需要两个端口。
下面对所需端口进行介绍及分配:
P0口(39~32脚):
P0.0~P0.7统称为P0口。
P0口是一个三态双向口,每个引脚可吸收八个TTL门电流。
当P0口的管脚第一次写“1”时,被定义为高阻输入。
P0可用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在Flash编程时,P0口用作原码输入口。
当Flash进行校验时,P0输出原码,必须接上拉电阻。
P1口(1~8脚):
P1.0~P1.7统称为P1口.P1口为准双向口,P1口缓冲器能接收四个TTL门电流。
P1口的管脚写“1”后,内部上拉为高,可用作输入。
P1口被外部下拉为低电平时,因为内部上拉,将输出电流。
在Flash编程和校验时,P1口接收低八位地址。
P2口(21~28脚):
P2.0~P2.7统称为P2口。
P2口为准双向口,缓冲器可接收/输出4个TTL门电流。
当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
作为输入时,P2口的管脚被外部拉低,因为内部上拉将输出电流。
当P2口用于外部程序存储器或十六位地址外部数据存储器进行存取时,P2口输出高八位地址。
在给出地址“1”时,利用上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出单片机特殊功能寄存器的内容。
P2口在Flash编程和校验时接收高八位地址信号和控制信号。
P3口(10~17脚):
P3.0~P3.7统称为P3口。
P2口为准,双向口可接收/输出四个TTL门电流。
当P3口写入“1”时,被内部上拉为高电平,并用作输入。
当外部下拉为低电平,因为上拉的缘故,P3口将输出电流。
P3口作为第二功能使用时各端口引脚的作用,如表3.1所示。
表3.1P3口的第二功能
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外中断0)
P3.3
/INT1(外中断1)
P3.4
T0(定时/计数器0)
P3.5
T1(定时/计数器1)
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
RST:
复位输入。
振荡器复位器件时,保持RST引脚两个机器周期高电平时间。
XTAL1:
反向放大器的输入、内部时钟工作电路的输入。
XTAL2:
反向振荡器的输出。
本设计中,STC89C51单片机的管脚如下分配:
P0.0~P0.7口用作按键输入口,接上拉电阻;
P1.0~P1.1口作为暂停、开始按键输入口;
P1.2~P1.5作为LCD显示屏输入口;
P1.6作为发球权指示灯,P1.7作为暂停指示灯控制口;
P2.0~P2.7作为译码器信号输入口控制发光二极管;
P3.2~P3.4作为LCD显示屏的控制端;
RST引脚为复位电路输入口;
XTAL1、XTAL2分别作为片内振荡器的输入和输出。
3.2电源电路的设计
单片机STC89C51的工作电压为+5V,因此需要一个电源电路来提供这一电压。
设计通过固定三端稳压集器,输出使单片机工作的+5V电压。
固定三端稳压器主要有78XX系列的正电压输出稳压器和79XX系列的负电压稳压器。
两个系列的固定三端稳压器,输出电压有5V、6V、9V、12V、15V、18V、24V等规格,最大输出电流为1.5A。
这种三端稳压器内部包含了过流、过热和调整管的保护电路,使用时组成稳压电源所需的外围元件少,使用起来可靠、方便、快捷。
7805的参数为:
在25℃,输入电压为7.5~20V时,输出电压为4.8V~5.2V。
因此本设计采用三端稳压器7805输出5V电压。
固定三端稳压器7805的1脚为输入端,2脚为接地端,三脚为输出端。
芯片7805及其引脚图如图3.2所示。
123
图3.2芯片7805及其引脚图
3.3时钟电路的设计
单片机,可以认为是在时钟驱动下的时序逻辑电路,即单片机必须在时钟的驱动下才能够工作。
单片机内部含有一个可以构成振荡器的放大电路。
在单片机内部含时钟振荡电路,外部一个振荡源产生是送到单片机内部,决定单片机的工作速度。
此设计选用内部振荡方式,即把放大器与振荡器连接,构成的内部自激振荡器并产生振荡时钟脉冲。
选用的元器件为一个12MHz的石英晶体振荡器,两个30pF的电容。
此电路在加点延迟10ms后振荡起振,在XTAL2引脚产生正弦时钟信号。
电路中的电容作用有两个:
一是对振荡器的频率进行微调,二是帮助振荡器起振。
因为石英晶体振荡器的振荡频率为12MHz,即单片机的振荡周期为1us,状态周期为2us,机器周期为12us。
时钟电路设计如图3.3所示。
图3.3时钟电路图
3.4复位电路的设计
单片机STC89C51第九引脚为硬件复位端。
对该引脚程序4个机器周期的高电平即可实现复位,复位后单片机都恢复到初始化状态。
复位电路由按键及电容,电阻构成。
当按下按键时,电源经电阻R1、R2分压,在复位管脚产生一个复位高电平,此时单片机处于复位状态。
当上电后,电容缓慢充电,单片机的复位管脚电压由高向低转化,经过一定时间,复位管脚处于稳定的低电平状态,此时单片机复位完毕,系统从0000H执行程序。
该电路使用了按键一个,10uF的电容一个,10KΩ和1kΩ的电阻各一个。
复位电路设计图如图3.4所示。
图3.4复位电路设计图
3.5按键电路的设计
按键是一种常见的控制电器元件,常用来接通或断开控制电路,从而达到控制电路的一种开关。
按键共有4个引脚,当未按下按键时,2引脚和3引脚是导通的,1引脚和4引脚是导通的。
当按下按键时,1引脚和2引脚连通,3引脚和4引脚连通,
2引脚和3引脚连通,1引脚和4引脚连通。
按键及其引脚图如图3.5所示。
图3.5按键及其引脚图
乒乓游戏机的按键电路包含两个按键组,一个是模拟球拍按键电路,一个是暂停/开始和复位按键电路。
设计中模拟球拍按键与P0口相连,同时P0口接5KΩ的上拉电阻。
当发光二极管亮时,按下按键进行控制。
当按键按下的时候,相应端口感应输入为低电平0。
模拟球拍按键电路设计图如3.6所示。
图3.6按键电路设计图
暂停和开始按键分别与单片机的P1.0和P1.1相连。
复位按键与单片机复位端口相连。
暂停和开始按键电路设计图如图3.7所示。
图3.7暂停和开始按键电路设计图
3.6模拟球台电路的设计
模拟球台电路设计包括译码电路设计和发光二极管设计。
乒乓游戏机采用16个发光二极管,单片机的端口有限,因此采用单片机的P2口的5个端口控制74LS138译码器进行译码,节约端口。
译码器74LS138的输入电压范围为+3.5~+5V。
3.6.1译码器简介
本设计采用74LS138译码器进行译码。
74LS138为3-8线译码器,其中LS指采用低功耗肖特基电路。
该译码器有3位二进制输入A0、A1、A2,共有8种状态的组合,即可译出8个输出信号Y0~Y7,输出低电平有效。
此外,还设置了E1、E2和E3三个使能输入端,为电路功能的扩展提供方便。
译码器74LS138的管脚及其功能如表3.2所示。
表3.2译码器74LS138管脚功能
管脚
功能
VCC
电源正
GND
地
E1
选通端
E2/E3
选通端(低电平有效)
A0~A3
地址输入端
Y0~Y7:
输出端(低电平有效)
74LS138译码器的工作原理为:
当一个选通端(E1)为高电平,另两个选通端(E2)和(E3)为低电平时,可将地址端(A0、A1、A2)的二进制编码在对应的输出端以低电平译出。
74LS138的引脚图如图3.8示。
图3.874LS138的引脚图
74LS138的功能真值表如表3.3所示。
表3.374LS138功能真值表
输
入
出
E3
E2
A2
A1
A0
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
X
H
L
3.6.2发光二极管简介
发光二极管简称为LED,是一种能发光的半导体电子元件。
这种电子元件在1962年出现,由镓(Ga)与砷(As)、磷(P)的化合物组成的二极管,电子与空穴复合时能辐射出可见光。
其中,磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。
发光二极管具有单向导通性,即发光二极管只能往一个方向通电,这种特性叫做正向偏置(正向偏压)。
发光二极管的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后用环氧树脂密封,起到保护内部芯片线的作用。
发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。
在某些半导体材料的PN结中,注入少数载流子与多数数载流子复合时把多余的能量以光的形式释放出来,从而把电能转换
成光能。
发光二极管的两根引线较长的一根是正极,需接电源正极。
发光二极管及其构造如图3.9所示。
图3.9发光二极管及其构造
3.6.3模拟球拍电路的设计
单片机P2.0~P2.3控制两个译码器的A,B,C端,P2.4和P2.7分别控制两个译码器的E1端,且E2、E3两个端口接地。
单片机P2口输出信号,从而达到控制发光二极管的熄灭与点亮。
其电路图如图3.10所示。
图3.10模拟球台电路设计图
3.7显示电路的设计
乒乓游戏机的数据较为简单,只需要显示比分和最终胜利的状态,因此选用只显示字符和数字的LCD1602显示屏。
3.7.1LCD1602简介
乒乓游戏机显示电路设计采用LCD1602显示屏。
LCD1602为工业字符型液晶,能够同时显示32个字符。
它是专门用来显示字母、数字、符号等的点阵型液晶模块。
由若干个5*7或5*11等点阵字符位组成。
每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
LCD采用标准的16脚接口,其管脚功能如表3.4所示。
表3.4LCD1602的管脚功能表
VSS
电源地
接5V电源电极
V0(VEE)
液晶显示器对比度调整端,接正电源对比度最弱,接地电源最高
RS
寄存器选择。
高电平时选择数据寄存器,低电平时选择指令寄存器
RW
读写信号线。
高电平时读取信息,低电平时进行写操作
E(EN)
使能端。
高电平时读取信息,负跳变时执行指令
D0~D7
8位双向数据端
BLA
背光正极
BLK
背光负极
LCD1602的特性:
3.3V或5V工作电压,对比度可调;
内含复位电路,提供各种控制命令;
有80字节显示数据存储器DDRAM;
内建有192个5*7点阵的字型的字符发生器CGROM;
8个可由用户自定义的5*7的字符发生器CGRAM;
LCD1602及其引脚图如图3.11所示。
图3.11LCD1602及其引脚图
3.7.2显示电路的设计
此设计中的显示模块采用LCD来显示乒乓游戏机的AB队比分。
LCD1602的D4、D5、D6、D7分别与单片机中的P1.5、P1.4、P1.3、P1.2相连,用于数据和地址的传输。
LCD1602的RS、RW、E分别与单片机中的P3.4、P3.3、P3.2相连,用于写入控制。
其电路设计图如图3.12所示。
图3.12显示电路设计图
3.8乒乓游戏机总电路的设计
本设计采用Proteus绘制电路设计仿真图,乒乓游戏机的硬件设计包括单片机电路、译码电路、发光二极管电路、按键电路、显示电路等电路的设计。
其仿真图如图3.13所示。
图3.13总电路设计图
乒乓游戏机的硬件包括单片机电路、译码电路、发光二极管电路、按键电路、显示电路等电路。
其中单片机电路包括:
晶振电路,复位电路;
由译码器接P2的5个I/O口控制16个模拟乒乓球台桌LED灯;
由单片机的P0口接上拉电阻,感应按键电路的输入;
有P1.2到P1.5给LCD进行数据的输入,P3.2-P3.3给LCD进行写入控制。
4乒乓游戏机的软件设计及编程
本系统的软件主要采用模块化结构设计,具体的程序有主程序、按键组程序(球拍模拟和暂停/开始子程序)、发球程序、线路程序(包括线路选择和LED点阵子程序)、回球程序、LCD显示程序。
系统流程图如图4.1所示。
图4.1系统流程图
通过程序实现的功能