其中A,B,C,D 接拨号开关,a,b,c,d,e,f,g 接数码显示接口,管脚映射均为I/O 口,映射后,通过拨号开关改变输入二进制码,则输出数码管上显示相应的数值。如图4-3所示:
图4-3 BCD七段译码器真值表
显示的方式可分为两种:静态显示和动态显示。
4个LED数码管以静态的方式显示时,需要用到8X4条引脚线。在较为复杂的系统中,FPGA的引脚端资源是有限的。对于多个LED数码管显示,我们采用动态扫描的方式来实现LED数码管的动态显示。
实现方法是依次点亮各个数码管,循环进行显示,利用人的视觉暂留特性,可以得到多个数码管同时显示的效果。
采用扫描方式来实现LED数码管动态显示,控制好数码管之间的延时是相当重要。
根据人眼视觉暂留原理,LED数码管每秒导通16次以上,人眼就无法分辨LED数码管暂时不亮,认为是一直点亮的[12]。
4-2 显示电路部分的仿真
该密码锁利用ALTERA公司的仿真软件MAX+PLUSⅡ对所设计的电子密码锁进行编译和综合仿真,其仿真程序为:
display :
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
--
--*********************************************
ENTITY display is
PORT(
CLK : in STD_LOGIC; --system clock
C_DISPLAY : in STD_LOGIC_VECTOR(1 DOWNTO 0) ; --CLK for display
ACC : in STD_LOGIC_VECTOR (15 downto 0); --digit data 4 numbers
DBOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; --showing data
SEGOUT : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -- SEG7 Display O/P
SELOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) -- Select SEG7 O/P
www.751com.cn : STD_LOGIC_VECTOR( 3 DOWNTO 0); -- Select SEG7 Signal
Signal S : STD_LOGIC_VECTOR(1 DOWNTO 0) ; -- display scan sequence
BEGIN
Connection : Block
Begin
SELOUT <= SEL ; -- Seg7 Disp Selection
SEGOUT(6 DOWNTO 0) <= SEG; -- Seven Segment Display
S <= C_DISPLAY ;
DBOUT <= DB ;
End Block Connection;
--
--**********************************************
--
--**********************************************
MULTIPLEXER : BLOCK
BEGIN
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页