密码锁设计VHDL源程序文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
标准
2.2系统的输入、输出端口以及寄存器清单及说明:
CLK 输入时钟方波信号端口
KIN 键盘按键输入端口
KOUT 键盘完整编码码值输出端口(七位二进制数)KOUT1 扫描信号输出端口(三位二进制数)
SIN 键盘消抖输入端口(七位二进制数)
SOUT 键盘消抖输出端口(七位二进制数)
LIN 键盘按键编码模块输入端口(七位二进制数)DF 数字按键标志寄存器
FF 功能按键标志寄存器
ND 数字按键识别编码寄存器
NF 功能按键识别编码寄存器
LOCK 电子密码锁上锁状态标志寄存器
LOCK1 电子密码锁报警状态标志寄存器
UNLOCK 电子密码锁开锁状态标志寄存器
NULL1 电子密码锁无密码状态标志寄存器
DATA 电子密码锁数码显示数据寄存器
CAT 电子密码锁数码显示位选寄存器
标准
DISPLAY 电子密码锁数码显示段选寄存器(十七位二进制数)NUM0、NUM1、NUM2、NUM3数码显示中分位显示数据寄存器
DISNUM 数码显示段选数据寄存器
I1 数码显示计数器
SCANS 键盘扫描中按键完整编码寄存器
SCAN 键盘扫描寄存器
CNT 键盘消抖计数器
SIN1 键盘按键键值寄存器
I 键盘扫描计数器
DF1 数字按键状态标志寄存器
ACC 键盘数字输入暂存器
T 报警计数器
REG 电子密码锁密码存储器
NC 计数器
1键盘输入扫描部分源程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY kbscan1 is
标准
PORT(clk:in STD_LOGIC;
kin:in STD_LOGIC_VECTOR(3 DOWNTO 0);---PC7-PC4
kout:out STD_LOGIC_VECTOR(7 downto 0);--PC3--PC
kout1: out STD_LOGIC_VECTOR(3 downto 0));
end kbscan1;
architecture a of kbscan1 is
signal scans: std_logic_vector(7 downto 0);--PC7--PC0
signal scan : std_logic_vector(3 downto 0);--PC3--PC0
signalt :integer range 0 to 140;
signal sin1:std_logic_vector(3 downto 0);
signal i:integer range 0 to 3;
begin
scans<=scan& kin;
kout<=scans;
kout1<=scan;
process(clk)
begin
if(falling_edge(clk))then
if(i=3)then
i<=0;
else
i<=i+1;
end if;
case i is
when 0=>scan<="0001";
when 1=>scan<="0010";
标准
when 2=>scan<="0100";
when 3=>scan<="1000";
end case;
end if;
end process;
End a;
2键盘输入消抖部分源程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY xiaodou is
Port(clk :in STD_LOGIC;
sin:in std_logic_vector(7 downto 0);
sout:out std_logic_vector(7 downto 0));
end xiaodou;
architecture behavioral of xiaodou is
signalt :integer range 0 to 120;
signal sin1:std_logic_vector(7 downto 0);
begin
process(clk)
begin
sin1<=sin;
if (rising_edge(clk))then
if(sin1=sin)then
t<=cnt+1;
else
标准
sin1<=sin;
t<=0;
end if;
if(cnt=120)then
sout<=sin;
t<=0;
end if;
end if;
end process;
end behavioral;
3键盘输入编码部分源程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY bianma is
PORT(clk:in STD_LOGIC;
lin:in STD_LOGIC_VECTOR(7 DOWNTO 0);---PC7-PC4
DF,FF: out std_logic;
nd,nf:BUFFER std_logic_vector(3 downto 0));
end bianma;
architecture b of bianma is
begin
process(clk)
begin
标准