1、EDA课程设计 3位电子密码锁EDA课程设计报告电子密码锁设计 学 校: 海南大学院 (系):信 息 学 院 专 业:通 信 一 班 学生姓名:学 号:组 员:指导教师: 2013年6月13日目录目录 2一 概述 3二 设计要求 3三 总体框图 3四 功能模块 44.1 输入模块 44.2 控制模块 74.5显示模块 12五 总体设计电路图 14六 设计心得体会 15一 概述电子密码锁在生活中十分常见,在这我将设计一个具有较低成本的电子密码锁,本文讲述了我整个设计过程及收获。讲述了电子密码锁的的工作原理以及各个模块的功能,并讲述了所有部分的设计思路,对各部分电路方案的选择、元器件的筛选、以及对
2、它们的调试、对波形图的分析,到最后的总体图的分析。二 设计要求 本设计名称为电子密码锁,用四个模块,分别为输入模块、控制模块、扫描器模块、显示模块,来控制密码的输入、验证与显示。设计所要实现的功能为:1 数码输入:手动输入3组四位二进制密码。2 数码验证:开锁时输入密码后,拨动 RT键使其为高电平,而CHANGE为低电平检测,密码正确时开锁,输出LOCK灯亮,表示开锁成功。3 错误显示:当密码输入错误时,LOCK灯亮,LOCK灭,表示开锁失败。4 更改密码:当改变密码时,按下CHANGE键使其为高电平,而RT为低电平时,可改变密码。5 密码清除:按下RST可清除前面的输入值,清除为“000”。
3、三 总体框图1)设计方案:电子密码锁,主要由三部分组成:密码输入电路、密码锁控制电路和密码锁显示电路。作为电子密码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。拨码与按键和触摸式4*4键盘相比简单方便而且成本低,构成的电路简单,本设计中采用拨码与按键来作为该设计的输入设备。数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任然使用LED数码管。根据以上选定的输入设备与与显示器件,并考虑到现实各项密码锁功能的具体要求,与系统的设计要
4、求,系统设计采用自顶向下的设计方案。整个密码锁系统的总体总体框图如下图。电子密码锁系统总体框图四 功能模块4.1 输入模块1)功能介绍输入3组四位二进制密码,代表3为密码,每一组的取值从0000到10012)输入模块与仿真图形3)程序输入程序如下: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SR IS PORT (PUL1,PUL2,PUL3:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q1,Q2,Q3:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END SR;ARCHITECTURE BEHA
5、VE OF SR IS SIGNAL TEMP:STD_LOGIC; BEGIN PROCESS(PUL1,PUL2,PUL3) BEGIN - IF MEVENT AND M=1 THEN -IF PUL=1 THEN CASE PUL1 ISWHEN 0000=Q1Q1Q1Q1Q1Q1Q1Q1Q1Q1Q1Q2Q2Q2Q2Q2Q2Q2Q2Q2Q2Q2Q3Q3Q3Q3Q3Q3Q3Q3Q3Q3Q3=0000;END CASE; - TEMP=1; -ELSE TEMP=0; -END IF; -END IF; END PROCESS;-Q=TEMP; END BEHAVE;4.2 控制模块1)功
6、能介绍开锁时输入密码后,拨动 RT键使其为高电平,而CHANGE为低电平检测,密码正确时开锁,输出LOCK灯亮,表示开锁成功。当密码输入错误时,LOCK灯灭,表示开锁失败。当改变密码时,按下CHANGE键使其为高电平,而RT为低电平时,可改变密码。按下RST可清除前面的输入值,清除为“000”。2)控制模块与仿真图形 当CHANGE为高电平且rt为低电平时开始输入密码这时lock为高电平,当rt为高电平,change为低电平时开始检测密码,如上图开始密码为“311”当再次出现“311”时lock为高电平,当密码错误时lock为低电平。3)其程序如下:LIBRARY IEEE;USE IEEE.
7、STD_LOGIC_1164.ALL;ENTITY CONTROL ISPORT(NB:IN STD_LOGIC_VECTOR(3 DOWNTO 0); NS:IN STD_LOGIC_VECTOR(3 DOWNTO 0); NG:IN STD_LOGIC_VECTOR(3 DOWNTO 0); CLK:IN STD_LOGIC; CHANGE,RT: IN STD_LOGIC; SB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SS:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SG:OUT STD_LOGIC_VECTOR(3 DOWNTO 0
8、);LOCKOPEN,LOCKCLOSE:OUT STD_LOGIC);END ENTITY CONTROL;ARCHITECTURE ART OF CONTROL ISSIGNAL ENABLE,ENABLE1:STD_LOGIC;SIGNAL DA,DB,DC:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINENABLE=CHANGE AND(NOT RT);ENABLE1=RT AND(NOT CHANGE);PROCESS(CLK,NB,NS,NG) ISBEGINIF CLKEVENT AND CLK=1 THEN IF ENABLE=1 THENDA=NB;DB
9、=NS;DC=NG; LOCKOPEN=0; LOCKCLOSE=1; elsif ENABLE1=1 THEN IF ( DA=NB AND DB=NS AND DC=NG) THEN LOCKOPEN=1; LOCKCLOSE=0; ELSE LOCKOPEN=0; LOCKCLOSE=1; END IF; END IF; END IF;-END IF; SS=NS; SG=NG; SB=NB; END PROCESS;END ARCHITECTURE ART;4.3扫描器部:其功能是从控制部分的3个输出中选择出一组四位二进制送往译码器,同时把扫描信号SEL送往二四译码器1)控制模块与仿真
10、图形:2)其程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY sel ISPORT(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(1 DOWNTO 0);END sel;ARCHITECTURE ART O
11、F sel ISBEGINPROCESS(CLK,RST)VARIABLE CNT:INTEGER RANGE 0 TO 2;BEGINIF (RST=0) THENCNT:=0;sel =00;QOUTQOUT=QIN1;sel QOUT=QIN2;selQOUT=QIN3;selQOUT=1111;selBBBB=1111; END CASE; END PROCESS;END ARCHITECTURE ART;4.5显示模块1)功能介绍将密码用BCD七段数码管显示2)显示模块与仿真波形图如下图:上图将BCD码转化到七段译码电路上 BCD-七段数码管的真值表输入 输出D C B A Y1 Y
12、2 Y3 Y4 Y5 Y6 Y7 字形0 0 0 0 1 1 1 1 1 1 0 00 0 0 1 0 1 1 0 0 0 0 10 0 1 0 1 1 0 1 1 0 1 20 0 1 1 0 1 1 1 0 0 1 30 1 0 0 0 1 1 0 0 1 1 40 1 0 1 1 0 1 1 0 1 1 50 1 1 0 1 0 1 1 1 1 1 60 1 1 1 1 1 1 0 0 0 0 71 0 0 0 1 1 1 1 1 1 1 81 0 0 1 1 1 1 0 0 1 1 9表5-23)程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL
13、;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SEG7 ISPORT(num:IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END SEG7;ARCHITECTURE ACT OF SEG7 ISBEGIN LED=1111110WHEN num=0000ELSE 0110000WHEN num =0001ELSE 1101101WHEN num =0010ELSE 1111001WHEN num =0011ELSE 0110011WHEN num =0100ELSE
14、 1011011WHEN num =0101ELSE 1011111WHEN num =0110ELSE 1110000WHEN num =0111ELSE 1111111WHEN num =1000ELSE 1111011WHEN num =1001ELSE 1110111WHEN num =1010ELSE 0011111WHEN num =1011ELSE 1001110WHEN num =1100ELSE 0111101WHEN num =1101ELSE 1001111WHEN num =1110ELSE 1000111WHEN num =1111;END ARCHITECTURE
15、ACT;五 总体设计电路图1)功能介绍将各个模块连接在一起实现。波形仿真如下:当change为高电平,rt为低电平时,输入“142”验证,当再次输入“142”时锁打开,设计正确。六 设计心得体会通过这次设计,使我对EDA产生了浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。在编写扫描模块时,我遇到了很大的困难,一直被定时问题所困扰,解决了这个问题时,我特别的高兴。写控制文件的程序时,也遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了。再对控制模块仿真时,虽然语法正确,但连最基本的输入输出都进不
16、去,我们弄了很多遍都不行,后来在老师的指导下我们才解决了这个问题。其次,在进行引脚连接时一定要细心,有些引脚不能使用,我因为没注意使得开始时一直不能得到正确的结果。这次EDA课程设计历时两个星期,在整整两个星期的日子里,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到的问题,反映出来我的许多不足之处,我以后要努力克服缺点。 总的来说,这次设计的密码锁还是比较成功的,在设计中遇到了很多问题,最后在队友和老师的辛勤的指导下外加上自己的努力,终于都得到了解决,因此很有成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1