EDA电子密码锁的设计(2)

2019-03-09 13:34

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


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

下一篇:如何提高大学生的创造能力(英语作文版)How to promote college s

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

马上注册会员

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