|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Zedd 于 2019-3-30 16:00 编辑
* U5 y, N8 ]9 }9 `* t% j" i" X. E/ i! T; Q2 s
: M1 q% Q' g. V' F
8 l1 h) w" Z( Q3 r# J% y: v实验目的
& c' x- W4 M7 |6 f$ M: M实现数字密码锁设计,要求矩阵按键输出且数码管显示输入密码,密码输入正确与否均会有相应标志信号产生。 : B6 M7 r9 C) L0 r5 ~
实验平台
6 y' @1 _% K. l芯航线FPGA核心板、数码管_VGA_PS2模块、矩阵按键模块
; L) R( k I9 K% j+ v/ L" @2 e( v) N + s/ i: V A" P
实验原理
: j: I0 C2 K0 s ?9 a9 A* y随着生活质量的提高,当代人们也认识到了安全的重要性,已经不再满足于老式的机械钥匙。近年来越来越多的技术开始在安全领域应用,例如普通的按键输入、指纹输入或者虹膜输入等。
5 Q8 ]5 D8 n9 c, m- D, P0 s本节设计一款按键输入式密码锁,用矩阵键盘输入密码,输入完成后进行密码比对,如密码输入正确则输出开门信号以及灯光指示,如密码输入错误则蜂鸣器进行报警以及灯光指示。
0 M1 z V5 `# E, B综合以上要求可以看出此处系统框图如图1所示。 - v+ D# z# S9 g0 v# ~, [
% t }8 e9 ]: _' j% U& L( |
! p) r3 G: ~" t# C
$ ]7 a, a6 T. D: `6 Z" r
# S5 G G K, p% Q& F: F* V* v
" }' q* k* m. N# N矩阵按键模块
H6 q5 g1 I0 f/ S4 B. r9 ^/ X现在分开介绍,矩阵按键输入控制模块的框图及其接口列表如下所示,详细内容可以参考芯航线关于矩阵按键的教程,此处不再详述。
u: P- `4 p2 O' C/ P- n5 _' X) N Q9 t8 o+ ]9 K. Z- |
* t1 M# W7 V/ S. T$ Z: K1 j" `
7 e' V V: L6 h* P
0 t6 y5 j5 J8 _- ]
8 q8 [- h) x- ]9 P# F j
" G( _# o6 C- l v# L密码比较模块: # U' a9 F# \3 i! ~) A
现介绍密码检测模块,其主要功能即比较输入与预设的密码是否一致,
a# k+ e0 w* V6 w: m
7 b4 q/ j: W L+ ^# P& G+ k
+ ]( ~, }- U1 `# `2 `3 ?" a
) o- R) s# h& ?# T$ d, F& J
+ r/ Q, \) z. _/ w$ H4 x5 A* }+ A/ S b, Q
3 u/ Z1 Q' \0 ?# E j) B通过计数矩阵按键按下标志信号,依次将数据暂存到寄存器mima_r中。
. ~1 B6 z3 A H5 v0 m$ s' h b' n+ ]% X$ T
3 ~# _4 P% U: f3 v
5 V, L# C: }% I1 j# ^; B1 i
/ ~, j8 M, v0 S6 k1 z( a' \1 S( B( h1 R# c* S3 {: e
这里通过一个独立按键来控制比较信号,用到了按键消抖模块,详细内容可以参考芯航线有关章节。
6 C8 d2 |5 f) S/ T, N+ c
9 N( S# v2 b ?+ [8 |当开始比较后,根据实际情况判断后输出正确与否。
% q& G8 u) v6 v& [0 j- ]6 ?; d" d
9 d8 R- q) U- W控制模块:
% d5 C9 w6 |5 }: G9 X现在介绍模块的控制单元。本模块主要功能是根据密码检测模块的输出确定,开关门信号以及声光信号。其模块接口列表及功能描述如下所示。 / l, f, T7 F! Y" E/ Q( W, T( x
; r; J! Y4 N% p6 L
3 v3 |) m% S. u2 D `% }2 t, W. G
5 r$ b) z- A5 E/ e" U d
6 L3 ^ C3 x/ [: C. h( H
/ p" o0 ~* P+ q5 R; F: M, n& n6 o% |) J1 j4 y* _
) v! s r. L: e' ^# ~第一个always块:
; u9 I6 N/ T0 B) G0 B/ F2 v \: a% X2 D; J4 V9 C$ _
第二个always块:
7 U, m3 b# Y& I& ~1 Q
; \4 l& G; J: b' |
' ^. E3 |$ r+ S# S4 B0 O
& O5 ]# P( D! v! Q- y" Y
" p! ~' A' _/ S4 q$ v" S4 Z
0 y9 K( r6 q0 G; ?第三个always块: 6 ^1 C0 y1 k3 K4 m$ N0 y$ q8 f
0 q& r% ?0 q' k0 [* w5 ^% X
4 k0 W) D# R7 f0 O3 c% S9 i1 @
* d) Q' x% D0 o
$ i$ Q1 b: H. d* e% r; {2 w* M1 n $ @) a! d4 E8 u4 {
, a0 m0 ]" d9 [9 `. P9 A8 h# y* i2 d
数码管显示模块:
) }3 O2 i: ~% ~3 V: {5 n* CHex8为数码管显示模块,其框图以及其接口列表如下所示,具体功能介绍可参见芯航线相关内容。 ) s" ~4 I6 K9 w8 M! e: ~# u1 E
" @$ L. X# V+ @) i0 G% e. D% p" V
! i5 O# `6 t& Y% O
5 ]3 W) n, z! z) w
- F" u% \4 V5 M% ~- G$ @
顶层设计: 0 a! e% M& ~. g s$ ^
最后在顶层例化各模块即可,分配引脚后全编译无误后即可下载到芯航线 开发板 中观测到对应现象。 % W" O( C1 W9 T1 y" d
! l- U0 {/ c: f4 X `* ?$ N X+ u+ r% c
如有更多问题,欢迎加入芯航线 FPGA 技术支持群交流学习:472607506
2 J/ G. n' L" J3 x" L d( I: P. J+ T" w
|
|