|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Zedd 于 2019-3-30 16:00 编辑
: k0 c% }& ~! z
% U) @, i6 k5 T8 l# w7 i- G
5 G) \) w: i g1 ~+ G: z g' Z: f! Y Q" r
实验目的% ]6 u* H3 a2 o) \2 m9 ]/ t
实现数字密码锁设计,要求矩阵按键输出且数码管显示输入密码,密码输入正确与否均会有相应标志信号产生。 i0 @, n5 s* Z$ r1 Q: g1 U- |/ u
实验平台
& o; a( V! @+ e芯航线FPGA核心板、数码管_VGA_PS2模块、矩阵按键模块 9 Q* F( f+ v. }- s3 Q- Y+ i) o, o/ u
" O" z1 Q+ G2 Y L# L实验原理
2 l) X6 E9 U& W7 X! P随着生活质量的提高,当代人们也认识到了安全的重要性,已经不再满足于老式的机械钥匙。近年来越来越多的技术开始在安全领域应用,例如普通的按键输入、指纹输入或者虹膜输入等。
" P8 T c+ b. B% j3 ~0 e$ S8 o- H0 f本节设计一款按键输入式密码锁,用矩阵键盘输入密码,输入完成后进行密码比对,如密码输入正确则输出开门信号以及灯光指示,如密码输入错误则蜂鸣器进行报警以及灯光指示。
. y$ ^6 }# [/ ?6 R% W综合以上要求可以看出此处系统框图如图1所示。
, @9 s; i& k3 B9 [" Y8 _1 R+ a: ^ ]3 o
6 b' W0 [! t6 n+ Z- p/ S
" p# r. N0 f" [
. |& O# P) d/ T3 h0 _0 L0 J, f: u' U/ E- @! h% o& F
矩阵按键模块
6 A) a: q0 T, `现在分开介绍,矩阵按键输入控制模块的框图及其接口列表如下所示,详细内容可以参考芯航线关于矩阵按键的教程,此处不再详述。 & _8 o* L7 u' W4 t& e8 |6 c! r
( } D) d2 f1 P- s; O/ c- m! Z
% w2 L" a# ]& p7 r7 @% `; G5 D3 A! V& B' u
; o3 D: O$ B/ t h' \ r. L! _: e( Y8 X, T
; Y6 ~0 U0 [6 w5 U/ y密码比较模块: 3 G/ _5 ]+ J6 C+ E) w
现介绍密码检测模块,其主要功能即比较输入与预设的密码是否一致,
2 U8 P2 @: z L, C' A' b. V9 R8 g
% X9 e* C/ O. b/ t3 L
# e: ^6 C3 I6 x
5 `0 y* @ S+ Y$ w: x9 V6 g
0 |+ ?% G/ G/ b. j0 F: W7 D4 H1 c
& u F6 _ F0 c通过计数矩阵按键按下标志信号,依次将数据暂存到寄存器mima_r中。 1 `6 p0 I* f. |5 Z( }9 ]2 }
( X6 [; p( J8 s5 C4 E+ R8 C+ W& T' V
% c) {8 @5 b. j. [( G ^+ S
( o! q: S' M% P& W- {' ^* A
* m1 ? a7 }0 u- _ k$ g! M这里通过一个独立按键来控制比较信号,用到了按键消抖模块,详细内容可以参考芯航线有关章节。
5 S3 w$ G$ H, k1 } . n, c: i0 G" R4 p! x( A" g O* a
当开始比较后,根据实际情况判断后输出正确与否。 $ ^" P, D- k0 s9 H4 _8 d. v
+ ?. y" K2 m, Z控制模块: % x2 M8 B! `/ @9 j
现在介绍模块的控制单元。本模块主要功能是根据密码检测模块的输出确定,开关门信号以及声光信号。其模块接口列表及功能描述如下所示。
, |- X4 j- b7 H4 W: c! D
6 K. w; {! W `/ S- B( Q6 F1 q$ j; |" ]2 `# L
. n+ t! s( J4 h: ?" I! m; J
/ P N7 d; v i! w, v2 O, |+ V5 q
0 e: d1 W* a* r M6 L' f' E: q
) Y1 V' Q% Q- h I* D0 U! z$ r
' T) o; N% e- I3 z' M& }第一个always块:
2 [1 {* r2 p5 q0 F/ S- y0 P6 e" r 0 Y9 M7 o3 d" L8 g
第二个always块:
# {+ s1 p! s1 }8 A% b9 h" _+ |) p1 E8 ~" {! h8 V( y. v
8 ?8 O! G6 p2 K9 r' @6 r e# n
3 Y$ T* @3 _9 E4 z1 e( Z7 ?; T9 N
+ V$ _* C4 @( P/ x& r
第三个always块: * v/ O0 a$ I: W- X0 V
( p, W! P- j; J- d$ b. X' I0 r5 X3 n8 F6 S
% D1 n& F7 @$ L# V4 L
$ q+ [5 g( d) S2 v( G# ? 5 W" r2 `( I ]6 ^/ ?# l
$ K' X- w( y" D1 Z
1 ?6 a: G4 Q& E2 e- x: ?7 a% W) q数码管显示模块: 1 M. C* C& F* s Q4 u5 I; g. b. G
Hex8为数码管显示模块,其框图以及其接口列表如下所示,具体功能介绍可参见芯航线相关内容。
2 o d1 f2 t% t5 `# W/ {% ?0 i' x
) t8 r5 B9 z9 B/ H, b E% u* r# ^/ l$ B7 p1 F" P
& ^4 [% j! a, a( f: B
顶层设计: & c6 \. E* @+ [6 J, z
最后在顶层例化各模块即可,分配引脚后全编译无误后即可下载到芯航线 开发板 中观测到对应现象。
* f) v7 q& V4 N- r7 M
~( a9 ^; `; ^" k1 v& ]" B6 b# ]0 \$ m: X1 W
如有更多问题,欢迎加入芯航线 FPGA 技术支持群交流学习:472607506 B0 ^% w- k! _0 Y
$ {8 m/ o) {- S, A- M |
|