编辑: 王子梦丶 | 2019-07-06 |
再通过用发光二极管的依次点亮代表乒乓球的运动趋势和方向变化.另以四个按键模拟左右四个球拍,当键按下代表球排击球的动作,另外,还有两个按键来改变乒乓球的方向.此外再以LED数码管来显示游戏比分和游戏局数等:比如说单打或者双打,以及打球的速度级别等! 假设刚开始打球的时候, 左拍 按下可使发光二极管从左向右依次点亮,如同乒乓球从左向右飞来;
当球走到中央时,可以通过分别改变右下脚两个扳键开关以及方向按键的状态,然后查询扳键开关的状态来改变球的运动方向和速度.当球走到最后三个发光二极管时,在规定的时间内查询开关即球拍的状态,如果开关按下则表示击球, 右拍 按下则可使发光二极管从右向左依次点亮,代表乒乓球从右向左运动. 本游戏供两个人或者四个人玩耍,以一方按键(发球)开始,这时 乒乓球 就向对方运动,接球方应在 乒乓球 到达终点后,在指定时间内击球.如击球时机合适,则把球击回,算得分;
否则就算失误,由对方重新发球. 在游戏过程中,以LED数码管显示双方比分.本游戏设置固定为三局,中间两个LED数码管用来显示每局的比赛比分.
二、游戏实现方法 ① 乒乓球 移动速度是可变的,假定每秒钟移动一位(发光二极管) ②在 乒乓球 移位一次的过程中,进行50次测试(即每20μs查询一次),查询接球方是否有击球动作 ③接球方的击球动作应发生在 乒乓球 :到达本方最后三位发光二极管(即点亮)三秒钟时间之内.如接球方在此时间之内按键,则接球成功, 乒乓球 转为相反方向运动.此后,原接球方变为发球方,原发球方变为接球方.游戏继续进行. ④如接球方提前或迟后接球,则接球方失误.这时 乒乓球熄灭,LED显示器显示双方比分.然后仍由原发球方发球.
三、设计要求
1、基本要求: ①实现8951单片机最小系统;
②能控制 乒乓球 运动;
③实现两人单打游戏,能显示比分.
2、提高要求(在基本要求的基础上): ①能实现双打或者其他游戏展示方法,如LED点阵显示等;
②能控制 乒乓球 的运动速度和方向,能显示比分和局分;
③能有适当的音响配合,如击球、接球声音等;
④能脱机运行,可开关复位.
3、扩展要求: ①开机画面、开机音乐、胜利之后的奖励音乐等;
②用液晶显示器模拟游戏运行;
③其他自创的游戏功能.
四、方案设计以及芯片功能介绍 方案设计(系统总图见附录): 由于本项目所需I/O端口比较少,比分和局数的显示由LED数码管完成,所以我们只用了一块AT89C51,考虑到LED点阵屏在显示上的优越性,同时要达到游戏的真实性,我们选用了16个发光二极管来模拟乒乓球游戏平台.游戏声音方面,通过三极管将发声脉冲放大后驱动喇叭播放音乐. AT89C51管脚功能分配:TXD,RXD接芯片74LS164用来控制6个LED数码管显示.接芯片74LS14对LED行信号进行去抖动控制.P2.2~P2.7接六个按键开关模拟乒乓球拍以及方向控制,P2.0~P2.1接一个扳键开关用来进行速度选择.P0.0~P0.7与P1.0~P1.7接发光二极管来模拟乒乓球运动.管脚RESET接复位电路,INT1接功放电路. 其中 P2.3 代表玩家的左上球拍 P2.4 代表玩家的左方向键 P2.2 代表玩家的左下球拍 P2.7 代表玩家的右下球拍 P2.6 代表玩家的右上球拍 P2.5 代表玩家的右方向键 芯片功能介绍: 1. 89C51的工作方式 将CPU、RAM、ROM、定时器/计数器以及输如输出(I/O)接口电路等主要计算机部件,集成在一块电路芯片上.这样所组成的芯片机的微型计算机称为单片微型计算机,又称为单片微机或单片机.AT89C51是51系列单片机的一种,属8位高档单片机,它采用CMOS技术制造而成,具有集成度高,速度快,功耗低的特点,较之其他类型单片机在方面功能都有了很大提高. 其各引脚的功能叙述如下: 1)电源和晶振 Vcc――运行和程序校验时加+5V. Vss――接地. X1――输入到震荡器的反相放大器. X2――反相放大器的输出,输入到内部时钟发生器. 2) I/O接口:4个端口,32个I/O P0――8位、漏极开路的双向I/O口. 当使用片外存储器时,作地址和数据分时复用.在程序校验期间,输出指令字节(这时需加外部上拉电路).P0口(作为总线时)能驱动8个LSTTL负载. P1――8位、准双向I/O口. 在编程/校验期间,用做输入低字节地址.P1口可以驱动4个LSTTL负载. P2――8位、准双向I/O口. 当使用片外存储器时,输出高8位地址.在程序/校验期间,接受高位字地址.P2可以驱动4个LDTTL负载. P3――8位、准双向I/O口,具有内部上拉电路. P3提供各种替代功能.在提供这些功能时,其输出锁存器应由程序置1 P3口可以输入/输出4个LSTTL负载. 串行口: P3.0――RXD(串行输入口),输入. P3.1――RXD(串行输出口),输出. 中断: P3.2――INT0外部中断0,输入. P3.3――INT2外部中断1,输入. 定时器/计数器: P3.4――T0定时器/计数器0的外部输入,输入. P3.5――T1定时器/计数器1的外部输入,输入. 数据存储器选通: P3.6――WR低电平有效,输出,片外存储器写选通. P3.7――RD 低电平有效,输出,片外存储器写选通. 3)控制线:4根1.输入: RST――复位输入信号,高电平有效.在震荡器工作时,在RST上作用两个机器周期以上的高电平,将器件复位.EA/Vpp――片外程序存储器访问允许信号,低电平有效.在编程时,其上加21V的编程电压. 2.输入、输出: ALE/PROG――地址锁存允许信号,输出.用做片外存储器访问时,低字节锁存.ALE以1/6的震荡频率稳定速率输出,可用做对外输出的时钟或用于定时.在EPROM编程期间,作输入.输入编程脉冲(PROG).ALE以驱动8个LSTTL负载. 3.输出: PSEN――片外程序存储选通信号,低电平有效.在从片外程序程序存储器取指期间,在每个机器周期中,当PSEN有效时,程序存储器的内容被送上P0口(数据总线).PSEN可以驱动8个LSTTL负载. 4)振荡电路 在89C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,其输出端为引脚X2.只需要在片外通过X1和X2引脚跨接晶体振荡器和微调电容,形成反馈电路,振荡器即可工作.振荡电路原理如图所示: 振荡器的工作可以由PD位(特殊功能寄存器PCON中的一位)控制.当P/D置1时,振荡器停止工作,系统进入低功耗工作状态.如图3所示,用晶振和电容构成谐振电路时,电容的大小影响振荡器振荡的稳定性和起振的快速性,通常选择10―30Pf左右.在设计电路板时,晶振、电容等均应尽可能靠近芯片,以减小分布电容,保证振荡器振荡的稳定性. 5)复位电路 1.复位信号 RST引脚复位信号的输入端.复位信号是高电平有效,其有效时间应持续24个振荡个脉冲周期(即两个机器周期)以上.整个复位电路包括芯片内、外两部分.外部电路产生的复位信号(RST)送斯密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对斯密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号.产生复位信号的电路路逻辑图如图所示: 2.复位方式 复位方式上有上电自动复位,按键电平复位和外部脉冲复位三种方式.本设计采用第二种方式.按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的.