课程设计fpga密码锁

合集下载

基于FPGA的电子密码锁设计

基于FPGA的电子密码锁设计

基于FPGA的电子密码锁设计一、设计要求:1、开锁代码为8位二进制,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯。

否则,系统进入“错误”状态,并发出报警信号。

2、开锁程序有设计者确定,并要求所内给定的密码可调,且预置方便,保密性好。

3、串行电子密码锁的报警方式是点亮指示灯,并使喇叭鸣叫报警,直到按下复位开关,报警才停止。

此时,电子密码锁又进入等待下一次开锁的状态。

二.设计说明与提示:1.该题目的主要任务是产生一个开锁信号OPEN,而开锁信号的形成条件是,输入代码和已设密码相同。

实现这种功能的电路构思有多种,本题目运用两片8位锁存器,一片存入密码,另一片输入开锁代码,通过比较的方式,若两者相等,则形成开锁信号。

2.在开锁信号产生时,要求输出声,光信号,声音的产生由开锁信号触动扬声器工作,光信号由开锁信号点亮LED指示灯。

3.用按钮开关的第一个动作信号触发一个5秒定时器,若5秒内无开锁信号产生,让扬声器发出特殊音响,以示警告,并输出一个信号推动LED不断闪烁。

三.设计思想:电子密码锁的系统结构框图分成两大部分:控制器和处理器。

整个系统的输入信号有一个时钟脉冲CLK ,输出信号有表示开锁,关锁信号的红灯,绿灯以及报警信号SPEAKER。

控制器中的所有按键按下时均为高电平,即高电平有效。

RW 为“密码设定”信号, OK 为“确定”信号, RED=‘0’GREED=‘1’为开锁信号CNT 表示上一位密码正确时,控制器给出的可进行下一位二进制密码比较的信号,OPEN=‘1’为控制器给出的锁开信号, OPEN=‘0’为控制器给出的密码错误信号。

处理器中有一个计数器,计数器C1用是用来记录从第一个按钮触动后的5秒内若未将锁打开(即输入正确密码时间超过5秒),则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。

四、设计程序与部分分析:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity lock_m isport(key:in std_logic_vector(7 downto 0);clk,clk1,ok,rw: in std_logic;red,green,speaker,rwled,okrw:out std_logic);end lock_m;architecture behav of lock_m issignal ok1,ok2,ok0,prr,start,pdan,rw1,rin:std_logic :='0';signal sbuf1,sbuf2,keyin:std_logic_vector(7 downto 0):="";signal mmst: std_logic_vector(7 downto 0):="";signal cnt:std_logic_vector(2 downto 0):="000";signal cnt1:std_logic_vector(4 downto 0):="00000";beginprocess(clk) ---定义个存储器将密码存放在keyin中beginif clk'event and clk='1' thenkeyin<=key;end if;end process;prr<=pdan or rw1 or rin or ok;st: process(keyin,prr,ok1) -----第一次修改密码beginif ok1='1' then start<='0';elsif (keyin/="" and prr='0') thenstart<='1';else start<='0';end if;end process;inkey: process(key,start,clk) ----输入密码时间进入记时状态beginif clk'event and clk='1' then ok1<='0';ok2<='0';if start='1' then sbuf1<=keyin; ----将密码放入rom1暂存器中if ok='1' then ok2<='1';elsif cnt="100" then cnt<="000" ;ok1<='1'; --5秒到将cnt值零将ok1值置高else cnt<=cnt+'1';end if ;else cnt<="000";sbuf1<=sbuf1; ----当start=‘1’时cnt永远保持‘0’end if;end if;end process;pandan : process(ok,ok1,ok2,clk,start) ---输入密码用于判断密码是否正确beginif ok2='1' or ok1='1' then pdan<='1'; ------开锁信号elsif clk'event and clk='1' thenif pdan='1' thenif cnt1="10011" thenpdan<='0'; --20秒后判断结束,进入等待外部输入状态elsecnt1<=cnt1+'1';end if;elsecnt1<="00000"; ---等待状态时cnt1一直为‘0’end if;end if;end process;comp: process(pdan,rw1,sbuf1,mmst,rin,clk1) -----显示程序beginif pdan='1' then ------开锁信号密码正确if sbuf1=mmst then -----红灯灭,绿灯亮red<='0';green<='1';rwled<='0';speaker<='0';okrw<='0';else ------密码错误red<='1';green<='0';rwled<='0';speaker<=clk1;okrw<='0';end if; ----红灯亮,绿灯灭,elsif rw1='1' then ----第一次修改密码显示状态red<='1';green<='0';rwled<='1';speaker<='0';okrw<='0';elsif rin='1' thenred<='0';green<='0';rwled<='1';speaker<='0'; okrw<='1';elsered<='1';green<='0';rwled<='0';speaker<='0';okrw<='0';end if;end process;rewrite:process(rw,keyin,ok0,clk,start,pdan,rin)beginif clk'event and clk='1' thenif ok0='1' then rw1<='0';elsif keyin="" and pdan='0' and rin='0' thenif rw='1' thenrw1<='1';end if;end if;end if;end process;process(rw1,ok,keyin,clk)beginif clk'event and clk='1' thenok0<='0';sbuf2<=keyin;if rw1='1' thenif ok='1' thenok0<='1';if mmst=sbuf2 thenrin<='1';elserin<='0';end if;end if;elseif rin='1' thenif ok='1' thenmmst<=sbuf2;rin<='0';else mmst<=mmst;end if;else null;end if;end if;end if;end process;end behav;五、仿真波形:(密码正确)密码锁默认的密码为“”,当我们第一次设置的密码为key=””,然后按OK键盘确认。

基于FPGA的数字密码锁

基于FPGA的数字密码锁

基于F P G A的数字密码锁LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】CPLD/FPGA课程设计项目名称:基于FPGA的数字密码锁设计专业班级:学生学号:学生姓名:指导老师:2016年6月4日摘要本设计是基于现场可编程门阵列FPGA 器件的电子密码锁的设计。

通过Verilog 语言控制4位二进制数,组成数字排列,形成一个简单的数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0。

同时输出输入的次数,当3次以上输入错误时,输出一个报警信号,即使第四、五次输入正确也输出报警信号。

本设计利用Modelsim软件编写Verilog HDL硬件描述语言程序以实现输入密码、开锁、报警功能。

通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。

