用 VHDL 编写的数字密码锁
一、实验目的
学习 MAX PLUS II 软件的整个系统设计方法。
二、实验内容与要求
模仿密码锁的工作过程。完成密码锁的核心控制功能。此密码锁,平时处于等待状态,
上电复位后管理员密码为 8888,用户密码为 1111。管理员可以修改自己的密码和重设用户
密码,用户只能更该用户密码。用户如果需要开,按相应的按键进入输入密码状态,输入 4
位密码,按下确定键后,若密码正确,锁打开,若密码错误,重新输入,三次输入都错误,
将发出报警信号。报警后,只有管理员输入管理员密码后才能停止报警。输入密码时,若输
入错误,在按下确定键之前,可以通过按取消键重新输入。正确开锁后,处理完毕后,按下
确定键,系统回到等待状态。系统操作过程中,只要密码锁没有打开,如果一定时间没有对
系统操作,系统回到等待状态。
三、实验条件
(1)开发软件:MAX PLUS II
(2)拟用芯片:FLEX10K EPF10K20TC144-4
(3)实验设备:GW48-CK EDA 实验开发系统一台
(4)实验平台:PC 机一台
四、数字密码锁原理
输入
Clk::时钟信号。
User_admin:用于切换用户名和管理员状态的。按一下,输入端的 O_UA 就会改变一次,O-UA
为 1 时,为管理员状态。0 时为用户状态。
Clear:用于密码清除一位密码。类似于键盘上的退格键(Backspace)
Enter:确认键。用户密码输入完成后的确认,及其它确认键。
Chgcode:修改密码键。用锁处于打开状态时,铵下此键,则程序进入修改密码程序,对应
的输出端 O_chgcode 为 1.
Res:复位键:
Num[9..0]:数字键。
输出
Openlock:开锁指示信号。
Alarm:警报指示信号。
O_chgcode:修改密码状态信号。
Chgcode_ua:当管理员修改密码时,用来提示是重置用户密码还是管理员密码。1 为修改管
理员密码。0 为重置用户密。
S_out[3..0]:输入第几个密码信号。当 s_out=”0001”输入第一个密码状态,当 s_out=
”0010”输入第二个密码状态 当 s_out=”0100”输入第三个密码状态。
使用说明书
用户开锁:通过按 user_admin 键来调节 o_ua 的状态为 0,然后输入四位数用户密码。输入
完毕后按 enter,如果密码正确,则开锁,否则重新输入密码。
三次密码输入错误,alarm 为 1。要管理员输入管理员密码解锁。此时哪怕用户
再输对密码也没用。
管理员解锁:当用户三次密码输入错误的时候,alarm 为 1,此时,只要管理员解锁后,alarm