目的
进一步掌握VHDL语言的基本结构和设计的输入方法。
2 .掌握2.BCD-7段显示解码器的设计思路:
内容
使用指拨开关SW3、SW2、SW1、SW0作为1.4位二进制数据d、c、b、a的输入;
2 .显示在最右边的数码管HEX0中输入的BCD代码的数值。
原理
7段数码管一般由8个发光二极管组成,其中7个细长发光二极管构成数字显示,另一个圆形发光二极管显示小数点。 发光二极管接通后,对应的1点或1行程发光。 通过控制对应的二极管的导通,可以显示各种各样的文字。 发光二极管的阳极连接的被称为共阳极数字管,此时解码器的输出应该是低电平有效的; 阴极连接的是共阴极数码管,在这种情况下,解码器的输出应该是高电平有效的。 如图2-25所示。
图2-25七段数码管结构图
74LS47是一个解码器/驱动器,其将4位二进制代码转换为十进制数字(BCD ),并通过7段的数字管道显示,如图2-26所示。 74LS47可以驱动公共阳极的发光二极管7段的LED来显示文字。
图2-2674LS47引脚图
74LS47具有自动前后边缘清零控制(RBI和RBO )。 指示灯(LT )可以在BI/RBO端子变为高电平的任意时刻进行,该电路还包含用于控制灯的亮度和禁止输出的熄灭输入(BI )。 输入0~15时,74LS47中显示的字符如图2-27所示。 菜单如表2-2所示。
图2-2774LS47显示字符
表2-274LS47菜单
DE2-115有8个7级数码管。 它们被分成两组,每个四个,用于数字显示。 DE2-115段数码管采用共阳极连接方式。 FGA输出为低电平时,对应的字段点亮,反之则熄灭。 需要注意的是,DE2-115开发板上不能使用7级数码管点。
制定QuartusII项目,以实现3358www.Sina.com/1.de2-115中的预期电路。
2 .写期望电路的VHDL代码。
将VHDL文件包含在项目中进行编译。
4 .模拟电路检测其功能。
5 .分配领导。
6 .重新编译下载到FPGA芯片。
用DE2-115开发板确认电路是否正确。
操作
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
实体BCD7is
port(ain,Bin,Cin,Din:INSTD_LOGIC; —-输入位BCD代码
LT、RBI、BI:INSTD_LOGIC;
a、b、c、d、e、f、g:OUTSTD_LOGIC; -7段
ENDBCD7;
ARCHITECTUREARCHOFBCD7IS
signalq : STD _ logic _ vector (3down to0);
比根
Q=DinCinBinAin;
处理(q、LT、RBI、BI ) )。
可变dout : STD _ logic _ vector (6down to 0;
比根
IFBI=’0’THEN
DOUT:=’0000000 ‘;
ELSIFRBI=’1’THEN
IFLT=’1’THEN
CASEQIS
WHEN’0001’=DOUT:=’1111001 ‘;
WHEN’0010’=DOUT:=’0100100 ‘;
WHEN’0011’=DOUT:=’0110000 ‘;
WHEN’0100’=DOUT:=’0011001 ‘;
WHEN’0101’=DOUT:=’0010010 ‘;
WHEN’0110’=DOUT:=’0000010 ‘;
WHEN’0111’=DOUT:=’1111000 ‘;
WHEN’1000’=DOUT:=’0000000 ‘;
WHEN’1001’=DOUT:=’0011000 ‘;
WHEN’1010’=DOUT:=’0001000 ‘;
WHEN’1011’=DOUT:=’0000011 ‘;
WHEN’1100’=DOUT:=’1000110 ‘;
WHEN’1101’=DOUT:=’0100001 ‘;
WHEN’1110’=DOUT:=’0000110 ‘;
WHEN’1111’=DOUT:=’0001110 ‘;
WHENOTHERS=DOUT:=’1000000 ‘;
结束案例;
结尾;
结尾;
a=dout(0;
b=dout(1;
c=dout(2;
d=dout(3;
e=dout(4;
f=dout(5;
g=dout(6;
结束流程;
结束地址;
程序
结果
1 .请仔细看看工作原理。
2 .文件名必须与VHDL文件中的设计实体名称一致。
总结:我个人觉得规范操作很重要。 如果操作不规范,不仅操作步骤繁杂,还可能带来错误。 其次是理解代码的含义,BCD-分段数码管展示解码器的作用,揭示共阴极、共阳极的区别。 应该能比较顺利地执行任务。
永不输本金打法回本技巧WHEN’0010’=DOUT:=’0100100 ‘;
WHEN’0011’=DOUT:=’0110000 ‘;
WHEN’0100’=DOUT:=’0011001 ‘;
WHEN’0101’=DOUT:=’0010010 ‘;
WHEN’0110’=DOUT:=’0000010 ‘;
WHEN’0111’=DOUT:=’1111000 ‘;
WHEN’1000’=DOUT:=’0000000 ‘;
WHEN’1001’=DOUT:=’0011000 ‘;
WHEN’1010’=DOUT:=’0001000 ‘;
WHEN’1011’=DOUT:=’0000011 ‘;
WHEN’1100’=DOUT:=’1000110 ‘;
WHEN’1101’=DOUT:=’0100001 ‘;
WHEN’1110’=DOUT:=’0000110 ‘;
WHEN’1111’=DOUT:=’0001110 ‘;
WHENOTHERS=DOUT:=’1000000 ‘;
结束案例;
结尾;
结尾;
a=dout(0;
b=dout(1;
c=dout(2;
d=dout(3;
e=dout(4;
f=dout(5;
g=dout(6;
结束流程;
结束地址;
程序
结果
1 .请仔细看看工作原理。
2 .文件名必须与VHDL文件中的设计实体名称一致。
总结:我个人觉得规范操作很重要。 如果操作不规范,不仅操作步骤繁杂,还可能带来错误。 其次是理解代码的含义,BCD-分段数码管展示解码器的作用,揭示共阴极、共阳极的区别。 应该能比较顺利地执行任务。