电子锁实验报告.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子密码锁设计 设计任务及要求分析…,9,0,输入的密码用数码管显示,最后输入的密码显示在最右边的数码管上,即每输入一位数,密码在数码管上的显示左移一位。可删除输入的数字,删除的是最后输入的数字,每删除一位,密码在数码管的显示右移一位,并在左边空出的位上补充“0”。用一位输出电平的状态代表锁的开闭状态。 根据题目要求,本次设计包括键盘输入电路的设计,输出显示电路的设计,密码控制电路。其中输出显示电路包括数码管显示电路和密码锁开关状态显示电路。 方案比较及认证VHDL 语言设计,使用FPGA 实现,因而体积小,功耗低、性能特别灵活,稍加修改就可以改变密码的位数和输入密码的次数,因而升级和维护都很方便,而且容易做成ASIC 芯片,具有较好的应用前景。但由于结构还比较简单,有待进一步完善。 系统原理阐述2、密码控制电路:包括密码删除、修改与检验。3、输出显示电路。其中,最为关键的是密码控制电路即主电路的设计。 可以为主电路分配如下管脚:其中set为密码设置端口, check为密码检验端口, close为关锁端口, back为删除密码端口, clk时钟输入端口, dn[3..]为数字输入端口,lock密码锁状态显示端口。 在此电路中每输一位数,密码在数码管上左移一位。设制删除密码back,每按下一次back,删除最后输入的数字,左边空处补0。 设置密码确认信号set,当四位密码输入完毕,按下set,设置的密码被存储。 设置密码锁状态信号lock, lock=0表示锁未开,lock=1表示锁开,同时设置关锁信号close,按下close,则锁关闭。 设置密码检验信号check,在lock=0下从数据开关书去四位开锁数字,按下check,若数据等于设置的密码或万能密码,则lock=1 设计方案结构图 根据本次设计的特点,可以根据对密码的处理方式分为密码输入模块,密码存储模块,密码设置模块,密码显示模块。如下图所示: 图1 其中,密码输入模块即为按键编码电路,其原理图如下。 其中n[9..0]为按键输入端口, sout[3..0]为输出端口。按键输入编码通过案件输入高低电平,每按一个键通过编码显示对应的数字。 图2 密码存储模块即使用EPF10K10LC84-3芯片中的寄存器模块。 密码控制模块的原理图如所示。其中set为密码设置端口, check为密码检验端口, close为关锁端口, back为删除密码端口, clk时钟输入端口, dn[3..]为数字输入端口,sout[15..0]为16位输出端口,lock密码锁状态显示端口。 图3 软件设计软件思想流程图整体流程图 图4 密码设置流程图 图6 源程序及程序注释library ieee; ---定义实体 use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity tra is port( n:in std_logic_vector(9 downto 0); ---定义按键输入端口 sout:out std_logic_vector(3 downto 0)); ----定义编码输入端口 end tra; architecture at of tra is -----定义结构体 signal temp:std_logic_vector(3 downto 0); begin process(n) begin case n is ----输入键编码 when 0000000001=temp=0001; when 0000000010=temp=0010; when 0000000100=temp=0011; when 0000001000=temp=0100; when 0000010000=temp=0101; when 0000100000=temp=0110; when 0001000000=temp=0111; when 0010000000=temp=1000; when 0100000000=temp=1001; when 1000000000=temp=0000; when others=temp=1111; end case; end process; sout=temp; ----sout怎么

文档评论(0)

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

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

1亿VIP精品文档

相关文档