文档详情

密码锁功能EDA课程设计报告.doc

发布:2017-11-28约8.4千字共16页下载文档
文本预览下载声明
第1章 设计说明 1.1 总体设计说明 本实验中说要求设计的电子密码锁密码为4位,由三大部分组成,每一部分又包含了若干子电路,将各电路组合起来,就构成了一个整体。下面对每一大部分分别进行讨论: ①、矩阵键盘接口电路设计,由于硬件电路没有提供该矩阵键盘,用开关代替该部分电路。 ②、密码锁的控制电路设计 ③、输出七段显示电路的设计 1.2 密码锁功能说明 ①、数据输入:每按一个数字键,就输入一个数值,并在显示器上的最右上方显示出该数字,并将先前已经输入的数据依序左移一个数字位置。 ②、数码清除:按下此键可以清除前面所有的输入值,清除成为“0000”。 ③、密码更改:按下此键时将目前的数字设定成新的密码。 ④、激活电锁:按下此键可将密码锁上锁。 ⑤、解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。 第2章 硬件说明 本设计所需的硬件主要有:七段译码器、发光二极管(用来模拟电子锁,红灯亮为加锁,绿灯亮为解锁)、EPF10K10LC84-4适配器。我们使用教学使用的EDA试验箱,用独立式开关按键,七段译码器,有发光二极管,有红色和绿色,芯片为EPF10K10LC84-4。 第3章 设计内容 程序包括六个逻辑元件,分别为:数字按键输入、控制功能按键输入、时钟分频器、处理核心、输出处理和七段译码器。 3.1 数字按键输入 3.1.1 功能介绍 读取数字键0~9。高电平表示按键未按下,低电平表示按键按下。按照0~9顺序读取,只能输出1位数字。输出4位二进制代码,“0000”~“1001”表示0~9,用“1010”表示无输入。 3.1.2 程序输入 1.建立项目文件 2.建立设计文件 在MAX+PLUSⅡ管理窗口中选择File\New命令,建立文本编辑区,并在File Name文本框中输入shuzishuru.vhd,存盘。 3.编辑程序 在文本编辑区内,输入程序,程序如下: library ieee; use ieee.std_logic_1164.all; entity shuzishuru is port( numin:IN std_logic_vector(9 downto 0); numstate,clk:IN std_logic; numout:OUT std_logic_vector(3 downto 0)); end shuzishuru; architecture EDA of shuzishuru is signal state:std_logic; signal mem:std_logic_vector(9 downto 0); begin process(clk) begin if clkevent and clk=1 then if state/=numstate then if mem/=numin then case numin is when 1111111110 = numout=0000; when 1111111101 = numout=0001; when 1111111011 = numout=0010; when 1111110111 = numout=0011; when 1111101111 = numout=0100; when 1111011111 = numout=0101; when 1110111111 = numout=0110; when 1101111111 = numout=0111; when 1011111111 = numout=1000; when 0111111111 = numout=1001; when others = numout=1010; end case; state=numstate; else numout=1010; end if; mem=numin; end if; end if; end process; end EDA; 4.保存文件并检查语法错误 在MAX+PLUSⅡ管理窗口中选择File/Project/SaveCheck命令,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。 5.建立默认符号 在MAX+PLUSⅡ管理窗口中选择File/Create Default Symbol命令,建立一个符号文件供顶层图形设计文件调用。 3.2 控制功能输入 3.2.1 功能介绍 读取控制功能按键-清除按键,修改密码,锁定,解锁。高电平表示按键未按下,低电平表示按键按下。按照“清除按键,修改密码,锁定,解锁”顺序读取,只能输出一位控制信号。输出3位二进制代码,“001”~“100”表示“清除按键,修改密码,锁定,解锁”,用“000”
显示全部
相似文档