EDA电子密码锁的设计
更新时间:2024-07-06 22:55:01 阅读量: 综合文库 文档下载
单片机课程设计
姓 名: 专 业: 班级学号: 指导老师:
沈阳理工大学 2016年6月13日1
----EDA电子密码锁
目录
1. 概述.................................................1 2.设计要求...........................................1 3.总体框图...........................................2 3.1设计方案.......................................2 4.电子密码锁波形仿真...............................3 5.功能模块............................................4 5.1功能模块........................................4 5.1.1功能介绍...................................4 5.1.2输入模块与仿真图形.....................4 5.2控制模块........................................7 5.2.1功能介绍...................................7 5.2.2输入模块与仿真图形.....................7 5.3 显示模块......................................15 5.3.1 功能介绍.................................15 5.3.2 输入模块与仿真图形....................15 6.总体设计电路图...................................17 7.设计心得体会.....................................19
2
1.概述
电子密码锁在生活中十分常见,在这我将设计一个具有较低成本的电子密码锁,本文讲述了我整个设计过程及收获。讲述了电子密码锁的的工作原理以及各个模块的功能,并讲述了所有部分的设计思路,对各部分电路方案的选择、元器件的筛选、以及对它们的调试、对波形图的分析,到最后的总体图的分析。
2.设计要求
本设计名称为电子密码锁,用四个模块,分别为输入模块、控制模块、扫描器模块、显示模块,来控制密码的输入、验证与显示。 设计所要实现的功能为:
1 数码输入:手动用3个拨码开关与3个按键设计三位密码的输入,并在显示器显示出该数值。
2 数码验证:开锁时输入密码后,拨动 RT键使其为高电平,而CHANGE为低电平检测,密码正确时开锁,输出LOCKOPEN灯灭,LOCKCLOSE灯亮,表示开锁成功。 3 错误显示:当密码输入错误时,LOCKOPEN灯亮,LOCKCLOSE灯灭,表示开锁失败。
4 更改密码:当改变密码时,按下CHANGE键使其为高电平,而RT为低电平时,可改变密码。
5 密码清除:按下REST可清除前面的输入值,清除为“888”。
1
3.总体框图
1)设计方案:
电子密码锁,主要由三部分组成:密码输入电路、密码锁控制电路和密码锁显示电路。
作为电子密码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。拨码与按键和触摸式4*4键盘相比简单方便而且成本低,构成的电路简单,本设计中采用拨码与按键来作为该设计的输入设备。
数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任然使用LED数码管。
根据以上选定的输入设备与与显示器件,并考虑到现实各项密码锁功能的具体要求,与系统的设计要求,系统设计采用自顶向下的设计方案。整个密码锁系统的总体总体框图如图3.1所示。
输入模块控 制模 块 拨码与按键 单脉冲控制 输入译码 寄存器与清零信号发生电路 LED灯 开/关锁电路 数值比较器 扫描电路 三选一选择器 2
显示模块BCD七段译码显示电路
图3.1电子密码锁系统总体框图
4.电子密码锁的波形仿真
使用QuartusⅡ进行电子密码锁设计的流程为 1.编写VHDL程序(使用Text Editor)(见附录); 2.编译VHDL程序(使用Compiler);
3.仿真验证VHDL程序(使用Waveform Editor, Simulator); 4.进行芯片的时序分析(使用Timing Analyzer); 5.安排芯片管脚位置(使用Floorplan Editor); 6.下载程序至芯片(使用Programmer)。
3
5.功能模块
5.1 输入模块
1)功能介绍
输入时有三个拨码键控制输入,每个拨码各控制一位密码,对于其中一个拨码键每拨一次码按一次按键,表示输入一位,当输入四位时输出一位数,用“888”作为初始密码。 2)输入模块与仿真图形
单脉冲控制如图5.1如下图
图5.1
上图为单脉冲控制输入,当M给一上升沿信号将在PUL输出一位与之对应的高或低电平。
4
四位串行输入并行输出寄存器如下图5.1.2
图5.1.2
上图为4为串行输入并行输出寄存器,它由4个D触发组成,当reset为高电平时,每给一脉冲输入数据将向右移一位二值代码,它能同时复位
3)程序的输入
在文本区内输入程序,程序如下: 单脉冲信号控制 puls.vhd LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY puls IS
PORT (PUL,M:IN STD_LOGIC; Q:OUT STD_LOGIC); END puls;
ARCHITECTURE BEHAVE OF puls IS
5
SIGNAL TEMP:STD_LOGIC; BEGIN PROCESS(M) BEGIN
IF M'EVENT AND M='1' THEN IF PUL='1' THEN TEMP<='1'; ELSE TEMP<='0'; END IF; END IF; END PROCESS; Q<=TEMP; END BEHAVE;
4位串行输入并行输出寄存器 shifter.vhd LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY shifter IS
PORT
(din:IN STD_LOGIC; );
reset,CLK: IN
STD_LOGIC;
qout: buffer STD_LOGIC_VECTOR(0 TO 3)
END shifter;
ARCHITECTURE act OF shifter IS BEGIN
PROCESS(CLK)
VARIABLE q:STD_LOGIC_VECTOR(0 TO 3);
BEGIN
6
IF reset='0' THEN q:=(others=>'0'); ELSE
if clk'event and clk='1' then q(3):=q(2); q(2):=q(1); q(1):=q(0); q(0):=din;
END IF;
END IF; qout<=q; END PROCESS; END architecture act;
5.2 控制模块
1)功能介绍
开锁时输入密码后,拨动 RT键使其为高电平,而CHANGE为低电平检测,密码正确时开锁,输出LOCKOPEN灯灭,LOCKCLOSE灯亮,表示开锁成功。当密码输入错误时,LOCKOPEN灯亮,LOCKCLOSE灯灭,表示开锁失败。当改变密码时,按下CHANGE键使其为高电平,而RT为低电平时,可改变密码。按下REST可清除前面的输入值,清除为“888”。
2)控制模块与仿真图形 输入译码器图5.2.1,如下图
7
图5.2.2
上图为译码器将4位二值代码转化成BCD码从“0000”~“1001”表示 0~9。
表5-2输入译码的真值表
输入输出
D C B A Y1 Y2 Y3 Y4 字形 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 2 0 0 1 1 0 0 1 1 3 0 1 0 0 0 1 0 0 4 0 1 0 1 0 1 0 1 5
8
END IF; END IF; END PROCESS;
END ARCHITECTURE ART;
4选1选择器与扫描器 sel.vhd
LIBRARY IEEE;
USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY sel IS
PORT(QIN1,QIN2,QIN3:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
CLK,RST:IN STD_LOGIC;
QOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); sel:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END sel;
ARCHITECTURE ART OF sel IS
BEGIN
PROCESS(CLK,RST)
VARIABLE CNT:INTEGER RANGE 0 TO 2;
BEGIN IF (RST='0') THEN CNT:=0; sel<=\QOUT<=\
ELSIF CLK'EVENT AND CLK='1' THEN
IF CNT=2 THEN
14
CNT:=0; ELSE CNT:=CNT+1;
END IF; CASE CNT IS
WHEN 0=>QOUT<=QIN1; sel<=\
WHEN 1=>QOUT<=QIN2; sel<=\
WHEN 2=>QOUT<=QIN3; sel<=\
WHEN OTHERS=>QOUT<=\sel<=\
END CASE; END IF; END PROCESS; END ARCHITECTURE ART;
5.3 显示模块
1)功能介绍
将密码用BCD七段数码管显示 2)显示模块与仿真波形图5.3,如下图
15
图5.3
上图将BCD码转化到七段译码电路上
表5-3 BCD-七段数码管的真值表
输入输出
D C B A Y1 Y2 Y3 Y4 Y5 Y6 Y7字形 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 2 0 0 1 1 0 1 1 1 0 0 1 3 0 1 0 0 0 1 1 0 0 1 1 4 0 1 0 1 1 0 1 1 0 1 1 5 0 1 1 0 1 0 1 1 1 1 1 6 0 1 1 1 1 1 1 0 0 0 0 7 1 0 0 0 1 1 1 1 1 1 1 8 1 0 0 1 1 1 1 0 0 1 1 9 16
表5-3
在文本区内输入程序,程序如下: Seg7.vhd LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY Seg7 IS
PORT(num:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
led:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END Seg7;
ARCHITECTURE ACT OF Seg7 IS BEGIN
LED<=\ \ \ \
\\\\\\\\\\\
17
\END ACT;
6.总体设计电路图
1)功能介绍
将各个模块连接在一起实现。 2)顶层文件如下:
18
正在阅读:
EDA电子密码锁的设计07-06
新疆维吾尔自治区第一次全国污染源普查总结表彰实施方案05-06
抗洪救灾标语汇总07-31
广西常见园林绿化植物04-29
模拟电子技术基础试题汇总09-17
2017-2018学年浙江省诸暨中学高二上学期第二阶段考试化学试题 解析版02-01
宜昌市东湖中心区控制性详细规划 - 图文02-27
2013年春外研英语七年级下册单元测试题(Module 10)09-25
毕业设计(论文)工作规范附件1-8模版11-01
4.2毕业设计说明书目录格式06-30
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 密码锁
- 设计
- 电子
- EDA