关键词:现场可编程门阵列;数字密码锁;Verilog HDL;AbstractThis design is the electronic code lock field programmable gate array FPGA devices based design. By Verilog language control 4-bit binary number, composed of figures arranged to form a simple digital lock, assuming that the default password is 4 digits: 0000, correct output when the input is 1, the output of the input error to zero. At the same time the number of input and output, and when more than three times the input error, an alarm signal is output, even if the fourth and fifth also enter the correct output alarm signal.This design uses Modelsim software write Verilog HDL hardware description language program to implement a password lock, alarm function. The simulation debugging, using the programmable device FPGA design basic electronic locks to achieve the desired purpose.Key words: FPGA;The digital combination lock;Verilog HDL;目录摘要 (I)Abstract (II)第1章所选项目的研究意义 (1)概述 (1)数字密码锁的研究现状 (2)数字密码锁的应用 (3)数字密码锁的困难 (3)本文研究意义 (3)设计思路 (4)第2章设计方案 (5)功能定义 (5)模块设计 (5)第3章系统软件设计 (7)设计概括 (7)设计流程 (7)密码存储模块 (7)编码模块 (8)比较模块 (8)主要程序模块 (9)第4章软件仿真 (14)仿真过程 (14)仿真结果 (15)仿真分析 (16)仿真过程 (17)结论 (18)参考文献 (19)附录1 程序代码 (20)项目创新及特色 (26)第1章所选项目的研究意义概述数字密码锁是一个小型的数字系统,与普通机械锁相比, 具有许多独特的优点: 保密性好, 防盗性强, 可以不用钥匙, 记住密码即可开锁等。

基于FPGA的数字密码锁之欧阳科创编

基于FPGA的数字密码锁之欧阳科创编

CPLD/FPGA课程设计项目名称:基于FPGA的数字密码锁设计专业班级:学生学号:学生姓名:指导老师:2016年6月4日摘要本设计是基于现场可编程门阵列FPGA 器件的电子密码锁的设计。

通过Verilog 语言控制4位二进制数,组成数字排列,形成一个简单的数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0。

同时输出输入的次数,当3次以上输入错误时,输出一个报警信号,即使第四、五次输入正确也输出报警信号。

本设计利用Modelsim软件编写Verilog HDL硬件描述语言程序以实现输入密码、开锁、报警功能。

通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。

关键词:现场可编程门阵列;数字密码锁;Verilog HDL;AbstractThis design is the electronic code lock field programmable gate array FPGA devices based design. By Verilog language control 4-bit binary number, composed of figures arranged to form a simple digital lock, assuming that the default password is 4 digits: 0000, correct output when the input is 1, the output of the input error to zero. At the same time the number of input and output, and when more than three times the input error, an alarm signal is output, even if the fourth and fifth also enter the correct output alarm signal.This design uses Modelsim software write Verilog HDL hardware description language program to implement a password lock, alarm function. The simulation debugging, using the programmable device FPGA design basic electronic locks to achieve the desired purpose.Key words: FPGA;The digital combination lock;Verilog HDL;目录摘要IAbstractII第1章所选项目的研究意义11.1 概述11.2 数字密码锁的研究现状21.2.1 数字密码锁的应用31.2.2 数字密码锁的困难31.3 本文研究意义31.4 设计思路4第2章设计方案52.1 功能定义52.2 模块设计5第3章系统软件设计73.1 设计概括73.2 设计流程73.2.1 密码存储模块73.2.2 编码模块83.2.3 比较模块83.3 主要程序模块9第4章软件仿真144.1 仿真过程144.2 仿真结果154.3 仿真分析164.3.1 仿真过程17结论18参考文献19附录1 程序代码20项目创新及特色26第1章所选项目的研究意义1.1 概述数字密码锁是一个小型的数字系统,与普通机械锁相比, 具有许多独特的优点: 保密性好, 防盗性强, 可以不用钥匙, 记住密码即可开锁等。

课程设计fpga密码锁

课程设计fpga密码锁

FPGA实验报告一、实验目的1.设计一个密码锁2.加深FPGA电路原理的理解3.掌握VHDL语言的使用,学会用VHDL语言来编程解决实际问题4.学会使用EDA开发软件设计小型综合电路,掌握仿真的技巧5.学会应用开发系统实现硬件电路,检验电路的功能二、实验内容题目:电子密码锁内容:设计一个4位串行数字锁1.开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁。

否则进入“错误”状态,发出报警信号。

2.锁内的密码可调,且预置方便,保密性好。

3.串行数字锁的报警,直到按下复位开关,才停下。

此时,数字锁又自动等待下一个开锁状态。

三、实验步骤1.系统总框图本系统的硬件部分主要由密码锁按键消抖模块,密码输入比较更改模块,密码显示模块、报警模块组成。

整体系统框图如下图所示。

