十二、数字密码锁设计
本文由山东大学研友袁卓贡献,特此感谢
实验目的
实现数字密码锁设计,要求矩阵按键输出且数码管显示输入密码,密码输入正确与否均会有相应标志信号产生。
实验平台
芯航线FPGA核心板、数码管_VGA_PS2模块、矩阵按键模块
实验原理
随着生活质量的提高,当代人们也认识到了安全的重要性,已经不再满足于老式的机械钥匙。近年来越来越多的技术开始在安全领域应用,例如普通的按键输入、指纹输入或者虹膜输入等。
本节设计一款按键输入式密码锁,用矩阵键盘输入密码,输入完成后进行密码比对,如密码输入正确则输出开门信号以及灯光指示,如密码输入错误则蜂鸣器进行报警以及灯光指示。
综合以上要求可以看出此处系统框图如图1所示。
图1 系统框图
其中各模块功能描述如表1所示。
表1 各模块功能描述
矩阵按键模块
现在分开介绍,矩阵按键输入控制模块的框图及其接口列表如下所示,详细内容可以参考芯航线关于矩阵按键的教程,此处不再详述。
图2 矩阵按键模块框图
表2 矩阵按键模块接口列表
密码比较模块:
现介绍密码检测模块,其主要功能即比较输入与预设的密码是否一致,
图2 密码检测模块框图
表2 密码检测模块列表
这里先将密码设置为4位十进制数1234,如下所示
parameter PASSWORD = 16'b0001_0010_0011_0100;
通过计数矩阵按键按下标志信号,依次将数据暂存到寄存器mima_r中。
always@(posedge Clk or negedge Rst_n) begin if(!Rst_n) key_cnt <= 2'b0; else if(key_flag)