基于FPGA的电密码锁设计.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA的电密码锁设计,基于fpga的密码锁设计,基于fpga的电子密码锁,基于fpga的密码锁,数字密码锁电路设计,fpga外围硬件电路设计,fpga电源设计,fpga电路设计,fpga硬件电路设计,fpga外围电路pcb设计

基于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 is port( 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 is signal 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; begin process(clk) ---定义个存储器将密码存放在keyin中 begin if clkevent and clk=1 then keyin=key; end if; end process; prr=pdan or rw1 or rin or ok; st: process(keyin,prr,ok1) -----第一次修改密码 begin if ok1=1 then start=0; elsif (keyin/and prr=0) then start=1; else start=0; end if; end process; inkey: process(key,start,clk) ----输入密码时间进入记时状态 begin if clkevent and clk=1 then ok1=0;ok2=0; if start=1 then sbuf1=keyin; ----将密码放入ro

文档评论(0)

fzhuixlu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档