基于vhdl的乒乓游戏机的设计内容摘要:
‘1’。 ELSE IF NUMIN=TEMPNUM THEN 上一键值与此键值不同 TENPNUM=NUMIN。 记录此键值 COUNTER= ‘0’。 并对 计数器清 0,准备对此键值计时 ELSE IF COUNTER31 THEN。 当键值保持 31个时钟周期不变时 11 NUMOUT=NUMIN。 即确定为有效键值,并输出 COUNTER= ‘0’。 ELSE COUNTER=COUNTER+1。 END IF。 END IF。 END IF。 END IF。 END PROCESS。 END。 状态机设计 状态机的 6 种 状态及状态转移 本状态机有 6 种状态,分别是 WAITSTATE、 ATOB、 BTOA、 ASCORE、 BSCORE和 FINALRESULT, 其含义如表 1 所示。 表 1 状态机的 6 种状态及含义 状 态 含 义 WAITSTATE 等待状态 ,等待 A 或 B 方开球 ATOB 球从 A 向 B 方移动 BTOA 球从 B 向 A 方 移动 ASCORE A 得一分 BSCORE B 得一分 FINALRESULT 比赛结束 (最终判分 ),在此状态下需要按复位键,才能开始下一轮比赛 结合表 1,从图 6 中很清楚 地看出乒乓游戏机比赛过程中球的移动情况,及加分方法,还可以初步了解到本状态机设计的基本思路。 12 图 6 乒乓游戏机状态转移图 状态机 /球台控制程序 状态机是种很重要的时序电路,也是本设计的核心部件。 状态机属于时序电路范畴,实现一个控制功能更为方便,并提高了控制速度 [10]。 本次设计中状态机的符号如图 7 所示。 图 7 状态机符号 在本设计中, 状态机用两个信号表示状态 : STATE 表示当前状态 , TABLESTATE表示下一个状态。 此状态机由两个进程构成 ,状态机的输入 /输出引脚的作用如表 2 所 示。 其中 SCOREAL[3..0]、 SCOREAH[3..0]、 SCOREBL[3..0]、 SCOREBH[3..0]用七段 BCD码译码器显示得分情况,而 SCOREA、 SCOREB 用二进制进行加分,由记分器反馈回来。 13 表 2 输入 /输出引脚的作用 引 脚 作 用 CLK 10Hz 的时钟,可由系统时钟分频得到。 此时时钟决定了球移动的速度, 可根据实际需要调整。 RESET 复位键,比赛重新开始,记分器清 0 STARTA、 STARTB A 和 B 双方的开始的开球键 HITA、 HITB A 和 B 双方的击球键 (可以将其与开球键合并 ) CLEAR 将记分器清 0(给记分器的控制信号 ) INCREASEA 、 INCREASEB 分别为 A、 B 双方的加分信号 (给记分器的控制信号 ) SCOREAL[3..0]SCOREAH[3..0] SCOREBL[3..0]SCOREBH[3..0] SCOREA、 SCOREB A、 B 双方的分数 (由记分器给出 ) LIGHT[4..0] 接 5 个发光二极管 AWIN、 BWIN 分别接发光二极管,表示 A 或 B 方胜出 状态机的程序如下: LIBRARY IEEE。 USE。 USE。 ENTITY STATEMACHINE IS PORT (CLK: IN STD_LOGIC。 RESET: IN STD_LOGIC。 STARTA, HITA, STARTB, HITB: IN STD_LOGIC。 SCOREA, SCOREB: IN INTEGER RANGE 0 TO 21。 CLEAR, INCREASEA, INCREASEB: OUT STD_LOGIC。 TABLELIGHT: OUT STD_LOGIC_VECTOR (0 TO 4)。 AWIN, BWIN: OUT STD_LOGIC)。 END。 ARCHITECTURE BEHAVIOR OF STATEMACHINE IS TYPE STATE_TYPE IS (WAITSTATE, ATOB, BTOA, ASCORE, BSCORE, FINALRESULT)。 14 SIGNAL STATE: STATE_TYPE。 SIGNAL TABLESTATE: INTEGER RANGE 0 TO 4。 BEGIN PROCESS (CLK, RESET) BEGIN IF RESET=39。 139。 THEN 按下复位键,比赛开始 STATE=WAITSTATE。 进入等待状态 CLEAR=39。 139。 记分器清零 AWIN=39。 039。 BWIN=39。 039。 ELSIF RISING_EDGE (CLK) THEN CASE STATE IS WHEN WAITSTATE= CLEAR=39。 039。 INCREASEA=39。 039。 INCREASEB=39。 039。 IF((SCOREA =21 ) OR ( SCOREB=21) )THEN如果一方先得到 21 分 STATE=FINALRESULT。 比赛结束 ELSE IF STARTA=39。 139。 THEN 如果 A 开球 STATE=ATOB。 球从 A 向 B 方移动 TABLESTATE=0。 A 方第一个灯点亮 ELSE IF STARTB=39。 139。 THEN 如果 B 开球 (A、 B 开球有 定的优先级区别 STATE=BTOA。 球从 B 向 A 方移动 TABLESTATE=4。 B 方第一个灯亮 ELSE STATE=WAITSTATE。 END IF。 END IF。 15 END IF。 WHEN ATOB= 球从 A 向 B 移动的过程 IF HITB=39。 139。 THEN 如果检测到 B 方击球 IF TABLESTATE=2 THEN 若未过网提前击球 STATE=ASCORE。 判为 A 胜 ELSE STATE=BTOA。 若过了网击球,球从 B 向 A 移动 END IF。 ELSE 若未检测到 B 方击球 IF TABLESTATE=4 THEN 如果离 B 方最近的灯 已经亮 STATE=ASCORE。 判为 A 胜 ELSE TABLESTATE=TABLESTATE+1。 否则球继续移动 END IF。 END IF。 WHEN BTOA= 球从 B 向 A 移动的过程 IF HITA=39。 139。 THEN 如果检测 A 方击球 IF TABLESTATE=2 THEN 若未过网提前击球 STATE=BSCORE。 判为 B 胜 ELSE 若过了网击球,球从 A STATE=ATOB。 向 B 移动 END IF。 ELSE 若未检测到 A 击球 IF TABLESTATE=0 THEN 如果离 A 最近的灯亮了 STATE=BSCORE。 判为 B 胜 ELSE TABLESTATE=TABLESTATE1。 否则球继续移动 END IF。 END IF。 16 WHEN ASCORE= 如果 A 胜 INCREASEA=39。 139。 A 方加 1 分 STATE=WAITSTATE。 回到等待开球状态 WHEN BSCORE= 如果 B 胜 INCREASEB=39。 139。 B 方加 1分 STATE=WAITSTATE。 回到等待开球状态 WHEN FINALRESULT= 最后结果 IF(SCOREA=21) THEN 若 A 方先达到 21 分 AWIN=39。 139。 表示 A 方胜出的灯亮 ELSE BWIN=39。 139。 否则,表示 B 方胜出的灯亮 END IF。 WHEN OTHERS= STATE=WAITSTATE。 END CASE。 END IF。 END PROCESS。 PROCESS(CLK) 此进程控制 5个发光二极管的亮灭 BEGIN。基于vhdl的乒乓游戏机的设计
相关推荐
需要的 脉冲信号。 不同的光电元件,所要求的测量电路也不相同 ,为此 设计时 必须详加考虑。 光电转换及信号调理电路设计 传感器将电机的转速信号转变成了电脉冲信号,该信号经 过 LM324集成运放整形驱动,送到单片机进行脉冲计数,从而测出电动机转速。 光电转换部分与单片机的连接框图如图。 图 光电转换部分与单片机的连接框图 LM324是四运放集成电路 , 它采用 14脚双列直插塑料封装 ,
关定时器 T0 中断CLR TR0。 关闭定时器 T0LCALL DL1S。 调用 1 秒延时程序JB ,CLOSEDIS。 键按下时间小于 1 秒,关闭显示(省电) MOV R2,06H。 进入调时状态,赋闪烁定时初值 SETB ET1。 允许 T1 中断SETB TR1。 开启定时器 T1SET2: JNB ,SET1。 口为 0(键未释放),等待SETB 00H。 键释放,分调整闪烁标志置
d display_2(year,mon,tian) {year_0=year%10。 year_1=year/10。 mon_0=mon%10。 mon_1=mon/10。 tian_0=tian%10。 tian_1=tian/10。 P2=0。 P0=tab[year_1]。 delay(200)。 P2=0x01。 P0=tab[year_0]。 delay(200)。 P2=0x02。
在某段时间内进行清点商品的操作,有盘盈盘亏两种情况。 具体分:盘点表(统计出当月库存清单并打印出盘点使用的表格)、盘点入库(盘盈)、盘点出库 (盘亏 )。 . 计划管理 销售计划 根据销售的实际数据进行市场分析作出的销售决策。 方案建议书 第 10 页 共 27 页 . 销售管理 流程图 录新订单 所有销售数据的根本来源 ,是销售流程的第一步 ,主要是产生销售订单基础数据 ,可打印销售的