1、 SOPC/EDASOPC/EDA 综合课程设计报告综合课程设计报告 设计题目:设计题目: 电子密码锁的设计电子密码锁的设计 设设 计计 者:者: 学学 号:号: 班班 级:级: 指导老师:指导老师: 完成时间:完成时间: 设计报告设计报告 综合测试综合测试 总评总评 格式格式 (10) 内容内容 (40) 图表图表 (10) 答辩答辩 (20) 平时平时 (20) 1 目录目录 目录 1 第一章 设计目的及要求 2 1.1 设计要求 . 2 第二章 原理与模块介绍 3 2.1 原理介绍 . 3 2.2 模块介绍 . 3 第三章 模块设计 4 3.1 输入模块 . 4 3.1.1 输入模块程序
2、 4 3.2 控制模块 . 7 3.2.1 控制模块程序 7 3.3 显示模块 . 10 3.3.1 显示模块程序 . 10 3.4 顶层模块 . 11 第四章 模块元件及其仿真 15 4.1 输入模块元件及其仿真 . 15 4.1.1 输入模块元件 15 4.1.2 输入模块仿真 15 图 4.1.2 . 15 4.2 控制模块元件及其仿真 . 16 4.2.1 控制模块元件 16 图 4.2.1 . 16 4.2.2 控制模块仿真 16 图 4.2.2 . 16 4.3 显示模块元件及其仿真 . 17 4.3.1 显示模块元件 17 图 4.3.1 . 17 4.3.2 显示模块仿真 17
3、 图 4.3.2 . 17 第五章 总程序设计 18 5.1 整体组装设计原理图 18 5.1 全局模块连接图 18 5.2 整体组合元件 . 18 图 5.2 整体模块 . 18 5.3 顶层模块仿真 . 19 第六章 结论和问题讨论 20 6.1 完成实验程度 . 20 6.2 遇到的问题。 . 20 6.3 存在的不足和改进思路 . 20 6.4 心得体会 . 20 参考文献 22 2 第一章 设计目的及要求 1.1 设计要求 设计一个具有较高安全性和较低成本的通用电子密码锁,其具体功能要求如下: (1) 数码输入:每按下一个数字键,就输入一个数值,并在显示器上的最右方显示出 该数值,同
4、时将先前输入的数据依序左移一个数字位置。 (2) 数码清除:按下此键可清除前面所有的输入值,清除成为“0000” 。 (3) 密码更改:按下此键时会将目前的数字设定成新的密码。 (4) 激活电锁:按下此键可将密码锁上锁。 (5) 解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。 图 1.1 设计方框图 3 第二章 原理与模块介绍 2.1 原理介绍 根据设计要求,可以确定所需要的功能,可以分为三个方面,一是输入方面,二是控 制方面,三是显示方面的需求。所以初步决定利用三个模块完成相关功能。同时,模块化 的编程方式利于后期调试。 2.2 模块介绍 输入模块:根据设计要求,使用到时序产生
5、电路,弹跳消除电路,及键盘扫描电路来共同 组成。 控制模块:包括按键数据的缓冲存储,密码的清除、更改、存储、激活电锁电路(产生寄存 器清除信号),密码核对(数值比较),解锁电路(开/关门锁)等几个功能。 显示模块:主要是实现七段数码管显示电路,将待显示数据的 BCD 码转换成数码器的七段 显示驱动编码。 4 第三章 模块设计 3.1 输入模块 1.时序产生电路 本时序产生电路中使用了三种不同频率的工作脉冲波形: 系统时钟脉冲(它是系统内部 所有时钟脉冲的源头,且其频率最高)、键盘扫描信号。 2.键盘扫描电路 扫描电路的作用是用来提供键盘扫描信号(表 4.1 中的 KY3KY0)的,扫描信号变化
6、的顺序 依次为 11101101101101111110依序地周而复始。 3.1.1 输入模块程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SR IS PORT(CLK_1K: IN STD_LOGIC; KEY_IN: IN STD_LOGIC_VECTOR(2 DOWNTO 0); DATA_N: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); DATA_F: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); DATA_M: OUT STD_LOGIC; DATA_B: OUT STD_LOGIC; CQD: OUT STD_LOGIC; KSEL: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CSR: OUT STD_LOGIC_VE