数字密码锁Word文件下载.docx
- 文档编号:22647443
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:22
- 大小:114.74KB
数字密码锁Word文件下载.docx
《数字密码锁Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字密码锁Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
图3.1.2消抖电路封装图
消抖模块程序如下:
LIBRARYieee;
USEieee.std_logic_1164.ALL;
USEieee.std_logic_arith.ALL;
USEieee.std_logic_unsigned.ALL;
LIBRARYaltera;
USEaltera.maxplus2.ALL;
ENTITYxiaodouIS
PORT
(CLK,B_IN:
INSTD_LOGIC;
B_OUT:
OUTSTD_LOGIC);
END;
ARCHITECTUREaOFxiaodouIS
signalVcc,INV_B:
std_logic;
signalA0,A1:
signalB0,B1:
BEGIN
Vcc<
='
1'
;
INV_B<
=notB_IN;
dff1:
dffPORTMAP(d=>
Vcc,q=>
A0,clk=>
CLK,prn=>
Vcc,clrn=>
INV_B);
dff2:
A1,clk=>
process(CLK)
begin
ifCLK'
EVENTandCLK='
then
B0<
=notA1;
B1<
=B0;
endif;
endprocess;
B_OUT<
=not(B1andnotB0);
END
模块仿真图3.1.3如下:
图3.1.4消抖电路仿真波形图
3.2键盘扫描模块分析设计
在键盘的四列输入口中输入一个低电平时钟扫描,当有按键被打下时,对应的行被键接通也呈现低电平状态,然后将此输入输出信号输出到键盘编码就可以进行键盘按键识别了。
键盘扫描封装图3.2.1如下:
图3.2.1键盘扫描模块封装图
键盘扫描模块程序如下:
LIBRARYIEEE;
USEIEEE.std_logic_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYSAOMIAOIS
PORT(
CLK:
INSTD_LOGIC;
CLK_SAOMIAO:
OUTSTD_LOGIC_VECTOR(4downto1));
ARCHITECTUREaOFSAOMIAOIS
SignalM:
STD_LOGIC_VECTOR(2DOWNTO1);
SIGNALN:
STD_LOGIC_VECTOR(4DOWNTO1);
Begin
PROCESS(CLK)
Begin
IFCLK'
EventANDCLK='
THEN
N<
=N+1;
M<
=N(4DOWNTO3);
ENDIF;
ENDPROCESS;
CLK_SAOMIAO<
="
1110"
WHENM=0ELSE
"
1101"
WHENM=1ELSE
1011"
WHENM=2ELSE
0111"
WHENM=3ELSE
1111"
;
键盘扫描模块仿真图如图3.2.2所示:
图3.2.2键盘扫描模块仿真图
3.3七段数码显示电路模块分析设计
本模块我们通过串行扫描方式驱动LED数码管,可较少地占用可编程器件资源;
并利用MAXPLUSⅡ对动态扫描LED显示电路进行仿真。
显示电路模块封装图如图3.3.1所示:
图3.3.1七段数码显示电路模块封装图
七段数码显示电路模块程序如下:
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYSCAN_LEDIS
PORT(A:
INSTD_LOGIC_VECTOR(6DOWNTO0);
B:
E:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
BT:
OUTSTD_LOGIC_VECTOR(1DOWNTO0));
END;
ARCHITECTUREONEOFSCAN_LEDIS
STD_LOGIC_VECTOR(1DOWNTO0);
BEGIN
PROCESS(N)
CASENIS
WHEN"
00"
=>
BT<
="
01"
E<
=A;
10"
=B;
WHENOTHERS=>
NULL;
ENDCASE;
ENDPROCESS;
PROCESS(CLK)
BEGIN
EVENTANDCLK='
THEN
N<
=N+1;
END;
七段数码显示电路仿真图如图3.3.2所示:
图3.3.2七段数码显示电路仿真图
3.4译码电路模块分析设计
本模块上接键盘扫描模块,下接七段数码显示电路模块。
主要功能是实现键盘的译码。
该模块封装图如下
图3.4.1译码电路模块封装图
译码程序如下:
LIBRARYIEEE;
ENTITYkeycodeIS
PORT(X:
INSTD_LOGIC_VECTOR(2DOWNTO0);
Y:
INSTD_LOGIC_VECTOR(3DOWNTO0);
XT:
INSTD_LOGIC;
C,D:
OUTSTD_LOGIC_VECTOR(6DOWNTO0):
0111111"
CO:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDkeycode;
ARCHITECTUREyimaOFkeycodeIS
SIGNALE:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALF:
SIGNALS,EN,EN1:
STD_LOGIC;
PROCESS(X,Y)
VARIABLExy:
STD_LOGIC_VECTOR(6DOWNTO0);
xy:
=(X&
Y);
IFXT='
CASExyIS
WHEN"
1101110"
0000"
C(6downto0)<
1101101"
0001"
0000110"
1101011"
0010"
1011011"
1100111"
0011"
1001111"
1011110"
0100"
1100110"
1011101"
0101"
0110"
1111100"
1010111"
0000111"
0111110"
1000"
1111111"
0111101"
1001"
0111011"
CO<
1010"
0110111"
ELSIFXT='
0'
F<
D(6downto0)<
键盘译码电路仿真波形图如图3.4.2:
图3.4.2键盘译码电路仿真波形图
3.5密码控制电路模块分析设计
密码控制电路是本次课题设计的核心部分,我们通过密码控制来断定数字锁的开或关。
当密码输入时,按下确定键,输入数字和所存的密码进行比较,若相同则进入开锁状态。
若输入密码不正确则立刻进入报警状态,然后按下清零键,重新键入密码,密码控制电路封装图如图3.5.1所示:
图3.5.1密码控制电路封装图
密码控制电路具体程序如下:
ENTITYkongzhiIS
PORT(E_IN:
F_IN:
INSTD_LOGIC_VECTOR(3DOWNTO0);
CO_IN:
K,M:
OUTSTD_LOGIC);
ARCHITECTUREluojiOFkongzhiIS
SIGNALG,H:
STD_LOGIC_VECTOR(3DOWNTO0):
=‘0‘;
SIGNALCOUNT1,COUNT2:
STD_LOGIC:
='
SIGNALCO:
PROCESS(CO_IN)
begin
IFCO_IN="
THEN
EN1<
ELSIFCO_IN="
EN<
EN1<
if(S='
)and(en='
)and(count1='
)then
G(3downto0)<
=E_IN(3downto0);
H(3downto0)<
=F_IN(3downto0);
count1<
=not(count1);
endif;
if(en1='
)and(count2='
if(E_IN(3downto0)=G(3downto0)andF_IN(3downto0)=H(3downto0))then
k<
EN<
s<
else
m<
count2<
=not(count2);
ELSif(en='
)and(en1='
count2<
k<
ENDPROCESS;
第四章实验总程序
数字密码锁的总程序如下:
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYLOCKTWOIS
PORT(
CLK4M:
pj:
INSTD_LOGIC_VECTOR(2downto0);
jn:
OUTSTD_LOGIC_VECTOR(3downto0);
gc:
OUTSTD_LOGIC;
NB:
dh:
lvd:
jishu:
OUTSTD_LOGIC_VECTOR(1DOWNTO0);
bcd:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
LB:
OUTSTD_LOGIC;
wx:
dx:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDLOCKTWO;
ARCHITECTUREaOFLOCKTWOIS
componentdebouncing
port(d_in:
d_out:
OUTSTD_LOGIC);
endcomponent;
SIGNALCLK:
STD_LOGIC;
SIGNALKEYBOARD:
STD_LOGIC_VECTOR(1downto0);
SIGNALDEBOUNCE:
SIGNALDS:
SIGNALC:
STD_LOGIC_VECTOR(2downto0);
SIGNALN:
STD_LOGIC_VECTOR(3downto0);
SIGNALF:
SIGNALFN:
SIGNALFF:
SIGNALSPN:
SIGNALSEL:
STD_LOGIC_VECTOR(3downto0);
SIGNALA:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALB:
SIGNALRS:
SIGNALNC:
STD_LOGIC_VECTOR(1DOWNTO0);
SIGNALDB:
STD_LOGIC_VECTOR(3DOWNTO0);
--NumberTODisplay
SIGNALSEG:
STD_LOGIC_VECTOR(6DOWNTO0);
--SEG7DisplaySignal
BEGIN
LB<
=SPN;
NB<
=FN;
gc<
=FF;
jishu<
=NC;
dx(6DOWNTO0)<
=SEG;
wx<
=DS;
jishuer:
block
SignalQ:
STD_LOGIC_VECTOR(22DOWNTO0);
SignalS:
STD_LOGIC_VECTOR(1DOWNTO0);
STD_LOGIC_VECTOR(3downto0);
PROCESS(Clk4M)
Begin
IFCLK4M'
EventANDCLK4M='
Q<
=Q+1;
ENDIF;
CLK<
=Q
(1);
KEYBOARD<
=Q(4DOWNTO3);
DS<
SEL<
WHENKEYBOARD=0
ELSE"
WHENKEYBOARD=1
WHENKEYBOARD=2
jn<
=SEL;
endblockjishuer;
debounuing:
block
U1:
debouncingPORTMAP(d_in=>
pj(0),d_out=>
C(0),CLK=>
CLK);
U2:
pj
(1),d_out=>
C
(1),CLK=>
U3:
pj
(2),d_out=>
C
(2),CLK=>
CLK);
ENDblockdebounuing;
key_debcdr:
signalKC:
std_logic_VECTOR(4downto0);
--KEYPOSITION
SIGNALR1,R0:
begin
PROCESS(clk)
KC<
=KEYBOARD&
C;
IFCLK'
EVENTANDCLK='
THEN
caseKCis
when"
11101"
=>
--0
00011"
--1
00101"
--2
00110"
--3
01011"
--4
01101"
--5
01110"
--6
10011"
--7
10101"
--8
10110"
--9
whenothers=>
endcase;
ENDIF;
caseKCi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 密码锁