西南石油大学本科毕业设计(论文)
1.3 本设计的任务和设计方法
1.3.1 设计任务
如今各种不同类型的游戏设备一直是消费领域的热点,本设计要求用低廉的成本设计出符合要求的游戏设备,要求操作方便,系统稳定度高。设计任务为:
(1)使用乒乓游戏机的甲乙双方各在不同的位置发球或击球。
(2)乒乓球的位置和移动方向由灯亮及依次点燃的方向决定,球移动的速度为0.1~1s移动一位。游戏者根据球的位置发出相应的动作,提前击球或出界均判失分。
(3)比赛用11分为一局来进行,甲乙双方都应设置各自的记分牌,任何一方先记满11分,该方就算胜了此局。当记分牌清零后,又可开始新的一局比赛。
1.3.2 设计方法
本设计是基于单片机的乒乓游戏机设计,分别进行了硬件和软件两部分的设计。硬件设计包括单片机电路、译码电路、发光二极管电路、按键电路、显示电路等电路的设计。软件设计是使用Keil uVision4软件编写与硬件模块相应的源程序。利用Proteus软件对电路进行仿真,最后通过制作实物实现设计。
2
乒乓游戏机设计
2 乒乓游戏机设计方案
目前,有两种方案来设计乒乓游戏机设计。方案一是基于单片机的乒乓游戏机设计。方案二是基于FPGA的乒乓游戏机设计。
2.1 基于单片机的乒乓游戏机设计
方案一是基于单片机的乒乓游戏机设计,结果用LCD1602显示屏显示。软件方面,使用Keil uVision4进行编程。硬件设计包含单片机电路、模拟球台电路、按键电路、显示电路等电路的设计。软件设计包括:主程序、按键组程序(球拍模拟和暂停/开始子程序)、发球程序、线路程序(包括线路选择和LED点阵子程序)、回球程序、LCD显示程序。基于单片机的乒乓游戏机系统框图如图2.1所示。 电源电路
时钟电路
复位电路
单片机模块模拟球台电路 按键电路
LCD显示屏 图2.1 基于单片机的乒乓游戏机的系统框图
2.1.1 硬件设计
电源电路设计:单片机正常工作电压为+5V,设计采用三端稳压集成电路输出+5V电压。
时钟电路设计:单片机可以看成是在时钟驱动下的时序逻辑电路,即单片机必须在时钟的驱动下才能工作。因此,单片机需要时钟电路支持,否则不能执行程序。
复位电路设计:单片机的复位电路使系统的所有功能部件都处于一个确定的初始状态,防止单片机执行错误操作、发出错误的指令等失误。单片机的复位方式有:手动按钮复位和上电复位。本设计采用手动按钮复位方式进行复位。
按键电路设计:包含两个按键组,一个是模拟球拍按键电路,一个是暂停/开始
3
西南石油大学本科毕业设计(论文)
和复位按键电路。模拟球拍按键分为左右两边,左右各四个。这四个按键其中三个是对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的乒乓游戏机设计
方案二是基于FPGA的乒乓游戏机设计。因为学校具备专门的实验箱,如果采用方案二只需编程便可实现。通过对各部分编写VHDL程序,然后进行编译、仿真、逻辑综合、逻辑适配,最后进行编程下载,并通过程序验证结果。用16个发光二极管代表乒乓球,在游戏机的两侧各设置两个开关,一个是发球开关,一个是击球开关。甲方按动发球开关时,靠近甲方的第一盏灯亮,然后发光二极管由甲向乙依次点亮,代表乒乓球在移动。当球过网后,按设计者规定的球位乙方就可以击球。若乙方提前击球或没有击到球,则判乙方失分,甲方自动加分,重新发球比赛继续进行到一方记分到11分,该局结束,记分牌清零,可以开始新的一局比赛。其系统框图如2.2所示。
4
乒乓游戏机设计
图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绘制电路原理图,用Keil uVision4进行编程,然后进行仿真调试,减少出错。并且采用C语言编程,移植性强,使端口的程序控制变得简单。
综上所述,采用方案一完成乒乓游戏机的设计。
5
西南石油大学本科毕业设计(论文)
3硬件电路的设计
3.1 硬件核心电路选择
乒乓游戏机设计选用单片机作为主控芯片,设计选用性价比高的STC89C51单片机。STC89C51与其它51单片机比较,具有成本低,性能好的优点,并且其具有在线编程功能,可以直接将程序烧录到芯片中,不需要对硬件进行修改。就乒乓游戏机而言,STC89C51能通过程序的编写实现所需的功能。
3.1.1 单片机STC89C51简介
单片机STC89C51是宏晶科技推出的超强抗干扰/低功耗的单片机,指令代码与引脚结构完全兼容传统的8051单片机。其最高工作时钟频率为80MHz,片内含8K Bytes的可反复擦写1000次的Flash ROM,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程特性,配合PC端的控制程序即可将用户的程序代码下载到单片机内部,并且速度更快。
STC89C51的芯片擦除特性:整个PEROM阵列与三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚低电平10ms来完成。在芯片擦除中,代码阵列全被写“1”,且在任何非空存储字节被重复编程以前,必须执行该操作。STC89C51芯片及其引脚如图3.1所示。
图3.1 STC89C51芯片及其芯片引脚图
3.1.2 单片机端口分配
乒乓游戏机需要八个端口接按键;16个发光二极管则通过两个3-8译码器与单片机连接,需要六个端口;LCD显示屏需要7个端口;单片机时钟电路接两个端口;复位电路接复位端口;暂停/开始按键需要两个端口;发球指示灯和暂停指示灯需要两个端口。下面对所需端口进行介绍及分配:
6