




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
宁夏理工学院EDA课程设计摘要随着电子产品向智能化和微型化的不断发展,EDA技术作为现代电子设计最新技术的结晶,给电子系统的设计带来了革命性的变化。本论文设计一种基于VHDL的电子密码锁系统,该系统具有软硬件设计简单、易于开发、成本低、安全可靠、操作方便等特点,可作为产品进行开发,应用于住宅,办公室的保险箱及档案等需要防盗的场所,有较强的实用性。本系统由Quartus II软件、矩阵键盘、LED显示和报警系统组成。4*4键盘组成09数字键,每按下一个键,相关键的值在数码管上显示,并依次左移;能够清除密码输入,并设置预置密码为“12345678”;修改密码时,将当前输入设为新的密码;能完成上锁和开锁功能;当输入密码和预置密码一样时即可开锁。具有确认、取消、修改、开锁、闭锁功能,用8段数码管组成显示电路提示信息。关键词:QuartusII;VHDL;电子密码锁;矩阵键盘;7段数码显示器I宁夏理工学院EDA课程设计AbstractWith intelligent electronics and miniaturization to the continuous development, EDA technology as the latest technology of modern electronic design crystallization, to the design of electronic systems has brought a revolutionary change. This paper to design a VHDL-based electronic code lock system, which has the software and hardware design is simple and easy development, low cost, safe, reliable, easy to operate, as product development, in residential, office safes and file places that require security, there is a strong practical. The system consists of the Quartus II software, matrix keypad, LED display and alarm system. 4 * 4 keyboard form 0 to 9 number keys, each press of a key, the relevant key values in the digital tube display, and turn left; to clear the password input and set the preset password is 12345678; change password , the current input is set to the new password; to complete the locking and unlocking function; when the input password and the preset password can unlock the same time. Has confirmed, cancel, modify, lock, lockout, 8-segment LED display circuit composed message.Key words:QuartusII;VHDL;Electronic locks; matrix keyboard; 7-segment display 24宁夏理工学院EDA课程设计目 录摘要IAbstractII第一章 绪论11.1选题依据11.2设计功能21.3本人任务2第二章 系统方案选择32.1设计方案的选择32.2根据方案拟实现的具体功能4第三章 硬件原理及软件程序设计53.1软件设计流程53.2各模块程序设计53.2.1键盘输入部分53.2.2 键盘消抖电路63.2.3 移位寄存电路83.2.4 密码验证及改密电路113.2.5 电锁控制指示电路123.2.6 译码输出电路程序143.2.7总电路17结束语21感想22参 考 文 献23宁夏理工学院EDA课程设计 第一章 绪论1.1选题依据在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的方法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用既不方便,且钥匙丢失后安全性就打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,客服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都有大大提高一步。随着大规模集成电路技术的发展,特别是VHDL的问世,出现了带微处理的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能使用于保密要求的箱、柜、门等。而且指纹识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术与水平与市场的接受程度,电子密码锁是这类电子防盗产品的主流。1.2设计功能基于以上思路,本次电子密码锁的设计,主要具有如下功能:(1)8位串行输入,锁内事先设置给定的密码;(2)若输入密码正确,则输出一个信号表示输入密码正确,开锁;(3)若输入密码错误,则输出一个信号表示密码错误,同时发出报警信号,知道按下复位开关,报警停止,进入下一次开锁环节1.3本人任务 本次的课程设计,自己主要负责编写修改程序,及程序编译仿真,本次实训没有编写顶层文件,是通过连接的.bdf电路图的原理图输入方式,还有进行仿真分析修改。最后就是做PPT,答辩。第二章 系统方案选择2.1设计方案的选择在本次设计中提出了两种方案:一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案,还有一种是用VHDL语言编程方案。下面对这两种方案做分析。方案一:采用数字电路控制。其原理方框图如图2-1所示。 密码修改电路密码校验电路键盘输入开锁电路执行电路报警指示电路开门图2-1 数字密码锁电路方案采用数字密码锁电路的好处就是设计原理比较易懂。用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有8个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入。 电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路。方案二:采用一种是用Quartus II软件编程,利用VHDL描述数字系统的结构,行为,功能和接口,及其控制的准确性,来实现密码锁的设计。如图2-2所示: 矩阵键盘控制LED数码显示电路VHDL编程图2-2设计方案通过比较以上两种方案,VHDL编程方案有较大的活动空间,不但能实现锁要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用第二种方案。2.2根据方案拟实现的具体功能1、论文的设计要求:1)设置8位密码,密码通过键盘输入,若密码正确,则将锁打开。2)密码可以由用户自己修改设定(只支持8位密码),锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。3)报警、锁定键盘功能。密码输入错误数码管显示出现错误提示,若密码 输入错误,蜂鸣器报警。2、本论文既定的设计功能描述:1)加电后,数码管上没有任何显示,当按下开锁键,数码管出现“”并闪烁。2)输入密码时,逐位显示。密码输入完后,按下“确定”键,密码如果正确,数码管亮。这时,再按下“关锁”键,数码管就出现“”静止不动,实现闭锁功能,按任一个键都不会有反应,只有按开锁重新开始。输入密码过程中,如果不小心输入错误,可按“取消”键,删除输错的密码。3)修改密码,按下修改键,连续输入新密码,按确定键即可。宁夏理工学院EDA课程设计第三章 硬件原理及软件程序设计3.1软件设计流程 根据第二章的设计方案并结合实际情况,进行单元电路设计后得电子密码锁的硬件设计机。主要由三部分组成:4*4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外,系统还有LED提示灯,报警蜂鸣器等。首先用键盘输入密码,通过消抖后进入存储器,输入密码与设定的密码,相同时开锁,指示灯亮,当输入密码错误时,扬声器报警。系统顶层框图较为简单,如图3-1所示:密码输入电路 扫描信号 按键输入键盘译码弹跳消除键盘键盘扫描显示电路 数码管显示按键数据存储数值比较开/关锁报警,指示灯图3-1 系统顶层框图3.2各模块程序设计3.2.1键盘输入部分4*4按键分行线和列线去控制,行线连接16个按键的一端,列线连接16个按键的另外一端,当给行线(或者列线)一个信号,有按键按下的时候读回来的时候的数据是不一样的,也就是证明有按键按下!当行信号(KEY)接到高电平,当没有键按时,行线与列线(KEYSCAN)是断开的,且行线都是高电平(1111),行信号作为CPLD、列信号作为CPLD。可以设置列线初始状态为低电平(0000)。信号为从上到下的顺序。键盘输入的原理图如图3-2所示:图3-2 4*4键盘输入原理图根据需要,本例子的4*4键盘设定10个数字键(09)和4个功能键(确认键、取消键、开锁键、闭锁键),键盘的布局如图3-3所示。图3-3 矩阵键盘3.2.2 键盘消抖电路因为按键大多是机械式开关,在开关切换的瞬间会在接解点出现来回弹跳的现象,虽然只是按了一次键,实际产生的按键信号却不只跳动一次,经过取样信号的检查后,将会造成误码判断,认为是按了两次键。消除按键抖动可以用硬件电路来实现,例如,利用RS触发器来锁定按键状态,消除抖动的影响。也可以利用现成的专用消抖电路,如MC14490就是六路消抖电路。较为简单的方法是用软件延时方法来消除按键的抖动,也就是说,一旦发现有按键按下,就延时20ms以后在测按键的状态。这样就避免开按键发生抖动的那一段时间,使CPU能可靠地读按键状态。在编制键盘扫描程序时,只要发现按键状态有变化,即无论是按下还是松开,程序都应延时20ms以后再进行其他操作。如果调整取样频率,弹跳现象可得到改善。本论文应用D触发器可以实现消抖作用。键盘消抖电路的程序代码:library ieee;use ieee.std_logic_1164.all;entity d4 is port is( clk:in std_logic; a: in std_logic_vector(3 downto 0); rest1,querenj1,gaimij1,sanchuj1:in std_logic; q:out std_logic_vector(3 downto 0); rest2,querenj2,gaimij2,sanchuj2:out std_logic);end d4;architecture f of d4 issignal qi:integer range 0 to 3;signal clk_temp:std_logic;begin process(clk) begin if rising_edge(clk) then if qi=3 then qi=0; clk_temp=not clk_temp; else qi=qi+1; end if;end if;end process;process(clk_temp)begin if clk_temp event and clk_temp =1 then q =a;rest2=rest1;querenj2=querenj1; gaimij2=gaimij1;sanchuj2=sanchuj1; end if;end process;end f;3.2.3 移位寄存电路 由于按键按下时,键盘输入的是4位二进制数,每次输入后都会前一次输入的都会消失,所以必须对键盘输出进行移位储存才能得要16位二进制数即4位十进制数。移位寄存工作原理就是在下一次数据输入前,对其进行移位寄存以确保不会丢失,如我们定义输入为4位二进制数,输出为16为二进制数,由低位向高位移位,第一次输入的是0000,第二次输入的是0001,第三次输入的是0010,第四次是0011,这时输出的就是0000000100100011。如表3-1。当用户发现输入密码错误时可以进行删除,这里删除采用了移位操作,按一次删除键输出数据就向低位移动已达到删除功能。原理图如图3-4 VHDL语言移位寄存电路原理图所示表3-1移位寄存器功能表输入数据输出数据第一次00000000第二次000100000001第三次0010000000010010第四次00110000000100100011第五次01000001001000110100第六次010100010010001101000101第七次0111000100100011010001010111第八次10000001001000110100010101111000 : 图3-4移位寄存电路 移位寄存电路程序代码: library ieee; use ieee.std_logic_1164.all;entity ywjcq isport(input:in std_logic_vector(3 downto 0); rest,shanchu,clk :in std_logic; output :out std_logic_vector(31 downto 0); end ywjcq;architecture behave of ywjcq isbeginprocess(clk)variable output_temp: std_logic_vector(31 downto 0);begin if rest=1 then output=null; elsif (rising_edge(clk) then if shanchu=0 then output_temp(31 downto 28):=output_temp(27 downto 24); output_temp(27 downto 24):=output_temp(23 downto 20); output_temp(23 downto 20):=output_temp(19 downto 16); output_temp(19 downto 16):=output_temp(15 downto 12); output_temp(15 downto 12):=output_temp(11 downto 8); output_temp(11 downto 8):=output_temp(7 downto 4); output_temp(7 downto 4):=output_temp(3 downto 0); output_temp(3 downto 0):=input; else output_temp(3 downto 0):=output_temp(7 downto 4); output_temp(7 downto 4):=output_temp(11 downto 8); output_temp(11 downto 8):=output_temp(15 downto 12); output_temp(15 downto 12):=output_temp(19 downto 16); output_temp(19 downto 16):=output_temp(23 downto 20); output_temp(23 downto 20):=output_temp(27 downto 24); output_temp(27 downto 24):=output_temp(31 downto 28); end if; end if;output=output_temp;end process;end behave;移位寄存仿真测试波形图如图3-5所示:图3-5移位寄存波形图3.2.4 密码验证及改密电路密码验证实际上就是对输入的密码进行比较,这里事先内置了初始密码,只有当用户输入的密码与初始密码一致时,输出就为高电平。这里也可以外置密码,但按下改密键时,就处于改密状态。然后由键盘输入需要修改的密码。原理图如图36密码验证及改正电路图36密码验证及改正电路密码验证及改正程序代码:library ieee;use ieee.std_logic_1164.all;entity yzgm is port (clk,gaimij2,queren:in std_logic; input2:in std_logic_vector(31 downto 0); output2:out std_logic);end yzgm;architecture a of yzgm is begin-input2_temp=00010010001101000101011001111000;process (clk,gaimij2)variable input2_temp:std_logic_vector(31 downto 0); begininput2_temp:=00010010001101000101011001111000; if gaimij2=0 then if clkevent and clk=1 then if queren=1 then if input2_temp=input2 then output2=1; else output2=0; end if; end if; end if; else input2_temp :=input2; end if;end process;end a;验证改密仿真测试波形图如图3-7所示:图3-7(a)验证波形图图3-7(b)改密验证波形图3.2.5 电锁控制指示电路电锁控制电路是整个电路的控制中心,主要完成如下功能:清零键:按下此键恢复原始状态即错误计数归零,发光二极管熄灭,蜂鸣器停止工作。控制当密码正确时指示灯亮,密码错误时蜂鸣器报警。原理电路如图3-8所示:图3-8 电锁控制电路电锁控制程序代码:library ieee;use ieee.std_logic_1164.all;entity dskz isport( clk,input,reset,queren:in std_logic; light:out std_logic:=0; alarm:out std_logic:=0);end dskz;architecture face of dskz isbegin process(clk) beginif reset=1 then light=0; elsif input=1then light=1; else light=0; end if; if reset=1 then alarm=0; elsif(clkevent and clk=0) then if queren=0then alarm=0; elsif input=0then alarm=1; else alarm=0; end if;end if; end process;end face; 电锁控制仿真测试波形图如图3-9所示:图3-9电锁控制指示波形图3.2.6 译码输出电路程序LED发光器件一般常用的有两类:数码管和点阵。7段数码管属于LED发光器件的一种。7段数码管由8个发光二极管LED组成,其中包括7个细长型的LED和1个小数点型的LED组成,每个LED称为一字段,分别为a.b.c.d.e.f.g.dp共八段,其中dp为小数点,如图3-10所示:图 3-10七段数码管 图3-11 LED管的译码电路数码管常用的有10根脚管,每一段有一根脚管,另外两根脚管为一个数码管的公共端,两根之间相互连通,即为一脚。数码管有共阳极(其中LED的阳极都连接在一起)和共阴极(其中LED的阴极都连接在一起)两种结构形式。七段数码管可以显示包括小数点的09数字和部分的英文字母。为了获得不同的字型,数码管各段所加的电平也不同,编码也不一样。字型、字段和编码的关系如表3-2所示(以共阴极数码管为例)。原理电路图如图3-11所示。 表3-2共阴极数码管显示原理字型dpgfedcba000111111100 000110201011011301001111401100010501101101601111100700000111801111111901101111 LED管的译码输出程序代码:library ieee;use ieee.std_logic_1164.all;entity yimasc isport(datain:in std_logic_vector(3 downto 0); reset:in std_logic; clk:in std_logic; dataout:out std_logic_vector(7 downto 0);end yimasc;architecture behave of yimasc isbeginprocess(clk)beginif reset=1then dataoutdataoutdataoutdataoutdataoutdataoutdataoutdataoutdataoutdataoutdataoutdataout=00000000;end case;end if;end process;end behave;译码仿真测试波形图如图3-12所示:图3-12译码输出波形图3.2.7总电路图3-13总电路图图3-14总电路封装图顶层文件程序代码:- Copyright (C) 1991-2007 Altera Corporation- Your use of Altera Corporations design tools, logic functions - and other software and tools, and its AMPP partner logic - functions, and any output files from any of the foregoing - (including device programming or simulation files), and any - associated documentation or information are expressly subject - to the terms and conditions of the Altera Program License - Subscription Agreement, Altera MegaCore Function License - Agreement, or other applicable license agreement, including, - without limitation, that your use is for the sole purpose of - programming logic devices manufactured by Altera and sold by - Altera or its authorized distributors. Please refer to the - applicable agreement for further details.- PROGRAM Quartus II- VERSION Version 7.2 Build 151 09/26/2007 SJ Full VersionLIBRARY ieee;USE ieee.std_logic_1164.all; LIBRARY work;ENTITY fangzhen IS port( rest : IN STD_LOGIC;shizhongxinhao : IN STD_LOGIC;gaimij : IN STD_LOGIC;querenj : IN STD_LOGIC;shanchuj : IN STD_LOGIC;jianpanshurru : IN STD_LOGIC_VECTOR(3 downto 0);zhenque_gaodianping : OUT STD_LOGIC;baojing : OUT STD_LOGIC;zhishideng : OUT STD_LOGIC;qimaguanxianshi : OUT STD_LOGIC_VECTOR(7 downto 0);END fangzhen;ARCHITECTURE bdf_type OF fangzhen IS component yzgmPORT(clk : IN STD_LOGIC; gaimij2 : IN STD_LOGIC; queren : IN STD_LOGIC; input2 : IN STD_LOGIC_VECTOR(31 downto 0); output2 : OUT STD_LOGIC);end component;component ywjcqPORT(rest : IN STD_LOGIC; shanchu : IN STD_LOGIC; clk : IN STD_LOGIC; input : IN STD_LOGIC_VECTOR(3 downto 0); output : OUT STD_LOGIC_VECTOR(31 downto 0);end component; component yimascPORT(reset : IN STD_LOGIC; clk : IN STD_LOGIC; datain : IN STD_LOGIC_VECTOR(3 downto 0); dataout : OUT STD_LOGIC_VECTOR(7 downto 0);end component;component dskzPORT(clk : IN STD_LOGIC; input : IN STD_LOGIC; reset : IN STD_LOGIC; queren : IN STD_LOGIC; light : OUT STD_LOGIC; alarm : OUT STD_LOGIC);end component;signalSYNTHESIZED_WIRE_0 : STD_LOGIC_VECTOR(31 downto 0);signalSYNTHESIZED_WIRE_1 : STD_LOGIC;BEGIN zhenque_gaodianping shizhongxinhao, gaimij2 = gaimij, queren = querenj, input2 = SYNTHESIZED_WIRE_0, output2 = SYNTHESIZED_WIRE_1);b2v_inst1 : ywjcqPORT MAP(rest = rest, shanchu = shanchuj, clk = shizhongxinhao, input = jianpans
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风光结合制氢项目前景分析报告
- 城区市政燃气管道升级改造初步设计方案
- 纺织工程师证书考试内容与试题及答案讲解
- 仪器 测试 合同协议书
- 精装合同协议书
- 护工中介合同协议书
- 工程项目经理合同协议书
- 后勤劳务外包合同协议书
- 排烟合同协议书
- 签了合同协议书
- DL-T5181-2017水电水利工程锚喷支护施工规范
- 雷雨-剧本原文-高中语文雷雨剧本原文
- 北京高中化学学业水平考试合格考知识点总结
- 2024年-FBI教你读心术andy
- 《切尔诺贝利事故》课件
- 古诗渔歌子古诗阅读赏析课件
- 痛经(中医妇科学)
- 供应商调查表模板及范文大全
- 2021年商品期权开户测试题库
- 浅谈小学体育课堂引入民间体育游戏的尝试与创新
- 第二章 中国的自然环境《第四节 自然灾害》课件
评论
0/150
提交评论