EDA电子密码锁设计报告_第1页
EDA电子密码锁设计报告_第2页
EDA电子密码锁设计报告_第3页
EDA电子密码锁设计报告_第4页
EDA电子密码锁设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.15-/NUMPAGES17目录TOC\o"1-3"\h\u19349摘要: -2-26618第一章:系统设计总述 -3-262701.1设计要求 -3-68211.2设计方案 -3-11365第二章:总体程序设计 -3-298472.1整体组装设计原理图 -4-201902.2顶层模块程序调用 -4-260832.2.1程序部分 -4-133052.2.2整体原理文件 -6-16956第三章:单元模块程序设计 -6-225483.1输入模块 -7-56543.1.1输入模块程序 -7-228133.1.2输入模块元件 -8-260623.1.3输入模块仿真 -9-60473.2电子密码锁系统控制模块 -9-120213.2.1控制模块程序 -10-13513.2.2控制模块元件 -12-13443.2.3控制模块仿真 -13-122013.3显示模块 -13-73023.3.1显示模块元件 -16-40233.3.2显示模块仿真 -16-20474第五章:收获与体验 -17-11289参考文献 -18-1统设计总述1.1设计要求1、密码输入:每按下一个键,要求在数码管上显示,并依次左移;2、密码删除:每删除一位,数码管上的显示右移一位,在左边空出的位补充零;3、密码设置:当四位密码输入完毕,按下设置功能键进行设置.4、密码检验:输入密码,按下检验键.1.2设计方案在电子密码锁的设计中,我首先考虑的方法:是用密码输入删除控制模块、动态扫描模块、寄存器模块、比较模块、触发模块实现的。在密码输入删除控制模块中,每输入一位数,数码管左移一位,设置删除信号back,每按一次,删除最后输入的数字,密码在数码管显示右移一位,左边空处0。设置密码确认信号set,但四位密码输入完毕后,按下set,则密码被送到寄存器锁存,比较器模块得到数据A,同时密码显示电路清零。设置密码锁状态显示信号lock。Lock=0表示锁未开,lock=1表示锁开,设置关锁信号close,当密码送到寄存器模块锁存后,按下close,则lock=0.设置密码检验信号check,在lock=0下从数据开关输入四位开锁数据,按下check,则开锁数码送寄存器锁存,数据比较模块得到数据B,若A=B,则触发器被置"1".设计成三个模块:开关编码模块、控制模块、动态显示模块设计的总结构图如图1.1开关编码输入模块开关编码输入模块输入、删除、设置、检验控制模块动态显示模块图1.1设计总结构图2总体程序设计2.1整体组装设计原理图系统的整体组装设计有密码按键输入模块、密码控制模块、密码显示模块三部分组成,系统整体组装原理图如图2.1所示。图2.1系统整体组装原理图2.2顶层模块程序调用2.2.1程序部分libraryieee;useieee.std_logic_1164.all;librarywork;entityeleclockis port <clk2_1:instd_logic;clk1_1:instd_logic;key_1:instd_logic_vector<9downto0>;set_1:instd_logic;check_1:instd_logic;close_1:instd_logic;back_1:instd_logic;led_1:outstd_logic_vector<6downto0>;sn_1:outstd_logic_vector<2downto0>;lock_1:outstd_logic>;endeleclock;architecturebdf_typeofeleclockiscomponentleds port<din:instd_logic_vector<15downto0>;clk:instd_logic; con:outstd_logic_vector<1downto0>;led7:outstd_logic_vector<6downto0>;sn:outstd_logic_vector<2downto0>>;endcomponent;componentart port<clk:instd_logic;set:instd_logic;check:instd_logic;close:instd_logic;back:instd_logic;dn:instd_logic_vector<3downto0>; sout:outstd_logic_vector<15downto0>;lock:outstd_logic>;endcomponent;componenttra port<n:instd_logic_vector<9downto0>; sout:outstd_logic_vector<3downto0>>;endcomponent;signal synthesized_wire_3:std_logic_vector<15downto0>;signal synthesized_wire_4:std_logic_vector<3downto0>;beginb2v_inst1:ledsportmap<din=>synthesized_wire_3<15downto0>,clk=>clk2_1,led7=>led_1<6downto0>,sn=>sn_1<2downto0>>;b2v_inst2:artportmap<set=>set_1, check=>check_1, close=>close_1, back=>back_1, clk=>clk1_1, dn=>synthesized_wire_4,sout=>synthesized_wire_3<15downto0>,lock=>lock_1 >;b2v_inst3:traportmap<n=>key_1<9downto0>, sout=>synthesized_wire_4 >;endbdf_type;2.2.2顶层模块原理文件顶层模块原理文件如图2.2图2.2顶层模块原理图3单元模块程序设计3.1按键输入模块按键输入与对应的编码输出之间的关系如表3-1所示表3-1按键编码按键输入编码输出对应的数字0000000001000110000000010001020000000100001130000001000010040000010000010150000100000011060001000000011170010000000100080100000000100191000000000000003.1.1输入模块程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitytraisport<n:instd_logic_vector<9downto0>;定义按键输入端口sout:outstd_logic_vector<3downto0>>;定义编码输出端口endtra;architectureatoftrais定义结构体signaltemp:std_logic_vector<3downto0>;begin process<n> begin casenis输入键编码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";whenothers=>temp<="1111";endcase;endprocess;sout<=temp;endat;3.1.2输入模块元件图3.1电子密码锁键盘输入3.1.3输入模块仿真图3.2键盘输入仿真3.2电子密码锁系统控制模块密码锁的控制电路是整个电路的控制中心。设置set为密码设置端口,check为密码检验端口,close为关锁端口,back为删除密码端口,clk时钟输入端口,dn[3..0]为3位数字输入端口,sout[15..0]为16位输出端口,lock密码锁状态显示端口。在此电路中每输一位数,密码在数码管上左移一位。设置删除密码back,每按下一次back,删除最后输入的数字,左边空处补0。设置密码确认信号set,当四位密码输入完毕,按下set,设置的密码被存储。设置密码锁状态信号lock,lock=0表示锁未开,lock=1表示锁开。设置关锁信号close,按下close,则锁关闭。设置密码检验信号check,在lock=0下从数据开关书去四位开锁数字,按下check,若数据等于设置的密码或万能密码,则lock=1。模块程序流程图如图3.3开始开始输入数据数码管向左移删除右移Back=’1’Set=’1’Close=’1’校验是否正确是否有判断按键输入是否有判断按键输入check=’1’设置密码有关锁,显示为0继续输入无结束图3.3控制模块程序流程图3.2.1控制模块程序密码锁控制电路的VHDL源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all; entityartis port<set,check,close,back,clk:instd_logic;set密码设置信号,check密码检验信号,close关锁信号back密码删除信号,clk时钟信号dn:instd_logic_vector<3downto0>;sout:outstd_logic_vector<15downto0>;16位输入信号lock:outstd_logic>;设置密码锁状态信号endart;architectureatofartis定义结构体signalch:std_logic;begin process<clk,dn>定义进程变量variablelock_1:std_logic;variableacc:std_logic_vector<15downto0>;variabletemp1,temp2,temp3,temp4:std_logic_vector<3downto0>;beginch<=not<dn<0>anddn<1>anddn<2>anddn<3>>;设置按键输入上升沿lock_1:='0';ifclk'eventandclk='1'thenifch='1'then密码左移显示temp4:=temp3;temp3:=temp2;temp2:=temp1;temp1:=dn;endif;ifback='1'then密码删除右移显示temp1:=temp2; temp2:=temp3; temp3:=temp4; temp4:="0000";lock_1:='0';endif;ifset='1'then密码设置acc:=temp4&temp3&temp2&temp1;lock_1:='0';endif;ifcheck='1'then密码校验 ifacc=temp4&temp3&temp2&temp1then lock_1:='1';elsiftemp4="1000"andtemp3="1000"andtemp2="1000"andtemp1="1000"thenlock_1:='1'; endif;endif;ifclose='1'then lock_1:='0';密码锁的关闭 temp1:="0000"; temp2:="0000"; temp3:="0000"; temp4:="0000";endif;endif;sout<=temp4&temp3&temp2&temp1;lock<=lock_1;endprocess;endat;3.2.2控制模块元件控制原理封装元件如〔图3.3所示。图3.3〔电子密码锁控制3.2.3控制模块仿真图3.4〔控制模块仿真3.3显示模块密码显示电路主要将显示数据的BCD码转换成相对应的编码。选用七段数码管显示电路将待显示数据的BCD码转换成数码器的七段显示驱动编码。七段码显示器外形与笔划如图3.5:daefcbgdaefcbg图3.5七段码显示器外形与笔划字形与代码的对应关系如表3-2:表3-2BCD七段译码器真值表输入输出字形DCBAabcdefg000011111100000101100001001011011012001111110013010001100114010110110115011010111116011111100007100011111118100111110119开始开始计数片选为0,0~3位显示片选为1,4~7位显示片选为2,8~11位显示片选为3,12~15位显示结束图11—数码管动态显示流程图libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityledsis定义实体port<din:instd_logic_vector<15downto0>;16输入信号clk:instd_logic;时钟信号con:bufferstd_logic_vector<1downto0>;led7:outstd_logic_vector<6downto0>;七段数码管输入信号sn:outstd_logic_vector<2downto0>>;数码管七段译码信号endleds;architectureheofledsis定义结构体signaldb:std_logic_vector<3downto0>;beginprocess<clk,din>beginifclk'eventandclk='1'thencon<=con+1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论