2.密码锁的主要功能密码锁控制器的主要功能有:(1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。

(2)密码校验:如果有按键按下,直到松开该按键,如果密码校验正确,无变化,否则如果密码校验错误蜂鸣器响,表明密码错误。

(3)错误报警:密码输入错误开始报警。

(4)密码修改:输入密码正确后按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功。

3.密码锁的各个模块(1)按键消抖。

每按下一个键,仅产生一个信号脉冲,作为按键的使能信号,使能信号控制显示的数字。

(2)密码输入比较密码输入值的比较主要有两部分 ,密码位数和内容 ,任何一个条件不满足 ,都不能打开锁。

锁内密码为“0000” , key2 和 key1 置低电平 ,分别表示输入“1” 和“0” 。

输入密码前先按start 键,再依次正确输入0000,会在数码管逐一显示,按确认键,经检验 ,输入的密码等于锁内预先设置的密码密码锁开启信号,锁开启。

同时,可以进行密码修改。

若在输入密码的过程中 ,4 位二进制密码出现输入错误 ,那么锁不能开启 ,同时,蜂鸣器发出报警信号。

FPGA课设

FPGA课设

FPGA课程设计—数字密码锁学院:专业班级:姓名:学号:页脚内容1FPGA基于Verilog HDL密码锁设计1. 摘要 (3)2. 题目来源: (4)3. 理论分析 (4)4. 实现过程 (5)4.1顶层模块 (5)4.2蜂鸣器模块 (7)4.3显示模块 (8)4.4控制模块 (13)5. 实验结果 (17)5.1顶层模块时序仿真: (17)5.2蜂鸣器时序仿真 (20)5.3显示模块时序仿真: (21)5.4控制模块时序仿真 (23)6. 总结 (27)7. 参考文献 (28)页脚内容21.摘要随着科技的发展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,安全性不高,电子密码锁其保密性高,使用灵活性好,安全系数高,使用方便,将会是未来使用的趋势。

本设计使用FPGA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。

用Verilog HDL可以更加快速、灵活地设计出符合各种要求的密码锁。

本设计基于Verilog HDL语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为蜂鸣器模块、显示模块、控制模块、顶层模块进行了介绍,给出各个模块的主要代码,在对各个模块的功能进行仿真。

随着现代科技的日益发展,智能化,自动化技术的成熟将会代替以往的人工手动控制。

密码锁不仅可以有效地提高人们的生活效率,节约生活资源,而且十分安全可靠。

电子密码锁运用电子电路控制机械部分,使两者紧密结合,从而避免了因为机械部分被破坏而导致开锁功能失常.大大增加了密码锁得防盗功能。

同时因为电子密码锁不需要携带钥匙,弥补了钥匙极易丢失和仿造的缺陷,方便了锁具的使用。

关键字:页脚内容3密码锁Verilog HDL Quartus II2.题目来源:本设计以007为万能密码在忘记密码时开锁使用。

开始时密码锁处于关闭的状态,输入万能密码将锁打开。

在锁处于打开的状态时设计密码,此时指示灯处于亮的状态,说明锁处于开的状态。

基于FPGA的电子密码锁的研究与设计

基于FPGA的电子密码锁的研究与设计

论文题目:基于FPGA的电子密码锁设计摘要普通的机械锁保密性不好,防盗性差,而且必须使用钥匙。

但是,基于FPGA设计的电子密码锁与普通的机械锁比较来说,就克服了这些不足之处。

该论文主要描述的是一种电子密码锁的设计方法,这种电子密码锁是基于现场可编程门阵列(FPGA)的电子密码锁。

由FPGA构造的电子密码锁系统中,硬件电路可以实现所有的算法,大幅度提高了西戎的工作可靠性。

为了提高设计的效率,可以在更改设计时只更改FPGA中的控制和接口电路,这是因为FPGA的现场可编程功能,也正是利用这一点,可以将更新后的设计下载到FPGA中,省去了更改外部电路设计的麻烦。

所以,这样的系统既可以使工作的可靠性增强也可以更加方便的升级。

系统所实现的功能:用户给电子密码锁设定一个密码,当使用本机键盘开锁时,该密码与用户设定的密码比较,如果密码正确,则开锁;如果密码不正确,用LED灯报警;允许用户重新输入密码。

关键词电子密码锁;FPGA;硬件描述语言;EDAAbstractFPGA-based design of electronic locks is a small digital system,compared with ordinary mechanical locks,has many unique advantages:confidentiality,security and strong,you can not have the keys,remember a password to unlock.This paper describes an approach based on field programmable gate array(FPGA)devices electronic locks design.Construct systems with FPGA devices,all algorithms entirely by hardware circuit to achieve,making the work system reliability greatly improved.As the FPGA with field-programmable function,when you need to change the design,just change the FPGA control and interface circuitry using EDA tools designed updated downloaded to the FPGA without the need to change the external circuit design,greatly improving the design efficiency.Therefore,the use of digital FPGA development system,not only has high reliability,but also extremely easy to upgrade.System implemented features:electronic locks user to set a password when using the keyboard lock,compared with the password set by the user's password,if the password is correct,then unlock;If the password is incorrect,the speaker alarm,allows the user to re- enter the password.Key wordsElectronic locks;FPGA;Hardware Description Language;EDA目录摘要 (I)Abstract (II)前言 (1)第一章概述 (2)1.1 课题背景 (2)1.2 课题研究的目的和意义 (2)1.3 国内外现状 (3)1.4 课题的主要研究工作 (4)第二章相关知识介绍 (5)2.1 FPGA的相关介绍 (6)2.1.1 可编程逻辑器件 (6)2.1.2 FPGA简介 (7)2.1.3 FPGA应用特点 (7)2.1.4 FPGA的设计流程 (9)2.2 硬件描述语言Verilog (11)2.2.1 Verilog语言简介 (11)2.2.2 Verilog语言的优点 (11)2.2.3 Verilog语言的基本结构 (12)2.3 QuartusⅡ软件开发工具 (12)第三章电子密码锁的总体设计 (14)3.1 设计要求 (14)3.2 系统原理框图 (14)3.3 系统主控制流程框图 (15)第四章电子密码锁的软件设计 (17)4.1 主要功能模块设计 (17)4.1.1 输入模块 (18)4.1.2 显示模块 (19)4.3 电子密码锁的仿真 (19)第五章电子密码锁的硬件实现 (24)5.1 电子密码锁的硬件模块实现 (24)5.2 硬件设备 (24)5.3 硬件的实现 (25)结论 (27)参考文献 (28)致谢 (30)前言基于FPGA的电子密码锁是新型现代化安全管理系统,微机自动识别技术和现代安全管理措施技术,包括生物技术、通信技术、电子和机械电等诸多新技术都在其中体现,重要部门出入口安全防范问题因此得到了解决。

密码锁verilog课程设计

密码锁verilog课程设计

密码锁v e r i l o g课程设计Last revision on 21 December 2020课程设计报告课程设计题目:4位串行数字密码锁学号学生姓名:谢渊良专业:通信工程班级:1421302指导教师:钟凯2017年 1月 5日1.摘要随着科技的发展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,安全性不高,电子密码锁其保密性高,使用灵活性好,安全系数高,使用方便,将会是未来使用的趋势。

本设计使用EDA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。

使用EDA环境完成电路的系统综合设计和仿真。

用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁。

本设计基于Verilog HDL语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为键盘模块、连接模块、控制模块进行了介绍,给出各个模块的主要代码,在对各个模块的功能进行仿真。

关键字:密码锁 Verilog HDL2.设计内容设计一个4位数字密码锁子系统1)设计要求 开锁密码为4位二进制,当输入密码与锁内给定的密码一致时,方可开锁。

否则进入“错误”状态,发出报警信号。

2)锁内的密码可调。

3)串行数字密码锁的报警,直到按下复位开关,才停下。

此时,数字密码锁又自动等待下一个开锁状态。

3.系统设计本设计中,FPGA 系统采用硬件描述语言Verilog 按模块化方式进行设计,并用modersim 软件对各个模块进行编写仿真。

键盘模块键盘电路理想接口图:Set本模块采用2×2的扫描键盘电路,对输入信号进行采集,此模块的主要功能是每按下一个按键,flag 产生一个矩形波,作为连接模块的触发信号。

同时key_value 值为所按下键的编码值,与flag 一同传入连接模块。

实际设计接口图:flag键盘模块仿真图:跟据图中所示当输出kevalue :10值的时候,flag 出现一个矩形波。

课程设计fpga密码锁

课程设计fpga密码锁

FPGA实验报告一、实验目的1.设计一个密码锁2.加深FPGA电路原理的理解3.掌握VHDL语言的使用,学会用VHDL语言来编程解决实际问题4.学会使用EDA开发软件设计小型综合电路,掌握仿真的技巧5.学会应用开发系统实现硬件电路,检验电路的功能二、实验内容题目:电子密码锁内容:设计一个4位串行数字锁1.开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁。

否则进入“错误”状态,发出报警信号。

2.锁内的密码可调,且预置方便,保密性好。

3.串行数字锁的报警,直到按下复位开关,才停下。

此时,数字锁又自动等待下一个开锁状态。

三、实验步骤1.系统总框图本系统的硬件部分主要由密码锁按键消抖模块,密码输入比较更改模块,密码显示模块、报警模块组成。

整体系统框图如下图所示。

