基于VHDL语言的8位数字密码锁设计课案
VHDL密码锁设计
VHDL语言及应用课程设计论文----VHDL平台下密码锁的设计学院:电子信息学院专业:学号:姓名:指导老师:团队成员:完成日期:目录一. 引言-----------------------------------------------------------1二. 实验目的-------------------------------------------------------1三. 实验任务与要求-------------------------------------------------1四. 设计原理及工作流程---------------------------------------------2密码锁设计原理--------------------------------------------------2密码锁系统框图--------------------------------------------------2密码锁设计提示--------------------------------------------------2五. 密码锁的顶层设计源程序-----------------------------------------3六. 密码锁各功能模块源程序及其仿真分析-----------------------------5密码设定锁存器源程序及其仿真分析--------------------------------5密码输入锁存器源程序及其仿真分析--------------------------------6开锁控制系统源程序及其仿真分析----------------------------------8比较器源程序及其仿真分析----------------------------------------9LED显示源程序及其仿真分析--------------------------------------11顶层源文件的仿真分析-------------------------------------------12七. 密码锁设计源程序的下载调试------------------------------------13电路结构-------------------------------------------------------13管脚分配-------------------------------------------------------14程序下载调试过程-----------------------------------------------14八. 实验分析与总结------------------------------------------------15九. 组内分工------------------------------------------------------16十. 参考文献------------------------------------------------------16一. 引言随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。
vhdl密码锁
Vhdl短学期实验——密码锁设计小组成员:04008230 李黎04008228 陈宗渊04008211 周炳宇页脚内容1一、课题描述:用于模仿密码锁的工作过程。
完成密码锁的核心控制功能。
二、功能要求:设计一个密码锁,平时处于等待状态。
管理员可以设置或更该密码。
如果不预置密码,密码缺省为“999999”。
用户如果需要开锁,按相应的按键进入输入密码状态,输入6位密码,按下确定键后,若密码正确,锁打开,若密码错误,将提示密码错误,要求重新输入,三次输入都错误,将发出报警信号。
报警后,只有管理员作相应的处理才能停止报警。
用户输入密码时,若输入错误,在按下确定键之前,可以通过按取消键重新输入。
正确开锁后,用户处理完毕后,按下确定键,系统回到等待状态。
系统操作过程中,只要密码锁没有打开,如果60秒没有对系统操作,系统回到等待状态。
注意:输入按键信号时必须一个按键一个按键输入,不得6个按键一起输入。
三、设计流程:1.结构框图:页脚内容2页脚内容3①按键输入;②复位(设置缺省密码);③等待状态④工作状态⑤修改密码⑥提醒错误及报警⑦开锁⑧恢复等待2.模块设计:★控制模块:实现输入输出,实现等待工作的转换,实现开锁及报警;★比较模块:比较输入密码与正确密码★寄存模块:存放密码★计数及使能模块:(1)输入个数为6,多于无效自动忽略;(2)60s的空闲时间,无操作返回等待;(3)错误次数为3页脚内容4(4)进入工作状态,是能段即打开,直到进入等待。
四、具体实现:★控制模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ctrl isport( change,vers,keysign : in std_logic;ok,cancel : in std_logic;clk : in std_logic;result : in std_logic;wt : in std_logic;enable : out std_logic);页脚内容5end ctrl;architecture ctrl_behave of ctrl issignal sec : integer range 0 to 60;beginprocess(clk)beginif (clk'event and clk='1') thenif (vers='1') thenenable<='1';end if;if (wt='1' and result='1') thenenable<='0';sec<=0;end if;if (change='0' and vers='0' and keysign='0' and ok='0' and cancel='0') then sec<=sec+1;页脚内容6if (sec=59) thenenable<='0';sec<=0;end if;elsesec<=0;end if;end if;end process;end ctrl_behave;★比较模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ver isport页脚内容7( dt1,dt2,dt3,dt4,dt5,dt6 : in std_logic_vector(3 downto 0);cd1,cd2,cd3,cd4,cd5,cd6 : in std_logic_vector(3 downto 0);vers : in std_logic;ready : in std_logic;clk : in std_logic;stopalarm : in std_logic;en : in std_logic;result : out std_logic;wrong : out std_logic;alarm : out std_logic);end ver;architecture ver_behave of ver issignal alarmnum : integer range 0 to 3;signal vering : std_logic;signal wronging : std_logic;页脚内容8beginprocess(clk)beginif (clk'event and clk='1') thenif (en='0') thenresult<='0';end if;if (stopalarm='1') thenalarmnum<=0;end if;if (wronging='1') thenwronging<='0';vering<='1';end if;if (alarmnum<3) thenalarm<='0';页脚内容9elsealarm<='1';end if;if (vers='1') thenvering<='1';end if;if (vering='1') thenif (ready='1') thenif (cd1=dt1 and cd2=dt2 and cd3=dt3 and cd4=dt4 and cd5=dt5 and cd6=dt6) then result<='1';elseresult<='0';wronging<='1';if (alarmnum<3) thenalarmnum<=alarmnum+1;end if;end if;页脚内容10vering<='0';end if;end if;elsif (clk'event and clk='0') thenif (wronging='1') thenwrong<='1';elsif (wronging='0') thenwrong<='0';end if;end if;end process;end ver_behave;★寄存模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;页脚内容11entity code isport( dt1,dt2,dt3,dt4,dt5,dt6 : in std_logic_vector(3 downto 0);change : in std_logic;ready : in std_logic;ok : in std_logic;clk : in std_logic;result : in std_logic;reset : in std_logic;wt : out std_logic;cd1,cd2,cd3,cd4,cd5,cd6 : out std_logic_vector(3 downto 0) );end code;architecture code_behave of code issignal alarmnum : integer range 0 to 3;signal changing : std_logic;页脚内容12signal changed : std_logic;signal wting : std_logic;beginprocess(clk)beginif (clk'event and clk='1') thenif (ok='1' and changing='0' and result='1') thenwting<='1';elsewting<='0';end if;if (reset='1') thencd1<="1001";cd2<="1001";cd3<="1001";cd4<="1001";cd5<="1001";页脚内容13cd6<="1001";end if;if (change='1') thenchanging<='1';end if;if (changing='1') thenif (ready='1') thenif (result='1') thencd1<=dt1;cd2<=dt2;cd3<=dt3;cd4<=dt4;cd5<=dt5;cd6<=dt6;wting<='1';end if;changing<='0';页脚内容14end if;end if;elsif (clk'event and clk='0') thenif (wting='1') thenwt<='1';elsewt<='0';end if;end if;end process;end code_behave;★计数及使能模块:1library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;页脚内容15entity keyboard isport( a3,a2,a1,a0 : in std_logic;a : out std_logic_vector(3 downto 0);k : in std_logic;keysign : out std_logic;clk : in std_logic);end keyboard;architecture keyboard_behave of keyboard isbeginprocess(clk)beginif (clk'event and clk='0') thena(3)<=a3;a(2)<=a2;页脚内容16a(1)<=a1;a(0)<=a0;keysign<=k;end if;end process;end keyboard_behave;2library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity keyin isport( en : in std_logic;clk : in std_logic;a : in std_logic_vector(3 downto 0);keysign : in std_logic;页脚内容17ok : in std_logic;cancel : in std_logic;ver : in std_logic;ready : out std_logic;dt1,dt2,dt3,dt4,dt5,dt6 : out std_logic_vector(3 downto 0) );end keyin;architecture keyin_behave of keyin issignal count : integer range 0 to 7;signal cready : std_logic;beginprocess(en,clk,keysign)beginif (en='1') thenif (clk'event and clk='1') thenif (keysign='1' and count<6) thencount<=count+1;页脚内容18if (count=0) thendt1<=a;elsif (count=1) thendt2<=a;elsif (count=2) thendt3<=a;elsif (count=3) thendt4<=a;elsif (count=4) thendt5<=a;elsif (count=5) thendt6<=a;end if;end if;if (ver='1') thencount<=0;end if;页脚内容19if (cancel='1') thencount<=0;dt1<="1111";dt2<="1111";dt3<="1111";dt4<="1111";dt5<="1111";dt6<="1111";end if;if (ok='1') thencount<=0;cready<='1';elsecready<='0';end if;elsif (clk'event and clk='0') thenif (cready='1') then页脚内容20ready<='1';elseready<='0';end if;end if;end if;end process;end keyin_behave;‘※各个模块与设计存在出入,但基本要求都达到,主要是小组分工时,没有能完全按照模块分块设计※计数器模块分散开没有单独形成模块※具体信号意义见仿真页脚内容21Block图:页脚内容22五、仿真:Reset:重置(缺省)A:输入k:判断有效输入OK:确认Cancel:取消Ver:进入工作(比较)Change:修改密码Clk:时钟信号Result:开锁En-out:使能Wrong:报错Alarm:报警Stopalarm:停止操作(管理员使用)1.验证缺省密码为999999(reset键);页脚内容242.验证输入错误取消输入,重新输入(cancel键);3.验证60秒无操作自动返回等待界面(en-out和result归零);页脚内容254.验证有效按键“k”,只有k为高电平有效;5.验证用户操作完成,再次按ok键,自动返回等待键;页脚内容266.验证输入密码错误发出提示信号,连续三次输入错误,发出报警信号,只有按下stopalarm才能停止。
verilog的密码锁课程设计
verilog的密码锁课程设计一、课程目标知识目标:1. 学生理解Verilog硬件描述语言的基本语法和结构;2. 学生掌握用Verilog设计简单的数字电路,特别是组合逻辑和时序逻辑;3. 学生能够描述密码锁的工作原理及其在数字系统中的应用;4. 学生了解基本的硬件仿真概念,并能运用到密码锁的设计中。
技能目标:1. 学生能够运用Verilog编写代码实现一个简单的密码锁电路;2. 学生能够通过仿真软件验证密码锁设计的正确性和功能;3. 学生能够对密码锁进行测试,并分析结果,进行故障诊断和修正;4. 学生具备团队协作能力,能在小组内有效沟通,共同完成密码锁的设计。
情感态度价值观目标:1. 学生培养对数字电路设计和硬件描述语言的兴趣,激发创新意识和探索精神;2. 学生通过实践活动,培养耐心、细致和严谨的科学态度;3. 学生在学习过程中,强化安全意识,了解密码学在实际生活中的重要意义;4. 学生通过小组合作,培养团队精神,学会尊重他人意见,共同进步。
课程性质:本课程属于实践性较强的课程,结合理论知识与实际操作,使学生在实践中掌握Verilog语言及数字电路设计。
学生特点:学生具备一定的数字电路基础,对编程和设计有一定的兴趣,喜欢动手实践。
教学要求:注重理论与实践相结合,强调学生动手能力,通过项目驱动教学,使学生能将所学知识运用到实际中。
同时,注重培养学生的团队协作能力和解决问题的能力。
二、教学内容1. Verilog基础知识回顾:包括数据类型、运算符、控制语句等,确保学生具备基本的编程能力。
(对应教材第2章)2. 数字电路设计基础:复习组合逻辑和时序逻辑设计原理,理解触发器、计数器等基本电路的工作原理。
(对应教材第3章)3. 密码锁原理讲解:介绍密码锁的构成、工作原理及其在现实生活中的应用。
(对应教材第5章)4. Verilog设计密码锁:教授如何运用Verilog语言编写密码锁代码,包括密码比对、锁的控制逻辑等。
基于VHDL语言的8位数字密码锁设计
.EDA课程设计报告书课题名称基于VHDL语言的8位数字密码锁设计姓名学号院、系、部专业指导教师2016年6月20日※※※※※※※※※※※※※※※※※※※※※※※※2014级学生EDA课程设计基于VHDL语言的8位数字密码锁设计1 设计目的(1)熟悉集成电路的引脚安排。
(2)掌握各芯片的逻辑功能及使用方法。
(3)了解面包板结构及其接线方法。
(4)了解电子密码锁的组成及工作原理。
(5)熟悉电子密码锁的设计与制作。
2设计方案电子密码锁,主要由三部分组成:密码输入电路、密码锁控制电路和密码锁显示电路。
作为电子密码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。
拨码与按键和触摸式4*4键盘相比简单方便而且成本低,构成的电路简单,本设计中采用拨码与按键来作为该设计的输入设备。
数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。
液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任然使用LED数码管。
根据以上选定的输入设备与与显示器件,并考虑到现实各项密码锁功能的具体要求,与系统的设计要求,系统设计采用自顶向下的设计方案。
整个密码锁系统的总体总体框图如图2.1所示。
图2.1电子密码锁系统总体框图3功能模块 3.1 输入模块3.1.1功能介绍输入时有三个拨码键控制输入,每个拨码各控制一位密码,对于其中一个拨码键每拨一次码按一次按键,表示输入一位,当输入四位时输出一位数,用“888”作为初始密码。
3.1.2输入模块与仿真图形单脉冲控制如图3.1如下图BCD 七段译码显示电路显示模块图3.1上图为单脉冲控制输入,当M给一上升沿信号将在PUL输出一位与之对应的高或低电平。
四位串行输入并行输出寄存器如下图3.2图3.2上图为4为串行输入并行输出寄存器,它由4个D触发组成,当reset为高电平时,每给一脉冲输入数据将向右移一位二值代码,它能同时复位。
VHDL电子密码锁课程设计
VHDL电子密码锁课程设计一、课程目标知识目标:1. 学生能理解VHDL语言的基本语法和程序结构,掌握利用VHDL进行数字电路设计的基本方法。
2. 学生能够描述电子密码锁的工作原理,了解其电路组成和功能模块。
3. 学生能够运用所学知识,设计并实现一个简单的电子密码锁程序。
技能目标:1. 学生能够运用VHDL语言进行代码编写,培养编程实践能力。
2. 学生通过课程设计,提高问题分析、解决能力,培养创新思维和团队协作能力。
3. 学生能够运用仿真软件对设计的电子密码锁进行功能验证,提高实际操作能力。
情感态度价值观目标:1. 学生通过课程学习,培养对电子技术和数字电路设计的兴趣,提高学习积极性。
2. 学生在课程实践中,树立正确的工程观念,认识到技术发展对社会进步的重要性。
3. 学生在团队协作中,学会尊重他人、沟通协作,培养良好的团队合作精神。
本课程旨在帮助学生将理论知识与实践相结合,通过电子密码锁的设计与实现,提高学生的编程能力、问题解决能力和团队协作能力,培养学生对电子技术的兴趣和正确价值观。
二、教学内容1. VHDL语言基础:包括VHDL的基本语法、数据类型、运算符、信号与变量、进程和顺序语句等,对应教材第1-3章内容。
2. 数字电路设计方法:介绍组合逻辑电路和时序逻辑电路的设计方法,包括触发器、计数器等基本电路的设计,对应教材第4-5章内容。
3. 电子密码锁原理:分析电子密码锁的工作原理,包括密码设置、验证机制和开锁逻辑等,对应教材第6章实例分析部分。
4. VHDL代码编写:根据电子密码锁的原理,指导学生进行VHDL代码编写,实现密码设置、验证和开锁功能,对应教材第7章编程实践部分。
5. 功能仿真与验证:教授学生使用仿真软件进行电子密码锁的功能验证,确保设计的正确性,对应教材第8章仿真技术部分。
6. 课程设计与实践:安排课程设计任务,指导学生分组进行电子密码锁的设计、编程、仿真和调试,培养学生实践能力和团队协作精神。
EDA课程设计(基于VHDL语言的8位数字密码锁设计)
东华理工大学机械与电子工程学院基于VHDL语言的8位数字密码锁设计一、摘要:数字控制的电子密码锁已经广泛应用在办公室、公司、宾馆、小区住宅等场所。
EDA技术的应用引起了电子产品系统开发的革命性变革。
利用先进的EDA工具,基于硬件描述语言,可以进行系统级数字逻辑电路的设计。
本文简述了VHDL语言的功能及其特点,并以8位串行数字锁设计为例,介绍了在QUARTUS II 6.0开发软件下,利用VHDL硬件描述语言设计数字逻辑电路的过程和方法。
关键词: QUARTUS II 6.0 EDA 电子密码锁(电子设计自动化) VHDL语言语言设计串行密码锁硬件描述语言数字逻辑电路Based on VHDL language 8 digits combination lock design Digital control of electronic locks has widely used in office, companies, hotels, residential area and etc.EDA technology application caused a electronic product development system of the revolutionary transformation. Using advanced EDA tools, hardware based description language, can undertake system in digital logic circuit design. This paper describes the function and characteristics of VHDL language, and eight serial number lock design as an example, this paper introduces QUARTUS II 6.0 software development in of VHDLhardware design of digital logic circuit process and method.Keywords: QUARTUS II 6.0, EDA (electronic design automation), electronic locks and VHDL language, language design, serial, locks and hardware description language, digital logic circuit二、引言:电子密码锁系统主要由电子锁体、电子密匙等部分组成,一把电子密匙里能存放多组开锁密码,用户在使用过程中能够随时修改开锁密码,更新或配制钥匙里开锁密码。
基于VHDL语言的电子密码锁的设计(交)
EDA技术的应用引起了电子产品系统开发的革命性变革。利用先进的EDA工具,基于硬件描述语言,可以进行系统级数字逻辑电路的设计。本文简述了VHDL语言的功能及其特点,并以4位串行手机键盘电子密码锁设计为例,介绍了一种在QuartusⅡ6.0开发软件下,基于VHDL硬件描述语言的复杂可编程逻辑器件(CPLD)的新型电子密码锁设计方法,阐述了其工作原理和软硬件设计方法。该密码锁通过扫描电路、键盘译码电路、弹跳消除电路、控制电路和七段译码电路等实现了密码输入、数码清除、密码激活、电锁解除、密码更改和误码报警等功能。本论文对该密码锁的程序进行了功能和时序仿真,结果表明该密码锁的功能满足设计要求,能够实现正常开锁、上锁和修改密码。该密码锁体积小、功耗低、易于维护和升级,有很好的市场前景。
1133cpld工作原理1234fpga工作原理1441系统设计要求1442系统设计方案14421密码锁输入电路的设计17422密码锁控制电路的设计23423密码锁显示电路的设计2443密码锁的整体组装设计25目录iv2651键盘输入去抖电路的vhdl源程序2852密码锁输入电路的vhdl源程序3153密码锁控制电路的vhdl源程序3654密码锁显示电路的vhdl源程序4261系统仿真分析42611键盘输入去抖电路的仿真42612密码锁输入电路的仿真42613密码锁控制电路的仿真43614密码锁显示电路的仿真4562系统硬件验证48参考文献49致谢引言11课题背景自古以来锁具都是人们心目中的铁将军随着社会物质财富的日益增长和人们生活水平的不断提高人们对它要求也越来越高即要安全可靠又要使用方便
本课题要完成的主要任务是基于VHDL语言的电子密码锁的设计和具体的实现,重点完成各个模块的设计,并保证整个系统的稳定性、可靠性和扩展性,充分考虑后续阶段的开发。
基于VHDL语言的8位数字密码锁设计
EDA 课程设计报告书课题名称 基于VHDL 语言的8位数字密码锁设计 姓 名 学 号 院、系、部 专 业 指导教师2016年6月20日※※※※※※※※※ ※※ ※※ ※※※※※※※※※※※2014级学生EDA 课程设计基于VHDL语言的8位数字密码锁设计1 设计目的(1)熟悉集成电路的引脚安排。
(2)掌握各芯片的逻辑功能及使用方法。
(3)了解面包板结构及其接线方法。
(4)了解电子密码锁的组成及工作原理。
(5)熟悉电子密码锁的设计与制作。
2设计方案电子密码锁,主要由三部分组成:密码输入电路、密码锁控制电路和密码锁显示电路。
作为电子密码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。
拨码与按键和触摸式4*4键盘相比简单方便而且成本低,构成的电路简单,本设计中采用拨码与按键来作为该设计的输入设备。
数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。
液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任然使用LED 数码管。
根据以上选定的输入设备与与显示器件,并考虑到现实各项密码锁功能的具体要求,与系统的设计要求,系统设计采用自顶向下的设计方案。
整个密码锁系统的总体总体框图如图2.1所示。
图2.1电子密码锁系统总体框图3功能模块3.1 输入模块3.1.1功能介绍输入时有三个拨码键控制输入,每个拨码各控制一位密码,对于其中一个拨码键每拨一次码按一次按键,表示输入一位,当输入四位时输出一位数,用“888”作为初始密码。
3.1.2输入模块与仿真图形单脉冲控制如图3.1如下图图3.1上图为单脉冲控制输入,当M给一上升沿信号将在PUL输出一位与之对应的高或低电平。
四位串行输入并行输出寄存器如下图3.2图3.2上图为4为串行输入并行输出寄存器,它由4个D触发组成,当reset为高电平时,每给一脉冲输入数据将向右移一位二值代码,它能同时复位。
基于VHDL的数字密码锁设计
河南机电高等专科学校《职业技术培训》结课大作业基于VHDL的数字密码锁设计姓名:专业班级:学号:任课教师:时间:成绩:基于VHDL的数字密码锁设计医电08级1班任课教师:摘要:本文要紧介绍运用删,技术设计数字密码锁统分解为假设干子系统,而且进一步细划为假设干模块,然后用硬件描述语言VHDL来设计这些模块,而且别离进行软件和硬的仿真。
仿真结果说明:该数字密码锁能够校验3位十进制数密码,且能够预置密码,显示输入密码,具有输入错误指示有效指示等相应的状态指示。
该密码锁体积小,功耗低,操作简单,不怕掉电,保护和升级都十分方便,具有较好的应用前景。
关键词:QUARlrIIS II;VHDL;数字密码锁目录1. 概述 ....................................................................错误!未定义书签。
2. 设计要求 ............................................................错误!未定义书签。
3. 整体设计 ............................................................错误!未定义书签。
4. 各单元电路的设计和实现 ................................错误!未定义书签。
5. 功能仿真及其结果 ............................................错误!未定义书签。
6. 编译、下载及调试 ............................................错误!未定义书签。
7. 总结与展望 ........................................................错误!未定义书签。
参考文献..................................................................错误!未定义书签。
基于VHDL的电子密码锁设计
基于VHDL的电子密码锁设计作者:甄理彭森来源:《卷宗》2016年第02期摘要:本设计采用EDA技术设计一个防盗数字密码锁。
在Quartus II 环境下采用VHDL 硬件描述语言设计电子密码锁,阐述了其工作原理,给出了具体的电路图和仿真波形。
该密码锁具有体积小、功耗低、保密性强、错误累积报警等功能。
可应用于住宅、保险箱等需要防盗的场所,实用性较强。
采用VHDL描述,产品的扩展性强,很容易于最新技术结合形成功能更加强大的系统。
本系统采用矩阵键盘输入。
密码由8位十进制数组成,密码多一位少一位都算错误,安全性有足够保障。
并且当错误开锁次数达到3次报警器将鸣叫,形成一个连锁防盗系统。
在错误尚未发生时,可通过复位回到密码输入状态,体现人性化的设计。
在报警时,警报的切断只能由保安室或实用者不能接触的地方控制,为无关操作人员增加了心理威慑作用。
关键词:Quartus II;VHDL;密码锁;电路仿真1.引言随着社会物质财富的日益增长,安全防盗已成为社会问题。
而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。
数字密码锁是实际生活中运用广泛的一种数字电路,主要功能是对某些操作进行加密保护,目的是避免无权人员使用某些设施或者进行越权操作。
2.设计目的硬件描述VHDL语言,描述能力强、覆盖面广、抽象能力强,采用VHDL建立硬件模型可以从繁琐的元件设计转向功能设计。
用VHDL可以快速方便地设计出符合各种要求的数字密码锁,而且操作简单,密码的位数可适当增该,增强其安全性,且很容易做成ASIC芯片,设计过程达到高度自动化,设计完成后可在Quartus II 环境下进行电路的模拟仿真。
使设计成本尽可能降低。
3.并行开发方案并行开发方案,密码采用并行输入方式。
密码输入完毕后再一次性比较。
原理图如图1所示。
4.电路模块功能设计数字密码锁系统电路设计采用自顶而下的设计方法。
VHDL数字密码锁课程设计
VHDL数字密码锁课程设计一、课程目标知识目标:1. 学生能理解VHDL语言的基本语法和程序结构,掌握数字密码锁的基本原理。
2. 学生能运用VHDL语言编写与数字密码锁相关的程序代码,实现基本功能。
3. 学生了解数字密码锁在实际工程中的应用,理解其重要性。
技能目标:1. 学生能运用所学知识,设计并实现一个简单的数字密码锁系统。
2. 学生通过实际操作,提高编程能力,培养解决实际问题的能力。
3. 学生能通过小组合作,提高团队协作和沟通能力。
情感态度价值观目标:1. 学生培养对电子设计及其编程的兴趣,激发创新意识。
2. 学生认识到科技发展对社会的重要性,增强社会责任感。
3. 学生在团队合作中,学会尊重他人,培养良好的沟通和协作精神。
课程性质:本课程为实践性课程,以培养学生的动手能力和实际编程技能为主。
学生特点:学生具备一定的电子基础和编程能力,对新鲜事物充满好奇心。
教学要求:教师需引导学生将理论知识与实际应用相结合,注重培养学生的实践能力和团队合作精神。
在教学过程中,将目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. 数字密码锁原理介绍:包括密码锁的工作机制、安全性分析等。
相关教材章节:第五章“数字密码锁设计原理”2. VHDL语言基础:回顾VHDL的基本语法、程序结构、数据类型和运算符等。
相关教材章节:第三章“VHDL语言基础”3. VHDL编程实践:a) 设计数字密码锁的实体和端口b) 编写行为描述和结构描述代码c) 仿真与调试相关教材章节:第四章“VHDL编程实例”和第六章“数字密码锁设计实例”4. 数字密码锁功能模块设计:a) 密码设置与修改b) 密码验证c) 锁定与解锁功能相关教材章节:第六章“数字密码锁功能模块设计”5. 数字密码锁系统集成与测试:a) 将各功能模块整合到一起,实现完整密码锁系统b) 进行系统测试,验证系统功能及性能相关教材章节:第七章“数字密码锁系统集成与测试”6. 课程项目实践:分组进行数字密码锁项目设计,培养学生的团队合作能力和实际操作技能。
电子密码锁vhdl课程设计
电子密码锁vhdl课程设计一、课程目标知识目标:1. 学生理解VHDL语言的基本结构和编程原理;2. 学生掌握利用VHDL进行电子密码锁设计的方法;3. 学生了解电子密码锁的工作原理及其在现实生活中的应用。
技能目标:1. 学生能够运用VHDL语言编写简单的程序;2. 学生能够独立完成电子密码锁的VHDL代码编写、仿真与验证;3. 学生具备分析电子密码锁程序问题及优化代码的能力。
情感态度价值观目标:1. 学生培养对电子信息技术领域的兴趣和热情;2. 学生形成良好的编程习惯,注重团队协作,善于沟通交流;3. 学生认识到电子密码锁在保护信息安全中的重要性,增强信息安全意识。
课程性质:本课程为实践性课程,以项目为导向,结合理论知识与实际操作,培养学生的编程能力和实际应用能力。
学生特点:学生为高年级电子信息技术专业,具备一定的电子基础和编程能力,对实际应用有较高的兴趣。
教学要求:教师需注重理论与实践相结合,引导学生主动参与,鼓励学生思考、提问、实践,提高学生的综合运用能力。
同时,关注学生的个体差异,给予个性化指导,确保每个学生都能达到课程目标。
通过课程学习,使学生在知识、技能和情感态度价值观方面取得具体的学习成果。
二、教学内容1. VHDL语言基础:回顾VHDL的基本语法、数据类型、运算符、信号与变量等基础知识,确保学生掌握VHDL编程的基本框架。
相关教材章节:第一章至第三章2. 电子密码锁原理:讲解电子密码锁的工作原理、基本构成和设计方法,使学生了解电子密码锁在实际应用中的技术要求。
相关教材章节:第六章3. VHDL编程实践:a) 电子密码锁的VHDL代码编写:引导学生根据电子密码锁原理,编写相应的VHDL代码;b) 代码仿真与验证:教授学生如何使用仿真工具进行代码测试,确保程序的正确性和可靠性。
相关教材章节:第四章、第五章4. 程序优化与调试:分析电子密码锁程序中可能存在的问题,教授学生如何对程序进行优化和调试。
8位数字密码锁课程设计报告
基于VDHL的8位数字密码锁设计摘要本文主要介绍运用VDHL技术设计数字密码锁的方法。
本设计采用自上而下的数字系统设计方法,将数字密码锁系统分解为若干子系统,并且进一步细划为若干模块,然后用硬件描述语言VDHL来设计这些模块,并且分别进行软件的仿真。
仿真结果表明:该数字密码锁能够效验8位十进制数密码,且有预置密码(即万能密码),显示输入密码,设置密码,修改密码,输入错误回删,关锁等功能。
该密码锁体积小,功耗低,操作简单,不怕掉电,维护和升级都十分方便,具有非常好的应用前景关键词:QUARTUSⅡ;VDHL; 数字密码锁8-bit digital-based VDHL lock design Abstract This paperdescribes the use of digital locks VHDL technical design approach. This design uses top-down design of digital system, the digital code lock system is divided into several subsystems, and further detailed planningfor a number of modules, then the hardware description language VDHL to design these modules and the simulation software, respectively. Simulation results show that: the digital code lock to efficacy 8-bit decimal code, and have preset password (that is, universal password), show password, set password, change password, enter the error back to the delete, lock and other functions. The lock small size, low power consumption, simple operation, not afraid of power-down, maintenance and upgrades are very convenient, has a very good prospect ofapplication.shui ./Key words: QUARTUS Ⅱ; VHDL; digital code lock目录引言 (6)1.EDA VHDL简介 (7)2.课程设计目的与容 (8)2.1课程设计目的 (8)2.2课程设计容 (8)2.3课程设计提示 (8)3.电子密码锁设计过程 (9)3.1设计规划 (9)4.VHDL源程序 (10)4.1密码锁&30秒计时模块 (11)4.2仿真后原理图 (12)4.3动态扫描模块 (13)4.4仿真后原理图 (14)5.系统仿真 (15)5.1连线完成后原理图 (15)5.2波形仿真 (15)5.3仿真结果 (16)6.心得体会 (19)7.参考文献 (20)CONTENTSIntroduction •••••••••••••••••••••••••••• 61.EDA VHDL Introduction ••••••••••••••••••••••• 72. The purpose and content of curriculum design ••••••••••• 82.1 Courses designed to •••••••••••••••••• 82.2 Curriculum content ••••••••••••••••••••••• 82.3 Course Design Tips ••••••••••••••••••••••• 83. Electronic code lock design process ••••••••••••••• 93.1 The design and planning •••••••••••••••• 94.VHDL source •••••••••••••••••••••••••••• 104.1 & 30 seconds lock timing module ••••••••••••••• 114.2 After the simulation schematic ••••••••••••••••• 124.3 Dynamic Scanning Module ••••••••••••••••••••• 13After 4.4 Simulation diagram •••••••••••••••••••• 145. System Simulation ••••••••••••••••••••••• 155.1 After the connection diagram ••••••••••••••••••• 155.2 Waveform Simulation ••••••••••••••••••••••• 155.3 Simulation results •••••••••••••••••••••••• 166. Feelings and experiences ••••••••••••••••••••• 197. References •••••••••••••••••••••••••••• 20引言随着人们生活水平的提高,如何实现家庭防盜这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其性髙,使用灵活性好,安全系数高,受到了广大用户的亲昵,电子密码锁的使用体现了人们消费水平、保安意识和科技水平的提髙,而且避免了携带甚至丢失钥匙的麻烦。
数字电路与系统课程设计-设计8位串行数字锁电路
大连理工大学城市学院数字电路与系统课程设计设计题目:设计8位串行数字锁电路学院:电子与自动化学院专业:学生:同组人:指导教师:完成日期:20XXX年4月20日第一章设计任务1.1项目名称:设计8位串行数字锁电路本项目的主要内容是设计并实现8位串行数字锁电路。
该电路将所学的数字电路与系统大部分知识和VHDL语言结合。
1.2项目设计说明:本项目用来实现设计8位串行数字锁电路1.2.1设计任务和要求⑴开锁代码为8位二进制数,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开所指示灯LT。
否则,系统进入“错误”状态,并发出报警信号。
⑵开锁程序由设计者确定,并要求锁内给定的密码是可调的,且预置方便,保密性好。
⑶串行数字锁的报警方式是点亮指示灯LF,并使喇叭名叫来报警,直到按下复位开关,报警才停止。
此时,数字锁又自动进入等待下一次开锁的状态。
1.2.2进度安排第一次课:预答辩,制定计划分组第二次课:详细设计第三,四次课:设计,编程,调试第五次课:程序测试机,硬件连续调试第六次课:普通题检查第七次课:答辩第二章需求分析2.1设计原理数字密码锁原理框图如图1所示。
由时钟脉冲发生器、按键、指示灯和控制部分等组成。
开关的消抖动电路放在控制部分考虑,时钟输入CLK由外部时钟脉冲发生器的输出提供。
设计中的指示灯就是发光二极管,共计10个,用来指示系统的工作状态。
其中8个为一组,用来显示已经输入密码的个数,剩余两个,一个为开锁绿色指示灯LT;另一个为报警红色指示灯LF。
控制部分是VHDL语言设计的核心部分,主要由方波生成模块FEN、消抖同步模块XIAOPRO和密码锁逻辑控制模块CORNAA这4个模块构成,可以完成密码的修改、设定及非法入侵报警、驱动外围电路等功能。
2.2分解设计本设计主要包括方波生成模块,消抖同步模块和密码锁逻辑控制模块方波生成模块FEN分频占空比为1:5000000的方波,用于消除抖动。
基于vhdl的数字密码锁设计说明书
1 引言电子密码锁的使用体现了人们消费水平、保安意识和科技水平的提高,而且避免了携带甚至丢失钥匙的麻烦。
目前设计密码锁的方法很多,例如用传统的PCB 板设计、用PLC 设计或者用单片机设计。
而用V HDL 可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法,使设计过程达到高度自动化。
本设计在Max + plus Ⅱ的环境中进行,用Al2tera 公司ACEX 1 K系列的EP1 K30 TC14423 来实现。
ACEX 1 K是Altera 公司着眼于通信、音频处理及类似场合的应用而推出的FPGA 器件芯片系列,其典型门数为10 万门,是当今Altera 多种产品中应用前景最好的器件系列之一。
EDA 技术设计电子系统具有用软件的方式设计硬件;设计过程中可用有关软件进行各种仿真,系统可现场编程、在线升级,整个系统可集成在一个芯片上等特点;不但设计周期短、设计成本低,而且将提高产品或设备的性能,缩小产品体积、提高产品的技术含量,提高产品的附加值。
用VHDL设计电子密码锁方案:作为通用电子密码锁,主要由 3 个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路,作为电子密码锁的输入电路。
可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。
(1)密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。
(2)密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。
(3)七段数码管显示电路主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。
1.1设计背景随着社会的发展和人们生活水平的提高,人们的安全意识也逐步加强。
传统的机械锁由于其构造的简单,失效的事件屡见不鲜,如何实现保密防盗这一问题变的尤其的突出,密码锁以其安全性高、成本低、功耗低、易操作等优点受到越来越多人的欢迎。
基于VHDL的电子密码锁
华南师范大学课程设计实验报告课程名称:可编程数字系统设计课程设计题目:电子密码锁姓名:程硕学院:物理与电信工程学院专业:理综一班年级:2011学号:20112600104一、设计原理用VHDL设计电子密码锁方案:作为通用电子密码锁,主要由 3 个部分组成:数字密码按键输入电路、密码锁控制电路和密码锁显示电路,作为电子密码锁的输入电路。
可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。
(1)密码锁输入电路包括时序产生电路、键盘检测电路、键盘消抖电路等几个小的功能电路。
(2)密码锁控制电路包括按键数据存储电路,恢复出厂密码、两次正确输入后可修改密码、密码核对,多次错误报警,清屏等几个小的功能电路。
(3)八段数码管显示电路主要将待显示数据的BCD码转换成数码器的八段显示驱动编码。
二、系统分析本次课程设计成功地设计了一个简单的数字电子密码锁,密码为 4 位。
将电子密码锁分为以下几个模块:按键消抖模块、密码锁逻辑控制模块和密码锁显示模块,实现了以下功能:(1)密码输入:KEY1按下一次,数码管上显示数字加一,相应位置输入密码加一(2)位置选择:KEY2按下一次,数码管选择位左移一位(3)密码确认:KEY3按下一次,比较外部输入密码与原密码,正确LED长亮,错误LED变暗,同时显示密码置0;(4)密码修改:正确输入两次密码后,按下KEY4一次,将当前输入设为新的密码;(5)清屏:KEY5按下一次,外部输入置0;(6)恢复出厂设置:连续按下KEY5三次后恢复出厂密码“1234”;三、程序设计1由于程序稍显庞大,故采取分层次设计的方法,顶层采用画图法设计,底层采用VHDL 语言进行设计。
顶层电路图如图1所示图1Xiao_dou模块为按键消抖模块,main为密码锁控制模块,yima为数码管显示译码模块。
Set_shuma端口为数码管段选端口,用于选择数码管。
Led端口为led灯端口,key1,key2,key3,key4,key5为五个按键接口,show_shuma端口为数码管位选选择端口。
基于vhdl电子密码锁的设计说明书
《E D A仿真与实践实习》学院:信息科学与工程学院课题名称:硬件描述语言设计——基于VHDL的电子密码锁的设计班级:学生:学号:指导教师:1 引言在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
基于EDA技术设计的电子密码锁。
以其价格便宜、使用方便、安全性高、成本低、功耗低、易操作等优点,受到了人们的普遍关注。
而以可编程逻辑器件(FBDA)为设计载体,以硬件描述语言(VHDL)为主要表达方式,以QuartusⅡ5.1开发软件等为设计工具设计的电子密码锁,由于其能够实现密码输入、密码校验、密码设置和更改等功能,因此,能够满足社会对安全防盗的需求。
本设计的各个模块由相应的VHDL程序具体实现,并在QuartusⅡ5.1环境下进行了整体电路的模拟仿真,最终实现“密码锁控制器设计”的要求。
2 设计内容和要求2.1 设计内容:题目:电子密码锁内容:设计一个4位串行数字锁。
(1)开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮一个指示灯。
否则进入“错误”状态,并发出报警信号。
(2)锁内的密码可调,且预置方便,保密性好。
(3)串行数字锁的报警由点亮一个灯,直到按下复位开关,报警才停下。
此时,数字锁又自动等待下一个开锁状态。
要求:(1)通过查阅相关技术资料,详细描述电子密码锁的基本原理。
(2)编写电子密码锁的Verilog HDL或VHDL程序,并仿真编译下载验证。
(3)给出完整的系统顶层模块图与波形仿真图。
3 设计分案密码锁控制器是硬件与软件的结合。
根据设计要求,决定以FBDA 芯片和VHDL语言设计此电子密码锁。
8位密码锁单片机课程设计
单片机原理及系统课程设计专业:自动化班级:自动化姓名:学号:指导教师:2012 年 7月 1日单片机原理及系统课程设计报告1 引言电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。
其性能和安全性已大大超过了机械锁。
其在生活的各个方面均有应用,前景十分广阔。
其特点如下:(1)保密性好,编码量多,远远大于弹子锁。
随机开锁成功率几乎为零;(2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降;(3)误码输入保护,当输入密码多次错误时,报警系统自动启动;(4)无活动零件,不会磨损,寿命长;(5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁。
2 设计方案及原理2.1 本设计所要实现的目标设计一种单片机控制的密码锁,具有按键有效指示、解码有效指示、控制开锁电平、控制报警、密码修改等功能。
8位十进制密码共一亿组不重复,保密性强。
该密码锁要实现一下功能:(1) 锁的初始状态为“锁合”指示灯亮。
输入初始密码“0、1、2、3、4、5、6、7”,每输入一位,“按键有效”指示灯亮约半秒钟,输完8位按确认键,锁打开,“锁开”指示灯亮;(2) 按“上锁”键,锁又重新上锁,“锁合”指示灯亮;(3) “锁开”状态下,可输入新密码,可重复修改密码;(4) 如果输入密码错误,“错误指示”灯亮约半秒钟。
可重新输入密码;(5) 输入密码错误超过3次,蜂鸣器启动发出报警,同时“错误”指示灯常亮。
2.2 设计思路对于电子密码锁的设计,需要解决几个问题:键盘输入、数码管显示、单片机电路、密码比较、修改密码等。
其中最主要的就是解决掉电保存以及修改密码的问题。
先写一个循环写入8个初始密码到芯片内部EEPROM程序,先下载程序写入初始密码,此时EEPROM已存有初始密码,再把密码锁程序下载到单片机,运行电子密码锁。
基于某VHDL语言地电子密码锁地设计最终定稿子
基于VHDL语言的电子密码锁设计组长:李柳 201254080308 组员:刘永兴 201254080201 邝七月 201254080209庄美琳 201254080303王常汉 201154080121系统的原理设计(1)数码输入:每按下一个数字键,就输入一个数值,并在显示器的最右方显示该数,同时将先前输入的数依次左移一位。
(2)数码清除:按下此键会清除前面所有的输入值,成为“0000”。
(3) 激活电锁:按下此键可将密码锁上锁。
(4) 解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。
作为通用电子密码锁,主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。
作为电子密码锁的输入电路,可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。
虽然机械式键盘存在一些诸如机械产生的弹跳消除问题和机械部分的接触等问题,但是和触摸式的4×3键盘相比,机械式键盘具有低成本、可靠性高、构成电路简单、技术成熟和应用广泛等特点,因此将其应用到通用数字电子密码锁中还是比较适宜的。
本设计中采用一个4×3的通用数字机械键盘作为该设计的输入设备。
数字电子密码锁的显示信息电路可采用LED数码管显示和液晶屏幕显示两种。
液晶屏幕显示具有高速显示、高可靠性、易于扩展和升级等优点,但是普通液晶显示屏存在亮度低、对复杂环境的适应能力差等缺点,在低亮度的环境下还需要加入其他辅助的照明设备,驱动电路设计相对复杂,因此本设计的显示电路仍使用通用的LED数码管。
根据以上选定的输入设备和显示器件,并考虑到实现各项数字密码锁功能的具体要求,密码锁结构框图如图4-1所示。
图4-1 密码锁结构框图键盘:用户对系统输入密码,采用4×3数字机械式键盘实现显示器:用来显示输入的密码,采用4个LED数码管实现时钟脉冲器:用来产生方波信号CPLD控制部分:核心部分,实现分频、内部逻辑、数字比较、数据存储、译码等功能整个电子密码锁系统的总体组成框图如图4-2所示。
EDA技术-VHDL-5.4 电子密码锁
5.4 电子密码锁程序设计与仿真实验1.实验目的掌握电子密码锁设计。
2.实验原理电子密码锁有两类,一类是并行接收数据,称为并行锁;一类是串行接收数据,称为串行锁。
在这里是设计一个8位串行电子密码锁,当输入的密码和锁内给定的密码一致,则LT为‘1’,开锁,否则系统报错,LF为‘1’,并报警,直到按下复位开关,报警停止,进入下一次开锁环节。
3.实验内容(1)完成8位串行电子密码锁的程序设计,要求锁内设置密码可调。
(2)对设计好的电子密码锁进行功能仿真,分析仿真结果。
4.实验预习与思考串行电子密码锁与并行密码锁在程序实现上有什么区别。
5.程序设计与仿真(1)程序设计电子密码锁源程序(e_latch.vhd)如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity e_latch isPort ( clk : in std_logic; --时钟信号k0 : in std_logic; --代表0k1 : in std_logic; --代表1clr : in std_logic; --复位信号load : in std_logic; --设置密码开关lt : out std_logic; --密码正确lamp : out std_logic_vector(7 downto 0); --显示输入的密码位数lf : out std_logic; --密码错误alm : out std_logic); --报警end e_latch;architecture Behavioral of e_latch issignal shift,lock:std_logic_vector(7 downto 0):="00000000" ;--分别用于保存输入的密码和设置好的密码signal lam:std_logic_vector(7 downto 0);signal la,li:std_logic;begin151process(clk,clr)beginif clr='0' then--复位la<='0';li<='0';elsif clk'event and clk='1' thenif load='0' thenla<='1';elseli<='1';end if;end if;end process;process(clk,clr)variable a:integer range 0 to 8;beginif clr='0' thenlam<="00000000";shift<="00000000";a:=0;lt<='0';lf<='0';alm<='0';elsif clk'event and clk='1' thenif li='1' thenif a/=8 then --循环输入8位密码if k1='0' then --输入一位密码‘1’shift <='1' &shift(7 downto 1);lam<='1'&lam(7 downto 1);a:=a+1;elsif k0='0' then --输入一位密码‘0’shift<='0'&shift(7 downto 1);lam<='1'&lam(7 downto 1);a:=a+1;end if;elsea:=0;if shift=lock then --比较lt<='1';elself<='1';alm<='1';end if;end if;152elsif la='1' then --设置密码if k1='0' then设置一位‘0’lock<='1'&lock(7 downto 1);lam<='0'&lam(7 downto 1);elsif k0='0' then --设置一位‘1’lock<='0'&lock(7 downto 1);lam<='0'&lam(7 downto 1);end if;end if;end if;end process;lamp<=lam;end Behavioral;(2)仿真电子锁密码锁仿真结果如图5.4.1所示,图5.1.4(a)、(b)为开锁不成功的仿真图,在图5.1.4(a)中可以看到设置的密码为“11100000”,输入的密码为“11110000”,所以在全局放大图中可以看到,密码错误lf输出为‘1’,产生报警信号alm 为‘1’。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA 课程设计报告书课题名称 基于VHDL 语言的8位数字密码锁设计 姓 名 学 号 院、系、部 专 业 指导教师2016年6月20日※※※※※※※※※ ※※ ※※ ※※※※※※※※※※※2014级学生EDA 课程设计基于VHDL语言的8位数字密码锁设计1 设计目的(1)熟悉集成电路的引脚安排。
(2)掌握各芯片的逻辑功能及使用方法。
(3)了解面包板结构及其接线方法。
(4)了解电子密码锁的组成及工作原理。
(5)熟悉电子密码锁的设计与制作。
2设计方案电子密码锁,主要由三部分组成:密码输入电路、密码锁控制电路和密码锁显示电路。
作为电子密码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。
拨码与按键和触摸式4*4键盘相比简单方便而且成本低,构成的电路简单,本设计中采用拨码与按键来作为该设计的输入设备。
数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。
液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任然使用LED 数码管。
根据以上选定的输入设备与与显示器件,并考虑到现实各项密码锁功能的具体要求,与系统的设计要求,系统设计采用自顶向下的设计方案。
整个密码锁系统的总体总体框图如图2.1所示。
图2.1电子密码锁系统总体框图3功能模块3.1 输入模块3.1.1功能介绍输入时有三个拨码键控制输入,每个拨码各控制一位密码,对于其中一个拨码键每拨一次码按一次按键,表示输入一位,当输入四位时输出一位数,用“888”作为初始密码。
3.1.2输入模块与仿真图形单脉冲控制如图3.1如下图图3.1上图为单脉冲控制输入,当M给一上升沿信号将在PUL输出一位与之对应的高或低电平。
四位串行输入并行输出寄存器如下图3.2图3.2上图为4为串行输入并行输出寄存器,它由4个D触发组成,当reset为高电平时,每给一脉冲输入数据将向右移一位二值代码,它能同时复位。
3.1.3程序的输入在文本区内输入程序,程序如下:单脉冲信号控制puls.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY puls ISPORT (PUL,M:IN STD_LOGIC;Q:OUT STD_LOGIC);END puls;ARCHITECTURE BEHA VE OF puls ISSIGNAL TEMP:STD_LOGIC;BEGINPROCESS(M)BEGINIF M'EVENT AND M='1' THENIF PUL='1' THENTEMP<='1';ELSE TEMP<='0';END IF;END IF;END PROCESS;Q<=TEMP;END BEHA VE;4位串行输入并行输出寄存器shifter.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY shifter ISPORT(din:IN STD_LOGIC;reset,CLK: IN STD_LOGIC;qout: buffer STD_LOGIC_VECTOR(0 TO 3));END shifter;ARCHITECTURE act OF shifter ISBEGINPROCESS(CLK)V ARIABLE q:STD_LOGIC_VECTOR(0 TO 3);BEGINIF reset='0' THENq:=(others=>'0');ELSEif clk'event and clk='1' thenq(3):=q(2);q(2):=q(1);q(1):=q(0);q(0):=din;END IF;END IF;qout<=q;END PROCESS;END architecture act;3.2 控制模块3.2.1功能介绍开锁时输入密码后,拨动RT键使其为高电平,而CHANGE为低电平检测,密码正确时开锁,输出LOCKOPEN灯灭,LOCKCLOSE灯亮,表示开锁成功。
当密码输入错误时,LOCKOPEN灯亮,LOCKCLOSE灯灭,表示开锁失败。
当改变密码时,按下CHANGE键使其为高电平,而RT为低电平时,可改变密码。
按下REST可清除前面的输入值,清除为“888”。
3.2.2控制模块与仿真图形输入译码器图3.3,如下图图3.3上图为译码器将4位二值代码转化成BCD码从“0000”~“1001”表示0~9。
表3-1输入译码的真值表输入输出D C B A Y1 Y2 Y3 Y4 字形0 0 0 0 0 0 0 0 00 0 0 1 0 0 0 1 10 0 1 0 0 0 1 0 20 0 1 1 0 0 1 1 30 1 0 0 0 1 0 0 40 1 0 1 0 1 0 1 50 1 1 0 0 1 1 0 60 1 1 1 0 1 1 1 71 0 0 0 1 0 0 0 81 0 0 1 1 0 0 1 9表3-1总功能控制模块图3.4,如下图图3.4当CHANGE为高电平且rt为低电平时开始输入密码这时lockopen为高电平,而lockclose为低电平,当rt为高电平,change为低电平时开始检测密码,如上图开始密码为“108”当再次出现“108”时lockopen为高电平,而lockclose 为低电平,当密码错误时lockopen为低电平,而lockclose为高电平。
4选1选择器与扫描器图3.5,如下图图3.5如上图多路选择器可以从多组数据来源中选取一组送入目的地,在本设计中利用多路选择器做扫描电路来分别驱动输出装置,可以将低成本消耗,如上图当输入“819”时,在时钟地控制下qout将输出“819”,而与之对应的sel扫描对应的数码管。
在文本区内输入程序,程序如下:输入译码器KEY.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY KEY ISPORT(clk:IN STD_LOGIC;data:IN STD_LOGIC_VECTOR(3 DOWNTO 0);q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);q1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END ENTITY KEY;ARCHITECTURE ART OF KEY ISBEGINPROCESS(clk,data)ISBEGINIF clk'EVENT AND clk='1' THENCASE data ISWHEN "0000"=>q<="0000";q1<="0000";WHEN "0001"=>q<="0001";q1<="0001";WHEN "0010"=>q<="0010";q1<="0010";WHEN "0011"=>q<="0011";q1<="0011";WHEN "0100"=>q<="0100";q1<="0100";WHEN "0101"=>q<="0101";q1<="0101";WHEN "0110"=>q<="0110";q1<="0110";WHEN "0111"=>q<="0111";q1<="0111";WHEN "1000"=>q<="1000";q1<="1000";WHEN "1001"=>q<="1001";q1<="1001";WHEN OTHERS=>q<="0000";q1<="0000";END CASE;END IF;END PROCESS;END ARCHITECTURE ART;总功能控制模块Eleclock.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Eleclock ISPORT(NB:IN STD_LOGIC_VECTOR(3 DOWNTO 0); NS:IN STD_LOGIC_VECTOR(3 DOWNTO 0); NG:IN STD_LOGIC_VECTOR(3 DOWNTO 0); CLK:IN STD_LOGIC;CHANGE,RT: IN STD_LOGIC;DB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); DS:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); DG:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); LOCKOPEN,LOCKCLOSE:OUT STD_LOGIC);END ENTITY Eleclock;ARCHITECTURE ART OF Eleclock IS COMPONENT Key ISPORT(CLK:IN STD_LOGIC;DATA:IN STD_LOGIC_VECTOR(3 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);Q1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT Key;SIGNAL ENABLE,C0,C1,S,ENABLE1:STD_LOGIC;SIGNAL TB,TS,TG,D_B,D_S,D_G:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINENABLE<=CHANGE AND(NOT RT);ENABLE1<=RT AND(NOT CHANGE);U0:KEY PORT MAP(CLK=>CLK,DATA=>NB,Q=>DB,Q1=>D_B);U1:KEY PORT MAP(CLK=>CLK,DATA=>NS,Q=>DS,Q1=>D_S);U2:KEY PORT MAP(CLK=>CLK,DATA=>NG,Q=>DG,Q1=>D_G); PROCESS(CLK,D_B,D_S,D_G) ISBEGINIF CLK'EVENT AND CLK='1' THENIF ENABLE='1' THENTB<=D_B;TS<=D_S;TG<=D_G;END IF;IF ENABLE1='1' THENIF ( TB<=D_B AND TS<=D_S AND TG<=D_G) THENLOCKOPEN<='1';LOCKCLOSE<='0';ELSELOCKOPEN<='0';LOCKCLOSE<='1';END IF;END IF;END IF;END PROCESS;END ARCHITECTURE ART;4选1选择器与扫描器sel.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY sel ISPORT(QIN1,QIN2,QIN3:IN STD_LOGIC_VECTOR(3 DOWNTO 0); CLK,RST:IN STD_LOGIC;QOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);sel:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END sel;ARCHITECTURE ART OF sel ISBEGINPROCESS(CLK,RST)V ARIABLE CNT:INTEGER RANGE 0 TO 2; BEGINIF (RST='0') THENCNT:=0;sel <="00000000";QOUT<="0000";ELSIF CLK'EVENT AND CLK='1' THENIF CNT=2 THENCNT:=0;ELSECNT:=CNT+1;END IF;CASE CNT ISWHEN 0=>QOUT<=QIN1;sel <="11111110";WHEN 1=>QOUT<=QIN2;sel<="11111101";WHEN 2=>QOUT<=QIN3;sel<="11111011";WHEN OTHERS=>QOUT<="0000";sel<="11111111";END CASE;END IF;END PROCESS;END ARCHITECTURE ART;3.3 显示模块3.3.1功能介绍将密码用BCD七段数码管显示显示模块与仿真波形图3.6,如下图图3.6上图将BCD码转化到七段译码电路上表3-2 BCD-七段数码管的真值表输入输出D C B A Y1 Y2 Y3 Y4 Y5 Y6 Y7字形0 0 0 0 1 1 1 1 1 1 0 00 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 2 0 0 1 1 0 1 1 1 0 0 1 3 0 1 0 0 0 1 1 0 0 1 1 4 0 1 0 1 1 0 1 1 0 1 1 5 0 1 1 0 1 0 1 1 1 1 1 60 1 1 1 1 1 1 0 0 0 0 71 0 0 0 1 1 1 1 1 1 1 8 1 0 0 1 1 1 1 0 0 1 1 9表3-2在文本区内输入程序,程序如下:Seg7.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Seg7 ISPORT(num:IN STD_LOGIC_VECTOR(3 DOWNTO 0);led:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END Seg7;ARCHITECTURE ACT OF Seg7 ISBEGINLED<="1111110"WHEN num="0000"ELSE"0110000"WHEN num ="0001"ELSE"1101101"WHEN num ="0010"ELSE"1111001"WHEN num ="0011"ELSE"0110011"WHEN num ="0100"ELSE"1011011"WHEN num ="0101"ELSE"1011111"WHEN num ="0110"ELSE"1110000"WHEN num ="0111"ELSE"1111111"WHEN num ="1000"ELSE"1111011"WHEN num ="1001"ELSE"1110111"WHEN num ="1010"ELSE"0011111"WHEN num ="1011"ELSE"1001110"WHEN num ="1100"ELSE"0111101"WHEN num ="1101"ELSE"1001111"WHEN num ="1110"ELSE"1000111"WHEN num ="1111";END ACT;4 总体设计电路图4.1功能介绍将各个模块连接在一起实现。