1、目录1 绪论 .11.1 本设计的研究背景和研究目的 .11.2 国内外研究现状 .11.3 本设计的任务和设计方法 .21.3.1 设计任务 .21.3.2 设计方法 .22 乒乓游戏机设计方案 .32.1 基于单片机的乒乓游戏机设计 .32.1.1 硬件设计 .32.1.2 软件设计 .42.2 基于 FPGA 的乒乓游戏机设计 .42.3 方案比较与选择 .53 硬件电路的设计 .63.1 硬件核心电路选择 .63.1.1 单片机 STC89C51 简介 .63.1.2 单片机端口分配 .63.2 电源电路的设计 .83.3 时钟电路的设计 .93.4 复位电路的设计 .93.5 按键电
2、路的设计 .103.6 模拟球台电路的设计 .113.6.1 译码器简介 .113.6.2 发光二极管简介 .133.6.3 模拟球拍电路的设计 .143.7 显示电路的设计 .143.7.1 LCD1602 简介 .153.7.2 显示电路的设计 .163.8 乒乓游戏机总电路的设计 .164 乒乓游戏机的软件设计及编程 .18I4.1 主程序的设计及功能实现 .194.2 按键组的设计及功能实现 .194.2.1 球拍模拟子程序 .204.2.2 暂停/开始子程序 .204.3 发球程序的设计及功能实现 .204.4 线路程序的设计及功能实现 .214.4.1 线路选择子程序 .214.4
3、.2 LED 点阵子程序 .214.5 回球程序的设计及功能实现 .224.6 LCD 显示程序设计及功能实现 .234.7 设计源程序 .235 系统调试及分析 .245.1 仿真调试及分析 .245.1.1 Proteus 软件简介 .245.1.2 Keil uVision4 软件简介 .255.1.3 仿真调试 .255.1.4 仿真调试的结果分析 .275.2 实物调试及分析 .275.2.1 制作实物的过程 .275.2.2 进行实物调试 .275.2.3 实物调试的结果分析 .306 结论与展望 .31谢辞(Acknowledge) .32参考文献 .33附录 1:程序 .34附
4、录 2:元件清单 .49西南石油大学本科毕业设计(论文)01 绪论1.1 本设计的研究背景和研究目的乒乓球,中华人民共和国国球,是一种世界流行的球类体育项目。它的英语官方名称是“table tennis”,即“网上桌球”。乒乓球的名字起源于 1990 年。乒乓球的比赛赛制是以 11 分为一局,采用五局三胜(团体)或七局四胜制(单项)。比赛分团体、单项(男单、女单、男双、女双、混双)。在中国,到处可见打乒乓球的人,以学生居多。因为,随着人们现代化节奏的加快,工作压力的增大,传统打乒乓球的方式受到运动设施、场地、环境的因素的影响,让人们对乒乓球运动减少了很多兴趣。随着科学技术的发展,人类进入信息化
5、社会,信息社会的发展离不开电子产品的进步。现代电子产品发展的越来越快,于是人们将乒乓球与电子产品结合在一起,形成了乒乓游戏机。通过使用按键模拟球拍,发光二极管模拟乒乓球,进行乒乓球游戏的操作。乒乓游戏机的出现解决了人类的很大难题。因为该产品不受运动设施、空间、场地、环境等因素的影响,在家即可进行操作。操作的同时,让操作者仿佛在真正的打乒乓球。而且该设计属于一种益智类设计,让人既可以锻炼身体,也可以锻炼智力。1.2 国内外研究现状第二次世界大战以后,电子计算机技术得到了突飞猛进的发展。电子计算机一代一代的更新的同时,软件设计也迅速发展。于是,1971 年,世界上第一台电子游戏机出现了。随着电子技
6、术的迅猛发展,电子游戏机进入了次世代,主要有三大游戏机厂商。分别为:SONY、微软和任天堂。如今,大部分益智类游戏机属于电子游戏机,乒乓游戏机就属于电子游戏机。随着电子技术的突破,电子游戏机开始朝着“便携式”和“家庭化”方向发展,彩色电视的普及使大型游戏机的显像管和扫描版部分完全可以被彩色电视取代,使得微处理机部分与现实屏幕实现了分离。现在制成的游戏机只相当于一个信号发生器。如今乒乓游戏机已出现 3D 类,体感类等等类型。乒乓游戏机不仅可以实现人们对乒乓球的热爱,又可以让人们在玩耍的同时进行身体锻炼和智力提高,具有明朗的前景。乒乓游戏机设计11.3 本设计的任务和设计方法1.3.1 设计任务如
7、今各种不同类型的游戏设备一直是消费领域的热点,本设计要求用低廉的成本设计出符合要求的游戏设备,要求操作方便,系统稳定度高。设计任务为:(1)使用乒乓游戏机的甲乙双方各在不同的位置发球或击球。(2)乒乓球的位置和移动方向由灯亮及依次点燃的方向决定,球移动的速度为0.11s 移动一位。游戏者根据球的位置发出相应的动作,提前击球或出界均判失分。(3)比赛用 11 分为一局来进行,甲乙双方都应设置各自的记分牌,任何一方先记满 11 分,该方就算胜了此局。当记分牌清零后,又可开始新的一局比赛。 1.3.2 设计方法本设计是基于单片机的乒乓游戏机设计,分别进行了硬件和软件两部分的设计。硬件设计包括单片机电
8、路、译码电路、发光二极管电路、按键电路、显示电路等电路的设计。软件设计是使用 Keil uVision4 软件编写与硬件模块相应的源程序。利用 Proteus 软件对电路进行仿真,最后通过制作实物实现设计。西南石油大学本科毕业设计(论文)22 乒乓游戏机设计方案目前,有两种方案来设计乒乓游戏机设计。方案一是基于单片机的乒乓游戏机设计。方案二是基于 FPGA 的乒乓游戏机设计。2.1 基于单片机的乒乓游戏机设计方案一是基于单片机的乒乓游戏机设计,结果用 LCD1602 显示屏显示。软件方面,使用 Keil uVision4 进行编程。硬件设计包含单片机电路、模拟球台电路、按键电路、显示电路等电路
9、的设计。软件设计包括:主程序、按键组程序(球拍模拟和暂停/开始子程序)、发球程序、线路程序(包括线路选择和 LED 点阵子程序)、回球程序、LCD 显示程序。基于单片机的乒乓游戏机系统框图如图 2.1 所示。图 2.1 基于单片机的乒乓游戏机的系统框图2.1.1 硬件设计电源电路设计:单片机正常工作电压为+5V,设计采用三端稳压集成电路输出+5V 电压。时钟电路设计:单片机可以看成是在时钟驱动下的时序逻辑电路,即单片机必须在时钟的驱动下才能工作。因此,单片机需要时钟电路支持,否则不能执行程序。复位电路设计:单片机的复位电路使系统的所有功能部件都处于一个确定的初始状态,防止单片机执行错误操作、发
10、出错误的指令等失误。单片机的复位方式有:手动按钮复位和上电复位。本设计采用手动按钮复位方式进行复位。单 片 机 模 块模拟球台电路按键电路电源电路LCD 显示屏时钟电路复位电路乒乓游戏机设计3按键电路设计:包含两个按键组,一个是模拟球拍按键电路,一个是暂停/开始和复位按键电路。模拟球拍按键分为左右两边,左右各四个。这四个按键其中三个是对 LED 点阵线路的操作,一个是进行加速;暂停/开始和复位按键是在运行任一程序时,对游戏机进行暂停或开始或复位。模拟球台设计:包括译码电路设计和发光二极管设计。译码电路设计:本设计中采用 16 个发光二极管,而单片机的端口较少,因此采用 3-8 译码器节约端口。
11、发光二极管设计:由单片机控制 74LS138 译码器,74LS138 译码器译码控制 LED 点阵得点亮顺序和相应点亮时间。显示电路设计:设计中采用 LCD 显示屏显示结果,左右两边分别用 A、B 表示。2.1.2 软件设计主程序:对乒乓游戏机进行初始化,定时器设置,对 LED 点阵输入数据等,延时扫描按键。按键程序:在回球和发球时,按键按下给单片机传入数据作出相应处理。包括暂停/开始子程序,对系统进行暂停和开始。发球程序:绿色指示灯亮起时,B 得到发球球权,否则 A 得到发球球权。线路程序:游戏发球有 8 个线路选择,AB 分别 4 个线路选择,共有 16 个回球线路,存在数组 b16中,包
12、括 LED 点阵子程序,由单片机线路和 delay_1(t)控制74LS138 译码器,74LS138 译码器译码控制 LED 点阵得点亮顺序和相应点亮时间。回球程序:当球在 A 边时,A 可在相应 delay_1(t)中感应 A 按键组的数据并作出相应处理;当球在 B 边时,同理。显示程序:显示游戏比分,当 A 或 B 到达 11 分时进入相应 win 子程序。2.2 基于 FPGA 的乒乓游戏机设计方案二是基于 FPGA 的乒乓游戏机设计。因为学校具备专门的实验箱,如果采用方案二只需编程便可实现。通过对各部分编写 VHDL 程序,然后进行编译、仿真、逻辑综合、逻辑适配,最后进行编程下载,并
13、通过程序验证结果。用 16 个发光二极管代表乒乓球,在游戏机的两侧各设置两个开关,一个是发球开关,一个是击球开关。甲方按动发球开关时,靠近甲方的第一盏灯亮,然后发光二极管由甲向乙依次点亮,代表乒乓球在移动。当球过网后,按设计者规定的球位乙方就可以击球。若乙方提前击球或没有击到球,则判乙方失分,甲方自动加分,重新发球比赛继续进行到一方记分到 11 分,该局结束,记分牌清零,可以开始新的一局比赛。其系统框图如 2.2西南石油大学本科毕业设计(论文)4所示。图 2.2 基于 FPGA 乒乓游戏机的系统框图2.3 方案比较与选择FPGA 的运行速度很快,适合高速场合,而单片机的运行速度低的多;FPGA
14、 的I/O 口多,容易实现大规模系统,方便连接外设,而单片机的 I/O 口较少,适合小规模系统;FPGA 的内部程序是并行运行,具有处理复杂功能的能力,而单片机程序时串行执行,程序需要执行完一条才能执行下一条,处理突发事件时只能调用中断资源;FPGA 包含单片机和 DSP 软核,即单片机和 DSP 能实现的功能,FPGA 一般都能实现。单片机设计属于软件范畴,它的硬件即单片机芯片是固定的,通过软件编程语言描述在硬件芯片上的执行的软件指令。FPGA 设计属于硬件范畴,它的硬件即 FPGA 是可编程的,是一个通过硬件描述语言在 FPGA 芯片上自定义集成电路的过程。由上可知,FPGA 具有很多优点
15、,但是对本设计而言是大材小用,而且芯片造价较高,因此选用单片机完成本设计。在国内,有很多成熟且性价比高的单片机,以 51 单片机为主。本设计对芯片的要求不高,因此选用性价比高的单片机 STC89C51。STC89C51 是 ISP 的系统可编程芯片,可以直接将程序烧录到芯片中,方便程序的修改和实物调试。其工作电压要求低,工作频率可达 48MHz。并且可通过串口直接下载程序,数秒即可完成下载。采用单片机完成设计,可利用 Proteus 绘制电路原理图,用 Keil uVision4 进行编程,然后进行仿真调试,减少出错。并且采用 C 语言编程,移植性强,使端口的程序控制变得简单。乒乓游戏机设计5
16、综上所述,采用方案一完成乒乓游戏机的设计。3 硬件电路的设计3.1 硬件核心电路选择乒乓游戏机设计选用单片机作为主控芯片,设计选用性价比高的 STC89C51 单片机。STC89C51 与其它 51 单片机比较,具有成本低,性能好的优点,并且其具有在线编程功能,可以直接将程序烧录到芯片中,不需要对硬件进行修改。就乒乓游戏机而言,STC89C51 能通过程序的编写实现所需的功能。3.1.1 单片机 STC89C51 简介单片机 STC89C51 是宏晶科技推出的超强抗干扰/低功耗的单片机,指令代码与引脚结构完全兼容传统的 8051 单片机。其最高工作时钟频率为 80MHz,片内含 8K Byte
17、s 的可反复擦写 1000 次的 Flash ROM,芯片内集成了通用 8 位中央处理器和ISP Flash 存储单元,具有在系统可编程特性,配合 PC 端的控制程序即可将用户的程序代码下载到单片机内部,并且速度更快。STC89C51 的芯片擦除特性:整个 PEROM 阵列与三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚低电平 10ms 来完成。在芯片擦除中,代码阵列全被写“1”,且在任何非空存储字节被重复编程以前,必须执行该操作。STC89C51芯片及其引脚如图 3.1 所示。图 3.1 STC89C51 芯片及其芯片引脚图3.1.2 单片机端口分配乒乓游戏机需要八个端口接
18、按键;16 个发光二极管则通过两个 3-8 译码器与单片机连接,需要六个端口;LCD 显示屏需要 7 个端口;单片机时钟电路接两个端口;西南石油大学本科毕业设计(论文)6复位电路接复位端口;暂停/开始按键需要两个端口;发球指示灯和暂停指示灯需要两个端口。下面对所需端口进行介绍及分配:P0 口(3932 脚):P0.0P0.7 统称为 P0 口。P0 口是一个三态双向口,每个引脚可吸收八个 TTL 门电流。当 P0 口的管脚第一次写“1”时,被定义为高阻输入。P0 可用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在 Flash 编程时,P0 口用作原码输入口。当 Flash 进行校验
19、时,P0 输出原码,必须接上拉电阻。P1 口(18 脚):P1.0P1.7 统称为 P1 口.P1 口为准双向口,P1 口缓冲器能接收四个 TTL 门电流。P1 口的管脚写“1”后,内部上拉为高,可用作输入。P1 口被外部下拉为低电平时,因为内部上拉,将输出电流。在 Flash 编程和校验时,P1口接收低八位地址。P2 口(2128 脚):P2.0P2.7 统称为 P2 口。P2 口为准双向口,缓冲器可接收/输出 4 个 TTL 门电流。当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。作为输入时,P2 口的管脚被外部拉低,因为内部上拉将输出电流。当 P2口用于外部程序存储器或十
20、六位地址外部数据存储器进行存取时,P2 口输出高八位地址。在给出地址“1”时,利用上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出单片机特殊功能寄存器的内容。P2 口在 Flash 编程和校验时接收高八位地址信号和控制信号。P3 口(1017 脚):P3.0P3.7 统称为 P3 口。P2 口为准,双向口可接收/输出四个 TTL 门电流。当 P3 口写入“1”时,被内部上拉为高电平,并用作输入。当外部下拉为低电平,因为上拉的缘故,P3 口将输出电流。P3 口作为第二功能使用时各端口引脚的作用,如表 3.1 所示。表 3.1 P3 口的第二功能端口引脚 第二功能P3.0 RXD (串
21、行输入口)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 (外部数据存储器读选通)乒乓游戏机设计7RST:复位输入。振荡器复位器件时,保持 RST 引脚两个机器周期高电平时间。XTAL1:反向放大器的输入、内部时钟工作电路的输入。XTAL2:反向振荡器的输出。本设计中,STC89C51 单片机的管脚如下分配:P0.0P0.7 口用作按键输入口,接上拉电阻;P1.0P1.1 口作为暂停、开始按键输入口;P1.2P1.5 作
22、为 LCD 显示屏输入口;P1.6 作为发球权指示灯,P1.7 作为暂停指示灯控制口;P2.0P2.7 作为译码器信号输入口控制发光二极管;P3.2P3.4 作为 LCD 显示屏的控制端;RST引脚为复位电路输入口;XTAL1、XTAL2 分别作为片内振荡器的输入和输出。3.2 电源电路的设计单片机 STC89C51 的工作电压为+5V,因此需要一个电源电路来提供这一电压。设计通过固定三端稳压集器,输出使单片机工作的+5V 电压。固定三端稳压器主要有 78XX 系列的正电压输出稳压器和 79XX 系列的负电压稳压器。两个系列的固定三端稳压器,输出电压有 5V、6V、9V、12V、15V、18V、24V等规格,最大输出电流为 1.5A。这种三端稳压器内部包含了过流、过热和调整管的保护电路,使用时组成稳压电源所需的外围元件少,使用起来可靠、方便、快捷。7805 的参数为:在 25,输入电压为 7.520V 时,输出电压为 4.8V5.2V。因此本设计采用三端稳压器 7805 输出 5V 电压。固定三端稳压器 7805 的 1 脚为输入端,2 脚为接地端,三脚为输出端。芯片 7805 及其引脚图如图 3.2 所示。