2.密码锁的主要功能密码锁控制器的主要功能有:(1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。

(2)密码校验:如果有按键按下,直到松开该按键,如果密码校验正确,无变化,否则如果密码校验错误蜂鸣器响,表明密码错误。

(3)错误报警:密码输入错误开始报警。

(4)密码修改:输入密码正确后按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功。

3.密码锁的各个模块(1)按键消抖。

每按下一个键,仅产生一个信号脉冲,作为按键的使能信号,使能信号控制显示的数字。

(2)密码输入比较密码输入值的比较主要有两部分,密码位数和内容,任何一个条件不满足,都不能打开锁。

锁内密码为“0000” , key2 和key1 置低电平,分别表示输入“1” 和“0” 。

输入密码前先按start键,再依次正确输入0000,会在数码管逐一显示,按确认键,经检验,输入的密码等于锁内预先设置的密码密码锁开启信号,锁开启。

同时,可以进行密码修改。

若在输入密码的过程中,4 位二进制密码出现输入错误,那么锁不能开启,同时,蜂鸣器发出报警信号。

CPLD_FPGA设计及应用课程设计数字密码锁

CPLD_FPGA设计及应用课程设计数字密码锁

《CPLD/FPGA设计及应用课程设计》课程设计报告题目:数字密码锁院(系):信息科学与工程学院专业班级: xxxxxxxx学生姓名: xxxxx学号: xxxxxxxxxx指导教师: xxxx20 16年 4 月 11 日至20 16 年 5 月 6 日武昌首义学院制CPLD/FPGA设计及应用课程设计任务书目录1.课程设计目的 (5)2.课程设计题目描述和要求 (5)3.课程设计报告内容 (5)设计思路及原理 (5)设计需要解决的问题 (5)设计进程 (6)4.总结 (11)5.附录 (12)1i数字密码锁设计1.课程设计目的●设计一个四位十进制的密码锁。

●跟深一步的明白得FPGA的用途,精通相应的开发板。

2.课程设计题目描述和要求a):密码锁串行输入四位十进制数字口令b):输入口令全数正确即开锁c):口令输入最大次数3次,要求在完全输入四位以后进行判定口令正确与否;输入3次以后还不能开锁,进入锁死状态d)有相应的显示功能e)能够对输入的口令消隐f)开锁后能再次上锁3.课程设计报告的内容1)设计思路及原理i.密码锁原理利用逻辑电路将外接输入的电信号转化为时序电路,通过内部设定的规那么,当输入的信号通过处置后的时序逻辑达到内部设定的条件是开启某一种状态及时解锁状态,当没达到那种条件时始终维持一种或多种状态。

ii.密码锁的设计要求设计密码锁的系统描述:数字密码锁在设定口令和开锁时要求输入四位十进制数据,当输入状态开启时,输入正确显示一种状态,若是错误那么显示错误次数加1,累计3次锁死状态并报警,若是不输入那么一直维持原先状态;当检测到贮存状态时,输入密码并存储改变原有的贮存密码;当检测到消隐信号时,将不显示输入的数据。

2)设计中需要解决的问题01.时钟扫描读取输入的信号:过小,还没检测到就进入下次判定或多记一次,过大,响应过慢,加上消斗模块后容易引发码间干扰不易读取信号02.密码读取:读入按键开关信号要将信号处置编码送入显示和密码比较状态03.密码比较:第一是要将存入的数字进行存储和逻辑排序,然后将输入的数据进行一一比对,并进行计数,正确与否输出状态信号04.显示模块:将输入模式、开锁状态、密码存储状态和锁死状态等的显示状态显示的编码05.开发板引脚的配置等3)设计进程密码锁的系统描述a)输入输出端口概念:Sdin:输入十进制数信号按键(由于按键不够,将0—9数据以按键按下次数来编译)Lock:上锁按键Sec:解锁按键Clr:确认按键Set:密码存储按键Crack:开锁状态按键Clk:输入数字确信按键Dout:送现输出信号端Yn:选码信号c)1001 数字“9”1010 解锁成功“A”1011 01111111 解锁失败Others 其他状态01-- 上锁状态10-- 00011000 解锁状态●时钟模块由于输入时钟是50MHZ,一样扫描频率一样1000HZ左右,过50分频取得1M的频率后通事后续取得两路时钟来别离接入按键和比对模块。

fpga电子密码锁课程设计

fpga电子密码锁课程设计

fpga电子密码锁课程设计一、课程目标知识目标:1. 学生能理解FPGA的基本原理和电子密码锁的工作机制;2. 学生能掌握使用硬件描述语言(HDL)进行数字电路设计和实现的方法;3. 学生能了解数字电路中常见的加密算法,并运用到电子密码锁的设计中;4. 学生能分析并解决电子密码锁在实际应用中可能遇到的问题。

技能目标:1. 学生能运用所学知识,设计并实现一个基于FPGA的电子密码锁;2. 学生能熟练使用相关硬件描述语言和开发工具,完成电子密码锁的编程与调试;3. 学生能通过实际操作,提高动手能力和团队协作能力;4. 学生能通过课程项目,培养创新思维和问题解决能力。

情感态度价值观目标:1. 学生能够认识到科技对社会和生活的重要性,增强学习科技的兴趣和责任感;2. 学生能够在课程学习中,培养勇于探索、积极进取的精神;3. 学生能够通过团队协作,学会互相尊重、沟通与协作,培养良好的团队精神;4. 学生能够关注电子密码锁在安全领域的应用,提高对国家和社会安全的意识。

二、教学内容1. 数字电路基础:回顾数字电路的基本概念,重点掌握组合逻辑电路和时序逻辑电路的设计原理;教材章节:第一章 数字逻辑基础2. FPGA原理与应用:介绍FPGA的基本结构、工作原理以及编程方法;教材章节:第二章 可编程逻辑器件及其编程技术3. 硬件描述语言(HDL):学习硬件描述语言的基本语法和编程技巧;教材章节:第三章 硬件描述语言VHDL/Verilog基础4. 加密算法:讲解常见的加密算法,如AES、DES等,分析其原理和实现方法;教材章节:第四章 数字信号处理与加密算法5. 电子密码锁设计与实现:结合所学知识,设计并实现一个基于FPGA的电子密码锁;教材章节:第五章 数字系统设计实例分析与综合6. 课程项目与实践:以小组形式进行项目实践,完成电子密码锁的设计、编程、调试和测试;教材章节:第六章 数字系统项目实践教学内容安排和进度:第1周:数字电路基础复习第2周:FPGA原理与应用学习第3-4周:硬件描述语言学习第5周:加密算法学习第6-8周:电子密码锁设计与实现第9-10周:课程项目与实践,成果展示与评价。

基于fpga的数字密码锁设计与实现

基于fpga的数字密码锁设计与实现

一、概述在当今信息技术高度发达的时代,数字密码锁已成为人们生活中常见的安全保障措施之一。

随着FPGA(可编程逻辑门阵列)技术的不断成熟和普及,基于FPGA的数字密码锁设计与实现已经成为一个备受关注的研究方向。

本文将探讨基于FPGA的数字密码锁的设计原理、实现过程以及相关技术细节,为相关领域的研究和应用提供参考。

