QUARTUS数字电子密码锁Word格式文档下载.doc
《QUARTUS数字电子密码锁Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《QUARTUS数字电子密码锁Word格式文档下载.doc(25页珍藏版)》请在冰豆网上搜索。
作为电子密码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。
拨码与按键和触摸式4*4键盘相比简单方便而且成本低,构成的电路简单,本设计中采用拨码与按键来作为该设计的输入设备。
数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。
液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任然使用LED数码管。
根据以上选定的输入设备与与显示器件,并考虑到现实各项密码锁功能的具体要求,与系统的设计要求,系统设计采用自顶向下的设计方案。
整个密码锁系统的总体总体框图如图3.1所示。
输入模块
寄存器与清零信号发生电路
数值比较器
拨码与按键
单脉冲控制
输入译码
LED灯
扫描电路
三选一选择器
开/关锁电路
控制模块
显示模块
BCD七段译码显示电路
图3.1电子密码锁系统总体框图
4.电子密码锁的波形仿真
4.1电子密码锁的设计流程
使用QuartusⅡ进行电子密码锁设计的流程为
1.编写VHDL程序(使用TextEditor)(见附录);
2.编译VHDL程序(使用Compiler);
3.仿真验证VHDL程序(使用WaveformEditor,Simulator);
4.进行芯片的时序分析(使用TimingAnalyzer);
5.安排芯片管脚位置(使用FloorplanEditor);
6.下载程序至芯片(使用Programmer)。
5.功能模块
5.1输入模块
1)功能介绍
输入时有三个拨码键控制输入,每个拨码各控制一位密码,对于其中一个拨码键每拨一次码按一次按键,表示输入一位,当输入四位时输出一位数,用“888”作为初始密码。
2)输入模块与仿真图形
单脉冲控制如图5.1如下图
图5.1
上图为单脉冲控制输入,当M给一上升沿信号将在PUL输出一位与之对应的高或低电平。
四位串行输入并行输出寄存器如下图5.1.2
图5.1.2
上图为4为串行输入并行输出寄存器,它由4个D触发组成,当reset为高电平时,每给一脉冲输入数据将向右移一位二值代码,它能同时复位
3)程序的输入
在文本区内输入程序,程序如下:
单脉冲信号控制
puls.vhd
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYpulsIS
PORT(PUL,M:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC);
ENDpuls;
ARCHITECTUREBEHAVEOFpulsIS
SIGNALTEMP:
STD_LOGIC;
BEGIN
PROCESS(M)
IFM'
EVENTANDM='
1'
THEN
IFPUL='
THEN
TEMP<
='
;
ELSETEMP<
0'
ENDIF;
ENDIF;
ENDPROCESS;
Q<
=TEMP;
ENDBEHAVE;
4位串行输入并行输出寄存器
shifter.vhd
ENTITYshifterIS
PORT
(din:
IN STD_LOGIC;
reset,CLK:
IN STD_LOGIC;
qout:
bufferSTD_LOGIC_VECTOR(0TO3)
);
ENDshifter;
ARCHITECTUREactOFshifterIS
BEGIN
PROCESS(CLK)
VARIABLEq:
STD_LOGIC_VECTOR(0TO3);
BEGIN
IFreset='
q:
=(others=>
'
);
ELSE
ifclk'
eventandclk='
then
q(3):
=q
(2);
q
(2):
=q
(1);
q
(1):
=q(0);
q(0):
=din;
ENDIF;
ENDIF;
qout<
=q;
ENDPROCESS;
ENDarchitectureact;
5.2控制模块
1)功能介绍
2)控制模块与仿真图形
输入译码器图5.2.1,如下图
图5.2.2
上图为译码器将4位二值代码转化成BCD码从“0000”~“1001”表示
0~9。
表5-2输入译码的真值表
输入输出
DCBAY1Y2Y3Y4字形
000000000
000100011
001000102
001100113
010001004
010101015
011001106
011101117
100010008
100110019
表5-2
总功能控制模块图5.2.3,如下图
图5.2.3
当CHANGE为高电平且rt为低电平时开始输入密码这时lockopen为高电平,而lockclose为低电平,当rt为高电平,change为低电平时开始检测密码,如上图开始密码为“108”当再次出现“108”时lockopen为高电平,而lockclose为低电平,当密码错误时lockopen为低电平,而lockclose为高电平。
4选1选择器与扫描器图5.2.4,如下图
图5.2.4
如上图多路选择器可以从多组数据来源中选取一组送入目的地,在本设计中利用多路选择器做扫描电路来分别驱动输出装置,可以将低成本消耗,如上图当输入“819”时,在时钟地控制下qout将输出“819”,而与之对应的sel扫描对应的数码管。
输入译码器
KEY.vhd
ENTITYKEYIS
PORT(clk:
data:
INSTD_LOGIC_VECTOR(3DOWNTO0);
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
q1:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDENTITYKEY;
ARCHITECTUREARTOFKEYIS
PROCESS(clk,data)IS
IFclk'
EVENTANDclk='
CASEdataIS
WHEN"
0000"
=>
q<
="
q1<
0001"
0010"
0011"
0100"
0101"
0110"
0111"
1000"
1001"
WHENOTHERS=>
ENDCASE;
ENDPROCESS;
ENDARCHITECTUREART;
总功能控制模块
Eleclock.vhd
ENTITYEleclockIS
PORT(NB:
INSTD_LOGIC_VECTOR(3DOWNTO0);
NS:
NG:
CLK:
CHANGE,RT:
INSTD_LOGIC;
DB:
OUTSTD_LOGIC_VECTOR(3