《课程设计(论文)-电子拔河游戏机.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)-电子拔河游戏机.doc(27页珍藏版)》请在优知文库上搜索。
1、课 程 设 计 报 告题 目: 电子拔河游戏机学 院: 班 级: 学生(学号): 学生(学号): 日期: 年 月 日 摘 要模拟、数字电路课程设计是继模拟电子技术基础 、 数字电子技术基础 、 电子技术基础实验课程后,电气类、自控类和电子类等专业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一个部分,其目的和任务是通过二周的时间,让学生掌握 EDA 的基本方法,熟悉一种 EDA 软件,并能利用 EDA 软件设计一个电子技术综合问题,并在实验箱上成功下载,为以后进行工程实际问题的研究打下设计基础。1.通过课程设计使学生能熟练掌握一种 EDA 软件的使用方法, 能熟练进行设计输
2、入、编译、管脚分配、下载等过程。2.通过课程设计使学生能利用 EDA 软件进行至少一个电子技术综合问题的设计,设计输入可采用图形输入法或硬件描述语言输入法。3通过课程设计使学生初步具有分析寻找和排除电子电路中常见故障的能力。4通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。关键词:目 录一、课程设计目的3二、设计任务与要求3三、方案设计与论证3四、单元电路设计与参数计算3五、电路的安装与调试4六、遇到问题的解决方法4七、结论与心得4八、参考文献4题目 电子拔河游戏机设计一、课程设计目的1.通过课程设计使学生能熟练掌握一种 EDA 软件的使用方法,
3、 能熟练进行设计输入、编译、管脚分配、下载等过程。2.通过课程设计使学生能利用 EDA 软件进行至少一个电子技术综合问题的设计,设计输入可采用图形输入法或硬件描述语言输入法。3通过课程设计使学生初步具有分析寻找和排除电子电路中常见故障的能力。4通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。二、设计任务与要求(大标题均为四号,黑体)电子拔河游戏机是一种能容纳甲乙双方参赛游戏电路。 由一排发光二极管表示拔河的“电子绳”。由甲乙双方通过按纽开关使发光二极管向一方的终点延伸,当延伸到某方的最后一个发光二极管时, 则该方获胜, 连续比赛多局以定胜负。基本
4、要求:1. 设计一个能进行拔河游戏的电路。2. 电路使用9个发光二极管, 开机后只有中间一个发亮, 此即拔河的中心点。3. 游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。4. 亮点移到任一方终端二极管时, 这一方就获胜, 此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。5. 用数码管显示获胜者的盘数三、方案设计与论证根据实验的要求,分析实验的执行功能如下图:由功能图可知:可逆计数器原始状态输出4位二进制数0000,经译码器输出使中间的一只发光二极管点亮。当按动A、B两个按键时,分别产生两个脉冲信号,经整形后分别加到可逆
5、计数器上,可逆计数器输出的代码经译码器译码后驱动发光二极管点亮并产生位移,当亮点移到任何一方终端后,由于控制电路的作用,使这一状态被锁定,而对输入脉冲不起作用。如按动复位键,亮点又回到中点位置,比赛又可重新开始。将双方终端二极管的正端分别经两个与非门后接至二个十进制计数器CC4518的允许控制端EN,当任一方取胜,该方终端二极管点亮,产生一个下降沿使其对应的计数器计数。这样,计数器的输出即显示了胜者取胜的盘数。四、单元电路设计与参数计算1.总模块电路如下:单元电路如下”2.控制器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGI
6、C_UNSIGNED.ALL;ENTITY kongzhi ISPORT( x,kz: IN STD_LOGIC; st:OUT STD_LOGIC );END kongzhi;architecture z of kongzhi isbeginprocess(x,kz)beginIF(kz=1)THEN st=1;else st=x;end if;end process;end z;3.分频器LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY fenpin IS PORT(clk:IN STD_LOGIC; clk_out:OUT STD_LOG
7、IC;clk_out0:OUT STD_LOGIC; clk_out1:OUT STD_LOGIC); END fenpin; ARCHITECTURE fwm OF fenpin IS CONSTANT m : INTEGER:= 25000000; -50M 分频到 1Hz 时=25000000。 CONSTANT n : INTEGER:= 250000; -50M 分频到 100Hz 时=2500000。 SIGNAL tmp :STD_LOGIC; CONSTANT p : INTEGER:= 49999900;SIGNAL tmp0 :STD_LOGIC; SIGNAL tmp1
8、:STD_LOGIC; BEGIN PROCESS(clk, tmp,tmp0,tmp1) VARIABLE cout,cout0,cout1 : INTEGER:=0; BEGIN IF clkEVENT AND clk=1 THEN cout:=cout+1; -计数器+1 IF cout=m THEN tmp=0; -计数小于等于 25000000,输出 0 ELSIF coutm*2 THEN tmp=1; -计数小于 50000000,输出 1 ELSE cout:=0; -计数器清零END IF; END IF; IF clkEVENT AND clk=1 THEN cout0:=
9、cout0+1; -计数器+1 IF cout0=n THEN tmp0=0; -计数小于等于 250000,输出 0 ELSIF cout0n*2 THEN tmp0=1; -计数小于 500000,输出 1 ELSE cout0:=0; -计数器清零END IF; END IF;IF clkEVENT AND clk=1 THEN cout1:=cout1+1; -计数器+1 IF cout1=p THEN tmp1=0; -计数小于等于 25000000,输出 0 ELSIF cout150000000 THEN tmp1=1; -计数小于 50000000,输出 1 ELSE cout
10、1:=0; -计数器清零END IF; END IF; END PROCESS; clk_out=tmp; clk_out0=tmp0; clk_out1=tmp1; -分频器输出 END fwm;4.倒计时模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY daojishi ISPORT( clk,reset: IN STD_LOGIC; start:OUT STD_LOGIC; wait_tm : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-译码输出,S0
11、为个位END daojishi;ARCHITECTURE A OF daojishi ISSIGNAL SS : STD_LOGIC_VECTOR (9 DOWNTO 0) ;-SS表示个位BEGINPRO1: PROCESS (clk,reset) VARIABLE TMPA: STD_LOGIC_VECTOR (9 DOWNTO 0); VARIABLE TMPWARN: STD_LOGIC;BEGIN IF reset=1 THEN TMPA:=0000001001;TMPWARN:=0; ELSIF clkEVENT AND clk=1 THEN TMPA:=TMPA-1; if TM
12、PA=0000000000 then TMPWARN:=1; END IF; END IF; SS=TMPA;start wait_tm wait_tm wait_tm wait_tm wait_tm wait_tm wait_tm =0010010; -显示5 END CASE ;END PROCESS;END A;5计数器use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all; library IEEE;entity count isport(clk_1:in std_logic; -1HZ 输入sw:in std_logic; -状态判断输入play