二、数字密码锁的基本原理1.数字密码锁的基本功能数字密码锁是一种利用密码验证来进行身份识别和门禁控制的设备。

其基本功能包括输入密码、密码验证和门禁控制等。

2.数字密码锁的工作原理数字密码锁通常由键盘、控制单元和执行单元等组成,其工作原理是用户通过键盘输入密码,控制单元接收并验证密码的正确性,然后执行单元根据验证结果控制门禁的开启或关闭。

三、基于FPGA的数字密码锁设计1.基于FPGA的数字密码锁的优势相比传统的基于单片机或嵌入式系统的数字密码锁,基于FPGA的数字密码锁具有更高的灵活性和可扩展性。

FPGA可以根据实际需求进行灵活的硬件逻辑设计,同时兼容多种通信协议和接口,使得其在数字密码锁设计中具有显著的优势。

2.基于FPGA的数字密码锁的设计原理基于FPGA的数字密码锁主要包括密码输入模块、密码验证模块和门禁控制模块。

密码输入模块负责接收用户输入的密码,密码验证模块根据预设的密码进行验证,门禁控制模块根据验证结果控制门禁的开启或关闭。

3.基于FPGA的数字密码锁的设计流程(1)确定需求:明确数字密码锁的功能和性能要求。

(2)硬件设计:设计数字密码锁的硬件逻辑,包括键盘接口、密码验证逻辑和门禁控制逻辑。

(3)软件设计:设计数字密码锁的用户界面和控制逻辑。

(4)综合与实现:将硬件和软件进行综合,实现数字密码锁的功能。

四、基于FPGA的数字密码锁的实现1.硬件设计(1)键盘接口设计:采用矩阵式键盘接口,利用FPGA内部的GPIO 接口进行连接。

(2)密码验证逻辑设计:采用逻辑门设计密码验证逻辑,包括密码存储、密码输入和密码比对等功能。

数电课程设计-基于FPGA的电子密码锁的设计

数电课程设计-基于FPGA的电子密码锁的设计

摘要随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。

电子密码锁与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。

目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。

在实际应用中,由于程序容易跑飞,系统的可靠性能较差。

本文主要阐述了一种基于现场可编程门阵列FPGA器件的电子密码锁的设计方法。

用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。

由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。

因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。

本文采用EDA技术,利用Quartus II工作平台和硬件描述语言,设计了一种电子密码锁,并通过一片FPGA芯片实现。

关键词:电子密码锁;FPGA;硬件描述语言;EDAABSTRACTWith the development of electronic technology, electronic password lock with burglar alarm and other functions replacing less password and poor security mechanical code lock is an inevitable trend. compared electronic password lock with ordinary mechanical locks, it has many unique advantages :confidentiality, and security in nature, do not use the key, remember password can unlock it etc .Most electronic password locks we used now is based upon SCM technology ,SCM is its mainly device ,and the creating of encoding and decoding devices is the fashion of Software mode. In practical application, the reliability of the system may be worse because of easy running fly of the programme.This paper mainly expatiates a design method of electronic password lock based upon Field Programmable Gate Array device. We use FPGA devices to construct system , all of the algorithm entirely achieved by the hardware circuit , because of FPGA has the function of ISP , when the design needs to be changed We only need to change the control and interface circuit of FPGA,EDA tools are used to download the updated design to FPGA without changing the design of the external circuit , this greatly enhance the efficiency of the design .Therefore , we use FPGA to empolder the digital system has not only high reliability but also extremely convenient of upgrading and improvement .In this paper ,we use EDA technology , Quartus II platform and hardware description language designing an electronic password lock ,and it achieved through an FPGA chip.Key words:electronic password lock;FPGA;hardware description language;EDA目录1 绪论 (1)1.1国内外现状及其发展 (1)1.2电子密码锁的原理 (2)1.3电子密码锁的系统简介 (4)1.4系统设计要求 (4)1.5本课题的研究目的和意义 (5)2 现场可编程门阵列FPGA (6)2.1FPGA的基本结构 (6)2.2FPGA的优点 (10)2.3FPGA的设计流程 (11)2.4自顶向下设计法 (17)2.5用模块化设计FPGA (18)3 VHDL硬件描述语言 (20)3.1VHDL语言的基本结构 (20)3.2结构体的描述方式 (21)3.3自上而下(TOP DOWN)的设计方法 (22)4 电子密码锁的设计与仿真 (24)4.1硬件设备 (24)4.2几个主要功能模块的设计 (25)4.3计算机仿真 (32)结束语 (38)参考文献 (39)附录1英文原文 (40)附录2中文译文 (49)附录3源程序 (56)1 绪论1.1 国内外现状及其发展随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。

基于FPGA的数字密码锁

基于FPGA的数字密码锁

基于F P G A的数字密码锁精选文档TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-CPLD/FPGA课程设计项目名称:基于FPGA的数字密码锁设计专业班级:学生学号:学生姓名:指导老师:2016年6月4日摘要本设计是基于现场可编程门阵列FPGA 器件的电子密码锁的设计。

通过Verilog 语言控制4位二进制数,组成数字排列,形成一个简单的数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0。

同时输出输入的次数,当3次以上输入错误时,输出一个报警信号,即使第四、五次输入正确也输出报警信号。

本设计利用Modelsim软件编写Verilog HDL硬件描述语言程序以实现输入密码、开锁、报警功能。

通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。

关键词:现场可编程门阵列;数字密码锁;Verilog HDL;AbstractThis design is the electronic code lock field programmable gate array FPGA devices based design. By Verilog language control 4-bit binary number, composed of figures arranged to form a simple digital lock, assuming that the default password is 4 digits: 0000, correct output when the input is 1, the output of the input error to zero. At the same time the number of input and output, and when more than three times the input error, an alarm signal is output, even if the fourth and fifth also enter the correct output alarm signal.This design uses Modelsim software write Verilog HDL hardware description language program to implement a password lock, alarm function. The simulation debugging, using the programmable device FPGA design basic electronic locks to achieve the desired purpose.Key words: FPGA;The digital combination lock;Verilog HDL;目录第1章所选项目的研究意义概述数字密码锁是一个小型的数字系统,与普通机械锁相比, 具有许多独特的优点: 保密性好, 防盗性强, 可以不用钥匙, 记住密码即可开锁等。

数字密码锁FPGA课程设计报告

数字密码锁FPGA课程设计报告

西安邮电学院FPGA课程设计报告题目:数字密码锁院系:专业班级:学生姓名:导师姓名:起止时间:至2012年9 月21 日FPGA课程设计报告提纲1.任务设计一个简单的数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0。

同时输出输入的次数,当3次以上输入错误时,输出一个超告警信号,即使第四、五次输入正确也输出告警信号。

2.目的通过学习FPGA技术,应用于实践当中,掌握FPGA数字电路系统的开发流程,并且在自己的实践设计中熟练这门技术,同时排除和解决开发中遇到的问题,用Verilog语言编写设计所需要的实现的功能。

