|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Zedd 于 2019-3-30 16:00 编辑 9 N# O5 z2 E) \
+ z: Z( b* ~& }1 D, i& x' k
7 g/ p( k; J" ~2 d1 X7 Y+ `4 G/ g& q6 G' F
实验目的
3 P4 a- `# d% I6 k* a实现数字密码锁设计,要求矩阵按键输出且数码管显示输入密码,密码输入正确与否均会有相应标志信号产生。 . d6 }' h4 {5 ^6 ?
实验平台
! T5 f. ~5 R& x' b- b1 x芯航线FPGA核心板、数码管_VGA_PS2模块、矩阵按键模块
5 n6 v: N+ _; W- v0 d% x% p % i- k8 j: x& s) T- g! k3 H( n2 M
实验原理
v: D b2 _2 G( @/ Y" F3 H随着生活质量的提高,当代人们也认识到了安全的重要性,已经不再满足于老式的机械钥匙。近年来越来越多的技术开始在安全领域应用,例如普通的按键输入、指纹输入或者虹膜输入等。
# ]) Z8 J H, Y* n* v. {/ T本节设计一款按键输入式密码锁,用矩阵键盘输入密码,输入完成后进行密码比对,如密码输入正确则输出开门信号以及灯光指示,如密码输入错误则蜂鸣器进行报警以及灯光指示。 9 S4 G% b$ F3 N. M" O5 Y% Q
综合以上要求可以看出此处系统框图如图1所示。 ' {" {) b& u$ P* ` A
% c6 V+ [9 A$ ^9 a
/ A" V; y6 ]$ y: M
' ]6 f( ~2 p& j- O! n. W; u$ s7 Y
2 e0 x# d6 Q( r Q) E矩阵按键模块 9 X8 F0 A0 k8 x/ k! R( j
现在分开介绍,矩阵按键输入控制模块的框图及其接口列表如下所示,详细内容可以参考芯航线关于矩阵按键的教程,此处不再详述。
9 T' o6 H! j9 E
8 B& k8 m9 @. {7 A+ q! K. [ + `6 k+ _1 Y* t" {
9 F7 O- [) K' A' w* ~" ^, O9 o& ~* I
9 ` V0 k# }1 n& j
* c, ~2 [' K' k0 S# a密码比较模块:
* P( Q) o# H6 ?) ~& Q! N; V) M' Y7 v现介绍密码检测模块,其主要功能即比较输入与预设的密码是否一致,
* Q* c0 U F( w4 W" `; X5 J2 G& ]* C" Z
* j' z3 u8 F7 o0 T) Y# j
8 [- F1 G" f7 q. c# W- M0 n% r
( F6 p4 y8 n$ u4 [9 @$ `
/ ~) k8 m4 e3 j" K8 n$ m ' U7 p0 B8 _6 i1 d9 w+ w5 x4 u6 k, l3 O
通过计数矩阵按键按下标志信号,依次将数据暂存到寄存器mima_r中。
) x9 \4 l8 J+ r7 |7 c! @
& w3 b; [! _; B% `6 S- B- ?+ n
# A6 o5 D% G' M' X & Q+ b6 |8 y5 J- p) T
$ X B7 s1 `/ }- H* b' f$ B
8 C& ~2 e5 `4 X' X* r" b# R这里通过一个独立按键来控制比较信号,用到了按键消抖模块,详细内容可以参考芯航线有关章节。 * p- o3 q8 E6 I% S$ j
3 L6 P6 d1 N X) d4 K: p0 ?
当开始比较后,根据实际情况判断后输出正确与否。
" X. N2 @# U% w) ]4 s$ I6 Y. W
3 W" `6 P6 h1 Y# z9 r% H控制模块: B4 ?3 e1 h. S% m
现在介绍模块的控制单元。本模块主要功能是根据密码检测模块的输出确定,开关门信号以及声光信号。其模块接口列表及功能描述如下所示。
5 u9 a( ]" K* U5 |$ I
' w2 l+ s m0 [8 ^2 }5 S
1 d5 u: L: _1 g* A. V4 U/ C: h' a% j/ S+ J% L; V: w: x' b
6 \/ O: Q$ x0 T
/ c0 q. M6 Z5 w8 z
3 `: L% n& h; M) z$ X/ b
/ q- x! j4 B7 _. U4 K2 Y. s- N第一个always块:
- [9 S1 H3 ?8 B# n9 |. a( |
/ D. N7 {7 t! V9 P' W3 A' P- H第二个always块: 4 z; H% u$ }6 x& m \
- a# ?. p8 `5 ^$ w$ [
' o" v1 Y7 ?3 P) c9 w c2 L
& |" c4 a6 O4 q& ]
^ R/ K, T' `1 B7 D/ `) b' e) \# }" T3 [0 s6 ?, i8 }! O- w
第三个always块:
9 y. W2 _% c, e* H: g+ V# s( Z2 ]9 |% a6 k1 p3 v
2 z- u7 ?% e, U# y( t
2 e, ?7 X: r- U" Z& l2 q6 ~% \0 \! K0 R; w
+ k% \6 a2 v9 |: |& y6 z0 z
8 i1 t: L7 O$ a& p g3 r! [" A# Q; Z% p! b
数码管显示模块:
4 f1 X1 f8 _% j% PHex8为数码管显示模块,其框图以及其接口列表如下所示,具体功能介绍可参见芯航线相关内容。
1 `& L5 g1 E3 g8 Q5 l3 G5 U" s+ q ^& `8 I3 P* K4 P( ?' Q. v3 r
7 G k6 h% R$ F) l
6 g1 y# o- ~ I. d- W
- b4 Q! S4 |( z5 A' `2 j' S
顶层设计: 1 w% a. G2 ?; W" L1 g/ K; G
最后在顶层例化各模块即可,分配引脚后全编译无误后即可下载到芯航线 开发板 中观测到对应现象。
! j- K' ~& ^2 Q$ ?! p6 I. p
3 b# \; w' ?) r2 r/ I, A [# p* v5 S2 I, H4 r6 q1 z
如有更多问题,欢迎加入芯航线 FPGA 技术支持群交流学习:472607506 " R0 y8 q1 b* G a5 Y+ r" G
% E5 I4 ]# F ^' B4 i h. Q
|
|