七人表决器设计设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

七人表决器设计

一.设计要求

1. 能够完成七人表决的功能,并且直观的显示结果:决议通过显示字母P,否则显示

字母E;

2.能够选择显示表决双方的人数,有控制开关与显示指示灯,并且能够实时的显示反对

与赞成的人数;

3.能够选择是否记名,并有指示灯显示。当选择记名时,与表决参与者相对应的指示灯

亮起;

4.不设置弃权的状况,超过三人同意则表示决议通过。

二.设计思路

1.使用Altera的Cyclone II器件,FPGA型号为EP2C35F672C6N;开发平台为Quartus II 8.0

2.使用6个拨动开关用以进行表决,开关闭合时表示同意,断开时表示不同意;

3.使用6个LED用以显示表决的个人结果,用以显示记名时的情况。LED亮起表示表决人

同意,否则表示不同意;

4.使用一个七段数码管用以显示表决结果,通过显示P,否则显示E;另外使用两个数码

管用以分别显示同意与不同意的人数;

5.使用两个拨动开关控制是否记名,是否显示表决的人数结果;

6.其他电路按需要搭建。

三.硬件系统组成框图

注释:set:选择是否记名

set1:选择是否显示投票人数及比例

xin[0:6]:表决输入,分别是七个拨动开关

sel:输出指示是否记名投票

sel1:输出指示是否显示投票人数及比例

xout[0:6]:译码用数码管输出表决是否通过

xout0[0:6]:译码用数码管输出同意的人数(set1=1)

xout1[0:6]:译码用数码管输出不同意同意的人数(set1=1)

xout2[0:6]:译码用七个LED输出记名结果

设计HDL源程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity biao is

port (

set, set1: in std_logic ; ----控制按键

xin: in std_logic_vector ( 6 downto 0 ); ----按键输入表决

sel,sel2: out std_logic; -------控制指示灯

xout,xout0,xout1,xout2 : out std_logic_vector ( 6 downto 0 )

); ----xout显示结果,xout0显示否决的人数,xout1赞成的人数,xout2 LED输出end entity ;

architecture bev of biao is

begin

process ( xin ,set,set1)

variable j: integer :=0;

begin

j:=0;

for i in 0 to 6 loop ------统计同意的个数

if xin(i)='1' then

j:=j+1;

end if;

end loop;

if (set='1') then -------是否记名投票

sel<='1';

xout2<=xin; -------记名投票

else

sel<='0';

xout2<="0000000";

end if;

if j>3 then ------判决是否表决通过并输出结果

xout<="0001100"; ----数码管显示P

else xout<="0000110"; -----数码管显示E

end if;

if set1='1' then ------是否显示表决比例

sel2<='1'; ------显示指示灯亮并且译码输出同意与不同意的数目

case j is ------显示赞成的人数

when 0 =>xout1<="1000000";

when 1 =>xout1<="1111001";

when 2 =>xout1<="0100100";

when 3 =>xout1<="0110000";

when 4 =>xout1<="0011001";

when 5 =>xout1<="0010010";

when 6 =>xout1<="0000010";

when 7 =>xout1<="1111000";

when others =>xout1<="XXXXXXX";

end case;

case j is ------显示不赞成的人数

when 7 =>xout0<="1000000";

when 6 =>xout0<="1111001";

when 5 =>xout0<="0100100";

when 4 =>xout0<="0110000";

when 3 =>xout0<="0011001";

when 2 =>xout0<="0010010";

when 1 =>xout0<="0000010";

when 0 =>xout0<="1111000";

when others =>xout0<="XXXXXXX";

end case;

else ------不显示表决比例

sel2<='0';

xout0<="1111111"; ----不显示数字

xout1<="1111111";

end if;

end process;

end architecture bev;

四.DE2平台仿真

1.在Quartus中打开已经建好的工程文件;

2.按要求选择设备并且分配管脚,重新编译,连接实验板的电源线与下载线,下载程序

文件

3.分别拨动开关sw0到sw6,看是否能够满足基本要求;在分别拨动sw16,sw17,看是

否能够按要求显示表决人数结果与对应的LED灯是否正常亮与灭。

4.调试程序直到能够完成设计的要求。

相关文档
最新文档