基于VHDL的电子密码锁 - 图文

更新时间:2023-10-23 05:50:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

华南师范大学 课程设计实验报告

课程名称: 课程设计题目: 姓 名: 学院: 专 业: 年 级: 学 号:

可编程数字系统设计

电子密码锁

程硕

物理与电信工程学院

理综一班 2011 20112600104

一、设计原理

用VHDL设计电子密码锁方案:作为通用电子密码锁,主要由 3 个部分组成:数字密码按键输入电路、密码锁控制电路和密码锁显示电路,作为电子密码锁的输入电路。可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。 (1)密码锁输入电路包括时序产生电路、键盘检测电路、键盘消抖电路等几个小的功能电路。

(2)密码锁控制电路包括按键数据存储电路,恢复出厂密码、两次正确输入后可修改密码、密码核对,多次错误报警,清屏等几个小的功能电路。

(3)八段数码管显示电路主要将待显示数据的BCD码转换成数码器的八段显示驱动编码。

二、系统分析

本次课程设计成功地设计了一个简单的数字电子密码锁,密码为 4 位。将电子密码锁分为以下几个模块:按键消抖模块、密码锁逻辑控制模块和密码锁显示模块,实现了以下功能:

(1)密码输入:KEY1按下一次,数码管上显示数字加一,相应位置输入密码加一 (2)位置选择:KEY2按下一次,数码管选择位左移一位

(3)密码确认:KEY3按下一次,比较外部输入密码与原密码,正确LED长亮,错

误LED变暗,同时显示密码置0;

(4)密码修改:正确输入两次密码后,按下KEY4一次,将当前输入设为新的密码; (5)清屏:KEY5按下一次,外部输入置0;

(6)恢复出厂设置:连续按下KEY5三次后恢复出厂密码“1234”;

三、程序设计

1

由于程序稍显庞大,故采取分层次设计的方法,顶层采用画图法设计,底层采用VHDL语言进行设计。顶层电路图如图1所示

图1

Xiao_dou模块为按键消抖模块,main为密码锁控制模块,yima为数码管显示译码模块。Set_shuma端口为数码管段选端口,用于选择数码管。Led端口为led灯端口,key1,key2,key3,key4,key5为五个按键接口,show_shuma端口为数码管位选选择端口。

2 底层设计

a) 由于按键为机械按键,故按下一次会产生多次脉冲,当产生第一次下降沿的时候延

时一段时间后,再继续检测是否有下降沿产生。主体程序如下:

b) 数码管译码显示进程:将0至9的4位矢量型数字转化为相应8位数码管显示数字

c) 电子密码锁控制电路:

i. 数码管位置选择进程:当数码管位置选择时钟到来时,数码管显示位左移一位,

利用人眼的视觉余辉效果,产生4位数码管同时点亮的效果。

ii.

数码管位置选择时钟信号发生进程:将系统时钟分频,产生500HZ占空比为1:1的方波,用于控制数码管位置选择。

iii.

整型密码转化为矢量型密码,位选选择进程:利用CASE语句将不同位置的密码值显示在相应的数码管上。

iv.

外部输入密码变更进程:当KEY1按下时外部输入密码加1,并在数码管上显

示出来,数字从1至9循环;后半部分为当清屏信号到来时,外部输入密码置0。

v.

按键位置选择进程:KEY2按下时数码管位置选择端左移一位,后半部分为当清屏信号到来时,位置置0。

vi.

密码设置,重置进程:当密码连续正确两次后,按下KEY4键,将现在显示的密码置为新密码。后半部分为恢复出厂设置密码。

vii.

清屏,恢复出厂设置进程:当KEY5按下时产生清屏信号,当KEY5连续按下三

本文来源:https://www.bwwdw.com/article/c83f.html

Top