- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计报告-七人表决器设计
电子综合设计
题 目 七人抢答器设计 学 院 计信学院 专 业 电子信息工程 班 级 学生姓名 指导教师
2012 年 6 月 18 日
一、设计原理
所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4 时,则认为同意;反之,当否决的票数大于或者等于4 时,则认为不同意。
二、分析讨论
七人表决器这一功能可以用C语言、汇编语言或VHDL编程后下载到单片机上实现,不过用VHDL编程不仅技术含量高而且能让我们更熟练的掌握和使用quartus软件的步骤和方法。所以我们是采用VHDL编程来实现的。
三、设计准备
根据七人表决器的原理,我们的准备过程如下:
1、使用Altera的Cyclone II器件,所用的芯片为EP2C35F672C8,开发平台为quartus II。
2、使用七个拨动开关(K1~K7)作为输入变量来表示七个投票人,当拨动开关输入为‘1’时,表示对应的人投同意票,否则当拨动开关输入为‘0’时,表示对应的人投反对票。
3、使用一个七段数码管来显示同意的票数。
4、使用七个LED(LED2~LED8)用来分别记录投票人的个人投票结果,当LED亮起时就表示对应的投票人同意,否则就表示不同意。
5、使用一个LED(LED1)来表示最终的投票结果,当LED1亮起时表示表决通过,不亮时就表示表决不通过。
6、使用一个拨动开关(K8)来达到复位要求,即需要复位时能够达到同时清零数码管的显示结果和LED的显示情况。
7、软件仿真成功后,通过专用的连接线再用硬件进行测试,并将硬件测试的结果以照片的形式做记录。
四、设计思路
根据程序设计的一般步骤,我们首先设计出七人表决器的系统框图,也就是说先要确定一个大的设计方向;然后再根据设计要求并结合系统框图来设计程序流程图;由程序流程图来编写VHDL程序,并画出表决器的外围引脚图;再将程序用软件仿真,软件仿真成功后进行硬件测试。
1、系统框图如下:
2、程序流程图如下:
Y N
3、外围管脚图如下:
CLK LED1
CLR LEDAG[0:6]
K[0:6] LED[0:6]
注释:
CLK:系统时钟
CLR:复位引脚,当需要复位时,按下该管脚对应的开关就可以复位。
K[0:6]:表决输入,分别是七个拨动开关。
LED1:表示最终的投票结果,当LED1亮起时表示表决通过,不亮时就表示表决不通过。
LEDAG[0:6]:为七段数码管,用来显示同意的票数。
LED[0:6]:为七个LED(LED2~LED8),用来分别记录投票人的个人投票结果。
五、VHDL源程序设计
根据设计要求,我们组设计的七人表决器程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY BJQ IS
PORT(CLK,CLR:IN STD_LOGIC; ----CLK为系统时钟,CLR为复位按键
K:IN STD_LOGIC_VECTOR(6 DOWNTO 0); ----拨动开关输入表决
Result:OUT STD_LOGIC; ----显示表决是否通过
LEDAG,LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); ----LEDAG为七段数码管,用来显示同意的人数;LED为七个指示灯,用来指示投票人的个人投票结果。
END ENTITY BJQ;
ARCHITECTURE one OF BJQ IS
BEGIN
PROCESS(K)
VARIABLE shu:INTEGER; ----定义变量shu来统计同意的个数
BEGIN
IF (CLR=1) THEN ----不复位,即正常工作
LED=K; ----将指示灯和投票人对应,即记名投票
shu:=0;
I
文档评论(0)