-
. z.
数字电路综合实验报告
简易智能密码锁
一、实验课题及任务要求
设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正 抖模块仿真
当按下键时得到的高电平为输入*,持续一定时间前方可输出一个高电平,而无论按下的时间多长,都只输出一个高电平y,从而实现消除按键电路中的抖动。
分频模块仿真
为仿真方便,改变分频比。原程序在50Mhz时钟输入下,输出分别为1Mhz、 200hz、1000hz、500hz,分别用于键盘扫描、消抖模块输入、点阵扫描以及数码管扫描。
数码管模块仿真
由smgcatout输出可以看出低四位数码管依次选通。第i位选通时,smgzf为m[i]的七段数码管的译码值。
点阵模块仿真
-
. z.
当lockmode=1时dzcolr全部为0仅dzcolg显示图案; 当lockmode=0时dzcolg全部为0由dzcolr显示图案;而dzrow一直在进展行扫描,形成了两种不同颜色点阵。
报警模块仿真
当bj=0时,fmq为0;bj=1时,fmq将clk分频后输出,即蜂鸣器发出声响。
四、源程序
-----------------------顶层文件-------------------------
library ieee;
use ;
use ;
entity lock is
port (clk : in std_logic;
setmode:out std_logic;
lockmode:out std_logic;
set:in std_logic;
btn1,btn2,btnloc:in std_logic;
smgzf: out std_logic_vector(6 downto 0);
smgcatout:out std_logic_vector(5 downto 0);
kbin: in std_logic_vector(3 downto 0);
kbout: buffer std_logic_vector(3 downto 0);
dzrow,dzcolr,dzcolg: out std_logic_vector(7 downto 0);
fmq: out std_logic
);
end lock;
architecture behave of lock is
signal setm: std_logic;
signal lockm: std_logic;
signal lbj: std_logic;
signal lkwei: integer range 0 to 4;
signal lm1,lm2,lm3,lm4:integer range 0 to 9;
signal clk_1: std_logic; --1MHz
signal clk_2: std_logic; --200Hz
signal clk_3: std_logic; --1000Hz
signal clk_4: std_logic; --500Hz
ponent kb is -----------键盘模块
port (clk : in std_logic;
set:in std_logic;
btn1,btn2,btnloc:in std_logic;
kbin: in std_logic_vector(3 downto 0);
kbout: buffer std_logic_vector(3 downto 0);
bj:out std_logic;
setmod:out std_logic;
lockmod:out std_logic;
kbwei:out integer range 0 to 4;
-
. z.
m1*,m2*,m3*,m4*:out integer range 0 to 9
);
end ponent;
ponent smg is -------------数码管显示模块
po
北邮数字电路综合实验报告 来自淘豆网m.daumloan.com转载请标明出处.