3.使用环境(软件/硬件环境,设备等)功能仿真和后仿真采用第三方验证工具(Modelsim),综合与布局布线工具为:Quartus II。

4.FPGA课程设计详细内容4.1 技术规范一、功能定义具体功能如下:(1)、用户初次使用,可按下am_en键进行密码设置。

(2)、开锁时一次完整的输入密码,当输入的密码与设置的密码相同时密码锁打开,即lockopen为高电平,连接的绿灯亮;否则密码锁关闭,即warn_en 为高电平,连接的红灯亮。

(3)、当输入错误的次数>3时,密码锁强制自动关闭。

二、引脚定义4.2 设计方案一、总体设计(1)密码设置或修改模块用户初次使用密码锁时可通过按am_en键进行密码设置,先输入初始密码0000,则进入密码设置,高电平有效。

密码是十进制的四位数字密码。

以后修改密码时,按am_en键,然后输入旧密码,正确时方可进入密码设置选项,否则重新开始。

(2)密码输入模块开锁时,一次完整输入密码后,按下enter键进行密码验证,高电平有效,看输入的数字是否等于原密码的值,密码正确时开锁,否则关闭。

当输入有误时,按下return键,清除输入的数字,重新输入(3)密码输入次数计数模块开始时count=0,当输入密码按下enter键时且密码错误时count+1,当conut>3时,密码锁强制自动关闭。

基于FPGA的数字密码锁

基于FPGA的数字密码锁

CPLD/FPGA课程设计项目名称:基于FPGA得数字密码锁设计专业班级:学生学号:学生姓名:指导老师:2016年6月4日摘要本设计就是基于现场可编程门阵列FPGA器件得电子密码锁得设计。

通过Veril og语言控制4位二进制数,组成数字排列,形成一个简单得数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0.同时输出输入得次数,当3次以上输入错误时,输出一个报警信号,即使第四、五次输入正确也输出报警信号。

本设计利用Modelsim软件编写Verilog HDL硬件描述语言程序以实现输入密码、开锁、报警功能. 通过仿真调试,利用可编程器件FPGA得电子密码锁得设计基本达到了预期目得.关键词:现场可编程门阵列;数字密码锁;Verilog HDL;AbstractThisdesign is the electroniccodelock fieldprogrammable gatearrayFPGA devices baseddesign、ByVeriloglanguage control 4—bit binary number, posed of figures arranged to form a simple digital lock, assuming that the default password is 4 digits: 0000, correct output when the input is 1,the outputof the inputerror to zero、 At the same time the number of input and output, and when more than three times the input error, an alarm signal is output,evenif thefourth andfifthalso enter thecorrect output alarm signal、Thisdesignuses Modelsim softwarewriteVerilog HDLhardware descriptionlanguage program to implement apasswordlock, alarm function、The simulation debugging, using theprogrammabledevice FPGA design basic electronic locks to achieve the desired purpose、Keywords:FPGA;The digital bination lock;Verilog HDL;目录摘要................................................. 错误!未定义书签。

用FPGA实现密码锁设计

用FPGA实现密码锁设计

基于FPGA的密码锁设计(开放实验)课题名称:基于FPGA的密码锁设计实验学院:电子科学与工程学院指导老师:王玉秀实验同学:袁庆学号:B08040230合作成员:吴旺伟、朱斌一、计数指标 (1)1、整体功能要求 (1)2、系统结构要求 (1)3、电器指标 (1)4、设计条件 (1)二、方案设计 (1)三、单元电路设计 (2)1、控制器 (2)2、十转二电路 (5)3、寄存器、比较器、暂存器 (7)4、密码个数计数器 (9)5、15秒定时电路 (9)6、2秒定时器 (10)7、存储器密码产生及密码电路 (11)8、显示指示灯显示电路 (12)9、输入及输出端口 (13)四、总电路图及各部仿真 (14)1、电路总揽图 (15)2、2秒定时器电路仿真 (16)3、15秒定时电路仿真 (16)4、十转二电路仿真 (16)5、密码个数计数器仿真 (17)6、整体过程仿真 (17)(1)、进行真确的密码输入1、2、3、4时个端口电位 (17)(2)、错误密码输入2、1、3、4时关口电位输出为 (18)(3)、输入第一个密码后等待时间超过15秒 (18)五、电路装配及连接 (19)六、系统效果检验 (20)一、技术指标1整体功能要求密码锁又称电子锁,它的主要功能是:1)用数字键方式输入开锁密码,输入密码正确时开锁;2)如果输入密码有误或输入时间过长,则发出报警信号。

2系统结构要求密码锁的系统结构框图如图所示。

其中数字键用于输入密码,密码锁用于判断输入密码的正误,也可以用于修改密码。

开锁LED1亮表示输入正确并开锁,报警LED2亮表示输入有误或输入超时。

3电气指标3.1开锁密码为4位十进制数字,按“确认”键后,输入的数字有效。

3.2输入的4位数字与预设的密码相同时开锁,用LED1灯亮表示,闪亮2秒后自动熄灭。

输入的数字与预设的密码相同时开锁,用LED2灯亮表示,闪亮2秒后自动熄灭。

3.3密码可以通过键盘设定或修改。

课程设计报告-基于fpga的电子密码锁的设计

课程设计报告-基于fpga的电子密码锁的设计

课程设计报告-基于fpga的电子密码锁的设计
一、引言
随着计算机技术的发展,传统的安全锁逐渐淡出人们的视野,取而代之的是一种更加
先进而安全的电子密码锁。

采用FPGA开发的电子密码锁在现代实用锁中变得越来越常见,它能够实现简单易懂、稳定可靠的安全锁功能,从而满足人们对安全问题日益严峻的需求。

本文主要介绍基于FPGA技术设计的电子密码锁的原理及实际应用,旨在为技术研究和产
品设计提供有价值的参考。

二、系统概述
电子密码锁是一种可以根据用户的输入及系统的设置的安全保护锁,它主要由输入接口、控制器、显示屏和锁具电源等组成。

基于FPGA设计的电子密码锁主要分为输入端处
理和控制端处理两部分,其中,输入端利用FPGA控制集成电路(IC)、有源转换器和输入/
输出连接器,实现密码锁的输入模块部分的处理功能;控制端利用FPGA实现温度检测和
按键、加密算法、记录密码信息等功能,满足密码锁的控制要求。

三、工作原理
电子密码锁工作原理主要是建立在输入接口和控制器之间的信息传输上。

当用户通过
输入接口输入密码时,控制器收到输入信号,利用自身中内置的加密算法,将输入的密码
信息和系统设置密码进行比对,如果密码正确,系统会将密码锁打开,从而使得受保护的
物品得到有效的安全保护。

四、总结
基于FPGA技术设计的电子密码锁为现代安全保护提供了一种先进的途径,其安全性
和可靠性得到了极大的提高,使得大多数受保护物品得到有效保护。

电子密码锁以及FPGA 技术的发展正在为我们日常生活与工作提供前所未有的便利,也将带给未来更多安全的思
考与希望。

