北邮小学期简易密码锁实验报告
北邮数字电路综合实验报告
数字电路综合实验报告简易智能密码锁一、实验课题及任务要求设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。
基本要求:1、密码设置:通过键盘进行4 位数字密码设定输入,在数码管上显示所输入数字。
通过密码设置确定键(BTN 键)进行锁定。
2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。
输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。
3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。
闭锁状态下不能清除密码。
4、用点阵显示开锁和闭锁状态。
提高要求:1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。
2、密码锁的密码位数(4~6 位)可调。
3、自拟其它功能。
二、系统设计2.1系统总体框图2.2逻辑流程图2.3MDS图2.4分块说明程序主要分为6个模块:键盘模块,数码管模块,点阵模块,报警模块,防抖模块,控制模块。
以下进行详细介绍。
1.键盘模块本模块主要完成是4×4键盘扫描,然后获取其键值,并对其进行编码,从而进行按键的识别,并将相应的按键值进行显示。
键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出高电平,在读入输出的行值时,通常高电平会被低电平拉低,当当前位置为高电平“1”时,没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。
同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。
数字密码锁实训报告总结
一、引言随着科技的不断发展,电子技术已经深入到人们的日常生活中。
电子密码锁作为一种新型的锁具,因其安全性高、操作简便、易于维护等优点,在各个领域得到了广泛应用。
为了提高学生的实践能力,本实训项目以数字密码锁为核心,通过理论学习和实践操作,让学生掌握数字密码锁的设计与实现方法。
二、实训目的1. 了解数字密码锁的基本原理和组成;2. 掌握数字密码锁的设计与实现方法;3. 提高学生的动手能力和创新能力;4. 培养学生的团队协作精神。
三、实训内容1. 数字密码锁的基本原理数字密码锁是一种利用数字电路实现密码输入和开锁功能的锁具。
其基本原理是:将密码输入到锁内,通过比较输入密码与预设密码是否一致,来控制开锁信号的输出。
2. 数字密码锁的组成数字密码锁主要由以下几个部分组成:(1)密码输入模块:负责将用户输入的密码转换为数字信号;(2)密码存储模块:存储预设的密码;(3)密码比较模块:比较输入密码与预设密码是否一致;(4)控制模块:根据密码比较模块的结果,控制开锁信号的输出;(5)输出模块:输出开锁信号,驱动锁具解锁。
3. 数字密码锁的设计与实现本实训项目采用以下方法设计数字密码锁:(1)选用合适的数字电路芯片,如74LS112双JK触发器等;(2)根据数字密码锁的功能需求,设计相应的电路;(3)利用EDA工具进行电路仿真,验证电路功能;(4)编写程序,实现密码输入、存储、比较和控制等功能;(5)将程序烧录到单片机或FPGA等芯片中,实现数字密码锁的功能。
四、实训过程1. 理论学习在学习过程中,我们首先了解了数字密码锁的基本原理和组成,掌握了数字电路的基本知识,如逻辑门、触发器等。
2. 设计与仿真根据实训要求,我们选用74LS112双JK触发器等芯片,设计了一个简单的数字密码锁电路。
利用EDA工具进行电路仿真,验证电路功能。
3. 编程与调试编写程序,实现密码输入、存储、比较和控制等功能。
将程序烧录到单片机或FPGA等芯片中,进行调试,确保数字密码锁的功能正常。
电子密码锁实验报告
电子密码锁实验报告一,实验目的1.进一步巩固和加深理论课基本知识的理解,提高综合运用所学知识的能力。
2.能根据需要选择参考书,查阅资料,通过独立思考,深入钻研有关问题。
3.学会自己独立分析问题、解决问题。
4学习定时器时间计时处理、按键扫描及LED数码管显示的设计方法。
5.根据设计任务及要求利用实验平台上单片机及其外围元器件,设计符合功能的电子密码锁。
二,实验要求设计要求:1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。
2:可以自行设定或删除8位密码,能够掉电保存。
3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
三,实验基本原理1.键盘接口必须具有去抖动、按键识别基本功能。
(1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。
抖动的持续时间与键的质量相关,一般为5—20mm。
所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。
去抖问题可通过软件延时或硬件电路解决。
(2)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。
常用的方法有行扫描法和线反转法两种。
行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。
线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。
2.利用键盘扫描原理分别设4×4矩阵键盘组成0-9数字键及确认键和删除键,通过0—9数字键设定8位密码和删除键删除密码,利用存储器的永久存储特性将设定的密码存于存储器中,再次重启程序时,能从存储器中读取出来,从而实现掉电保存。
密码锁实验报告doc
密码锁实验报告篇一:电子密码锁实验报告密码锁实验报告一,实验目的1. 学习8051定时器时间计时处理、跑马灯、按键扫描及LED数码管显示的设计方法。
2. 设计任务及要求利用实验平台上8个LED数码管,按键,跑马灯实现设置密码,密码锁的功能二,实验要求基本要求:1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。
2:可以自行设定或删除8位密码。
3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
三,实验基本原理利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.05s中断一次并当作一个计数,设定定时1秒的中断计数初值为20。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
四,实验设计分析针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash 只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。
这样,既能做到经济合理又能实现预期的功能。
1在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。
简易14位数字密码锁控制电路设计实验报告
简易14位数字密码锁控制电路设计实验报告实验目的:本实验旨在掌握基本的数字锁控制电路设计方法,通过具体实验操作,使学生对数字锁的原理、控制电路以及数字电路的设计方法等有更加深入的了解和认识。
实验器材:1.数字集成电路:CD4017B、CD4069UB、CD4073B、SN74LS08N;2.10K电位器、电容、电阻器、LED灯等。
实验原理:密码锁控制电路是由数字集成电路CD4017B、CD4069UB、CD4073B及SN74LS08N组成的。
其中CD4017B为计数器,CD4069UB、CD4073B和SN74LS08N为逻辑门电路,用于实现密码锁控制功能。
CD4017B为数字集成电路,它是一个10位二进制计数器,可以用于电子时钟、计时器、频率分频器等电路中。
它具有高速、低功耗、可升级性等优点,被广泛地应用于数字电路中。
CD4069UB、CD4073B和SN74LS08N均为逻辑门电路,主要用来实现与门、或门、非门等逻辑运算。
在本实验中,CD4017B接在控制端,用于实现计数和循环控制功能;CD4069UB、CD4073B和SN74LS08N三个逻辑门电路用于实现锁定、解锁功能。
实验步骤:1. 选择合适的元器件,按照电路图连接电路。
将电路连接好后,注意检查电路连接是否正确、元器件是否插紧等。
2. 按照实验要求进行编程。
将编程程序设置为14位数字密码,具体程序如下:3. 按照要求测试实验电路。
输入正确的密码,即可实现锁定或解锁功能。
实验结果:通过实验操作,我们成功地设计出一款14位数字密码锁控制电路,其操作流程为输入密码-验证密码-锁定或解锁。
通过实验可以看出,密码锁控制电路设计简单,操作方便,具有广泛的应用前景。
实验分析:数字密码锁是一种常见的电子密码产品,可以用于保护个人财产、资料等,在家庭、宾馆等场所得到了广泛的应用。
基于数字集成电路和逻辑门电路设计数字密码锁控制电路,具有操作简单、易于维护和升级等优点,被广泛地应用于数字电路中。
简易位数字密码锁控制电路设计实验报告
简易位数字密码锁控制电路设计实验报告Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-目录一、前言 (2)二、课设任务 (2)三、方案设计、原理分析 (2)四、译码电路设计 (8)五、报警信号产生器 (10)六、调试及结果..........................................(12)七、体会 (13)一、前言本次课程设计的基本任务是着重提高学生在EDA知识学习与应用方面的实践技能。
学生通过电路设计安装、调试、整理资料等环节,初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。
EDA技术是电子信息类专业的一门新兴学科,是现代电子产品设计的核心,其任务是掌握在系统可编程逻辑器件及其应用设计技术,为电子产品开发研制打下坚实基础。
本课程设计对学生有如下要求:根据设计任务和指标,初步电路;通过调查研究,设计计算,确定电路方案;选择元器件,在计算机上连好线路,独立进行试验,并通过调试、仿真、改进方案;分析实验结果,写出设计总结报告:学会自己分析,找出解决问题方法;对设计中遇到的问题,能独立思考、查阅资料,寻找答案。
二、课设任务1、14位数字密码分成高7位(DH6…DH0)和低7位(DL6…DL0),用数字逻辑开关预置,输出信号out为1表示开锁,否则关闭。
2、14位数字密码分时操作,先预置高7位,然后再置入低7位。
3、要求电路工作可靠,保密性强,开锁出错立即报警。
4、利用MAX plus2 软件进行设计、编译,并在FPGA芯片上实现。
5、简易14位数字密码锁模块的框图如下:三、方案设计、原理分析首先我是一班的三号,所以我的密码时0100010 0000011。
我所做的设计是先把高七位输入锁存,然后在输入低七位,最后判断密码是否正确,密码正确就开锁,密码错误就报警。
数字密码锁控制电路的组成部分:YMQ 模块,1、IC9A的设计设计要求14位数字密码分时操作,先预置高七位0100010,而后置低七位0000011,首先可以使用寄存器将高七位存起来,而后与低七位一起进行译码,如果密码正确,输出OUT2为1,否则为0.2、数字密码锁控制电路原理图:输入密码正确时波形图输入错误密码时波形图数字密码锁控制电路的VHDL语言编程原理分析:当CLR为0时,寄存器与D触发器被清零,此时在A……G输入高七位密码0100010,用CLK给一个脉冲,由于此时输出端Q为0,经过一个非门为1,与CLK一起经过一个与门,送入寄存器CLK 端,产生上升沿;而经过非门的CLR为1,送入寄存器中,将高七位通过寄存器送入译码器的高七位中。
北邮密码锁小学期报告
北京邮电大学电路综合实验报告实验题目:学生姓名:班级:小班学号:同组姓名:E-MAIL:目录一.设计目的、用途、功能二.硬件设计三、软件设计四、实验器材五、实验过程六、分工情况七、实验总结和心得体会八、参考文献九、代码摘要:本项目是做一个基于ATMega 16单片机的电子密码锁,通过4×4键盘和LCD液晶显示,实现了密码锁的密码验证、重新设置、输入错误后报警直到复位后启动倒计时功能,在倒计时内键盘自动锁死,倒计时结束后恢复所有功能等一些基本功能,通过LCD的巧妙使用实现友好的人机界面功能,更具人性化,除此之外还创新性的实现了LCD的开锁功能和键盘的重新定义。
通过LCD的开锁功能和对键盘的重新定义以及倒计时功能可以有效地防止密码被盗,同时也降低了成本,便于携带安装。
关键字:ATMega16 单片机、密码锁、键盘、 LCD 、开锁、倒计时一.设计目的、用途、功能1.设计目的随着科技的发展,安全问题越来越受到人们重视,不仅居家安全受到重视,出门在外行李物品的安全问题也受到了很多关注,在此基础上各种安全产品相继问世,如指纹防盗,红外防盗等,虽然这类产品的安全性较高,但其成本也同样较高,并且携带安装不方便,这种种缺点限制了其发展。
本设计的目的就是为了在保证高安全性的前提下,实现降低成本,方便携带安装的功能,真正服务于人民。
当然对于密码锁,我们接触最多的就是取款机了,我们设计的这个密码锁,与众不同的地方就是我们可以让我们的液晶显示屏无限循环的显示操作指南,只有当你按下键盘上的任意一个键的时候才可以终止这种循环。
还有一点,就是我们的密码锁加了倒计时这个功能,当输入错误次数超过三次的时候,就不能再输入了,更加安全。
2. 设计用途由于本设计成本较低且安全性能稳定,可适用于家庭防盗、行李箱、车载行李箱等一些安全性能要求不高且需要便携的产品上,其安全性能远远优于同等成本的安全性。
其中输入密码错误无限报警和自动锁死的功能能提高用户的警觉性,降低失窃率。
北邮数电综合实验报告
北邮数电综合实验报告综合实验报告:基于北邮数电实验的电子门禁系统设计与实现摘要:本次实验通过使用北邮数电实验室提供的器件和设备,设计并实现了一个简易的电子门禁系统。
该系统能够通过输入正确的密码或使用合法的身份卡,实现对门禁的控制和管理。
本文将详细介绍系统设计的原理、实验过程和结果,并对实验进行了总结和评价。
一、引言电子门禁系统是当前社会中广泛应用的一种重要安全保障设施。
它通过使用密码、身份卡等识别方式,对人员出入进行控制和管理。
本实验旨在通过北邮数电实验的学习和实践,学习和掌握电子门禁系统的设计与实现。
二、实验器材与原理实验器材:1.键盘2.蜂鸣器3.LCD显示屏4.数码安全码锁5.单片机开发板6.电源模块7.连线模块实验原理:该电子门禁系统的基本原理如下:1.用户通过键盘输入密码或刷合法的身份卡;2.单片机接收到输入的密码或读取身份卡信息;3.单片机对输入的密码或身份卡信息进行核对;5. 若核对失败,则控制蜂鸣器发出门禁错误提示音,并在LCD显示屏上显示“Access Denied”等拒绝信息。
三、实验过程与结果1.按照实验器材的接线要求,将键盘、蜂鸣器和LCD显示屏与开发板连接好;2.根据实验原理,编写相应的控制程序,并将程序烧录到单片机中;3.打开电源模块,开启电子门禁系统;4.用户通过键盘输入密码或刷合法的身份卡;5.系统接收到用户输入并进行核对;7. 核对失败时,蜂鸣器发出门禁错误提示音,LCD显示屏上显示“Access Denied”等拒绝信息。
实验结果显示,该电子门禁系统能够根据用户输入的密码或身份卡信息,进行核对并作出相应的操作。
当核对成功时,系统会解锁门禁并显示欢迎信息;当核对失败时,系统会发出错误提示并拒绝门禁。
四、实验总结本次实验通过设计和实现基于北邮数电实验的电子门禁系统,使得我们更加深入地了解了电子门禁系统的原理和应用。
通过实验,我们学会了利用键盘、蜂鸣器和LCD显示屏等器材,通过单片机控制,实现了一个简易的电子门禁系统。
简易密码锁设计实验报告(一)
简易密码锁设计实验报告(一)简易密码锁设计实验报告研究背景在当前的社会中,密码锁已经广泛应用于各种领域,如个人家庭、办公场所、银行等。
密码锁在保障安全的同时,也带来了便捷。
因此,设计一款简易密码锁具有重要意义。
实验目的本次实验旨在设计一款简易密码锁,能够通过输入正确的密码从而打开锁,同时能够保护用户的安全。
实验步骤1.确定锁的锁舌位置和大小,确定锁的存储方式。
2.选择合适的电子元件,如单片机、键盘、LED灯等。
3.设计程序流程,完成程序并进行调试。
4.进行实验,并测试相关数据。
5.对实验结果进行分析,总结实验过程中的问题并提出改进方案。
实验结果及分析经过一段时间的实验,我们设计出了一款简易密码锁。
该密码锁通过输入正确的密码可以打开锁,密码为“123456”。
在打开锁的过程中,如果输入错误的密码,则锁将不会打开,并提示密码错误。
同时,该密码锁还具有防止暴力破解的功能,在输入密码错误达到一定次数时,将自动锁死。
在实验过程中,我们发现了一些问题,如电路连线不够稳定、程序层次不够清晰等。
针对这些问题,我们进行了相应的改进,在稳定电路连线的同时,也简化了程序层次,提高了密码锁的使用体验。
结论通过本次实验,我们成功地设计出了一款简易密码锁,并成功地实现了输入正确密码可以打开锁的功能。
在实验过程中,我们遇到了一些问题,但经过不断地实验和调整,最终得到了一个较为完善的版本。
参考文献无。
实验心得通过本次实验,我进一步了解了密码锁的设计和工作原理。
在实验过程中,我采用科学严谨的方法去解决问题,例如测试数据、重新设计程序以及频繁的测试与优化。
这个过程让我深深地体会到了科学实验具有的重要性,只有不断地实验、总结、优化,才能得到一个经得起实验检验的好结果。
同时,在实验过程中我还学会了合理地进行电路的布线以及如何选取合适的元件,这些都是我在日后实际工作中所必备的技能。
在实验过程中,我还发现设计中的细节问题常常决定一个产品的品质,在以后的工作中,我会更加注重产品的细节设计。
密码报警锁实验报告(3篇)
第1篇一、实验目的1. 了解密码报警锁的基本原理和设计方法。
2. 掌握密码报警锁的硬件电路设计和软件编程。
3. 通过实验,验证密码报警锁的功能和性能。
二、实验原理密码报警锁是一种结合了密码识别和报警功能的电子锁。
其基本原理如下:1. 用户输入密码:当用户需要开锁时,通过键盘输入预设的密码。
2. 密码识别:系统对输入的密码进行识别,判断是否与预设密码一致。
3. 开锁:若密码正确,则通过继电器控制锁具开启;若密码错误,则系统发出报警信号。
4. 报警:当密码连续输入错误达到预设次数时,系统发出声光报警信号。
三、实验器材1. 实验箱:包含AT89C51单片机、键盘、继电器、蜂鸣器、LED灯、电源等。
2. 仿真软件:Proteus。
四、实验步骤1. 硬件电路设计(1)根据实验要求,设计密码报警锁的硬件电路图。
(2)使用Proteus软件进行电路仿真,验证电路的正确性。
2. 软件编程(1)编写密码报警锁的软件程序,实现密码识别、开锁、报警等功能。
(2)使用Proteus软件进行程序仿真,验证程序的正确性。
3. 硬件调试(1)将设计好的电路焊接成实体电路。
(2)将编写好的程序烧录到单片机中。
(3)进行硬件调试,验证密码报警锁的功能和性能。
4. 功能测试(1)输入正确密码,验证开锁功能。
(2)输入错误密码,验证报警功能。
五、实验结果与分析1. 硬件电路设计经过Proteus仿真,电路设计符合预期,能够实现密码报警锁的基本功能。
2. 软件编程经过Proteus仿真,软件程序运行正常,能够实现密码识别、开锁、报警等功能。
3. 硬件调试经过硬件调试,密码报警锁能够实现预设功能,性能稳定。
4. 功能测试(1)输入正确密码,锁具开启,验证开锁功能。
(2)输入错误密码,系统发出报警信号,验证报警功能。
六、实验总结本次实验成功设计并实现了密码报警锁。
通过实验,掌握了密码报警锁的基本原理、硬件电路设计和软件编程方法。
实验过程中,提高了动手能力和问题解决能力。
简易密码锁设计实验报告
简易密码锁设计实验报告
密码锁作为一种常见的安全锁具,广泛应用于各种安全场合。
在本次实验中,我们将设计一个简易的密码锁,并通过实验验证其功能和安全性能。
原理
密码锁主要由以下几个部分组成:输入设备、控制器和输出设备。
输入设备通常是键盘或按键开关,控制器用于接收输入信号并判断是否正确,输出设备可以是电子门锁、LED 指示灯或蜂鸣器等。
在本次实验中,我们将采用单片机作为控制器,用矩阵键盘作为输入设备,用LED灯和蜂鸣器作为输出设备。
具体原理如下:
输入设备
矩阵键盘是一种常见的数字输入设备,在本次实验中我们将使用4*4矩阵键盘。
该键盘由16个按键组成,分别对应09数字和AF字母共16个字符。
控制器
我们将使用STM32F103C8T6单片机作为控制器。
该单片机具有较高的性能和丰富的外设资源,在密码锁设计中可以充分发挥其优势。
控制器主要工作流程如下:
(1) 初始化:对单片机进行初始化,并定义好输入输出引脚。
(2) 输入密码:从矩阵键盘读取用户输入的密码。
(3) 判断密码:将读取到的密码与预设的正确密码进行比较,如果相同则解锁,否则报警。
(4) 解锁/报警:如果密码正确,则点亮LED灯并发出解锁提示音;否则点亮红色LED灯并发出警示音。
输出设备
我们将使用两个LED灯和一个蜂鸣器作为输出设备,用于提示用户解锁状态。
其中绿色LED灯表示解锁成功,红色LED灯表示解锁失败,蜂鸣器用于发出提示音。
密码锁实验报告
密码锁实验报告密码锁实验报告引言:密码锁是一种常见的安全设备,它通过输入正确的密码才能打开,保护了我们的财产和隐私。
为了深入了解密码锁的原理和安全性,我们进行了一项实验,以探索密码锁的工作原理、破解方法以及可能存在的安全隐患。
实验目的:1.了解密码锁的工作原理;2.探索密码锁的安全性;3.尝试破解密码锁,分析其安全隐患。
实验材料和方法:1.密码锁:我们选择了市场上一种常见的电子密码锁作为实验对象;2.密码锁说明书:用于了解密码锁的操作方法和技术参数;3.计算机:用于记录实验过程和分析数据;4.密码破解工具:用于尝试破解密码锁。
实验过程:1.了解密码锁的工作原理:通过阅读密码锁说明书,我们了解到密码锁是通过输入正确的密码来解锁的。
密码锁内部有一个密码验证模块,当输入的密码与设定的密码一致时,密码锁会打开。
密码验证模块一般采用加密算法,确保密码的安全性。
2.探索密码锁的安全性:为了测试密码锁的安全性,我们分别设置了几组不同的密码,并尝试通过不同的方法破解密码锁。
首先,我们尝试了常见的暴力破解方法,即通过不断尝试所有可能的密码组合来解锁密码锁。
然而,由于密码锁的密码长度和复杂度限制,我们发现暴力破解几乎不可能成功。
接着,我们尝试了一些密码破解工具,如字典攻击和蛮力破解,但同样没有取得成功。
3.分析密码锁的安全隐患:尽管我们没有成功破解密码锁,但我们发现一些可能存在的安全隐患。
首先,密码锁的密码验证模块可能存在漏洞,如密码验证算法的不安全性或密码存储的不安全性。
其次,密码锁的物理结构可能存在弱点,如易受到撬锁或钥匙复制的攻击。
这些安全隐患可能导致密码锁的被破解或绕过,从而威胁到我们的财产和隐私安全。
结论:通过本次实验,我们对密码锁的工作原理和安全性有了更深入的了解。
密码锁作为一种常见的安全设备,虽然在一定程度上保护了我们的财产和隐私,但仍然存在一些安全隐患。
为了提高密码锁的安全性,我们建议密码锁制造商加强密码验证算法的安全性、改进密码存储方式,并加强物理结构的防护措施。
数字密码锁的实训报告
一、项目背景随着科技的不断发展,人们对安全性的要求越来越高。
传统的机械锁由于其构造简单,容易被撬,安全性较差。
为了提高锁的安全性,电子密码锁应运而生。
电子密码锁通过数字密码技术,实现了高安全性的锁具,广泛应用于家庭、企事业单位、银行等场所。
本实训项目旨在通过设计、制作和调试数字密码锁,了解电子密码锁的工作原理,提高学生的实践能力和创新能力。
二、实训目的1. 熟悉电子密码锁的工作原理和设计方法;2. 掌握数字电路、单片机等电子技术的基本知识和应用;3. 培养学生的实践能力和创新能力;4. 提高学生对电子产品的安全性和可靠性的认识。
三、实训内容1. 硬件设计(1)密码键盘设计:设计一个4x4的键盘矩阵,实现10个有效密码按键和一个确定键;(2)单片机设计:选择STC51单片机作为主控芯片,实现密码的存储、比较和输出控制;(3)显示模块设计:选用LCD液晶显示屏,显示密码输入状态、解锁成功或失败等信息;(4)驱动电路设计:设计驱动电路,实现对LCD显示屏、蜂鸣器等外围设备的控制。
2. 软件设计(1)密码输入程序:实现用户输入密码,并对输入的密码进行校验;(2)密码存储程序:将用户设置的密码存储在单片机的EEPROM中;(3)解锁控制程序:当输入密码正确时,控制继电器动作,打开锁具;当输入密码错误时,蜂鸣器发出报警声;(4)LCD显示程序:显示密码输入状态、解锁成功或失败等信息。
3. 调试与测试(1)硬件调试:连接电路,检查电路连接是否正确,排除硬件故障;(2)软件调试:编写程序,进行编译、下载,观察程序运行状态,调试程序错误;(3)整体调试:将硬件和软件结合起来,进行整体调试,确保数字密码锁功能正常。
四、实训结果与分析1. 硬件设计结果(1)密码键盘设计:完成4x4键盘矩阵,实现10个有效密码按键和一个确定键;(2)单片机设计:完成STC51单片机的编程,实现密码的存储、比较和输出控制;(3)显示模块设计:完成LCD液晶显示屏的编程,显示密码输入状态、解锁成功或失败等信息;(4)驱动电路设计:完成驱动电路的连接,实现对LCD显示屏、蜂鸣器等外围设备的控制。
电子密码锁实习报告
一、实习背景随着社会的发展,人们对安全性的要求越来越高。
传统的机械锁因其构造简单、易被撬开等问题,已无法满足现代生活的需求。
电子密码锁作为一种新型锁具,具有安全性高、操作方便等优点,逐渐成为人们生活中的重要组成部分。
为了提高自己的实际操作能力,我参加了电子密码锁的实习项目。
二、实习目的1. 了解电子密码锁的工作原理和设计方法。
2. 掌握电子密码锁的硬件电路和软件编程。
3. 提高自己的动手能力和团队协作能力。
三、实习内容1. 电子密码锁的硬件电路设计(1)选择合适的微控制器:本实习项目采用STM32微控制器作为核心处理单元,因其具有高性能、低功耗等特点。
(2)设计键盘输入电路:本电路采用4x4矩阵键盘,通过扫描键盘矩阵,实现密码输入。
(3)设计密码存储电路:采用EEPROM存储密码,具有断电保护功能。
(4)设计报警电路:当密码输入错误时,通过蜂鸣器发出报警信号。
(5)设计显示电路:采用LCD液晶显示屏,显示密码输入状态和错误次数。
2. 电子密码锁的软件编程(1)编写键盘扫描程序:通过扫描键盘矩阵,获取按键信息。
(2)编写密码存储程序:将输入的密码存储到EEPROM中。
(3)编写密码比对程序:将输入的密码与存储的密码进行比对,判断是否正确。
(4)编写显示程序:根据密码输入状态和错误次数,在LCD上显示相关信息。
(5)编写报警程序:当密码输入错误时,通过蜂鸣器发出报警信号。
3. 实验验证(1)搭建实验平台:将设计的硬件电路和软件程序进行集成,搭建实验平台。
(2)测试功能:对电子密码锁的各项功能进行测试,包括密码输入、密码存储、密码比对、报警、显示等。
(3)分析测试结果:根据测试结果,对电子密码锁的性能进行评估。
四、实习心得1. 通过本次实习,我对电子密码锁的工作原理和设计方法有了更深入的了解。
2. 在硬件电路设计过程中,我学会了如何选择合适的元器件,如何进行电路布局和布线。
3. 在软件编程过程中,我掌握了C语言编程技巧,提高了自己的编程能力。
密码锁实训报告心得体会
一、实训背景随着科技的不断发展,人们对于安全性的要求越来越高。
传统的机械锁已经无法满足现代生活的需求,因此,电子密码锁应运而生。
为了更好地了解电子密码锁的工作原理和应用,我们进行了一次密码锁的实训。
通过这次实训,我对密码锁有了更深入的了解,以下是我对这次实训的心得体会。
二、实训内容1. 实训目的(1)了解电子密码锁的工作原理和结构;(2)掌握电子密码锁的设计与实现方法;(3)提高动手能力和团队协作能力。
2. 实训内容(1)了解电子密码锁的基本原理;(2)学习电子密码锁的硬件电路设计;(3)学习电子密码锁的软件编程;(4)进行密码锁的组装和调试。
三、实训过程1. 理论学习在实训开始之前,我们首先对电子密码锁的基本原理进行了学习。
我们了解到,电子密码锁主要由单片机、键盘、显示屏、锁具等组成。
通过编程,单片机可以实现对键盘输入的密码进行识别,并控制锁具的开关。
2. 硬件电路设计在硬件电路设计过程中,我们学习了如何选择合适的元器件,并按照电路图进行焊接。
我们使用了单片机、键盘、显示屏、锁具等元器件,通过合理的布局和布线,完成了硬件电路的设计。
3. 软件编程在软件编程过程中,我们学习了C语言编程,并利用单片机的编程环境进行编程。
我们编写了密码输入、密码验证、锁具控制等程序,实现了电子密码锁的基本功能。
4. 组装与调试在组装与调试过程中,我们将硬件电路和软件程序结合起来,完成了密码锁的组装。
通过测试,我们发现了程序中存在的问题,并进行了修改和完善。
四、实训心得体会1. 提高动手能力通过这次实训,我学会了如何使用电子元器件,并按照电路图进行焊接。
在组装过程中,我学会了如何排除故障,提高了自己的动手能力。
2. 深入了解电子密码锁在实训过程中,我对电子密码锁的工作原理和结构有了更深入的了解。
我认识到,电子密码锁是一种高度集成的电子设备,它将单片机、键盘、显示屏、锁具等元器件有机地结合在一起,实现了安全、便捷的开锁方式。
电子密码锁的实习报告
实习目的和任务毕业实习是每一位即将毕业的大学生所必须经历的一次历练,它主要是要求学生能够将自己在大学中所学的各种理论知识与实践相结合,从而提高学生自我的政治思想水平、各类业务水平和动手能力。
同时在实习结束的时候,学校会要求学生总结出实习报告,从而使自己能够更加清楚自己各方面的优点与不足,以提高各方面的能力,使学生毕业后可以很好的适应社会。
然而,由于种种条件的限制,此次的毕业实习我没有能够出去校门进行真正的锻炼与洗涤。
所以,这次实习我的主要任务就是在学校进行一些有关毕业设计资料的搜集与处理。
从学期初我就开始了为毕业设计做各种准备,关于毕业设计题目我暂定的是电子密码锁,电子密码锁由单片机电路和机械部分组成,而这个月我的工作主要就是查阅和学习关于密码锁单片机部分的知识,因此可能对单片机部分多了解一点,下面就对我在这个月所做的工作进行一个简单的报告。
实习单位实习内容1电子密码锁的介绍科技的突飞猛进,人们生活质量的不断提高使人们加大了对安全方面的认识,也使人们开始对安全方面的防护设施有了更近一步的研究与探索。
因而各种电子设备成为了研究探索的首要目标,其中当然不乏电子密码锁的研究。
电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
目前为止它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
不过现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。
目前就我国而言电子防盗锁应用于金融业,其根本的作用是“授权”,即被“授权”的人才可以存取钱、物。
这种因电子密码锁而带给我们的便利条件我们于生活中随处可见。
由于电子密码锁的种类很多,例如遥控式电子防盗锁、键盘式电子密码锁、卡式电子防盗锁、生物特征防盗锁等。
从目前的技术水平和市场认可程度来看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。
键盘式电子锁的密码是在键盘上进行输入,与打电话差不多,因而易于掌握,其突出有点就是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失也难以窃密。
密码锁实习报告
密码锁实习报告在_____公司的密码锁实习经历,让我对密码锁这一领域有了更深入的了解和认识。
在这段时间里,我参与了密码锁的研发、生产和测试等多个环节,不仅学到了专业知识和技能,还积累了宝贵的实践经验。
一、实习单位及岗位介绍我实习的_____公司是一家专注于密码锁研发、生产和销售的企业。
公司拥有先进的生产设备和技术,产品涵盖了家用密码锁、商用密码锁和智能密码锁等多个系列。
我所在的岗位是密码锁研发助理,主要负责协助研发工程师进行密码锁的设计和开发工作。
具体包括收集市场需求和用户反馈、参与方案讨论和制定、进行零部件选型和测试,以及协助编写技术文档等。
二、实习内容及成果1、密码锁市场调研在实习初期,我参与了密码锁市场调研工作。
通过查阅相关资料、走访市场和与用户交流,了解了当前密码锁市场的需求和趋势。
发现用户对于密码锁的安全性、便捷性和智能化程度有着越来越高的要求。
同时,也了解到不同用户群体对于密码锁的功能和价格有着不同的需求和偏好。
2、密码锁设计与开发在市场调研的基础上,我协助研发工程师进行了密码锁的设计和开发工作。
参与了方案的讨论和制定,提出了一些自己的想法和建议。
在零部件选型方面,我通过对比不同厂家的产品性能和价格,为项目选择了合适的零部件。
同时,我还参与了密码锁的电路设计和程序编写工作,通过不断地调试和优化,提高了密码锁的稳定性和可靠性。
在密码锁的外观设计方面,我们充分考虑了用户的审美需求和使用习惯,采用了简洁大方的设计风格,并注重了细节的处理。
经过多次修改和完善,最终确定了密码锁的外观设计方案。
3、密码锁测试与优化在密码锁开发完成后,我参与了密码锁的测试和优化工作。
通过对密码锁进行功能测试、性能测试和安全性测试,发现了一些存在的问题和不足之处。
针对这些问题,我与研发工程师一起进行了分析和研究,提出了相应的解决方案,并对密码锁进行了优化和改进。
经过多次测试和优化,密码锁的各项性能指标均达到了设计要求,并且在稳定性和安全性方面有了很大的提高。
电子密码锁实训报告心得
一、前言随着科技的发展,人们对安全的重视程度日益提高,电子密码锁作为一种高科技产品,广泛应用于家庭、企业、银行等领域。
为了提高自己的实践能力,我参加了电子密码锁实训课程,通过本次实训,我对电子密码锁的设计与实现有了更深入的了解,以下是我对本次实训的心得体会。
二、实训内容与过程1. 实训内容本次实训主要包括以下几个方面:(1)电子密码锁原理及设计方法;(2)电子密码锁硬件电路设计;(3)电子密码锁软件编程;(4)电子密码锁仿真与调试。
2. 实训过程(1)理论学习:通过查阅相关资料,了解电子密码锁的基本原理、设计方法以及常见硬件电路。
(2)硬件电路设计:根据实训要求,设计电子密码锁的硬件电路,包括键盘输入、密码存储、显示、报警等模块。
(3)软件编程:根据硬件电路设计,编写电子密码锁的软件程序,实现密码输入、密码存储、密码比较、报警等功能。
(4)仿真与调试:利用Proteus软件对电子密码锁进行仿真,观察电路运行状态,根据仿真结果调整电路参数,直至满足设计要求。
三、实训心得体会1. 基本原理与设计方法通过本次实训,我对电子密码锁的基本原理有了更深入的了解。
电子密码锁主要由以下几个部分组成:(1)密码输入模块:用于输入密码,一般采用键盘输入方式;(2)密码存储模块:用于存储密码,一般采用EEPROM或Flash存储器;(3)密码比较模块:用于比较输入密码与存储密码是否一致;(4)显示模块:用于显示密码输入情况、锁状态等信息;(5)报警模块:用于在密码输入错误时发出报警信号。
在设计电子密码锁时,需要考虑以下几个因素:(1)安全性:密码存储方式要保密,防止他人非法获取;(2)可靠性:电路设计要稳定,防止因电路故障导致密码丢失或误操作;(3)易用性:操作简单,便于用户使用;(4)成本:尽量降低成本,提高产品竞争力。
2. 硬件电路设计在硬件电路设计过程中,我学习了如何选择合适的元器件,如何设计电路板,以及如何布线。
简易位数字密码锁控制电路设计实验报告
简易位数字密码锁控制电路设计实验报告目录一、前言 (2)二、课设任务 (2)三、方案设计、原理分析 (2)四、译码电路设计 (8)五、报警信号产生器 (10)六、调试及结果 (12)七、体会 (13)一、前言本次课程设计的基本任务是着重提高学生在EDA知识学习与应用方面的实践技能。
学生通过电路设计安装、调试、整理资料等环节,初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。
EDA技术是电子信息类专业的一门新兴学科,是现代电子产品设计的核心,其任务是掌握在系统可编程逻辑器件及其应用设计技术,为电子产品开发研制打下坚实基础。
本课程设计对学生有如下要求:根据设计任务和指标,初步电路;通过调查研究,设计计算,确定电路方案;选择元器件,在计算机上连好线路,独立进行试验,并通过调试、仿真、改进方案;分析实验结果,写出设计总结报告:学会自己分析,找出解决问题方法;对设计中遇到的问题,能独立思考、查阅资料,寻找答案。
二、课设任务1、14位数字密码分成高7位(DH6…DH0)和低7位(DL6…DL0),用数字逻辑开关预置,输出信号out为1表示开锁,否则关闭。
2、14位数字密码分时操作,先预置高7位,然后再置入低7位。
3、要求电路工作可靠,保密性强,开锁出错立即报警。
4、利用MAX plus2 软件进行设计、编译,并在FPGA芯片上实现。
5、简易14位数字密码锁模块的框图如下:三、方案设计、原理分析首先我是一班的三号,所以我的密码时0100010 0000011。
我所做的设计是先把高七位输入锁存,然后在输入低七位,最后判断密码是否正确,密码正确就开锁,密码错误就报警。
数字密码锁控制电路的组成部分:YMQ模块,1、IC9A的设计设计要求14位数字密码分时操作,先预置高七位0100010,而后置低七位0000011,首先可以使用寄存器将高七位存起来,而后与低七位一起进行译码,如果密码正确,输出OUT2为1,否则为0.2、数字密码锁控制电路原理图:输入密码正确时波形图输入错误密码时波形图数字密码锁控制电路的VHDL语言编程原理分析:当CLR为0时,寄存器与D触发器被清零,此时在A……G输入高七位密码0100010,用CLK给一个脉冲,由于此时输出端Q为0,经过一个非门为1,与CLK一起经过一个与门,送入寄存器CLK 端,产生上升沿;而经过非门的CLR为1,送入寄存器中,将高七位通过寄存器送入译码器的高七位中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简易智能密码锁实验报告一、实验要求:设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。
基本要求:1、密码设置:通过键盘进行4 位数字密码设定输入,在数码管上显示所输入数字。
通过密码设置确定键(BTN 键)进行锁定。
2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。
输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。
3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。
闭锁状态下不能清除密码。
4、用点阵显示开锁和闭锁状态。
提高要求:1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。
2、密码锁的密码位数(4~6 位)可调。
二、系统设计:1、设计思路:在数字电路设计中,自顶向下设计方法的主要思想是对数字系统进行划分,将复杂的设计原理简化为相对简单的模块设计,不同的模块用来完成数字系统中某一部分的具体功能。
总体思路:2、总体框图:三、仿真波形及波形分析1、键盘输入模块图3-1 键盘输入仿真在上图中,clkjp时钟控制jpcat,jpcat控制kbout从0111到1110变换,然后手动控制kbin来模拟键盘的案件,从jpout就能看到的键入的数字。
2、防抖图3-2 防抖仿真上图中可以看见,btn1只在上升沿才有用,而clear会持续到一个周期的最后才会完毕。
3、状态转移图3-3 状态转移模块仿真如上图所示,开始,按下set=1,set1=1,setmode=1,进入设置密码状态。
然后,jpout连续输入2和6,改了密码,然后btn2=1代表按下了确定键,lockmode变成1,setmode变成0,状态从设定状态变成锁定状态。
再之后,ipout输入2和6,再次btn2=1(按下确定键),lockmode 变成0,状态从锁定状态变成开锁状态。
整个就实现了一个循环。
四、源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mms isport (clk : in std_logic;set:in std_logic;btn1,btn2,btnloc:in std_logic;smgzf: out std_logic_vector(6 downto 0);smgcatout:out std_logic_vector(5 downto 0);kbin: in std_logic_vector(3 downto 0);kbout: buffer std_logic_vector(3 downto 0);dzrow,dzcolr,dzcolg: out std_logic_vector(7 downto 0); fmq: out std_logic);end mms;architecture behave of mms issignal clkjp: std_logic;signal clksmg: std_logic;signal clkdz: std_logic;signal clkfd: std_logic;signal clkfm: std_logic;signal jpcat: integer range 0 to 3;signal smgcat:integer range 0 to 5;signal dzcat:integer range 0 to 7;signal tmp1: integer range 0 to 99999;--jpsignal tmp2: integer range 0 to 999;--dzsignal tmp3: integer range 0 to 999;--smgsignal tmp4: integer range 0 to 2499999;--fdsignal tmp5: integer range 0 to 20;--alarm timesignal tmpdo: integer range 0 to 97655;--alarm timesignal jpout:integer range 0 to 10;signal alarm:std_logic;signal m1y,m2y,m3y,m4y:std_logic_vector(6 downto 0);signal m1,m2,m3,m4,mm1,mm2,mm3,mm4: integer range 0 to 9; signal wei:integer range 0 to 3;signal kwei:integer range 0 to 4;signal setmode:std_logic;signal set1:std_logic;signal lockmode:std_logic;signal clear: std_logic;signal sure: std_logic;signal lock: std_logic;signal noise:std_logic;signal beep:std_logic;beginfangdou:process(clk)beginif(clk'event and clk='1')thenif (tmp4=2499999) thentmp4<=0;clkfd<=not clkfd;elsetmp4<=tmp4+1;end if;end if;end process;shezhi:process(set,sure)beginif(clkfd'event and clkfd='1')thenif(set='1')then --set进入改密码状态 set1<='1';end if;if(sure='1')thenset1<='0';end if;end if;end process;qingling:process(btn1)beginif(clkfd'event and clkfd='1')thenif(btn1='1')then --clear为清零键 clear<='1';else clear<='0';end if;end if;end process;queding:process(btn2)beginif(clkfd'event and clkfd='1')thenif(btn2='1')thensure<='1'; --sure为btn5(确定键) else sure<='0';end if;end if;end process;suoding:process(btnloc)beginif(clkfd'event and clkfd='1')thenif(btnloc='1')then --lock为锁定键lock<='1';else lock<='0';end if;end if;end process;suoyou:process(jpout)beginif(clkfd'event and clkfd='1')thenalarm<='0';if(lockmode='1')then --在锁定状态wei<=0;if(jpout/=10)then --按了键if(kwei=3)then mm4<=jpout;kwei<=kwei+1;elsif(kwei=2)then mm3<=jpout;kwei<=kwei+1;elsif(kwei=1)then mm2<=jpout;kwei<=kwei+1;elsif(kwei=0)then mm1<=jpout;kwei<=kwei+1;end if;end if;if(sure='1')then --进入判断密码的状态if((mm1=m1)and(mm2=m2)and(mm3=m3)and(mm4=m4)and(kwei=4))then lockmode<='0';alarm<='0';else kwei<=0;alarm<='1';end if;end if;else --在开锁状态kwei<=0;if((lock='1'))then --进入锁定状态lockmode<='1';setmode<='0';alarm<='0';elseif(set1='1')then setmode<='1'; --进入改密码状态else setmode<='0';end if;end if;if(clear='1') then --密码直接清零然后锁定m1<=0;m2<=0;m3<=0;m4<=0;mm1<=0;mm2<=0;mm3<=0;mm4<=0;wei<=0;kwei<=0;alarm<='0';setmode<='0';lockmode<='1';elsif(setmode='1')thenif(jpout/=10)then --如有输入if(wei=0)then m1<=jpout;wei<=wei+1;mm1<=jpout;elsif(wei=1)then m2<=jpout;wei<=wei+1;mm2<=jpout;elsif(wei=2)then m3<=jpout;wei<=wei+1;mm3<=jpout;elsif(wei=3)then m4<=jpout;wei<=0;mm4<=jpout;end if;end if;if(sure='1')then lockmode<='1';setmode<='0';alarm<='0'; --如果按了清零 end if;end if;end if;end if;end process;jianpan1:process(clk)beginif(clk'event and clk='1')thenif (tmp1=99999) thentmp1<=0;clkjp<=not clkjp;elsetmp1<=tmp1+1;end if;end if;end process;jianpan2:process(clkjp)beginif(clkjp'event and clkjp='1')thenif (jpcat=3)thenjpcat<=0;elsejpcat<=jpcat+1;end if;end if;end process;jianpan3:process(jpcat)begincase jpcat iswhen 0=>kbout<="0111";when 1=>kbout<="1011";when 2=>kbout<="1101";when 3=>kbout<="1110";end case;end process;jianpan4:process(jpcat)beginif((kbout="0111")and(kbin="0111"))then jpout<=0;elsif((kbout="0111")and(kbin="1011"))then jpout<=4; elsif((kbout="0111")and(kbin="1101"))then jpout<=8; elsif((kbout="1011")and(kbin="0111"))then jpout<=1; elsif((kbout="1011")and(kbin="1011"))then jpout<=5; elsif((kbout="1011")and(kbin="1101"))then jpout<=9; elsif((kbout="1101")and(kbin="0111"))then jpout<=2; elsif((kbout="1101")and(kbin="1011"))then jpout<=6; elsif((kbout="1110")and(kbin="0111"))then jpout<=3; elsif((kbout="1110")and(kbin="1011"))then jpout<=7; else jpout<=10;end if;end process;mimafuzhi1:process(m1)begincase m1 iswhen 0=>m1y<="1111110";when 1=>m1y<="0110000";when 2=>m1y<="1101101";when 3=>m1y<="1111001";when 4=>m1y<="0110011";when 5=>m1y<="1011011";when 6=>m1y<="1011111";when 7=>m1y<="1110000";when 8=>m1y<="1111111";when 9=>m1y<="1111011";end case;end process;mimafuzhi2:process(m2)begincase m2 iswhen 0=>m2y<="1111110";when 1=>m2y<="0110000";when 2=>m2y<="1101101";when 3=>m2y<="1111001";when 4=>m2y<="0110011";when 5=>m2y<="1011011";when 6=>m2y<="1011111";when 7=>m2y<="1110000";when 8=>m2y<="1111111";when 9=>m2y<="1111011";end case;end process;mimafuzhi3:process(m3)begincase m3 iswhen 0=>m3y<="1111110";when 1=>m3y<="0110000";when 2=>m3y<="1101101";when 3=>m3y<="1111001";when 4=>m3y<="0110011";when 5=>m3y<="1011011";when 6=>m3y<="1011111";when 7=>m3y<="1110000";when 8=>m3y<="1111111";when 9=>m3y<="1111011";end case;end process;mimafuzhi4:process(m4)begincase m4 iswhen 0=>m4y<="1111110";when 1=>m4y<="0110000";when 2=>m4y<="1101101";when 3=>m4y<="1111001";when 4=>m4y<="0110011";when 5=>m4y<="1011011";when 6=>m4y<="1011111";when 7=>m4y<="1110000";when 8=>m4y<="1111111";when 9=>m4y<="1111011";end case;end process;shumaguan1:process(clk) --分出数码管的频率 beginif(clk'event and clk='1')thenif (tmp3=999) thentmp3<=0;clksmg<=not clksmg;elsetmp3<=tmp3+1;end if;end if;end process;shumaguan2:process(clksmg) --数码管按位扫描beginif(clksmg'event and clksmg='1')thenif (smgcat=5)thensmgcat<=0;elsesmgcat<=smgcat+1;end if;end if;end process;shumaguan3:process(setmode,lockmode,smgcat) --数码管按位扫描出的数字 beginif(setmode='1')thencase smgcat iswhen 0=>smgcatout<="110111";smgzf<=m1y;when 1=>smgcatout<="111011";smgzf<=m2y;when 2=>smgcatout<="111101";smgzf<=m3y;when 3=>smgcatout<="111110";smgzf<=m4y;when 4=>smgcatout<="111111";when 5=>smgcatout<="111111";end case;elsif(lockmode='0')thencase smgcat iswhen 0=>smgcatout<="110111";smgzf<=m1y;when 1=>smgcatout<="111011";smgzf<=m2y;when 2=>smgcatout<="111101";smgzf<=m3y;when 3=>smgcatout<="111110";smgzf<=m4y;when 4=>smgcatout<="111111";when 5=>smgcatout<="111111";end case;elsesmgzf<="0000001";if (kwei=1)then smgcatout<="111110";elsif (kwei=2)then smgcatout<="111100";elsif (kwei=3)then smgcatout<="111000";elsif (kwei=4)then smgcatout<="110000";else smgcatout<="111111";end if;end if;end process;dianzhen1:process(clk)beginif(clk'event and clk='1')thenif (tmp2=999) thentmp2<=0;clkdz<=not clkdz;elsetmp2<=tmp2+1;end if;end if;end process;dianzhen2:process(clkdz)beginif(clkdz'event and clkdz='1')thenif (dzcat=7)thendzcat<=0;elsedzcat<=dzcat+1;end if;end if;end process;dianzhen3:process(lockmode,clkdz)beginif(lockmode='0')thencase dzcat is--√when 0=>dzrow<="01111111";dzcolr<="00000000";dzcolg<="11111111"; when 1=>dzrow<="10111111";dzcolr<="00000000";dzcolg<="11111111"; when 2=>dzrow<="11011111";dzcolr<="00000000";dzcolg<="01100110"; when 3=>dzrow<="11101111";dzcolr<="00000000";dzcolg<="11111111"; when 4=>dzrow<="11110111";dzcolr<="00000000";dzcolg<="11111111"; when 5=>dzrow<="11111011";dzcolr<="00000000";dzcolg<="01100110"; when 6=>dzrow<="11111101";dzcolr<="00000000";dzcolg<="01100110"; when 7=>dzrow<="11111110";dzcolr<="00000000";dzcolg<="11000110"; end case;elsecase dzcat is--Xwhen 0=>dzrow<="01111111";dzcolr<="10111111";dzcolg<="00000000"; when 1=>dzrow<="10111111";dzcolr<="00001001";dzcolg<="00000000"; when 2=>dzrow<="11011111";dzcolr<="10111101";dzcolg<="00000000"; when 3=>dzrow<="11101111";dzcolr<="10001001";dzcolg<="00000000"; when 4=>dzrow<="11110111";dzcolr<="10101001";dzcolg<="00000000"; when 5=>dzrow<="11111011";dzcolr<="10001001";dzcolg<="00000000"; when 6=>dzrow<="11111101";dzcolr<="10011011";dzcolg<="00000000"; when 7=>dzrow<="11111110";dzcolr<="10001001";dzcolg<="00000000"; end case;end if;end process;fmq1:process(alarm)beginif(alarm='1')thenif(clkfd'event and clkfd='1')thenif(tmp5=2)thentmp5<=0;noise<='0';else tmp5<=tmp5+1;noise<='1';end if;end if;else noise<='0';end if;end process;fmq2:process(clk)beginif(clk'event and clk='1')thenif (tmpdo=97655) thentmpdo<=0;clkfm<=not clkfm;elsetmpdo<=tmpdo+1;end if;end if;end process;fmq3:process(noise)beginif(noise='1')thenif(clkfm'event and clkfm='1')thenbeep<=not beep;end if;else beep<='0';end if;end process;fmq4:process(beep)beginfmq<=beep;end process;end behave;五、功能说明及资源利用1、功能说明本人设计的这个简易密码锁有五个基本状态,启动程序时在开锁状态,按下btn7进入修改密码的状态,修改密码之后按下btn5进入闭锁状态,再之后直接输入验证密码,按下btn5确定后,进入验证密码的状态,如果不正确,蜂鸣器响并进入闭锁状态,若正确就回到开锁状态,这样形成一个循环。