《乒乓球游戏机.doc
文本预览下载声明
电子课程设计
——乒乓球游戏机
乒乓球游戏机
一、设计任务与要求
设计一个乒乓球游戏机,模拟乒乓球比赛的基本过程和规则,并能自动裁判和记分。
1使用乒乓球游戏机的甲乙双方各在不同的位置发球或击球。
2乒乓球的位置和移动方向可由LED显示灯和一次点亮的方向决定,球的移动速度设为0.5秒移动一位。使用者可安乒乓球的位置发出相应的动作,提前击球或出界均判失分。
二、设计思路及总体框图
总体电路外部框图
总体电路外部接口说明:
框图中左边部分为输入信号,右边为输出信号。
输入信号中,clk为全局时钟信号,由实验板的晶振产生,频率为1MHZ:P1、P2为双方的发球、击球按键,分别锁定到实验板的BTN1及BTN4上;reset为全局复位,当reset为高电平,比分清零,比赛重新开始(等待裁判开始),reset
锁定到BTN2上;speed_sel为球速选择开关,低电平时球每0.5秒移动一次,高电平时按0.2S移动,锁定到SW2上;first_sel为首局发球权选择开关,低电平时是首发,锁定到SW2上;judge为裁判按钮,当比赛刚开始或一局比赛结束时必须裁判宣布比赛开始或继续,judge锁定到BTN3上。
输出信号部分由发光二极管显示(表示球的移动)、七段数码管选通及七段数码管显示(用来显示比分)组成。
设计思路:
考虑到系统的功能比较多且复杂,故采用分块设计的模式,先设计好底层各模块,再到顶层进行综合。根据功能,将系统分为六个底层模块①分频模块,将高频时钟分频至低频供主模块使用。②主控模块,完成控制球的移动、判断击球、裁判、复位、LED显示等功能;③分数统计模块,完成当前比分统计和复位时清零功能;④局数统计模块,完成大比分统计功能;⑤发球控制模块,根据比分及首局发球权选择来控制谁拥有发球权;⑥分数显示模块,完成译码功能并在七段数码管上显示比分。
分块电路设计
分频器模块
分频器模块由高频时钟输入、速度选择开关及低频时钟输出组成,通过速度选择开关来控制分频的次数,以实现不同的球速显示。
主控模块
主控模块主要控制击球和状态的转移,模块的接口主要有时钟双方击球的按键、裁判,击球权的选择及输出显示部分。
流程图
状态转移图:
在这个模块中,采用了状态机,共设六个状态,分别waiting,p1ready,p1ready,p1top2,p2top1,ends,这六个状态代表的含义及相关状态转移时的设计思路如下:
waiting状态:等待裁判开始状态,当按下全局复位按键或一局比赛结束时使处于这个状态,此状态下检测裁判(judge)输入信号,当judge为该电平时根据发球权控制模块送来的发球权信号决定转移到p1ready或p2readty状态。
p1ready/p2ready:准备发球状态,此状态时靠近发球方的发光二极管被点亮,等待具有发球权一方按下发球/击球键,然后转移到p1top2/p2top1状态.
p1top2,p2top1:球从一方向向另一方向移动,发光二极管显示为按下一定的时钟周期依次点亮(球网则熄灭),并且等待接球方击球,若按球方按下击球键,再根据球的位置判断是否接球失误,从而决定转移到球向相反方向移动的状态p2top1/p1top2或ends
ends:一球结束,根据比分(一方是否到达11分)和发球权控制模块传来的发球权信号决定移到p1ready/p2ready或waiting状态.
比分统计模块
比分统计模块主要根据主控模块在状态转移时送来的上升沿信号来完成计数功能,并且由裁判及复位键来完成比分清零。输出为双方的比分。
总分统计模块
总分统计模块与比分统计模块相似,由主控制模块送来一方获胜的信号从而完成总分计数,输出为双方的总分,具有复位及清零功能。
发球权控制模块
发球权控制模块是一个组合逻辑电路,只需要根据当前比分及总分来决定下一轮的发球权,输入信号为双方的比分和总分(由两个分数统计模块送来),输
出为首发权和当前发球权的指示信号,还有一信号为比赛是否全部结束的标志。
分数显示模块
对比分和总分进行译码,让一个高频时钟对七段数码管不断进行选择扫描,同时将比分和总分译成数码管的显示信号。
三、选择器件
数字电路综合实验开发板(芯片为Altera EPM7128SLC84-15)
计算机及Quartus编程仿真软件
资源利用率情况:
芯片宏单元:128,已使用宏单元:101,利用率:78%
芯片管脚:68,已使用管脚:32,利用率:47%
四、功能
显示全部