FPGA课程论文-基于FPGA设计的电子密码锁

FPGA课程论文-基于FPGA设计的电子密码锁

FPGA课程论文摘要基于FPGA设计的电子密码锁是一个小型的数字系统,与普通机械锁相比, 具有许多独特的优点: 保密性好, 防盗性强, 可以不用钥匙, 记住密码即可开锁等。

目前使用的电子密码锁大部分是基于单片机技术, 以单片机为主要器件, 其编码器与解码器的生成为软件方式。

在实际应用中, 由于程序容易跑飞, 系统的可靠性能较差。

本文介绍一种基于现场可编程门阵列FPGA 器件的电子密码锁的设计方法采用VHDL语言对系统进行描述,并在FLEX10K10LC84-4上实现。

系统所实现的功能:用户给电子密码锁设定一个密码,当使用本机键盘开锁时,该密码与用户设定的密码比较,如果密码正确,则开锁;如果密码不正确,则允许用户重新输入密码,最多可输入三次,若三次都不正确,则扬声器报警,直到按复位键才允许再次输入代码。

通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。

当然,该系统在一些细节的设计上还需要不断的完善和改进,特别是对系统的扩展有很好的实用和设计的价值。

关键词:现场可编程门阵列, 硬件描述语言, 电子密码锁, 扬声器一绪言系统以利用可编程器件实现电子密码锁的设计为研究背景、现状以及发展方向,明确指出了电子密码锁面临的问题和所解决的方法。

1.1课题背景基于FPGA的电子密码锁是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,计算机技术,通讯技术,生物技术等诸多新技术。

它是解决重要部门出入口实现安全防范管理的有效措施,适用各种场合,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂、家庭等。

在数字技术网络技术飞速发展的今天,电子密码锁技术得到了迅猛的发展。

它早已超越了单纯的门道及钥匙管理,逐渐发展成为一套完整的出入管理系统。

它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。

在该系统的基础上增加相应的辅助设备可以进行电梯控制、车辆进出控制,物业消防监控、餐饮收费、私家车库管理等,真正实现区域内一卡智能管理。

基于FPGA的电子密码锁设计

基于FPGA的电子密码锁设计

一、前言电子密码锁的使用体现了人们的消费水平、保安意识和科技水平的提高,而且避免了携带甚至丢失钥匙的麻烦。

目前设计密码锁的方法很多,例如传统的PCB板设计、用PLC设计或者单片机设计等等。

而用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法。

VHDL是一种符合IEEE标准的硬件描述语言,其最大的特点是借鉴高级程序语言的功能特性,对电路的行为与结构进行高度的抽象化、规范化的形式描述,并对设计的不同层次、不同领域的模拟验证与综合优化等处理,使设计过程延到高度自动化。

二、方案设计密码锁的的构成主要由密码输入、密码设置、比较控制和报警部分组成,此外密码锁必须能够保存已设置的密码,因而需要一个寄存器来保存密码,同时由于控制电路和报警电路要用到不同的时钟,因而需要一个时序产生电路来生成需要的不同信号,采用分频方法实现。

根据密码锁的电路特点,选用的是实验箱的模式6电路,根据电路功能,在这里设计的密码锁以4位2进制代码作为密码的电子密码锁。

其原理框图如下所示:图一、电子密码锁原理框图三、功能模块的实现1、时序电路在密码锁的电路中,输入计时、报警计时需要的1HZ的时钟脉冲信号,而驱动蜂鸣器工作需要的很高频率的脉冲信号,因而这里采用输入一个高频脉冲(1024HZ)信号来驱动蜂鸣器,采用分频的方法得到1HZ的计时脉冲,程序如下:process(clk_1k)variable cnt1:integer:=0;beginif rising_edge(clk_1k) thenif cnt1=512 thenclk_1〈=not clk_1;cnt1:=0;else cnt1:=cnt1+1;end if;end if;end process;程序说明:clk_1k为输入的1024HZ高频脉冲,cnt为分频得到的1HZ计时脉冲。

2、密码设置为了安全性,密码锁必须能够重复的设定密码,在设定密码锁后,应该设置一个寄存器来存储设定的密码,程序如下:process(rst,password,enter_p) isbeginif rst='0’ thenif enter_p=’1' thenram〈=password;en1<='1';end if;end if;end process;程序说明:rst低电平时所有的模块复位,只有密码设置模块工作;password为设置密码时的输入端,ram就是存储密码的寄存器;enter_p为在这里为密码设置使能端,高电平有效.密码设置的仿真波形如下图,由图中可以清楚地看到在enter_p高电平时寄存器ram中得到了输入的密码1001。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FPGA实验报告一、实验目的1.设计一个密码锁2.加深FPGA电路原理的理解3.掌握VHDL语言的使用,学会用VHDI语言来编程解决实际问题4.学会使用EDA开发软件设计小型综合电路,掌握仿真的技巧5.学会应用开发系统实现硬件电路,检验电路的功能二、实验内容题目:电子密码锁内容:设计一个4 位串行数字锁1.开锁代码为4 位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁。

否则进入“错误”状态,发出报警信号。

2.锁内的密码可调,且预置方便,保密性好。

3.串行数字锁的报警,直到按下复位开关,才停下。

此时,数字锁又自动等待下一个开锁状态。

三、实验步骤1. 系统总框图本系统的硬件部分主要由密码锁按键消抖模块,密码输入比较更改模块,密码显示模块、报警模块组成。

整体系统框图如下图所示。

2.密码锁的主要功能密码锁控制器的主要功能有:(1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。

(2)密码校验:如果有按键按下,直到松开该按键,如果密码校验正确,无变化,否则如果密码校验错误蜂鸣器响,表明密码错误。

(3)错误报警:密码输入错误开始报警。

(4)密码修改:输入密码正确后按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功。

3.密码锁的各个模块(1)按键消抖。

每按下一个键,仅产生一个信号脉冲,作为按键的使能信号,使能信号控制显示的数字。

(2)密码输入比较密码输入值的比较主要有两部分,密码位数和内容,任何一个条件不满足,都不能打开锁。

锁内密码为0000”,key2和keyl置低电平,分别表示输入T和0”。

输入密码前先按start键,再依次正确输入0000,会在数码管逐一显示,按确认键,经检验,输入的密码等于锁内预先设置的密码密码锁开启信号,锁开启。

同时, 可以进行密码修改。

若在输入密码的过程中,4 位二进制密码出现输入错误, 那么锁不能开启, 同时,蜂鸣器发出报警信号。

直到按下复位开关, 报警才停止。

此时, 数字锁又自动进入等待下一次开锁的状态。

(3)密码修改为防止任意进行密码修改, 必须在正确输入密码后, 才能重新设置密码。

输入正确密码后, 锁打开, 就可直接进行修改密码的操作。

修改密码实质就是用输入的新密码去取代原来的旧密码,按确定按键ok, 存储新密码。

(4)报警对50M晶振进行分频,实现对蜂鸣器的控制(5)数码显示八段数码管是电子开发过程中常用的输出显示设备。

在本设计中使用的是8 个四位一体、共阴极型八段数码管。

其单个静态数码管如下图所示。

由于八段数码管公共端连接到VCC(共阳极型),当数码管的中的一个段被输入低电平,则相应的这一段被点亮。

反之则不亮。

四位一体的八段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。

八个数码管的a、b、c、d、e、f 、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。

10(细2<f)Nd)单个数码管管脚示意图本实验通过计数信号count控制数码管亮的个数,用temp信号控制数码管的动态扫描显示,以实现每输入一位密码,数码管显示左移一位。

