欢迎来到天天文库
浏览记录
ID:879962
大小:5.02 MB
页数:16页
时间:2017-09-22
《课程设计报告---七人表决器设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、电子综合设计题目七人抢答器设计学院计信学院专业电子信息工程班级学生姓名指导教师2012年6月18日一、设计原理所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4时,则认为同意;反之,当否决的票数大于或者等于4时,则认为不同意。二、分析讨论七人表决器这一功能可以用C语言、汇编语言或VHDL编程后下载到单片机上实现,不过用VHDL编程不仅技术含量高而且能让我们更熟练的掌握和使用quartus软件的步骤和方法。所以我们是采用VHDL编程
2、来实现的。三、设计准备根据七人表决器的原理,我们的准备过程如下:1、使用Altera的CycloneII器件,所用的芯片为EP2C35F672C8,开发平台为quartusII。2、使用七个拨动开关(K1~K7)作为输入变量来表示七个投票人,当拨动开关输入为‘1’时,表示对应的人投同意票,否则当拨动开关输入为‘0’时,表示对应的人投反对票。3、使用一个七段数码管来显示同意的票数。4、使用七个LED(LED2~LED8)用来分别记录投票人的个人投票结果,当LED亮起时就表示对应的投票人同意,否则就表示不同意。5、使用一个LED(LED1)来表示最终的投票结果,当LE
3、D1亮起时表示表决通过,不亮时就表示表决不通过。6、使用一个拨动开关(K8)来达到复位要求,即需要复位时能够达到同时清零数码管的显示结果和LED的显示情况。7、软件仿真成功后,通过专用的连接线再用硬件进行测试,并将硬件测试的结果以照片的形式做记录。四、设计思路根据程序设计的一般步骤,我们首先设计出七人表决器的系统框图,也就是说先要确定一个大的设计方向;然后再根据设计要求并结合系统框图来设计程序流程图;由程序流程图来编写VHDL程序,并画出表决器的外围引脚图;再将程序用软件仿真,软件仿真成功后进行硬件测试。1、系统框图如下:数码管显示电源系统LED灯显示FPGA开关
4、按钮复位按钮2、程序流程图如下:开始按键输入表决同意人数(>3)YN表决不通过(LED1不亮)用LED灯显示反对的投票人表决通过(LED1亮)用LED灯显示同意的投票人3、外围管脚图如下:biaojueqiCLKLED1CLRLEDAG[0:6]K[0:6]LED[0:6]注释:CLK:系统时钟CLR:复位引脚,当需要复位时,按下该管脚对应的开关就可以复位。K[0:6]:表决输入,分别是七个拨动开关。LED1:表示最终的投票结果,当LED1亮起时表示表决通过,不亮时就表示表决不通过。LEDAG[0:6]:为七段数码管,用来显示同意的票数。LED[0:6]:为七个L
5、ED(LED2~LED8),用来分别记录投票人的个人投票结果。五、VHDL源程序设计根据设计要求,我们组设计的七人表决器程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYBJQISPORT(CLK,CLR:INSTD_LOGIC;----CLK为系统时钟,CLR为复位按键K:INSTD_LOGIC_VECTOR(6DOWNTO0);----拨动开关输入表决Result:OUTSTD_LOGIC;----显示表决是否通过LEDAG,LED:OUTSTD_L
6、OGIC_VECTOR(6DOWNTO0));----LEDAG为七段数码管,用来显示同意的人数;LED为七个指示灯,用来指示投票人的个人投票结果。ENDENTITYBJQ;ARCHITECTUREoneOFBJQISBEGINPROCESS(K)VARIABLEshu:INTEGER;----定义变量shu来统计同意的个数BEGINIF(CLR='1')THEN----不复位,即正常工作LED<=K;----将指示灯和投票人对应,即记名投票shu:=0;IFCLK'EVENTANDCLK='1'THENIFK(0)='1'THENshu:=shu+1;ENDIF
7、;IFK(1)='1'THENshu:=shu+1;ENDIF;IFK(2)='1'THENshu:=shu+1;ENDIF;IFK(3)='1'THENshu:=shu+1;ENDIF;IFK(4)='1'THENshu:=shu+1;ENDIF;IFK(5)='1'THENshu:=shu+1;ENDIF;IFK(6)='1'THENshu:=shu+1;ENDIF;CASEshuIS----指示灯显示投票结果,数码管显示同意人数WHEN0=>Result<='0';LEDAG<="0111111";LED<=K;WHEN1=>Result<='0';LEDA
8、G<="0
此文档下载收益归作者所有