数字电路课程设计 密码锁.docx
- 文档编号:3022222
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:12
- 大小:477.26KB
数字电路课程设计 密码锁.docx
《数字电路课程设计 密码锁.docx》由会员分享,可在线阅读,更多相关《数字电路课程设计 密码锁.docx(12页珍藏版)》请在冰豆网上搜索。
数字电路课程设计密码锁
大连理工大学本科实验报告
密码锁
课程名称:
数字电路课程设计
学院:
电子信息及电气工程
专业:
生物医学工程
班级:
电医1001
学生姓名:
梅世宇
学号:
201058002
完成日期:
2012.12.29
成绩:
题目:
电子密码锁
1设计要求
设计一个8位串行数字锁,并验证其操作。
具体要求如下:
1.开锁代码为8位二进制数,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯LT。
否则,系统进入“错误”状态,并发出报警信号。
2.开锁程序由设计者确定,并要求锁内给定的密码是可调的,且预置方便,保密性好。
3.串行数字锁的报警方式是点亮77指示灯LF,并使喇叭鸣叫来报警,报警动作响1分钟,停10秒钟后再重复出现,直到按下复位开关,报警才停止。
此时,数字锁自动进入等待下一次开锁的状态。
4.报警器可以兼作门铃用,门铃响的时间通常为7~10秒。
2设计分析及系统方案设计
系统的结构图如下图所示:
本实验要求串行输入八位密码,密码可以随意设置,可以任意更改,并且能够存储.而且能够显示出当前已经输入或者设置的位数,待输入八位后通过比较电路与预先设置的密码进行比较.如果输入的密码与存储的密码相同锁体打开如果输入的密码与存储的密码不同则报警系统打开发出警报.由于还要求有门铃功能所以增加一个门铃输入当门铃按下后门铃响十秒钟。
对于密码存储以及密码输入比较部分主要由load控制。
Load
0
1
li
0
1
La
1
0
系统功能
设置密码
输入密码
load为0时系统功能为设置密码,此时只需要顺序串行输入八位0/1密码即可,系统将输入的密码自动保存在存储器内以便于输入的密码进行比较,当load为1时系统功能为输入密码,此时只需要顺序串行输入八位0/1即可,待输入八位后系统自动将刚输入的密码与存储器内的密码进行比较如果密码正确则开锁信号lt为1,否则警报信号lf和响铃信号alm为1lt为0
对于门铃部分当检测到press信号的下降沿时门铃开始响,计数器开始计数,此时始终脉冲频率为50MHz/16MHz=3.125Hz,此时当计数器为30时既时间为30/3.125=9.6秒时门铃自动关闭。
3系统以及模块硬件电路设计
系统电路图
系统电路图如上如所示其中clk1脚接入50MHz的方波,load有两种状态----高电平和低电平状态。
k0k1pressclr分别接到四个去抖开关上开关按下去为低电平ltalm2lfalm分别接到四个发光二级管上,当输出为1时二极管发光。
y0[0~6]分别接到HEX7对应的引脚上实现数码管显示功能。
Y1[0~6]分别接到HEX5对应的引脚上实现数码管显示功能。
其余各种逻辑功能由芯片内部计算执行来实现。
芯片内部程序通过对clk、load、k0、k1、press、clr输入信号的处理通过lt、alm2、lf、alm、y0[0~6]、y1[0~6]进行输出来达到系统所需要的功能。
DE2开发板上使用的元件要给出使用管脚编号。
接口
名称
类型
(输入/输出)
符号
引脚号
说明
CLK
输入
CLOCK_50
PIN_N2
输入50MHz的时钟频率
LOAD
输入
SW[17]
PIN_V2
修改(0)/设置
(1)密码
K0
输入
KEY[0]
PIN_G26
输入密码0(低电平有效)
K1
输入
KEY[1]
PIN_N23
输入密码1(低电平有效)
Press
输入
KEY[2]
PIN_P23
门铃按钮(低电平有效)
CLR
输入
KEY[3]
PIN_W26
复位开关(低电平有效)
lt
输出
LEDR[0]
PIN_AE23
开锁成功指示灯
alm2
输出
LEDR[12]
PIN_AD15
门铃(小灯)
lf
输出
LEDR[16]
PIN_AE12
开锁失败指示灯
alm
输出
LEDR[17]
PIN_AD12
开锁失败报警器(小灯)
y0[0]
输出
HEX7[0]
PIN_L3
输入密码七段码显示
y0[1]
输出
HEX7[1]
PIN_L2
输入密码七段码显示
y0[2]
输出
HEX7[2]
PIN_L9
输入密码七段码显示
y0[3]
输出
HEX7[3]
PIN_L6
输入密码七段码显示
y0[4]
输出
HEX7[4]
PIN_L7
输入密码七段码显示
y0[5]
输出
HEX7[5]
PIN_P9
输入密码七段码显示
y0[6]
输出
HEX7[6]
PIN_N9
输入密码七段码显示
y1[0]
输出
HEX5[0]
PIN_T2
修改密码七段码显示
y1[1]
输出
HEX5[1]
PIN_P6
修改密码七段码显示
y1[2]
输出
HEX5[2]
PIN_P7
修改密码七段码显示
y1[3]
输出
HEX5[3]
PIN_T9
修改密码七段码显示
y14]
输出
HEX5[4]
PIN_R5
修改密码七段码显示
y1[5]
输出
HEX5[5]
PIN_R4
修改密码七段码显示
y1[6]
输出
HEX5[6]
PIN_R3
修改密码七段码显示
4系统的VHDL设计
系统的主要功能是通过VHDL语言来实现的。
语言代码如下。
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entitymimais
port(clk:
instd_logic;--定义时钟
k0:
instd_logic;--输入一位0
k1:
instd_logic;--输入一位1
clr:
instd_logic;--复位
load:
instd_logic;--改变状态
press:
instd_logic;--门铃按钮
alm2:
outstd_logic;--门铃
lt:
outstd_logic;--开锁信号
y0:
outstd_logic_vector(6downto0);--输入位数显示
y1:
outstd_logic_vector(6downto0);--输出位数显示
lf:
outstd_logic;--亮灯
alm:
outstd_logic);--报警铃
endmima;
architectureaaaofmimais
signalshift,lock:
std_logic_vector(7downto0):
="00000000";--定义shift,lock
signallam1,lam:
std_logic_vector(7downto0);--定义lam1,lam
signalla,li:
std_logic;--定义la,li
signalclk1:
std_logic;--定义clk1
signalp:
std_logic_vector(4downto0);--定义p
signalaa:
std_logic;--定义aa
begin
m16:
process(clk)--将clk16M分频
variableq:
std_logic_vector(22downto0);
begin
ifclk'eventandclk='1'thenq:
=q+1;--检测clk上升沿q=q+1
endif;
ifq="11111111111111111111111"thenclk1<='1';--clk1产生一个上升沿脉冲
elseclk1<='0';
endif;
endprocessm16;
process(clk1,clr)--判断是否复位
begin
ifclr='0'then
la<='0';
li<='0';
elsifclk1'eventandclk1='1'then--检测clk1上升沿
ifload='0'then--判断状态
la<='1';--设置密码
else
li<='1';--输出密码
endif;
endif;
endprocess;
process(clk1,clr)--复位及输入设置密码
variablea:
integerrange0to8;
begin
ifclr='0'then--复位
lam<="00000000";--lam置零
lam1<="00000000";--lam1置零
shift<="00000000";--shift置零
a:
=0;--a置零
lt<='0';--开锁置零
lf<='0';--警报灯置零
alm<='0';--警报置零
elsifclk1'eventandclk1='1'then--检测上升沿
ifli='1'then--输入密码
ifa/=8then--判断密码是否输入完毕
ifk1='0'then--输入1
shift<='1'&shift(7downto1);--依次输入一个1
lam<='1'&lam(7downto1);--点亮对应的一个小灯
a:
=a+1;
elsifk0='0'then--输入一位0
shift<='0'&shift(7downto1);--依次输入一个1
lam<='1'&lam(7downto1);--点亮对应的一个小灯
a:
=a+1;
endif;
else
a:
=0;
ifshift=lockthen--判断密码是否正确
lt<='1';--正确开锁
else
lf<='1';--错误警报亮
alm<='1';--错误警报响
endif;
endif;
elsifla='1'then--输入密码
a:
=0;
ifk1='0'then--输入一位1
lock<='1'&lock(7downto1);--lock密码增加一位1
lam1<='1'&lam1(7downto1);--点亮对应的灯
a:
=a+1;
elsifk0='0'then--输入一位0
lock<='0'&lock(7downto1);--lock密码增加一位0
lam1<='1'&lam1(7downto1);--点亮对应的灯
a:
=a+1;
endif;
endif;
endif;
endprocess;
code1:
process(lam)--将小灯泡显示转换到LED显示
b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字电路课程设计 密码锁 数字电路 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)