4.软件仿真(1)密码输入正确时,蜂鸣器不响,beep=1。

(默认密码为0000), 仿真图如下:(2)密码输入错误时(0001),蜂鸣器响,beep=0。

(默认密码为0000),仿真图如下:四、实验总结这次密码锁的设计过程表明,用VHDL可以快速、灵活地设计出符合要求的密码锁控制器,而且操作简单。

可以实现密码输入、密码校验、密码设置和更改等功能。

设计过程能够在设计完成后在Quartus H环境下进行电路的模拟仿真,反馈结果可以验证程序设计的可行性与可靠性。

本密码锁控制器设置的是4 位密码,在系统复位后,输入一个完整的密码串,输入完后,系统会进行比对,如果发现密码吻合,则开门,如果输入的密码串都是错误的,则系统报警。

这样的设计可以很好的满足人们的日常需求。

同时,密码锁还具有密码修改功能,方便操作,使得密码锁的使用更加安全、便捷。

在软件、硬件设计和仿真过程中间我们也遇到不少问题,但最终还是把它们解决了,使得设计符合要求。

除了自己思考设计之外,这与和同学的同心协力的合作与讨论是分不开的的。

相互的探讨使得我们的思路更加开阔,解决问题的办法也更多。

总之,此次课程设计让我收益良多,同时因为有了实践操作,对EDA技术能够更好的掌握和应用了。

VHD程序总代码附:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity lock isport(key1,key2:in std_logic;clk,start,ok: in std_logic; beep:outstd_logic:='1';dig:out std_logic_vector(7 downto 0); seg:out std_logic_vector(7 downto 0) );按键时钟,开始,确定,复位正确,蜂鸣器信号数码管片选信号数码管片内显示end lock;architecture rt1 of lock issignal keyin,password:std_logic_vector(3 downto 0):="0000"; --signal open1:std_logic:='0'; -signalbeep1,keyen1,keyen2:std_logic:='1'; -signal shuru:std_logic; -signal count: std_logic_vector(2 downto 0):="000"; --数signal temp: std_logic_vector(1 downto 0):="00"; begin process(clk,key1)variable m:integer range 0 to 250000; -beginif clk'event and clk='1'thenif key1='0' thenif m=250000 then m:=m;else m:=m+1;end if;if m=249999 then keyen1<='0';else keyen1<='1';end if;else m:=0;end if;end if;end process; 输入密码,密码开锁信号蜂鸣器信号输入信号计数输入密码的位按键消抖process(clk,key2)variable a:integer range 0 to 250000; 按键消抖beginif clk'event and clk='1'thenif key2='0' thenif a=250000 then a:=a;else a:=a+1;end if;if a=249999 then keyen2<='0';else keyen2<='1';end if;else a:=0;end if;end if;end process;process(clk,start,ok) -- 密码输入, 比较, 修改模块beginif clk'event and clk='1'thenif start='0' then shuru<='1';count<="000";keyin<="0000"; open1<='0';beep1<='1';end if;if shuru='1' thenif count="000" thenif keyen1='0' thenkeyin(0)<='0' ;count<=count+1;elsif keyen2='0' thenkeyin(0)<='1' ;count<=count+1;end if;end if;if count="001" thenif keyen1='0' then keyin(1)<='0' ;count<=count+1;elsif keyen2='0' then keyin(1)<='1' ;count<=count+1;end if;end if;if count="010" thenif keyen1='0' thenkeyin(2)<='0' ;count<=count+1;elsif keyen2='0' then keyin(2)<='1' ; count<=count+1;end if;end if;if count="011" thenif keyen1='0' then keyin(3)<='0' ; count<=count+1; shuru<='0';elsif keyen2='0' thenkeyin(3)<='1' ; count<=count+1;shuru<='0';end if;end if;end if;if ok='0'and open1='0' thenif (keyin=password) and count="100" thenopen1<='1'; shuru<='1';elsebeep1<='0';open1<='0';end if;end if;if ok='0'and open1='1'thencount<="000"; password<=keyin;end if;end if;end process;process(clk,start,ok) - 块报警模variable g:integer range 0 to 25000;beginif clk'event and clk='1'thenif g=25000 theng:=0;elseg:=g+1;end if;if g<=12500 and beep1='0' thenbeep<='0'; elsebeep<='1'; end if; end if; end process;process(clk)variable n:integer range 0 to 2500; -- 计数模块beginif clk'event and clk='1'thenif n=2500 thenn:=0;if temp="11"then temp<="00"; else temp<=temp+1;end if;elsen:=n+1;end if;end if;end process;process(clk) -- 数码管显示模块beginif clk'event and clk='1'thenif count="001" thencase temp iswhen "00" => dig<="01111111" ;if keyin(0)='0'then seg<="11000000";else seg<="11111001";end if;when others =>seg<="11111111" ;end case ;elsif count="010" thencase temp iswhen "00" => dig<="01111111" ;if keyin(1)='0'then seg<="11000000";else seg<="11111001";end if;when "01" => dig<="10111111" ;if keyin(0)='0'then seg<="11000000";else seg<="11111001";end if;when others =>seg<="11111111" ;end case ;elsif count="011" thencase temp iswhen "00" => dig<="01111111" ;if keyin(2)='0'then seg<="11000000"; else seg<="11111001";end if;when "01" => dig<="10111111" ; if keyin(1)='0'then seg<="11000000"; else seg<="11111001";end if; when "10" => dig<="11011111" ; if keyin(0)='0'then seg<="11000000";else seg<="11111001";end if; when others =>seg<="11111111" ; end case ;elsif count="100" thencase temp iswhen "00" => dig<="01111111" ;if keyin(3)='0'then seg<="11000000"; else seg<="11111001";end if; when "01" => dig<="10111111" ;if keyin(2)='0'then seg<="11000000"; else seg<="11111001";end if; when "10" => dig<="11011111" ; if keyin(1)='0'then seg<="11000000"; else seg<="11111001";end if;when "11" => dig<="11101111" ; if keyin(0)='0'then seg<="11000000"; elseseg<="11111001";end if; when others =>null;end case ;elsedig<="11111111" ;seg<="11111111";end if;end if;end process ; end rt1;Welcome !!! 欢迎您的下载, 资料仅供参考!。

相关文档
最新文档