EDA课程设计拔河游戏机
- 格式:doc
- 大小:432.50 KB
- 文档页数:13
湖南涉外经济学院课程设计报告课程名称:EDA技术与应用报告题目:拔河游戏机设计学生姓名:所在学院:专业班级:学生学号:指导教师:2016年12月19日课程设计任务书摘要电子拔河游戏机是一种能容纳甲乙双方参赛游戏电路。
由一排发光二极管表示拔河的“电子绳”。
由甲乙双方通过按纽开关使发光二极管向一方的终点延伸,当延伸到某方的最后一个发光二极管时,则该方获胜,连续比赛多局以定胜负。
关键词:拔河;脉冲;数显;二极管,时钟目录一、摘要…………………………………………………………………………4二、基本思想 (6)三、设计框图 (6)四、设计步骤和调试过程………………………………………………………71:总体设计电路 (7)2.模块设计和相应模块程序 (7)3.仿真与仿真结果分析 (11)4、实验调试结果 (11)五、学生情况统计表 (12)六、结论与心得 (13)七、参考文献..............................................................................13八、教师评语与设计成绩.. (14)一、基本思想二十世纪后半期,通过EDA技术对大规模可编程逻辑器件编程,产品得到了大力的发展,这种方法不仅成本低、周期短、可靠性高,而且可随时在系统中修改其逻辑功能。
这里采用VHDL语言来设计拔河游戏机,突出了其作为硬件描述,本设计的基本原理就是采用VHDL语言设计出拔河游戏机的原理程序,写入程序最后模拟仿真即可。
拔河游戏机是一种能容纳甲乙双方参赛游戏电路。
由一排发光二极管表示拔河的“电子绳”。
本课题所设计的拔河游戏机由9个发光二极管排列成一行,开机之后只有中间一个发光二极管亮,以此作为拔河的中心线,游戏双方各持一个按键,迅速地、不断地按动产生脉冲,谁按得快,亮点就向哪方移动,每按一次,亮点移动一次。
移到任一方终端指示灯点亮,这一方就获胜,此时双方按键均无作用,输出保持,只有经裁判复位后才使亮点恢复到中心线。
课程EDA技术课程设计题目拔河游戏机专业电子信息工程主要内容、基本要求、主要参考资料等主要内容:电子拔河游戏机是一种能容纳甲乙双方参赛游戏电路。
由一排发光二极管表示拔河的“电子绳”。
由甲乙双方通过按纽开关使发光二极管向一方的终点延伸,当延伸到某方的最后一个发光二极管时,则该方获胜,连续比赛多局以定胜负。
基本要求:1、设计一个能进行拔河游戏的电路。
2、电路使用9个发光二极管,开机后只有中间一个发亮,此即拔河的中心点。
3、游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。
4、亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。
5、用数码管显示获胜者的盘数。
主要参考资料:[1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.[2] 康华光主编.电子技术基础模拟部分. 北京:高教出版社,2006.[3] 阎石主编.数字电子技术基础. 北京:高教出版社,2003.完成期限2011.3.11指导教师专业负责人2011年 3月7日一、总体设计思想1.基本原理电子拔河游戏机是一种能容纳甲乙双方参赛或甲乙双方加裁判的三人游戏电路。
由一排16个LED发光二极管表示拔河的“电子绳”。
由甲乙双方通过按钮开关使发光的LED管向自己一方的终点延伸,当延伸到某方的最后一LED管时,则该方获胜,并对获胜次数进行计数,连续比赛多局以定胜负。
用键盘上的A键和Z键表示开关按钮。
用键盘上的S键赖代替清零信号,每次比赛前都要进行清零,并使按钮开关复位。
比赛开始,由裁判下达比赛命令后(,用空格键代表裁判信号,摁一下空格键),甲乙双方才能输入信号,否则,由于电路具有自锁功能,使输入信号无效。
裁判信号由键盘空格键来控制。
“电子绳”由16个LED管构成,裁判下达“开始比赛”的命令后,摁一下空格键,位于“电子绳”中点的LED发亮。
eda拔河游戏机课程设计一、课程目标知识目标:1. 让学生理解并掌握EDA(电子设计自动化)拔河游戏机的基本原理和设计流程。
2. 让学生掌握相关电子元件的功能、连接方式及在电路中的应用。
3. 让学生了解并掌握基础的编程知识,能对拔河游戏机的程序进行简单修改。
技能目标:1. 培养学生动手操作能力,能独立完成拔河游戏机的搭建和调试。
2. 培养学生团队协作能力,通过小组合作完成拔河游戏机的整体设计。
3. 培养学生问题解决能力,能针对游戏中出现的问题进行排查和修复。
情感态度价值观目标:1. 激发学生对电子制作的兴趣,培养创新意识和实践精神。
2. 培养学生良好的团队合作精神,学会倾听、沟通和协调。
3. 增强学生对科技与生活的联系的认识,提高环保意识和责任感。
本课程针对的学生特点为:好奇心强、动手能力强,具有一定的电子和编程基础。
课程性质为实践性较强的项目式学习,旨在让学生在实际操作中掌握知识,提高能力。
教学要求注重理论与实践相结合,以学生为主体,教师为主导,关注学生的个体差异,鼓励学生发挥潜能。
通过本课程的学习,期望学生能够实现上述具体的学习成果,为后续的电子设计奠定基础。
二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. 电子元件基础知识:讲解常用电子元件(如电阻、电容、二极管、三极管等)的原理、功能及在电路中的应用。
2. EDA设计工具使用:介绍EDA软件(如Proteus、Multisim等)的基本操作,包括原理图绘制、电路仿真、PCB布线等。
3. 拔河游戏机设计原理:分析拔河游戏机的工作原理,讲解电路设计、程序编写及硬件搭建。
4. 编程知识:结合拔河游戏机程序,教授基础编程语言(如C语言、汇编语言等)的使用。
5. 实践操作:指导学生进行拔河游戏机的搭建、调试及优化。
教学内容安排如下:第一课时:电子元件基础知识学习,分析拔河游戏机电路原理。
第二课时:学习EDA设计工具使用,绘制拔河游戏机原理图。
eda课程设计拔河游戏机课程设计一、课程目标知识目标:1. 学生能理解并掌握拔河游戏机的基本原理,包括电路组成、传感器应用及编程逻辑。
2. 学生能运用所学知识,设计并搭建一个简易的拔河游戏机模型。
3. 学生了解EDA(电子设计自动化)的基本概念,并能够运用EDA工具进行简单的电路设计和仿真。
技能目标:1. 学生通过动手实践,培养电路搭建、调试及编程的能力。
2. 学生能够运用团队协作、沟通技巧,共同完成拔河游戏机的设计与制作。
3. 学生学会运用EDA工具进行电路设计和仿真,提高电子设计能力。
情感态度价值观目标:1. 学生培养对电子科技的兴趣,激发创新精神和实践能力。
2. 学生在团队合作中,学会相互尊重、理解和支持,培养团队精神和责任感。
3. 学生通过课程学习,认识到科技对生活的影响,增强环保意识和可持续发展观念。
课程性质:本课程为实践性、综合性课程,结合电子、计算机等多学科知识,注重培养学生的动手能力、创新能力和团队协作能力。
学生特点:本课程针对具有一定电子基础知识和编程能力的学生,他们对新鲜事物充满好奇,喜欢动手实践,但需要进一步引导和培养团队协作能力。
教学要求:教师需结合学生特点,采用启发式、讨论式教学方法,引导学生主动参与,注重理论与实践相结合,鼓励学生创新和解决问题。
同时,注重过程评价,关注学生在课程学习中的实际表现和成果。
二、教学内容本课程教学内容主要包括以下几部分:1. 拔河游戏机原理介绍:讲解拔河游戏机的基本工作原理,包括电路组成、传感器原理、编程逻辑等。
2. EDA工具使用:学习并掌握EDA工具的基本操作,如电路图绘制、电路仿真等。
3. 电路设计与搭建:- 传感器模块:学习并应用各种传感器(如力传感器、按钮等)进行电路设计。
- 控制模块:学习并掌握微控制器编程,实现对拔河游戏机的控制。
- 显示模块:设计并搭建LED显示屏,展示游戏结果。
4. 编程与调试:学习并运用编程语言(如C语言、Python等)编写程序,实现对拔河游戏机的控制。
实验要求拔河游戏机(1)、设计要求●设计一个能进行拔河游戏的电路。
●电路使用15个(或9个)发光二极管表示拔河的“电子绳”,开机后只有中间一个发亮,此即拔河的中心点。
●游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。
●亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。
●由裁判下达比赛开始命令后,甲乙双方才能输入信号,否则,输入信号无效。
●用数码管显示获胜者的盘数,每次比赛结束自动给获胜方加分。
(2)、设计提示●加/减计数器●译码器●得分计数显示电路2设计原理及总体框图基本原理:由设计内容可知,需要一个十进制的计数器,用于对双方按钮的次数计数。
当led 灯移动到一端时,那边的选手得1分,通过比较模块比较两位选手的胜利的得分,并通过译码器显示在数码管上。
设计要求用1MHz 的频率,而设计用到的是100Hz 、5Hz 和1Hz 的频率,所以要设计一个程序进行分频。
显视控制部分设计要求在发光二极管上显示游戏状态,双方每按十次,亮点向先按十次移动一次,对脉冲进行计数,每十次移一位。
需接入一个清零端,用于复位。
将以上程序组装起来。
当两位选手其中一位选手先得到3分时,比赛结束,音乐响起,所以有一个音乐模块。
总体框图:图1 总体框图3 程序设计① 总体设计电路分频器 division防抖 fangdo u计数 count比赛 compete译码 decodePlayer1 Player2音乐 music图2 总体设计图②模块设计和相应模块程序a.分频器library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;entity division isport( clk:in std_logic;clk_100,clk_4,clk_1:outstd_logic );end division;architecture division_body of division is signal count1:integer range 0 to 4999;--signal count1:integer range 0 to 1;signal count2:integer range 0 to 124999;signal count3:integer range 0 to 49;--signal count3:integer range 0 to 1;signal clk1,clk2,clk3:std_logic;begin--得到100HZ的频率process(clk)beginif(clk'event and clk='1')thenif(count1=4999)thencount1<=0;clk1<=not clk1;else count1<=count1+1;end if;end if;end process;--得到4HZ 的频率 process(clk) beginif(clk'event and clk='1') then if(count2=124999) then count2<=0;clk2<=not clk2; else count2<=count2+1; end if; end if; end process;--得到1HZ 的频率 process(clk1) beginif(clk1'event and clk1='1') then if(count3=49) then count3<=0;clk3<=not clk3; else count3<=count3+1; end if; end if; end process;clk_100<=clk1; clk_4<=clk2; clk_1<=clk3; end division_body; b. 防抖模块 library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;entity fangdou_player1 isport( clk_100:in std_logic; player1_b:in std_logic; player1:out std_logic );end fangdou_player1;architecture fangdou_player1_body of fangdou_player1 is signal mp1,mp2:std_logic;图3 分频器 图4 防抖1beginprocess(clk_100)beginif(clk_100='0') thenmp2<=mp1;mp1<=player1_b;end if;end process;player1<=clk_100 and mp1 and (not mp2);end fangdou_player1_body;library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;entity fangdou_player2 isport( clk_100:in std_logic;player2_b:in std_logic;player2:out std_logic);end fangdou_player2;architecture fangdou_player2_body offangdou_player2 is图5 防抖2 signal mp1,mp2:std_logic;beginprocess(clk_100)beginif(clk_100='0') thenmp2<=mp1;mp1<=player2_b;end if;end process;player2<=clk_100 and mp1 and (not mp2);end fangdou_player2_body;c.计数器library IEEE;use IEEE.std_logic_1164.all;entity count isport( clk_1:in std_logic;switch:in std_logic;player1,player2:in std_logic;sum1,sum2:out integer range 0 to 10图6 计数器 );end count;architecture count_body of count issignal p1,p2:integer range 0 to 10 ;beginsum1<=p1;sum2<=p2;process(player1,player2,switch,clk_1)beginif(switch='1') thenif(clk_1='0') then--p1<=0;--p2<=0;if(player1='1') then p1<=p1+1;end if;if(player2='1') thenp2<=p2+1;end if;elsep1<=0;p2<=0;end if;elsep1<=0;p2<=0;end if;end process;end count_body;d.译码器library IEEE;use IEEE.std_logic_1164.all;图7 译码器entity devode isport( clk_1:in std_logic;clk:in std_logic;nixie_state1,nixie_state2:in std_logic_vector(1 downto 0);leds_state:in std_logic_vector(2 downto 0);nixie1:out std_logic_vector(6 downto 0);nixie2:out std_logic_vector(6 downto 0);leds:out std_logic_vector(6 downto 0));end devode;architecture devode_body of devode issignal tmp_leds:std_logic_vector(6 downto 0);signal tmp_nixie1:std_logic_vector(6 downto 0);signal tmp_nixie2:std_logic_vector(6 downto 0);signal tmp_nixiea:std_logic_vector(6 downto 0);signal tmp_nixieb:std_logic_vector(6 downto 0);beginleds<=tmp_leds;process(clk_1,leds_state,nixie_state1,nixie_state2)beginif(clk_1'event and clk_1='0') thencase leds_state iswhen "100"=> tmp_leds<="0001000";when "011"=> tmp_leds<="0010000";when "010"=> tmp_leds<="0100000";when "001"=> tmp_leds<="1000000";when "101"=> tmp_leds<="0000100";when "110"=> tmp_leds<="0000010";when "111"=> tmp_leds<="0000001";when others =>tmp_leds<="0001000";end case;end if;if(clk_1'event and clk_1='0') thencase nixie_state1 iswhen "00"=>tmp_nixie1<="1111110";when "01"=>tmp_nixie1<="0110000";when "10"=>tmp_nixie1<="1101101";when "11"=>tmp_nixie1<="1111001";end case;end if;if(clk_1'event and clk_1='0') thencase nixie_state2 iswhen "00"=>tmp_nixie2<="1111110";when "01"=>tmp_nixie2<="0110000";when "10"=>tmp_nixie2<="1101101";when "11"=>tmp_nixie2<="1111001";end case;end if;end process;nixie1<=tmp_nixiea;nixie2<=tmp_nixieb;process(clk_1,tmp_nixie1,tmp_nixie2,tmp_nixiea,tmp_nixieb) beginif(clk_1='1')thentmp_nixiea<=tmp_nixie1;elsetmp_nixieb<=tmp_nixie2;end if;end process;end devode_body;4 引脚锁定图9 引脚锁定图5 硬件调试与结果分析编程下载及配置,选择tool —programmer 如下图,重编译,并进行编程下载到SOPC开发板进行功能验证。
目录拔河游戏机设计 ....................................................... - 1 -1.摘要........................................................................................................................... - 1 -2.课程设计的任务和基本要求.......................................... - 1 -2.1设计目的........................................................ - 1 -2.2设计要求........................................................ - 1 -2.3设计方案........................................................ - 2 -3.拔河游戏机流程图 ................................................... - 2 -4设计过程............................................................. - 2 -4.1 总体设计........................................................ - 2 -4.2模块设计....................................................... - 3 -4.2.1 模块1 分频器设计........................................... - 3 -4.2.2 模块2 二位16进制计数器设计................................ - 4 -4.2.3 模块3 比较模块............................................. - 5 -4.2.4 模块4 显示模块............................................. - 6 -4.3整体电路图块.................................................... - 7 -5. 系统仿真 ........................................................... - 9 -6. 心得体会 .......................................................... - 10 -参考文献 ............................................................. - 10 -附录.................................................................. - 11 -拔河游戏机设计1.摘要EDA是电子设计自动化(Electronic Dedign Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
报告书写要求1、报告的撰写要求条理清晰、语言准确、表述简明。
报告中段首空两个字符,中文字体为宋体五号,数字、字符、字母为Times New Roman五号,且单倍行距。
2、报告中插图应与文字紧密配合,文图相符,技术容正确。
每个图都应配有图题(由图号和图名组成)。
图题(宋体小五号)置于图下居中,其中图号按顺序编排,图名在图号之后空一格排写。
图中若有分图时,分图号用(a)、(b)等置于分图之下。
注:框图、流程图(矢量图)用专业画图软件。
3、报告中插表应与文字紧密配合,文表相符,技术容正确。
表格不加左、右边线,上、下线需加粗(1.5磅),每个表应配有表题(由表号和表名组成)。
表题(宋体小五号)置于表上居中,其中表号按顺序编排,表名在表号之后空一格排写。
4、报告中公式原则上居中书写。
注:公式编辑器编写。
5、设计报告应按如下容和顺序A4纸打印、左侧装订成册。
一、设计目的1.掌握数字系统的设计方法;2.掌握硬件描述语言——Verilog HDL;3.掌握模块化设计方法;4.掌握开发软件的使用方法。
二、设计要求(1)设计拔河游戏电路,用按键与LED表示输入与输出。
(2)初始时,16个LED中间的两个点亮,然后游戏双方不停按动按键,点亮的两个LED 向按动按键慢的一方移动;(3)每按动一下按键,LED向对方移动一格;(4)只要LED移动到头,游戏结束;(5)由裁判下达比赛开始命令后,甲乙双方才能输入信号,否则,输入信号无效。
用数码管显示获胜者的盘数,每次比赛结束自动给获胜方加分。
(6)完成全部流程:设计规文档、模块设计、代码输入、功能仿真、约束与综合、布局布线、时序仿真、下载验证等。
(7)三、设计环境计算机、QuatusII开发软件四、设计容(设计原理和方案、程序设计、仿真分析和适配)4.1设计原理和方案电子拔河游戏机是一种能容纳甲乙双方参赛或甲乙双方加裁判的三人游戏电路。
由一排16个LED发光二极管表示拔河的“电子绳”。
巢湖学院课程设计说明书设计名称:《EDA技术》课程设计题目:电子拔河游戏电路设计姓名:学号:班级:指导教师:日期:目录1.课程设计的任务和基本要求...............................................设计目的.................................................................设计要求.................................................................设计方案.................................................................2.设计原理及总体框图...................................................... 3程序设计 .................................................................整体电路图块............................................................模块设计................................................................模块a 分频器设计......................................................模块b 防抖设计........................................................模块c 计数模块........................................................模块d 译码模块........................................................ 4仿真及仿真结果分析 ..................................................... 5硬件调试与结果分析.............................................6 心得体会.................................................................1.课程设计的任务和基本要求设计目的通过设计一个简易拔河比赛游戏机(1)熟练掌握EDA软件QUARTUS II的使用方法;(2)能利用EDA软件QUARTUS II进行一个电子技术综合问题的设计;(3)掌握FPGA系统各种外围接口的灵活运用,培养实验的仿真及下载技能。
东北石油大学课程设计2011年 3 月2日东北石油大学课程设计任务书课程EDA技术课程设计题目拔河游戏机专业姓名学号主要内容、基本要求、主要参考资料等主要内容:电子拔河游戏机是一种能容纳甲乙双方参赛游戏电路。
由一排发光二极管表示拔河的“电子绳”。
由甲乙双方通过按纽开关使发光二极管向一方的终点延伸,当延伸到某方的最后一个发光二极管时,则该方获胜,连续比赛多局以定胜负。
基本要求:1、设计一个能进行拔河游戏的电路。
2、电路使用9个发光二极管,开机后只有中间一个发亮,此即拔河的中心点。
3、游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。
4、亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。
5、用数码管显示获胜者的盘数。
主要参考资料:[1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.[2] 康华光主编.电子技术基础模拟部分. 北京:高教出版社,2006.[3] 阎石主编.数字电子技术基础. 北京:高教出版社,2003.完成期限2011.3.2指导教师专业负责人2011年3月2日一、总体设计思想1.基本原理电子拔河游戏机是一种能容纳甲乙双方参赛游戏电路。
由一排发光二极管表示拔河的“电子绳”。
由甲乙双方通过按纽开关使发光二极管向一方的终点延伸,当延伸到某方的最后一个发光二极管时,则该方获胜,连续比赛多局以定胜负。
本电路要求使用9个发光二极管,开机后只有中间一个发亮,此即拔河的中心点。
游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。
亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。
最后用数码管显示获胜者的盘数。
由设计内容可知,首先需要一个十进制的计数器,用于对双方按钮的次数计数,并通过译码器显示在数码管上。
EDA拔河游戏机课程设计__学院课程设计题目:EDA拔河游戏机课程设计作者:__ 专业:自动化班级:__ 学号:__ 指导老师:__ 2012年_月_日主要内容、基本要求、主要参考资料等主要内容:电子拔河游戏机是一种能容纳甲乙双方参赛游戏电路。
由一排发光二极管表示拔河的“电子绳”。
由甲乙双方通过按纽开关使发光二极管向一方的终点延伸,当延伸到某方的最后一个发光二极管时,则该方获胜,连续比赛多局以定胜负。
基本要求:1、设计一个能进行拔河游戏的电路。
2、电路使用9个发光二极管,开机后只有中间一个发亮,此即拔河的中心点。
3、游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。
4、亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。
5、用数码管显示获胜者的盘数。
主要参考资料:潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005. 康华光主编.电子技术基础模拟部分. 北京:高教出版社,2006. 阎石主编.数字电子技术基础. 北京:高教出版社,2003. 一、总体设计思想 1.基本原理由设计内容可知,需要一个十进制的计数器,用于对双方按钮的次数计数,并通过译码器显示在数码管上。
设计要求用50MHz的频率,而设计用到的是1KHz的频率,所以要设计一个程序进行分频。
显视控制部分设计要求在发光二极管上显示游戏状态,双方每按十次,亮点向先按十次移动一次,对脉冲进行计数,每十次移一位。
需接入一个清零端,用于复位。
将以上程序组装起来。
2.设计框图译码器编码电路选择开关整形电路可逆计数器控制电路图1. 拔河机游戏机框图二、设计步骤和调试过程1、总体设计电路总体电路图和仿真图如图(25)所示,由仿真图可知,此电路设计无误,可以实现按动A、B两个按键时,分别产生两个脉冲信号,经整形后分别加到可逆计数器上,可逆计数器输出的代码经译码器译码后驱动电平指示灯点亮并产生位移,当亮点移到任何一方终端后,由于控制电路的作用,使这一状态被锁定,双方按键产生的输入脉冲不起作用。
东北石油大学课程设计2014年 3 月7日东北石油大学课程设计任务书课程EDA技术课程设计题目拔河游戏机专业电子信息工程姓名学号主要内容、基本要求、主要参考资料等主要内容:电子拔河游戏机是一种能容纳甲乙双方参赛游戏电路。
由一排发光二极管表示拔河的“电子绳”。
由甲乙双方通过按纽开关使发光二极管向一方的终点延伸,当延伸到某方的最后一个发光二极管时,则该方获胜,连续比赛多局以定胜负。
基本要求:1、设计一个能进行拔河游戏的电路。
2、电路使用9个发光二极管,开机后只有中间一个发亮,此即拔河的中心点。
3、游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。
4、亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。
5、用数码管显示获胜者的盘数。
主要参考资料:[1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.[2] 康华光主编.电子技术基础模拟部分. 北京:高教出版社,2006.[3] 阎石主编.数字电子技术基础. 北京:高教出版社,2003.完成期限2014.3.7指导教师专业负责人2014年3月3日一、设计思想1.基本原理拔河游戏机是通过控制“电子绳”发亮的LED管由中点向速度快的一方移动,而阻止向另一方移动,按键较快的一方获胜。
此次课程设计主要用到加/减计数器,通过其输出状态再通过译码器控制LED发亮。
加/减计数器,输入“加脉冲”,加运算亮,亮点向右移;输入“减脉冲”,减运算亮,亮点向左移。
拔河游戏机由一个控制电路指示谁胜谁负,当亮点移到任一方终端时,由控制电路产生一个信号,使计数器停止计数。
当亮点达到任一方的终点时,该终点发出电路封锁加/减脉冲信号,实现电路自锁,使加/减脉冲立即无效,同时实现电路自动加分。
双方终端二极管“点亮”信号分别接两个计数器的“使能”端,当一方取胜时,相应的计数器进行一次计数,这样得到双方取胜次数的显示设置一个“复位”按钮,使亮点回到中心,取胜计数器也要设置一个“复位”按钮,使之能清零。
2.设计框图甲乙上方比赛按键通过频率计数器指示,根据中心LED比较,当一方取胜时,相应计数器计数,通过数码管显示取胜次数。
图1 设计流程图二、设计步骤和调试过程1、模块设计和相应模块代码频率计数模块CNT10,用于对双方按钮的次数计数,每遇到上升沿计数一次。
LBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT(CLK,RST,EN:STD_LOGIC;COUT:OUT STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END;ARCHITECTURE ONE OF CNT10 ISBEGINPROCESS(CLK,RST,EN)V ARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RST='1' THENCQI:=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF EN='1' THENIF CQI<9 THEN CQI:=CQI+1;ELSE CQI :=(OTHERS=>'0');END IF ;END IF;END IF;IF CQI=9 THEN COUT<='0' ;ELSE COUT<='1';END IF;CQ<=CQI;END PROCESS;END;数码管显示模块SCAN,显示双方取胜次数。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SCAN ISPORT (CLK :IN STD_LOGIC;A1,A2,A3,B1,B2,B3:IN STD_LOGIC_VECTOR(3 DOWNTO 0);SG:OUT STD_LOGIC_VECTOR(8 DOWNTO 0);BT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END;ARCHITECTURE ONE OF SCAN ISSIGNAL CNT4:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL A :STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL CLK1:STD_LOGIC;BEGINP1:PROCESS(CNT4)BEGINCASE CNT4 ISWHEN "000"=>BT<="10000000";A<=A1;WHEN "001"=>BT<="01000000";A<=A2;WHEN "010"=>BT<="00100000";A<=A3;WHEN "011"=>BT<="00000100";A<=B1;WHEN "100"=>BT<="00000010";A<=B2;WHEN "101"=>BT<="00000001";A<=B3;WHEN OTHERS=>BT<="00000000";END CASE ;END PROCESS P1;P2:PROCESS (CLK)V ARIABLE CT:INTEGER RANGE 0 TO 50000;BEGINIF CLK'EVENT AND CLK='1' THEN --1000HZIF CT<49999 THENCT:=CT+1;CLK1<='0';ELSECT:=0;CLK1<='1';END IF;END IF;END PROCESS P2;PROCESS(CLK1)BEGINIF CLK1'EVENT AND CLK1='1' THENIF CNT4<5 THENCNT4<=CNT4+1;ELSECNT4<="000";END IF;END IF;END PROCESS;PROCESS (A)BEGINCASE A ISWHEN "0000"=>SG<="100000000";WHEN "0001"=>SG<="111110001";WHEN "0010"=>SG<="001001000";WHEN "0011"=>SG<="001100000";WHEN "0100"=>SG<="000110010";WHEN "0101"=>SG<="000100100";WHEN "0110"=>SG<="000000100";WHEN "0111"=>SG<="111110000";WHEN "1000"=>SG<="000000000";WHEN "1001"=>SG<="100011111";WHEN "1010"=>SG<="000100100";WHEN "1011"=>SG<="000011000";WHEN "1100"=>SG<="010001100";WHEN "1101"=>SG<="001001000";WHEN "1110"=>SG<="001000000";WHEN "1111"=>SG<="000011111";WHEN OTHERS=>NULL;END CASE ;END PROCESS;END;LED指示模块LMOV,双方的LED灯进行比较,看谁先到达终点。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY LMOV ISPORT (KL ,KR:IN STD_LOGIC_VECTOR(3 DOWNTO 0) ;LED:OUT STD_LOGIC_VECTOR(8 DOWNTO 0);EN : OUT STD_LOGIC;RST:IN STD_LOGIC);END ;ARCHITECTURE ONE OF LMOV ISBEGINPROCESS(RST,KL,KR)BEGINIF RST='1' THEN LED<="111101111";EN<='1';ELSIF KL-KR=1 THEN LED<="111011111";EN<='1';ELSIF KL-KR=2 THEN LED<="110111111";EN<='1';ELSIF KL-KR=3 THEN LED<="101111111";EN<='1';ELSIF KL-KR=4 THEN LED<="011111111";EN<='0';ELSIF KR-KL=1 THEN LED<="111110111";EN<='1';ELSIF KR-KL=2 THEN LED<="111111011";EN<='1' ;ELSIF KR-KL=3 THEN LED<="111111101";EN<='1';ELSIF KL-KR=4 THEN LED<="111111110";EN<='0';ELSIF KR-KL=0 THEN LED<="111101111";EN<='1';ELSE NULL;END IF;END PROCESS;END;主模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BAHE ISPORT (A,B,RST,CLK:IN STD_LOGIC;SG,LED:OUT STD_LOGIC_VECTOR(8 DOWNTO 0);BT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END BAHE;ARCHITECTURE ONE OF BAHE ISCOMPONENT CNT10PORT (CLK,RST,EN:STD_LOGIC;COUT:OUT STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;COMPONENT SCANPORT (CLK :IN STD_LOGIC;A1, A2,A3,B1,B2,B3:IN STD_LOGIC_VECTOR(3 DOWNTO 0);SG:OUT STD_LOGIC_VECTOR(8 DOWNTO 0);BT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT;COMPONENT LMOVPORT (KL ,KR:IN STD_LOGIC_VECTOR(3 DOWNTO 0) ;LED:OUT STD_LOGIC_VECTOR(8 DOWNTO 0);EN : OUT STD_LOGIC;RST:IN STD_LOGIC);END COMPONENT;SIGNAL E,F,CA1,CA2,CB1,CB2:STD_LOGIC;SIGNAL CQA1,CQA2,CQA3,CQB1,CQB2,CQB3:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINU1:CNT10 PORT MAP(EN=>E,RST=>RST,CLK=>A,COUT=>CA1,CQ=>CQA1);U2: CNT10 PORT MAP(EN=>E,RST=>RST,CLK=>CA1,COUT=>CA2,CQ=>CQA2);U3: CNT10 PORT MAP (EN=>E,RST=>RST,CLK=>CA2,CQ=>CQA3);U4: CNT10 PORT MAP (EN=>E,RST=>RST,CLK=>B,COUT=>CB1,CQ=>CQB1); U5: CNT10 PORT MAP(EN=>E,RST=>RST,CLK=>CB1,COUT=>CB2,CQ=>CQB2);U6: CNT10 PORT MAP (EN=>E,RST=>RST,CLK=>CB2,CQ=>CQB3);U7: SCAN PORT MAP (A1=>CQA1,A2=>CQA2,A3=>CQA3,B1=>CQB1 ,B2=>CQB2,B3=>CQB3,CLK=>CLK,SG=>SG,BT=>BT);U8:LMOV PORT MAP(EN=>E,KL=>CQA2,KR=>CQB2,RST=>RST,LED=>LED);END ARCHITECTURE ONE;2、仿真及仿真结果分析计数器仿真图,每遇到上升沿输出+1,当CQ=9时,COUT=0。