基于eda技术的电子密码锁的设计(3)

2019-02-15 17:55

(2)激活电锁键:按下此键时可将密码锁的门上锁。

(3)解除电锁键:按下此键会检查输入的密码是否正确,若密码正确无误则开门。

使用电子密码锁的时候,只会用到三种工作模式,其中输入文字模式用的是数字按键,只有上锁和开锁两个模式必须占用功能按键。但是在实际操作中,难免会有按错键的情况发生,使得“清除输入”功能是用的机率很高,所以在设计中共设置了两个功能按键,其中“接触电锁”和“清除电锁”共用一个功能按键,另一个功能按键是“激活电锁”。

--CTRL.VHD LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CTRL IS

PORT (DATA_N: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DATA_F: IN STD_LOGIC_VECTOR(3 DOWNTO 0); FLAG_N: IN STD_LOGIC; FLAG_F: IN STD_LOGIC; CLK: IN STD_LOGIC;

ENLOCK: OUT STD_LOGIC; --1: LOCK, 0: UNLOCK DATA_BCD: OUT STD_LOGIC_VECTOR (15 DOWNTO 0)); END ENTITY CTRL ;

ARCHITECTURE ART OF CTRL IS

SIGNAL ACC, REG: STD_LOGIC_VECTOR (15 DOWNTO 0); --ACC用于暂存键盘输入的信息,REG用于存储输入的密码 SIGNAL NC: STD_LOGIC_VECTOR (2 DOWNTO 0); SIGNAL RR2, CLR, BB, QA, QB: STD_LOGIC; SIGNAL R1, R0: STD_LOGIC; BEGIN

--寄存器清零信号的产生进程 PROCESS(CLK) BEGIN

IF CLK'EVENT AND CLK='1' THEN R1<=R0; R0<=FLAG_F; END IF;

RR2<=R1 AND NOT R0; CLR<=RR2; END PROCESS;

--按键输入数据的存储、清零进程 KEYIN_PROCESS : BLOCK IS

SIGNAL RST, D0, D1: STD_LOGIC ;

BEGIN RST <= RR2; PROCESS(FLAG_N, RST) IS

BEGIN

IF RST = '1' THEN

ACC <= \ --CLEAR INPUT NC <= \ ELSE

IF FLAG_N'EVENT AND FLAG_N = '1' THEN

IF NC < 4 THEN

ACC <= ACC(11 DOWNTO 0) & DATA_N ;

NC <= NC + 1 ; END IF;

END IF ;

END IF ; END PROCESS ;

END BLOCK KEYIN_PROCESS ;

--上锁/开锁控制进程 LOCK_PROCESS : BLOCK IS BEGIN

PROCESS(CLK, DATA_F) IS BEGIN

IF (CLK'EVENT AND CLK = '1') THEN

IF NC = 4 THEN

IF DATA_F(2) = '1' THEN --上锁控制信号有效

REG <= ACC ;

--密码存储

QA <= '1' ; QB <= '0';

ELSIF DATA_F(0) = '1' THEN --开锁控制信号有效

IF REG = ACC THEN QA<= '0'; QB <= '1' ; END IF ;

--密码核对

ELSIF ACC = \

--设置“8888”为万用密码

QA <= '0' ; QB<= '1';

END IF ; END IF;

END IF ;

END PROCESS ;

END BLOCK LOCK_PROCESS ; --输出上锁/开锁控制信号 ENLOCK <= QA AND NOT QB ; --输出显示信息 DATA_BCD<= ACC ; END ARCHITECTURE ART; 4.1.3电子密码锁显示模块

数码管显示原理

数字显示主要由LED数码管实现。LED可单独使用,也可组装成分段式或点阵式LED显示器件。分段式显示器由7条线段围成8型,每一段包含一个发光二极管,外加正向电压时二极管导通,发出清晰的光,有红、黄、绿等色。可以按照相关的规律控制各个发光段的亮、灭,这样就能达到显示各种字形或者符号的目的。图4.4介绍了左边右边是共阴式和共阳式LED数码管的原理图,以及共阴式的连接法和驱动原理。

图4.4 七段数码管电路图

BCD七段译码器的输入时一位BCD码(以D、C、B、A表示),输出是数码管各段的驱动信号(以Fa~Fg表示),也称4——7译码器。若用它驱动共阴极LED数码管,则输出应为高有效,即输出高1时,相应显示段发光。例如,当输入8421码DCBA=0100时,应显示4,即要求同时点亮b、c、f、g段,熄灭a、d、e段,故译码器的输出应为Fa~Fg=0110011,这也是一组代码,常称为段码。同理,根据组成0~9这10个字形的要求可以列出8421BCD七段译码器的真值表,见表4.5。

表4.5 七段译码器真值表

主要程序设计如下: CASE DATA_BCD IS

WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN OTHERS =>DOUT7<= \

译码显示的实现

生成电路符号图4.6:


基于eda技术的电子密码锁的设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:历史课题阶段性总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: