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
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库EDA电子密码锁的设计(2)在线全文阅读。
相关推荐: