您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于EDA的关于拔河游戏机的课程设计
东北石油大学课程设计2011年3月2日课程EDA技术课程设计题目拔河游戏机院系电子科学学院专业班级学生姓名学生学号指导教师东北石油大学课程设计任务书课程EDA技术课程设计题目拔河游戏机专业姓名学号主要内容、基本要求、主要参考资料等主要内容:电子拔河游戏机是一种能容纳甲乙双方参赛游戏电路。由一排发光二极管表示拔河的“电子绳”。由甲乙双方通过按纽开关使发光二极管向一方的终点延伸,当延伸到某方的最后一个发光二极管时,则该方获胜,连续比赛多局以定胜负。基本要求:1、设计一个能进行拔河游戏的电路。2、电路使用9个发光二极管,开机后只有中间一个发亮,此即拔河的中心点。3、游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。4、亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。5、用数码管显示获胜者的盘数。主要参考资料:[1]潘松著.EDA技术实用教程(第二版).北京:科学出版社,2005.[2]康华光主编.电子技术基础模拟部分.北京:高教出版社,2006.[3]阎石主编.数字电子技术基础.北京:高教出版社,2003.完成期限2011.3.2指导教师专业负责人2011年3月2日1一、总体设计思想1.基本原理电子拔河游戏机是一种能容纳甲乙双方参赛游戏电路。由一排发光二极管表示拔河的“电子绳”。由甲乙双方通过按纽开关使发光二极管向一方的终点延伸,当延伸到某方的最后一个发光二极管时,则该方获胜,连续比赛多局以定胜负。本电路要求使用9个发光二极管,开机后只有中间一个发亮,此即拔河的中心点。游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。最后用数码管显示获胜者的盘数。由设计内容可知,首先需要一个十进制的计数器,用于对双方按钮的次数计数,并通过译码器显示在数码管上。设计要求用50MHz的频率,而设计用到的是1KHz的频率,所以要设计一个程序进行分频。其次,显视控制部分设计要求在发光二极管上显示游戏状态,双方每按十次,亮点向先按十次移动一次,对脉冲进行计数,每十次移一位。需接入一个清零端,用于复位。再次,运用VHDL程序语言进行各个模块的程序编写,控制电路的正常运行。最后,将以上程序组装起来,就可得到所需要的拔河游戏机。2.设计框图2图1.拔河机游戏机框图二、设计步骤和调试过程1、总体设计电路电子拔河游戏机是一种能容纳甲乙双方参赛游戏电路。由一排发光二极管表示拔河的“电子绳”。由甲乙双方通过按纽开关使发光二极管向一方的终点延伸,当延伸到某方的最后一个发光二极管时,则该方获胜,连续比赛多局以定胜负。CLKENRSTCOUTCQ[3..0]CLKENRSTCOUTCQ[3..0]CLKENRSTCQ[3..0]CLKENRSTCOUTCQ[3..0]CLKENRSTCOUTCQ[3..0]CLKENRSTCQ[3..0]CLKA1[3..0]A2[3..0]A3[3..0]B1[3..0]B2[3..0]B3[3..0]SG[8..0]BT[7..0]RSTKL[3..0]KR[3..0]ENLED[8..0]CNT10:U1CNT10:U3CNT10:U5CNT10:U6SCAN:U7LMOV:U8ABRSTCLKSG[8..0]LED[8..0]BT[7..0]CNT10:U2CNT10:U4图2.系统RTL图示2、模块设计和相应模块程序1、文件名:baheLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYBAHEISPORT(甲方按键乙方按键甲方计数器乙方计数器LED中心比较数码管显示3A,B,RST,CLK:INSTD_LOGIC;SG,LED:OUTSTD_LOGIC_VECTOR(8DOWNTO0);BT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDBAHE;----------------------------------ARCHITECTUREONEOFBAHEISCOMPONENTCNT10PORT(CLK,RST,EN:STD_LOGIC;COUT:OUTSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCOMPONENT;COMPONENTSCANPORT(CLK:INSTD_LOGIC;A1,A2,A3,B1,B2,B3:INSTD_LOGIC_VECTOR(3DOWNTO0);SG:OUTSTD_LOGIC_VECTOR(8DOWNTO0);BT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDCOMPONENT;COMPONENTLMOVPORT(KL,KR:INSTD_LOGIC_VECTOR(3DOWNTO0);LED:OUTSTD_LOGIC_VECTOR(8DOWNTO0);EN:OUTSTD_LOGIC;RST:INSTD_LOGIC);ENDCOMPONENT;SIGNALE,F,CA1,CA2,CB1,CB2:STD_LOGIC;SIGNALCQA1,CQA2,CQA3,CQB1,CQB2,CQB3:STD_LOGIC_VECTOR(3DOWNTO0);BEGINU1:CNT10PORTMAP(EN=E,RST=RST,CLK=A,COUT=CA1,CQ=CQA1);U2:CNT10PORTMAP(EN=E,RST=RST,CLK=CA1,COUT=CA2,CQ=CQA2);U3:CNT10PORTMAP(EN=E,RST=RST,CLK=CA2,CQ=CQA3);U4:CNT10PORTMAP(EN=E,RST=RST,CLK=B,COUT=CB1,CQ=CQB1);U5:CNT10PORTMAP(EN=E,RST=RST,CLK=CB1,COUT=CB2,CQ=CQB2);U6:CNT10PORTMAP(EN=E,RST=RST,CLK=CB2,CQ=CQB3);U7:SCANPORTMAP(A1=CQA1,A2=CQA2,A3=CQA3,B1=CQB1,4B2=CQB2,B3=CQB3,CLK=CLK,SG=SG,BT=BT);U8:LMOVPORTMAP(EN=E,KL=CQA2,KR=CQB2,RST=RST,LED=LED);ENDARCHITECTUREONE;2、文件名:scanLIBRARYIEEE;--数码管显示模块USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSCANISPORT(CLK:INSTD_LOGIC;A1,A2,A3,B1,B2,B3:INSTD_LOGIC_VECTOR(3DOWNTO0);SG:OUTSTD_LOGIC_VECTOR(8DOWNTO0);BT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));END;ARCHITECTUREONEOFSCANISSIGNALCNT4:STD_LOGIC_VECTOR(2DOWNTO0);SIGNALA:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALCLK1:STD_LOGIC;BEGINP1:PROCESS(CNT4)BEGINCASECNT4ISWHEN000=BT=10000000;A=A1;WHEN001=BT=01000000;A=A2;WHEN010=BT=00100000;A=A3;WHEN011=BT=00000100;A=B1;WHEN100=BT=00000010;A=B2;WHEN101=BT=00000001;A=B3;WHENOTHERS=BT=00000000;ENDCASE;ENDPROCESSP1;---------------------------------P2:PROCESS(CLK)VARIABLECT:INTEGERRANGE0TO50000;BEGINIFCLK'EVENTANDCLK='1'THEN--1000HZIFCT49999THENCT:=CT+1;CLK1='0';ELSECT:=0;5CLK1='1';ENDIF;ENDIF;ENDPROCESSP2;PROCESS(CLK1)BEGINIFCLK1'EVENTANDCLK1='1'THENIFCNT45THENCNT4=CNT4+1;ELSECNT4=000;ENDIF;ENDIF;ENDPROCESS;------------------------------------PROCESS(A)BEGINCASEAISWHEN0000=SG=100000000;WHEN0001=SG=111110001;WHEN0010=SG=001001000;WHEN0011=SG=001100000;WHEN0100=SG=000110010;WHEN0101=SG=000100100;WHEN0110=SG=000000100;WHEN0111=SG=111110000;WHEN1000=SG=000000000;WHEN1001=SG=100011111;WHEN1010=SG=000100100;WHEN1011=SG=000011000;WHEN1100=SG=010001100;WHEN1101=SG=001001000;WHEN1110=SG=001000000;WHEN1111=SG=000011111;WHENOTHERS=NULL;ENDCASE;ENDPROCESS;END;3、文件名:cnt10LIBRARYIEEE;--频率计数模块USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(6CLK,RST,EN:STD_LOGIC;COUT:OUTSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;ARCHITECTUREONEOFCNT10ISBEGINPROCESS(CLK,RST,EN)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST='1'THENCQI:=(OTHERS='0');ELSIFCLK'EVENTANDCLK='1'THENIFEN='1'THENIFCQI9THENCQI:=CQI+1;ELSECQI:=(OTHERS='0');ENDIF;ENDIF;ENDIF;IFCQI=9THENCOUT='0';ELSECOUT='1';ENDIF;CQ=CQI;ENDPROCESS;END;4、文件名:imovLIBRARYIEEE;--LED指示模块USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYLMOVISPORT(KL,KR:INSTD_LOGIC_VECTOR(3DOWNTO0);LED:OUTSTD_LOGIC_VECTOR(8DOWNTO0);EN:OUTSTD_LOGIC;RST:INSTD_LOGIC);END;ARCHITECTUREONEOFLMOVISBEGINPROCESS(RST,KL,KR)BEGINIFRST='1'THENLED=111101111;EN='1';ELSIFKL-KR=1THENL
本文标题:基于EDA的关于拔河游戏机的课程设计
链接地址:https://www.777doc.com/doc-5862479 .html