【案例】电子密码锁设计(XILINX ISE版)

发布时间:188 阅读次数:188

  本文基于明德扬至简设计法和明德扬设计规范,设计了一个基于FPGA的数字密码锁,实现了在拨码开关条件下,按键设置密码、按键输入解锁密码,密码正确时正确指示灯亮、密码错误时或者默认状态错误指示灯亮,密码正确时一位数码管显示1,其他情况显示0。本案例的扩展和应用在现实生活中具有重大意义。在本案例的设计过程中,应用了至简设计法、计数器模板应用等,在经过逐步改进、调试等一系列工作之后,最终达到了设计目标。

  2) 按键1、2设置密码,按键1有效时设置一位密码0,按键2有效时设置一位密码1,按下8次后密码设置完成

  3) 按键3、4输入密码,按键3有效时输入一位密码0,按键2有效时输入一位密码1,按下8次后密码输入完成

  4) 比较设置的密码和输入的密码是否相同,正确时正确指示灯亮,数码管显示1,否则错误指示灯亮,数码管显示0;

  SW1有效时按键1、2设置密码,按键1有效时设置一位密码0,按键2有效时设置一位密码1,按下8次后密码设置完成

  SW2有效时按键3、4输入密码,按键3有效时输入一位密码0,按键2有效时输入一位密码1,按下8次后密码输入完成

  对比设置的密码和输入的密码是否一致,密码正确时数码管显示1,否则显示0;

  利用明德扬的按键消抖模块,每20ms扫描一次按键输入key_in,可以达到消抖的目的,再用寄存器缓存一下,按键为低电平有效,所以检测当检测到按键有下降沿变化时,代表该按键被按下,按键有效,输出1;

  设置的密码和输入的密码是否相同,正确时正确指示灯亮,数码管显示1,否则错误指示灯亮,数码管显示0;从仿真图可以看出符合功能要求。

  在这个设计案例中,至简设计法和明德扬至简法发挥了至关重要的作用,使我能够快速准确完成设计。

  1) 可以结合开发板外设和实际情况,改变设置和输入密码的方式、位数,以及密码正确与否的反应,如蜂鸣器报警等等。

  对于初学者而言,流水灯太简单,复杂项目又太难,不如尝试一下这些相对简单而又酷炫的案例,并一步步拓展成大项目。赶紧动手尝试吧。

  SW1有效时按键1、2设置密码,按键1有效时设置一位密码0,按键2有效时设置一位密码1,按下8次后密码设置完成

  SW2有效时按键3、4输入密码,按键3有效时输入一位密码0,按键2有效时输入一位密码1,按下8次后密码输入完成

  对比设置的密码和输入的密码是否一致,密码正确时数码管显示1,否则显示0;

  利用明德扬的按键消抖模块,每20ms扫描一次按键输入key_in,可以达到消抖的目的,再用寄存器缓存一下,按键为低电平有效,所以检测当检测到按键有下降沿变化时,代表该按键被按下,按键有效,输出1;

  设置的密码和输入的密码是否相同,正确时正确指示灯亮,数码管显示1,否则错误指示灯亮,数码管显示0;从仿真图可以看出符合功能要求。

  在这个设计案例中,至简设计法和明德扬至简法发挥了至关重要的作用,使我能够快速准确完成设计。

  1) 可以结合开发板外设和实际情况,改变设置和输入密码的方式、位数,以及密码正确与否的反应,如蜂鸣器报警等等。

  对于初学者而言,流水灯太简单,复杂项目又太难,不如尝试一下这些相对简单而又酷炫的案例,并一步步拓展成大项目。赶紧动手尝试吧。