电子锁实验报告

上传人:re****.1 文档编号:488250492 上传时间:2023-03-06 格式:DOCX 页数:8 大小:20.64KB
返回 下载 相关 举报
电子锁实验报告_第1页
第1页 / 共8页
电子锁实验报告_第2页
第2页 / 共8页
电子锁实验报告_第3页
第3页 / 共8页
电子锁实验报告_第4页
第4页 / 共8页
电子锁实验报告_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《电子锁实验报告》由会员分享,可在线阅读,更多相关《电子锁实验报告(8页珍藏版)》请在金锄头文库上搜索。

1、本文格式为Word版,下载可任意编辑电子锁实验报告 电子密码锁设计 设计任务及要求分析 设计一个电子密码锁,在锁开的状态下输入密码,设置的密码共 4 位,用数据开关 K1K10 分别代表数字 1,2,9,0,输入的密码用数码管显示,最终输入的密码显示在最右边的数码管上,即每输入一位数,密码在数码管上的显示左移一位。可删除输入的数字,删除的是最终输入的数字,每删除一位,密码在数码管的显示右移一位,并在左边空出的位上补充0。用一位输出电平的状态代表锁的开闭状态。 依据题目要求,本次设计包括键盘输入电路的设计,输出显示电路的设计,密码掌握电路。其中输出显示电路包括数码管显示电路和密码锁开关状态显示电

2、路。 方案比较及认证 在本次设计中,我们使用的 Altera 公司的 FPGA 芯片 EPF10K10LC84-3。由于采纳 VHDL 语言设计,使用 FPGA 实现,因而体积小,功耗低、性能特殊敏捷,稍加修改就可以转变密码的位数和输入密码的次数,因而升级和维护都很便利,而且简单做成 ASIC 芯片,具有较好的应用前景。但由于结构还比较简洁,有待进一步完善。 系统原理阐述 在本试验中采纳的是VHDL编程,通过文本编辑方式建立模块,通过原理图方式将生成的图形符号连接,然后再下载,进行硬件的仿真。 为达到密码锁的以上功能,可将电子密码锁分为以下几个模块进行设计:按键输入电路:2、密码掌握电路:包括

3、密码删除、修改与检验。3、输出显示电路。其中,最为关键的是密码掌握电路即主电路的设计。 可以为主电路安排如下管脚:其中set为密码设置端口, check为密码检验端口, close为关锁端口, back为删除密码端口, clk时钟输入端口, dn3.为数字输入端口,lock密码锁状态显示端口。 在此电路中每输一位数,密码在数码管上左移一位。设制删除密码back,每按下一次back,删除最终输入的数字,左边空处补0。 设置密码确认信号set,当四位密码输入完毕,按下set,设置的密码被存储。 设置密码锁状态信号lock, lock=0表示锁未开,lock=1表示锁开,同时设置关锁信号close,

4、按下close,则锁关闭。 设置密码检验信号check,在lock=0下从数据开关书去四位开锁数字,按下check,若数据等于设置的密码或万能密码,则lock=1 设计方案结构图 依据本次设计的特点,可以依据对密码的处理方式分为密码输入模块,密码存储模块,密码设置模块,密码显示模块。如下图所示: 密码存储模块密码掌握模块密码显示模块密码输入模块 图 1 其中,密码输入模块即为按键编码电路,其原理图如下。 其中n9.0为按键输入端口, sout3.0为输出端口。按键输入编码通过案件输入凹凸电平,每按一个键通过编码显示对应的数字。 图2 密码存储模块即使用EPF10K10LC84-3芯片中的寄存器

5、模块。 密码掌握模块的原理图如所示。其中set为密码设置端口, check为密码检验端口, close为关锁端口, back为删除密码端口, clk时钟输入端口, dn3.为数字输入端口,sout15.0为16位输出端口,lock密码锁状态显示端口。 图3 软件设计 软件思想 为了简化设计过程,依据 fpga 的设计特点,我在本次设计过程中将整个软件设计分成不同的功能模块:键盘输入模块,数码管显示模块,密码存储模块,密码匹配模块。对上述每个模块进行程序编程和波形仿真正确以后,再把它们添加至工程下进行整体编译,管脚安排和整体原理图生成。最终对整个工程进行功能仿真。 流程图 整体流程图 图 4 密

6、码设置流程图 图 6 是否有数据输入?数值显示并提示正确与否开头密码匹配推断?是否重新设置密码?新密码确认并存储结束NOYESYESNONO开头设置密码是否有键值输入?存储密码并显示功能键或数值键?进行功能设置密码是否设置完成?结束设置NOYESYESNO 源程序及程序解释 键盘输入的 电路的 VHDL 语言源程序 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); -定义按

7、键输入端口 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 00000100

8、00=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 怎么传出的 end at; 的 数码管显示电路的 VHDL 语言源程序 library ieee; use ieee.std_logic_1164.all; use ieee.

9、std_logic_unsigned.all; entity leds is -定义实体 port(din:in std_logic_vector(15 downto 0); -16 输入信号 clk:in std_logic; -时钟信号 con: buffer std_logic_vector(1 downto 0); led7:out std_logic_vector(6 downto 0); -七段数码管输入信号 sn:out std_logic_vector(2 downto 0); -数码管七段译码信号 end leds; architecture he of leds is -定

10、义结构体 signal db:std_logic_vector(3 downto 0); begin process(clk,din) begin if clkevent and clk=1 then con=con+1; -数码管的片选计数 end if; if(con=00) then -片选为 0,03 位显示 db=din(3 downto 0); sn=000; elsif(con=01) then -片选为 1,47 位显示 db=din(7 downto 4); sn=001; elsif(con=10) then -片选为 2,811 位显示 db=din(11 downto

11、8); sn=010; elsif(con=11) then -片选为 3,1215 位显示 db=din(15 downto 12); sn=011; end if; case db is -数码管的译码 when 0000=led7=0111111; when 0001=led7=0000110; when 0010=led7=1011011; when 0011=led7=1001111; when 0100=led7=1100110; when 0101=led7=1101101; when 0110=led7=1111101; when 0111=led7=0000111; when

12、 1000=led7=1111111; when 1001=led7=1101111; when others=led7=0000000; end case; end process; end he; 的 密码存储电路的 VHDL 语言源程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity regm is -实体定义port(set,check:in std_logic; clk:in std_logic; c:in std_logic_vector(15 downto 0);

13、 a,b:out std_logic_vector(15 downto 0); clr:out std_logic); end regm; architecture behv of regm is -结构体定义 begin process(set,check,clk) begin if clkevent and clk=1 then if set=1 then -设置密码时,输入数据送给 a,显示电路清零 a=c; clr=0; else clr=1; end if; if check=1 then -检验时,输入数据送给 b b=c; end if; end if; end process;

14、 end behv; 的 密码匹配电路的 VHDL 语言源程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity compare is -实体定义 port(a,b:in std_logic_vector(15 downto 0); sd0:out std_logic); end compare; architecture a of compare is -结构体定义 begin process(a,b) begin if a0000000000000000 and b0000000000000000 then -若有按键 if a=b then -若 a=b sd0=0; -触发器置位为 1 elsif a=1000100010001000then -或为万能密码,触发器置位为 1 sd0=0; else sd0=1; end if; end if; end process; end a; 的 密码掌握电路的 VHDL 语言源程序 library ieee;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号