资源描述
电子密码锁设计
设计任务及要求分析
设计一个电子密码锁,在锁开的状态下输入密码,设置的密码共 4 位,用数 据开关 K1~K10 分别代表数字 1,2,¼,9,0,输入的密码用数码管显示,最
后输入的密码显示在最右边的数码管上,即每输入一位数,密码在数码管上的显
示左移一位。可删除输入的数字,删除的是最后输入的数字,每删除一位,密码
在数码管的显示右移一位,并在左边空出的位上补充"0" 用一位输出电平的状 。
态代表锁的开闭状态。
根据题目要求,本次设计包括键盘输入电路的设计,输出显示电路的设计, 密码控制电路。其中输出显示电路包括数码管显示电路和密码锁开关状态显示电
路。
方案比较及认证
在本次设计中,我们使用的 Altera 公司的 FPGA 芯片 EPF10K10LC84-3。由
于采用 VHDL 语言设计,使用 FPGA 实现,因而体积小,功耗低、性能特别灵活,
稍加修改就可以改变密码的位数和输入密码的次数,因而升级和维护都很方便,而 且容易做成 ASIC 芯片,具有较好的应用前景。但由于结构还比较简单,有待进一
步完善。
系统原理阐述
在本实验中采用的是VHDL编程,通过文本编辑方式 建立模块,通过原理图
方式将生成的图形符号连接,然后再下载,进行硬件的仿真。
为达到密码锁的以上功能,可将电子密码锁分为以下几个模块进行设计:按 键输入电路:2、密码控制电路:包括密码删除、修改与检验。3、输出显示电路。
其中,最为关键的是密码控制电路即主电路的设计。
可以为主电路分配如下管脚:其中 set为密码设置端口, check为密码检验 端口, close为关锁端口, back为删除密码端口, clk时钟输入端口, dn[3..]
为数字输入端口,lock密码锁状态显示端口。
在此电路中每输一位数,密码在数码管上左移一位。设制删除密码back,每
按下一次back,删除最后输入的数字,左边空处补0。
设置密码确认信号set,当四位密码输入完毕,按下set,设置的密码被存储。 设置密码锁状态信号lock, lock=0表示锁未开,lock=1表示锁开,同时设置
关锁信号close,按下close,则锁关闭。
设置密码检验信号check,在lock=0下从数据开关书去四位开锁数字,按下
check,若数据等于设置的密码或万能密码,则 lock=1
设计方案结构图
根据本次设计的特点,可以根据对密码的处理方式分为密码输入模块, 密码
存储模块,密码设置模块,密码显示模块。如下图所示:
密码输入模块
密码存储模块
密码控制模块
密
码显示模
块
图1
其中,密码输入模块即为按键编码电路,其原理图如下。 其中n[9..0]为按
键输入端口, sout[3..0] 为输出端口。按键输入编码通过案件输入高低电平,
每按一个键通过编码显示对应的数字。
图2
密码存储模块即使用EPF10K10LC84-3芯片中的寄存器模块。
密码控制模块的原理图如所示。其中set为密码设置端口, check为密码检
验端口,close为关锁端口,back为删除密码端口,clk时钟输入端口, dn[3..]
为数字输入端口,sout[15..0]为16位输出端口,lock密码锁状态显示端口。
图3
软件设计
软件思想
为了简化设计过程,根据 fpga 的设计特点,我在本次设计过程中将整个软 件设计分成不同的功能模块:键盘输入模块,数码管显示模块,密码存储模块,
密码匹配模块。对上述每个模块进行程序编程和波形仿真正确以后,再把它们添
加至工程下进行整体编译,管脚分配和整体原理图生成。最后对整个工程进行功
能仿真。
展开阅读全文