数字逻辑电路-电子密码锁

合集下载

电子密码锁的电路设计

电子密码锁的电路设计

千里之行,始于足下。

电子密码锁的电路设计电子密码锁是一种基于数字密码输入的锁,它利用电子电路技术实现了对锁的控制和解锁功能。

下面将介绍如何设计一个简单的电子密码锁电路。

整个电子密码锁电路设计主要包括以下几个部分:1. 数码键盘模块:用于输入密码的模块,一般采用矩阵键盘或单片机带有键盘的模块。

2. 输入密码存储模块:用于存储用户设置的密码,可以采用EEPROM、FLASH等非易失性存储器。

3. 控制逻辑模块:用于控制电子锁的解锁和上锁功能,可以采用CMOS逻辑门电路实现。

4. 驱动模块:用于驱动电子锁的解锁和上锁功能,可以采用继电器、场效应管等。

5. 电源供电模块:为整个电路提供稳定的电源,可以采用适配器、电池等。

下面将详细介绍每个模块的设计原理和具体实现方法:1. 数码键盘模块:常见的数码键盘有4x4或4x3结构,可以使用针对数码键盘的扫描编码技术,通过扫描按键状态来确定按键的值。

2. 输入密码存储模块:采用非易失性存储器,如EEPROM、FLASH等,可以在电源关闭后依然保存数据,这样可以避免用户密码丢失的情况。

第1页/共2页锲而不舍,金石可镂。

3. 控制逻辑模块:控制逻辑模块根据输入密码和已存储的密码进行比较,如果匹配则解锁,这里可以使用CMOS逻辑门电路实现比较功能,比如采用与门和非门组合。

4. 驱动模块:驱动模块用于控制电子锁的解锁和上锁功能,可以采用继电器、场效应管等。

当密码匹配正确时,驱动模块接通电子锁电路,实现解锁功能。

5. 电源供电模块:为整个电路提供稳定的电源,可以采用适配器、电池等,要保证电源电压稳定,并且能够支持电子锁的工作电压。

总结:电子密码锁电路的设计主要包括数码键盘模块、输入密码存储模块、控制逻辑模块、驱动模块和电源供电模块。

需要注意的是,电子密码锁电路的安全性非常重要,密码存储模块需要保护好,以防止密码泄露。

此外,为了增加密码的复杂度,可以加入密码长度和重试次数的限制等措施。

数电电子密码锁课程设计

数电电子密码锁课程设计

数电电子密码锁课程设计一、课程目标知识目标:1. 理解数字电路基础知识,掌握电子密码锁的基本原理;2. 学会使用逻辑门、触发器等基本数字电路元件,并应用于电子密码锁的设计;3. 掌握电子密码锁的编码与解码技术,了解其安全性分析。

技能目标:1. 能够运用所学知识,设计并搭建一个简单的电子密码锁电路;2. 学会使用相关软件(如Multisim等)进行电路仿真,提高实际操作能力;3. 培养学生团队协作、动手实践和问题解决能力。

情感态度价值观目标:1. 培养学生对数字电路和电子技术的兴趣,激发创新意识;2. 增强学生的信息安全意识,了解密码学在生活中的应用;3. 树立正确的价值观,认识到科学技术对社会发展的积极作用。

课程性质:本课程为实践性较强的课程,结合理论知识,培养学生的实际操作能力和团队协作能力。

学生特点:学生在本年级已具备一定的数字电路基础,对电子技术有一定了解,但实际操作能力有待提高。

教学要求:教师应注重理论与实践相结合,关注学生个体差异,提供个性化指导,确保学生在课程中学有所获。

通过课程学习,使学生在知识、技能和情感态度价值观方面均取得具体的学习成果。

二、教学内容1. 数字电路基础知识回顾:逻辑门、触发器、计数器等基本元件的工作原理与应用;- 教材章节:第一章 数字逻辑电路基础2. 电子密码锁原理讲解:密码锁的工作流程、安全性分析;- 教材章节:第三章 安全电子密码锁3. 电子密码锁电路设计:使用逻辑门、触发器等元件设计密码锁电路;- 教材章节:第二章 组合逻辑电路设计4. 电路仿真与实验操作:利用Multisim软件进行电路仿真,实际搭建电子密码锁;- 教材章节:第四章 电路仿真与实验5. 编码与解码技术:了解常见编码方式,学习密码锁的解码技巧;- 教材章节:第三章 安全电子密码锁6. 团队协作与项目实施:分组进行项目实践,培养学生的团队协作能力和实际操作能力;- 教材章节:附录 实践项目指导教学进度安排:第一周:回顾数字电路基础知识,学习电子密码锁原理;第二周:设计电子密码锁电路,进行电路仿真;第三周:实际操作,搭建电子密码锁,学习编码与解码技术;第四周:团队协作,完成项目实施,进行成果展示与评价。

数字逻辑电路-电子密码锁

数字逻辑电路-电子密码锁

电子密码锁【用途和摘要】本文的电子密码锁利用数字逻辑电路,实现对门的电子控制,并且有各种附加电路保证电路能够安全工作,具有极高的安全系数。

【本文关键词】电子密码锁、电压比较器、555单稳态电路、计数器、JK触发器、UPS电源。

一、历史背景随着社会的发展,人们越来越重视安全的问题,如学校,公司,企事业单位等,需要保密的文件越来越多,而传统的锁而又无法提供可靠有效的保证,而电子密码锁则正好满足了人们这一需要,即将成为未来的主流选择。

二、总体方案设计1、设计思路本设计共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。

2、总体方框图三、设计原理分析电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。

密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输....次数锁定电路。

1、键盘输入、密码修改、密码检测、开锁及执行电路 .其电路如下图3-1-1所示:图3-1-1 键盘输入、密码修改、密码检测、开锁、执行电路开关K1~K9是用户的输入密码的键盘,用户可以通过开关输入密码,开关两端的电容是为了提高开关速度,电路先自动将IC1~IC4清零,由报警电路送来的清零信号经C25送到T11基极,使T11导通,其集电极输出低电平,送往IC1~IC4,实现清零。

密码修改电路由双刀双掷开关S1~S4组成(如图3-1-2所示), 它是利用开关切换的原理实现密码的修改。

例如要设定密码为1458,可以拨动开关S1向左,S2向右,S3向左,S4向右,即可实现密码的修改,由于输入的密码要经过S1~S4的选择,也就实现了密码的校验。

数字逻辑电路课程设计-电子密码锁

数字逻辑电路课程设计-电子密码锁

数字逻辑电路课程计课题:电子密码锁姓名:班级:学号:成绩:指导教师:开课时间:2014-2015学年第2学期2007年 6 月 20日电子密码锁摘要:采用逻辑门电路设计电子密码锁,阐述了其工作原理,给出了具体的电路原理图。

该密码锁具有密码预置功能,保密性强,误码报警,并且报警时间可以设定,同时用数码管显示出报警时间。

密码正确时驱动继电器控制开锁指示灯,误码时报警信号由蜂鸣器发出,声音为间歇式鸣笛。

采用自行设计的5V稳压电源供电,具有耗电省等特点。

当密码正确时密码锁可以被打开,绿色二极管亮代表密码正确,锁可以打开。

密码不正确时,红色二极管被点亮,同时蜂鸣器鸣笛5秒,数码管显示5秒计时;计时结束时,20秒计时开始。

关键词:电子密码锁;数字电路;预置密码;误码报警Using logic gate design of electronic combination lock, this paper expounds its working principle, gives the specific circuit principle diagram of the combination lock with password preset function, strong confidentiality, error alarm, and alarm time can be set, at the same time using digital tube display the alarm time. Password correctly drive relay control lamp, when the error alarm signal by a buzzer, voice for intermittent ing self-designed 5 v regulated power supply, has the characteristics of power saving electricity. When the correct password combination lock can be opened, the green led light on behalf of the correct password, the lock can be opened. Password is not correct, the red leds lit up, at the same time a buzzer honking 5 seconds, the digital tube display 5 seconds time, at the end of the timing, 20 seconds timer starts.Keywords: electronic password ,combination lock,digital circuit preset ,Error alarm目录1、设计背景 (4)2、设计方案 (5)2.1原理框图 (5)2.2总体思想 (5)3、方案实施 (7)3.1.1密码输入 (7)3.1.2密码存储 (8)3.1.3比较电路 (8)3.1.4 5秒计时器 (9)3.1.5 20秒计时器 (10)3.2电路仿真 (11)4、结果与结论 (12)5、收获与致谢 (14)6、参考文献 (15)1、设计背景1.1背景及其发展前景随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。

利用数字电路实现电子密码锁-毕业设计

利用数字电路实现电子密码锁-毕业设计

利用数字电路实现电子密码锁学生:XXX 指导老师:XXX内容摘要:本数字密码锁采用单片机AT89S52为主控芯片,由EEPROM存储密码。

硬件部分包括主控制系统、人机交互界面以及输出系统三大部分。

主控制系统中主控制芯片使用了AT89S52单片机,该单片机性能优良,能满足一般的普通应用;EEPROM采用AT24C02芯片,掉电后可以存储密码,从而保证了系统的安全性。

人机交互通道部分采用了4×4矩阵键盘输入以及LCD1602标准字符型液晶显示。

输出系统部分包括驱动开锁电路和报警电路;其中,在本系统设计中,驱动开锁电路用发光二极管表示,而报警电路则使用蜂鸣器。

本系统中使用的AT24C02芯片是一个带有I2C总线接口的EEPROM存储器。

I2C总线是一种双向二线制总线,它的结构简单,可靠性和抗干扰性能好。

I2C总线结构很简单,只有两条线,包括一条数据线(SDA)和一条串行时钟线(SCL)。

具有I2C接口的器件可以通过这两根线接到总线上,进行相互之间的信息传递。

本数字密码锁的功能为:密码位数为8位,可选值为0~9,从而保证足够的锁体强度;用户可以自行设定和修改密码;防止密码被盗,输入密码错误次数超过3次则报警;友好的人机界面;输入正确的密码后,驱动开锁电路。

软件部分应用单片机C语言实现了本设计的全部控制功能。

C语言编译方便,易读性好,且移植性方便,能够满足实现本系统的功能要求。

在设计过程中,给出了本系统C语言编程的原理和流程图。

本数字密码锁系统稳定性好,设计人性化,由于使用单片机控制并有记忆模块,功能齐全可靠,并有很好的扩展性,而且成本低廉,具有良好的发展前景。

关键词:数字密码锁 AT24C02芯片安全性Electronic combination lockAbstract:Using the digital circuit realize electronic combination lock This digital locks USES the monolithic integrated circuit AT89S52 as the controller chip, by EEPROM memory password. Hardware including master control system, man-machine interface and output system of three.The Lord control system used in the control chip AT89S52 SCM, this single chip good performance, can satisfy the general common application; The AT24C02 chip EEPROM, after power off can be stored password, so as to ensure the security of the system. Man-machine interactive channel part adopts the 4 x 4 matrix keyboard input and LCD1602 standard character type LCD display. The output of system including drive circuit and alarm lock circuit; Which, in the system design, drive the lock circuit using light-emitting diodes said, and alarm circuit is using a buzzer.The system used AT24C02 chip is a with the I2C bus interface EEPROM memory. The I2C bus is a two-way two wire bus, its simple structure, reliability and anti-interference capability. The I2C bus structure is simple, only two lines, including a data line (SDA) and a serial clock line (SCL). Has the I2C devices through this interface to two lines on the bus, the mutual information transfer.This digital locks function for: password digits for eight, optional value is 0 ~ 9, so as to ensure enough lock body strength; The user can set and modify the password; To prevent the password is stolen, the input password mistake number more than three times the alarm; Friendly human-machine interface; To enter the correct password, drive the lock circuit.Application software of single chip microcomputer C language realized this design of all control function. C compiler convenient, easy to read the gender is good, and easy portability, and can meet the requirement of system function realization. In the design process are given, and the system of the C programming language principle and flow chart.This digital locks system stability, humanized design, because use asingle-chip microcomputer control and a memory module, complete function and reliable, and have a good scalability, and the cost is low, have good development prospect.Keywords: Electronic combination lock AT24C02 chip safety目录前言 (1)1 系统的硬件设计 (2)1.1 硬件的总体结构和原理 (2)1.1.1 硬件系统的总体结构图 (2)1.1.2 硬件系统组成 (2)1.1.3 系统的可能性分析 (3)1.2 单片机AT89S51简介 (4)1.2.1 主要性能 (4)1.2.2 引脚功能描述 (5)1.3 AT24C02简介 (7)1.3.1 功能描述 (7)1.3.2 管脚描述 (7)1.3.3 I2C总线协议 (8)1.4 LCD1602介绍 (8)1.4.1 引脚描述 (9)1.4.2 LCDI602控制指令 (9)1.4.3 LCDI602读写控制时序 (11)1.5 4×4矩阵键盘 (11)1.6 复位电路 (12)1.7 振荡电路 (12)1.8 发光二极管LED电路 (13)1.9 报警电路 (13)1.10 电源输入电路 (14)1.11 使用到的元器件列表 (15)2 软件程序设计 (15)2.1 编译器Keil uVision2简介 (16)2.2 软件总设计流程图 (16)2.3 具体功能软件实现 (17)2.3.1 4×4矩阵键盘扫描程序 (17)2.3.2 显示程序 (19)2.3.3 时钟运行子程序 (19)2.3.4 时钟时、分修改子程序 (20)2.3.5 掉电存储服务程序 (21)2.3.7 密码修改子程序 (23)3 结束语 (24)附录1:PCB原理图 (26)附录2:仿真原理图 (27)附录3:单片机硬件实物图 (28)参考文献 (29)利用数字电路实现电子密码锁前言随着社会物质财富的日益增长,安全防盗已成为社会问题。

电子密码锁数字逻辑课设综述

电子密码锁数字逻辑课设综述

一、概述本次课程设计主要设计一个在生活中运用广泛的数字电子密码锁。

通过对课程的设计掌握电子系统的一般设计方法,掌握模拟IC器件的应用,培养综合应用所学知识来指导实践的能力,为接下来电子信息学习培养兴趣。

本系统的设计思路为将整个系统分为密码输入,密码设置,密码比较,控制结果四个部分。

主要的设计要求有:(1)有预先设定好的密码,该密码可以修改。

(2) 输入密码按确定键后,若密码正确则锁打开(此设计用发光二极管S 表示锁,锁打开就是点亮发光二极管S);若密码不正确则电路发出报警信号(用放光二级管J,报警就是点亮放光二级管J)。

任意输入密码而不按确定键的话电路不会有反应。

(3)任意输入密码而不按确定键的话电路不会有反应。

(4)打开的持续时间为10秒,警报持续时间也为10秒,即按下确定键到松开后10秒,按住确定键不放的话一直打开或者报警。

本设计报告主要由原理图的设计,分解单元的设计,连接与调试和Multisim 图的正确设置和接线组成。

本系统已经可以粗略模拟在生活中已经广泛运用的数字密码锁的大概功能,例如ATM机,数字防盗门,数字密码锁都能通过本设计实现,所以本课设具有极强的实际意义。

二、方法设计1.数字电子密码锁原理框图图 1原理框图本次设计采用图1所示的程序框图的设计思路,利用74LS138形成三输入八输出的密码输入,同时由555定时器构成单稳态触发器产生触发信号触发开锁或者报警,个设计方案不但便于制作,电路的价格比较低廉,采取的电路结构也简单易读,而且可移植性高,能够适用于多种设备及系统,便于投入实际生产。

密码验证模块计时模块开锁信号报警信号密码输入确定输入逻辑组合模块修改密码锁住输入三、电路设计3.1 本次电路设计主要包含用了密码输入的74LS138 3线-8线译码器,用去验证密码的D 触发器,和用于10秒计时的555单稳态计时器,还有一些逻辑关系来调节发光二极管。

3.2 密码输入及验证电路此模块主要是用输入键盘和74LS138实现,输入键盘为六个逻辑开关;74LS138为3线-8线译码器,它的真值表如表1表 1 74LS138真值表输入输出G1~G2A+~G2B C B A Y0 Y1Y2Y3Y4Y5Y6Y71 0 0 0 0 0 1 1 1 1 1 1 11 0 0 0 1 1 0 1 1 1 1 1 11 0 0 1 0 1 1 0 1 1 1 1 11 0 0 1 1 1 1 1 0 1 1 1 11 0 1 0 0 1 1 1 1 0 1 1 11 0 1 0 1 1 1 1 1 1 0 1 11 0 1 1 0 1 1 1 1 1 1 0 11 0 1 1 1 1 1 1 1 1 1 1 0由表1 可知每个输出端为0时都有唯一的输入码,所以可以把G1 ~G2A ~G2B C B A作为密码输入端,与输入键盘相连,共有26=64种输入情况。

数电综合设计 电子密码锁的设计

昆明理工大学数字电路与系统课程设计报告题目:电子密码锁的设计学院:理学院专业班级:姓名:学号:指导教师:完成时间:201 年5月26日目录目录 (1)1、前言 (2)2.总体方案设计 (2)2.1 设计目的 (2)2.2 技术指标 (2)2.3 方案框图 (2)3. 单元模块设计 (3)3.1.1 密码设置模块设计 (3)3.1.2 矩阵键盘模块设计 (4)3.1.3密码输入锁存模块 (5)3.1.4密码比较模块 (6)3.1.5定时报警模块(该模块还有一些问题,有待改进) (7)3.1.6开锁模块 (8)3.2电路元件选择和参数计算 (8)3.3.1 555定时器介绍 (9)3.3.2 74HC161器件介绍 (10)3.3.3移位寄存器74HC194介绍 (10)3.4各单元模块的联接 (11)4 仿真电路总图 (11)4.1密码设置模块的仿真调试 (12)4.2密码输入锁存模块的仿真调试 (12)4.3密码比较模块调试 (13)5、总结和体会 (2)6、参考文献 (2)1.前言社会发展,人们生活水平提高,传统的机械锁由于其构造的简单,被撬的事件时常发生,电子密码锁由于其保密性高,使用灵活性好,并且可以减少人们日常忘带钥匙的所带来的麻烦,因此受到了广大用户的喜爱。

电子密码锁,主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。

作为密码锁的输入部分,本设计采用通用数字机械键盘。

密码锁输入电路:包括时序产生电路、键盘译码电路等电路。

密码锁控制包括密码核对(数值比较,解锁电路(开/关门锁电路)等几个小的功能电路。

七段数码管显示电路将待显示数据的BCD 码转换成数码器的七段显示驱动编码。

以此为基础设计电子密码锁。

2.总体方案设计2.1 设计目的基于数字逻辑课程的学习,初步掌握了简单组合电路和时序电路的设计与功能,通过这次大作业,主要培养理论知识结合实践的综合性能力,进一步理解基本逻辑门,触发器,计数器,寄存器,等的功能特性和实际作用,在已知芯片功能的基础上,通过课外知识的拓展,对所学知识有更深刻和全面的认识。

数字逻辑电路课设电子密码锁电路

目录1 课题背景 (1)1.1 目的意义 (1)1.2 基本理论基础 (1)2 方案比较与选择 (2)2.1 方案一 (2)2.2 方案二 (3)2.3 方案选择 (3)3 组合逻辑电路 (4)3.1组合逻辑电路的分析方法 (4)3.2组合逻辑电路的设计 (5)4 TTL与非门电路 (6)4.1 74LS00芯片引脚图及功能表 (7)4.2 74LS20芯片引脚图及功能表 (9)5 电路原理图 (10)6 总结与心得 (10)参考文献 (12)1 课题背景1.1 目的意义随着电子工业的发展,数字电子技术已经深入到了人们生活的各个层面,而且各种各样的电子产品也正在日新月异地向着高精尖技术发展。

由于电子产品的功能不断增加,使用也越来越方便,有些产品已经成为了人们日常生活中不可缺少的必备物品。

发展历史悠久的机械式门锁,因其功能单一,安全性能较差等缺点,必将被新一代的电子门锁所代替。

新颖的多功能电子门锁,集电子门锁、防盗报警器,门铃等功能于一身,而且还具有定时器呼唤,断电自动报知,显示屋内有无人和自动留言等诸多附加功能。

在未来的生活中,数字密码锁必将在学领域再创新的成绩,将给我们的生活带来更大的便利,前景不可估量。

1.2 基本理论基础TTL门电路基础芯片为基本,通过芯片间功能的组合,可实现各种实用的功能。

本实验主要用与非门电路元件芯片实现试验目的。

并自拟以下两种方案。

2 方案比较与选择2.1 方案一方案一如图2.1所示。

图2.1 方案一由4个单刀双掷开关构成密码开关,用户可以通过控制开关来控制A、B、C、D四个输入端的电平的高低,进而控制输出电平的高低以及报警信号的工作。

当输入端与设置的密码相符时,则输出为高电平,二极管亮,否则输出为低电平,并且发出报警,即蜂鸣器发出响声,至此完成电路的设计。

2.2 方案二方案二如图2.2所示。

图2.2 方案二用4个异或门连接输入端,并分别于反相器连接,再相与。

当输入密码与设置密码相同时,电路输出为高电平,发光二极管不亮,当输入密码与设置密码不相同时,电路输出为低电平,发出报警,发光二极管亮。

数字逻辑电路实验--基于有限状态机的密码锁

数电实验三报告姓名:xxx班级:xxx 学号:xxxx实验:基于有限状态机的密码锁一、实验目的学习如何通过Verilog HDL 编程,利用Basys3板上的开关控制七段数码管实现四位密码锁。

二、实验要求使用有限状态机设计一个 4 位密码锁。

利用 Basys3 板上的滑动开关 sw[0]到sw[9]分别代表 0‐9 十个数字,依次输入 4 位不重复的密码。

如果密码输入顺序与设计设置的一致,则显示大写字母P,否则显示大写字母F。

注意,即使密码输入错误,也必须在输入完整的 4 位密码输入,才能显示大写字母 F。

三、实验设计及内容1.基础版实验代码module doorlock(input CLK,input clr,input [9:0] sw,output reg [10:0] display_out);reg[3:0] present_state,next_state;parameter S0=4'b0000,S1=4'b0001,S2=4'b0010,S3=4'b0011,S4=4'b0100,E1=4'b0101,E2=4'b0110,E3=4'b0111,E4=4'b1000;reg [29:0] count;reg [9:0] keys=0;always @(posedge CLK or posedge clr)beginif (clr) count<=0;else count<=count+1;endassign clk_3=count[24];// ~3Hzalways @(posedge clk_3 or posedge clr) // STATE TRANSITIONbeginif (keys!=sw) keys <= sw;if (clr) present_state <= S0;else present_state <= next_state;end// Demo for Finite State Machine// the correct password is 0->1->2->3 (Switch sw[0]->sw[1]->sw[2]->sw[3] in order. always @(*)begincase (present_state)S0: beginif (~|keys[9:0]) next_state <=S0; // no key pressedelse if (keys[2]) next_state <=S1; // first valid key pressedelse next_state <=E1; // first invalid key pressedendS1: beginif (~|keys[9:3]&&~|keys[1:0]) next_state <=S1; // no key pressedelse if (keys[1]) next_state <=S2;// second valid key pressedelse next_state <=E2;// second invalid key pressedendS2: beginif (~|keys[9:3]&&~|keys[0]) next_state <=S2; // no key pressedelse if (keys[7]) next_state <=S3; // third valid key pressedelse next_state <=E3;// third invalid key pressedendS3: beginif (~|keys[9:8]&&~|keys[6:3]&&~|keys[0]) next_state <=S3; // no key pressedelse if (keys[3]) next_state <=S4;// fourth vaild key pressedelse next_state <=E4;// fourth invalid key pressedendS4: beginif (~|keys[9:8]&&~|keys[6:4]&&~|keys[0]) next_state <=S4; // no keypressedelse next_state <=E1; // fifth key pressed, but ignored *** endE1:beginif (keys!=sw) next_state <=E2; // second invalid key pressedelse next_state <=E1; // no key pressedendE2:beginif (keys!=sw) next_state <=E3; // third invalid key pressedelse next_state <=E2; // no key pressedendE3:beginif (keys!=sw) next_state <=E4; // fourth invalid key pressedelse next_state <=E3; // no key pressedendE4: next_state <=E4; // the additional keys are ALL ignored ***default: next_state <=S0;endcaseendalways @(*) // indicate the number of inputs and display the tag begincase(present_state)S4: display_out<=11'b0111_0011000;// P in left-most segmentE4: display_out<=11'b1110_0111000;// F in right-most segmentS0: display_out<=11'b1001_0011100;// oo in the middle segmentsS1,E1: display_out<=11'b1001_0111111;// confirm first inputS2,E2: display_out<=11'b1001_0011111;// confirm second inputS3,E3: display_out<=11'b1001_0011110;// confirm third inputdefault:display_out<=11'b1111_1111111; // no displayendcaseendendmodule2.进阶版实验代码module doorlock2(input CLK,input clr,input [9:0] sw,output reg [10:0] display_out);reg[3:0] present_state,next_state;reg [19:0]count1=0;reg [2:0] sel=0;parameter S0= 4'b0000,S1=4'b0001,S2=4'b0010,S3=4'b0011,S4=4'b0100, S01=4'b1001,S02=4'b1010,S03=4'b1011,E1=4'b0101,E2=4'b0110,E3=4'b0111,E4=4'b1000;parameter T1MS=50000,T2MS=20000_0000;reg [29:0] count;reg [32:0] count2=0;reg [9:0] keys=0;reg flag;always @(posedge CLK or posedge clr)beginif (clr)begincount<=0;endelse count<=count+1;endwire clk_3;assign clk_3=count[24];// ~3Hzalways @(posedge clk_3 or posedge clr) // STATE TRANSITIONbeginif (keys!=sw) keys <= sw;if (clr) present_state <= S0;else present_state <= next_state;endalways@(posedge CLK or posedge clr)beginif(present_state == S4)beginif(count2<T2MS)begincount2<=count2+1;flag<=1'b0;endelsebeginflag<=1'b1;endendif(clr) count2<=0;end// Demo for Finite State Machine// the correct password is 0->1->2->3 (Switch sw[0]->sw[1]->sw[2]->sw[3] in order. always @(*)begincase (present_state)S0: beginif (~|keys[9:0]) next_state <=S0; // no key pressedelse if (keys[2]) next_state <=S1; // first valid key pressedelse next_state <=E1; // first invalid key pressedendS1: beginif (~|keys[9:3]&&~|keys[1:0]) next_state <=S1; // no key pressed//else if (!sw) next_state <=S01;// second valid key pressedelse if(keys[1]&&keys[2]) next_state<=S2;else next_state <=E2;// second invalid key pressedendS01:beginif(!sw) next_state<=S01;else if(sw[2]) next_state<=S2;else next_state<=E2;endS2: beginif (~|keys[9:3]&&~|keys[0]) next_state <=S2; // no key pressed//else if (!sw) next_state <=S02; // third valid key pressedelse if (keys[2]&&keys[1]&&keys[3]) next_state <=S3;else next_state<=E3;// third invalid key pressedendS02: beginif(!sw) next_state<=S02;else if(sw[1]) next_state<=S3;else next_state<=E3;endS3: beginif (keys[1]&&keys[2]&&keys[3]) next_state <=S3; // no key pressed else if (!sw[3]) next_state <=S03;// fourth vaild key pressedelse next_state <=E4;// fourth invalid key pressedendS03:beginif(~|keys[9:3]&&~|keys[0]) next_state<=S03;else if(keys[3]) next_state<=S4;else next_state<=E4;endS4: beginif (~|keys[9:4]&&~|keys[0]) next_state <=S4; // no key pressedelse next_state <=E1; // fifth key pressed, but ignored *** endE1:beginif (keys!=sw) next_state <=E2; // second invalid key pressedelse next_state <=E1; // no key pressedendE2:beginif (keys!=sw) next_state <=E3; // third invalid key pressedelse next_state <=E2; // no key pressedendE3:beginif (keys!=sw) next_state <=E4; // fourth invalid key pressedelse next_state <=E3; // no key pressedendE4: next_state <=E4; // the additional keys are ALL ignored ***default: next_state <=S0;endcaseendalways@(posedge CLK)begincount1<=count1+1;if(count1==T1MS)begincount1<=0;sel<=sel+1;if(sel==4)sel<=0;endendalways @(posedge CLK) // indicate the number of inputs and display the tagbegincase(present_state)S0: begincase(sel)0:display_out<=11'b0111_0101000;1:display_out<=11'b1011_0110000;2:display_out<=11'b1101_1000100;3:display_out<=11'b1110_0110110;default:display_out<=11'b1111_1111111;endcaseendS1: begincase(sel)0:display_out<=11'b0111_0010010;1:display_out<=11'b1011_1110111;2:display_out<=11'b1101_1110111;3:display_out<=11'b1110_1110111;default:display_out<=11'b1111_1111111;endcaseend // confirm first inputS2: begincase(sel)0:display_out<=11'b0111_0010010;1:display_out<=11'b1011_1001111;2:display_out<=11'b1101_1110111;3:display_out<=11'b1110_1110111;default:display_out<=11'b1111_1111111;endcaseend // confirm second inputS3: begincase(sel)0:display_out<=11'b0111_0010010;1:display_out<=11'b1011_1001111;2:display_out<=11'b1101_0000110;3:display_out<=11'b1110_1110111;default:display_out<=11'b1111_1111111;endcaseend // confirm third inputS4: beginif(!flag)begincase(sel)0:display_out<=11'b0111_0010010;1:display_out<=11'b1011_1001111;2:display_out<=11'b1101_0000110;3:display_out<=11'b1110_0000110;default:display_out<=11'b1111_1111111;endcaseendelse display_out<= 11'b0111_0011000 ;end // P in left-most segmentS01:begincase(sel)0:display_out<=11'b0111_0010010;1:display_out<=11'b1011_1110111;2:display_out<=11'b1101_1110111;3:display_out<=11'b1110_1110111;default:display_out<=11'b1111_1111111;endcaseendS02:begincase(sel)0:display_out<=11'b0111_0010010;1:display_out<=11'b1011_1001111;2:display_out<=11'b1101_1110111;3:display_out<=11'b1110_1110111; default:display_out<=11'b1111_1111111;endcaseendS03: begincase(sel)0:display_out<=11'b0111_0010010;1:display_out<=11'b1011_1001111;2:display_out<=11'b1101_0000110;3:display_out<=11'b1110_1110111;default:display_out<=11'b1111_1111111;endcaseendE1: display_out<=11'b0111_0111000;E2: display_out<=11'b1011_0111000;E3: display_out<=11'b1101_0111000;E4: display_out<=11'b1110_0111000;// F in right-most segment default:display_out<=11'b1111_1111111; // no displayendcaseendendmodule约束文件代码:## Clock signalset_property PACKAGE_PIN W5 [get_ports CLK]set_property IOSTANDARD LVCMOS33 [get_ports CLK]## Switchesset_property PACKAGE_PIN V17 [get_ports {sw[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw[0]}]set_property PACKAGE_PIN V16 [get_ports {sw[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw[1]}]set_property PACKAGE_PIN W16 [get_ports {sw[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw[2]}]set_property PACKAGE_PIN W17 [get_ports {sw[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw[3]}]set_property PACKAGE_PIN W15 [get_ports {sw[4]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw[4]}]set_property PACKAGE_PIN V15 [get_ports {sw[5]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw[5]}]set_property PACKAGE_PIN W14 [get_ports {sw[6]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw[6]}]set_property PACKAGE_PIN W13 [get_ports {sw[7]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw[7]}]set_property PACKAGE_PIN V2 [get_ports {sw[8]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw[8]}]set_property PACKAGE_PIN T3 [get_ports {sw[9]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw[9]}]## sw[15]set_property PACKAGE_PIN R2 [get_ports {clr}]set_property IOSTANDARD LVCMOS33 [get_ports {clr}]## 7-seg displayset_property PACKAGE_PIN W4 [get_ports {display_out[10]}]set_property PACKAGE_PIN V4 [get_ports {display_out[9]}]set_property PACKAGE_PIN U4 [get_ports {display_out[8]}]set_property PACKAGE_PIN U2 [get_ports {display_out[7]}]set_property PACKAGE_PIN W7 [get_ports {display_out[6]}]set_property PACKAGE_PIN W6 [get_ports {display_out[5]}]set_property PACKAGE_PIN U8 [get_ports {display_out[4]}]set_property PACKAGE_PIN V8 [get_ports {display_out[3]}]set_property PACKAGE_PIN U5 [get_ports {display_out[2]}]set_property PACKAGE_PIN V5 [get_ports {display_out[1]}]set_property PACKAGE_PIN U7 [get_ports {display_out[0]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[9]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[8]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[7]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[6]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[5]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[4]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[3]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[1]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[2]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[0]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[10]}]四、实验结果1基础结果图2.进阶结果图进阶实验成品效果说明:进阶视频演示:正确示范:密码输入错误示范:五、实验总结1.通过本次实验了解了时钟信号的作用原理以及对时序电路的控制机理。

密码锁数电课程设计

密码锁数电课程设计摘要本文设计的电子密码锁利用数字逻辑电路,实现对锁的电子控制,突破了传统的机械锁的单一性、保密性低、易撬性的缺点,数字电子密码锁具有保密性高、使用灵活性好、安全系数高的优点。

数字电子密码锁的核心是由数据选择器74LS153组成,电路分为三部分:第一部分是由八个单刀双掷开关组成的密码输入电路,密码输入共有28=256种输入方式,但能正确开锁的输入方式只有16种;第二部分是由与门、译码器、反相器、数据选择器组成的密码验证部分,当密码数去正确后,数据选择器会输出一路高电平;第三部分由三极管、继电器、电磁铁组成的执行开锁电路。

它的电路结构简单,但电路具有复杂的数字逻辑关系,密码破译难度较大,操作简单,用户使用方便。

综合看来,此电子密码锁实用性强关键词:电子密码锁;报警;引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。

在当今社会,安全防盗已成为社会问题,而锁自古以来就是防盗的重要工具,目前国内大部分人使用的还是传统的机械锁,然而,眼下假冒伪劣的机械锁互开率非常之高,此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。

机械锁的这些弊端为一种新型的锁——电子密码锁,提供了很大的发展空间。

1 设计目的1、巩固和加深对电子电路基本知识的理解,提高综合运用本课程所学知识的能力。

2、培养根据设计需要选学参考书籍,查阅相关手册、图表和文献资料的自学能力。

3、通过电路方案的分析、论证和比较,设计计算和选取元器件、电路组装、调试和检测等环节,初步掌握简单实用的分析方法和工程设计方法。

4、学会简单电路的实验调试和性能指标的测试方法,提高动手能力和进行数字电子电路实验的基本技能。

5、随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子密码锁
【用途和摘要】本文的电子密码锁利用数字逻辑电路,实现对门的电子控制,并且有各种附加电路保
证电路能够安全工作,具有极高的安全系数。

【本文关键词】电子密码锁、电压比较器、555单稳态电路、计数器、JK触发器、UPS电源。

一、历史背景
随着社会的发展,人们越来越重视安全的问题,如学校,公司,企事业单位等,需要保密的文件越来越多,而传统的锁而又无法提供可靠有效的保证,而电子密码锁则正好满足了人们这一需要,即将成为未来的主流选择。

二、总体方案设计
1、设计思路
本设计共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。

2、总体方框图
三、设计原理分析
电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电
造成的密码锁电路失效,使用户免遭麻烦。

密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输
.
...次数锁定电路。

1、键盘输入、密码修改、密码检测、开锁及执行电路 .
其电路如下图3-1-1所示:
图3-1-1 键盘输入、密码修改、密码检测、开锁、执行电路
开关K1~K9是用户的输入密码的键盘,用户可以通过开关输入密码,开关两端的电容是为了提高开
关速度,电路先自动将IC1~IC4清零,由报警电路送来的清零信号经C25送到T11基极,使T11导通,其
集电极输出低电平,送往IC1~IC4,实现清零。

密码修改电路由双刀双掷开关S1~S4组成(如图3-1-2所示), 它是利用开关切换的原理实现密码的
修改。

例如要设定密码为1458,可以拨动开关S1向左,S2向右,S3向左,S4向右,即可实现密码的修改,由于输入的密码要经过S1~S4的选择,也就实现了密码的校验。

本电路有16组的密码可供修改。

图3-1-2 密码修改电路
由两块74LS112(双JK 触发器,包含IC1~IC4)组成密码检测电路。

由于IC1处于计数状态,当用户
按下第一个正确的密码后,CLK 端出现了一个负的下降沿,IC1计数,Q 端输出为高电平,用户依次按下有效的密码,IC2~IC3也依次输出高电平,送入与门IC5,使其输出开锁的高电平信号送往IC13的2脚,执行电路动作,实现开锁。

执行电路是由一块555单稳态电路(IC13),以及由T10、 T11组成的达林顿管构成。

若IC13的2脚
输入一高电平,则3脚输出高电平,使T10导通,T11导通,电磁阀开启,实现开门,同时T10集电极上接的D5(绿色发光二极管)发亮,表示开门,20秒后,555电路状态翻转,电磁阀停止工作,以节电。

其中电磁阀并联的电容C24使为了提高电磁阀的力矩。

2、报警电路
报警电路实现的功能是:当输入密码的时间超过40秒(一般情况下用户输入不会超过),电路报警80秒,防止他人恶意开锁。

电路包含两大部分,2分钟延时和40秒延时电路。

其工作原理是当用户开始输入密码时,电路开始2分钟计时,超出40秒,电路开始80秒的报警。

图如下3-2-1所示
清零信号
图3-2-1 报警电路
有人走近门时,触摸了TP端(TP端固定在键盘上,其灵敏度非常高,保证电路可靠的触发),由于人体自身带的电,使IC10的2脚出现低电平,使IC10的状态发生翻转,其3脚输出高电平,T5导通(可以通过R12控制T1的基极电流),其集电极接的黄色发光二极管D3发光,表示现在电子锁处于待命状态,T6截止,C4开始通过R14充电(充电时间是40秒,此时为用户输入密码的时间,即用户输入密码的时间不能超过40秒,否则电路就开始报警, 由于用户经常输入密码,而且知道密码,一般输入密码的时间不会超过40秒),IC2开始进入延时40秒的状态。

开始报警:当用户输入的密码不正确或输入密码的时间超过40秒,IC11的2脚电位随着C4的充电而下降,当电位下降到1/3Vcc时(即40秒延时结束时候),3脚变成高电位(延时时是低电平),通过R15使(R15的作用是为了限制T7的导通电流防止电流过大烧毁三极管)T7导通,其集电极上面接的红色发光二极管D4发亮,表示当前处于报警状态,T8也随之而导通,使蜂鸣器发声,令贼人生怯,实现报警.
停止报警:当达到了80秒的报警时间,IC10的6,7脚接的电容C5放电结束,IC10的3脚变成低电平,T5截止,T6导通,强制使强制电路处于稳态,IC11的3脚输出低电平,使T7,T8截止,蜂鸣器停止报警;或者用户输入的密码正确,则有开锁电路中的T10集电极输出清除报警信号,送至T12(PNP),T12导通,强制使T7基极至低电位,解除报警信号。

3、报警次数检测及锁定电路
若用户操作连续失误超过3次,电路将锁定5分钟。

其工作原理如下:当电路报警的次数超过3次,由IC9(74161)构成的3位计数器将产生进位,通过IC7,输出清零信号送往74161的清零端,以实现重新计数。

经过IC8(与门),送到IC12(555)的2脚,使3脚产生5分钟的高电平锁定脉冲(其脉冲可由公式T=1.1RC计算得出),经T9倒相,送IC6输入端,使IC6输出低电平,使IC13不能开锁,到锁定的目的。

电路图如下3-3-1所示:
0.1U 信号B 174ALS00
图3-3-1报警次数检测及锁定电路
4、备用电源电路
为了防止停电情况的发生,本电路后备了UPS 电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。

其电路图如下3-4-1所示:
220V 市电通过变压器B 降压成12V 的交流电,再经过整流桥整流,7805稳压到5V 送往电子切换电路,由于本电路功耗较少,所以选用10W 的小型变压器。

图3-4-1 电源电路
由R8,R9,R6,R7及IC14构成电压比较器,正常情况下,V+<V- IC14输出高电平,继电器的常闭触点和市电相连;当市电断开,V+>V- IC14输出高电平,由T3,T4构成的达林顿管使继电器J 开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池供电的切换,保证电子密码锁的正常工作(视电池容量而定持续时间)。

其电路图如下3-4-2所示:
蓄电池 A25V 直流电源 A1VCC 常闭常开
图3-4-2停电检测及电子开关切换电路
T1,T2构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中D1亮为正在充电,D2为工作指示。

由R4,R5,T1构成电压检测电路,蓄电池电压低,则T1,T2导通,实现对其充电;充满后,T1,T2截止,停止充电,同时D1熄灭,电路中C4的作用是滤除干扰信号。

其电路图如3-4-3所示:
图3-4-3 蓄电池自动充电电路
五、总结与体会
以上为实习期间所设计的电子密码锁电路,它经过多次修改和整理,以是一个比较不错的设计,可以满足人们的基本要求,但因为水平有限,此电路中也存在一定的问题,譬如说电路的密码不能遗忘,一旦遗忘,就很难打开,这可以通过增加电路解决,但过于复杂,本次设计未其中;用开关作74LS112的CLK 脉冲,不是很稳定,可以调换其它高速开关或计数脉冲;电路密码只有16种可供修改,但由于他人不知道密码的位数,而且还要求在规定的时间内按一定的顺序开锁,所以他人开锁的几率很小;电路中未加显示电路,但可通过其它数字模块实现这一功能。

这需要一段时间的进一步改进,如果有好的意见,希望老师给以支持。

通过这三周的学习,我感觉有很大的收获:首先,通过学习使自己对课本上的知识可以应用于实际,使的理论与实际相结合,加深自己对课本知识的更好理解,同时实习也段练了我个人的动手能力:能够充分利用图书馆去查阅资料,增加了许多课本以外的知识。

能对protel 99、和EWB等仿真软件操作,能达到学以致用。

对我们学生来说,理论与实际同样重要,这是我们以后在工作中说明自己能力的一个重要标准。

在实习中,我感受到了老师对学生的那种悔人不卷的精神,每天的固定时间,老师都来给我们指导,使我们少走弯路,顺利完成实习任务,请允许我向你们致意崇高的敬意,感谢你们,老师!
参考文献
[1]康华光.电子技术基础(第四版)高等教育出版社
[2] 《无线电》第2002年合订本。

人民邮电出版社
[3] 数字电路设计与制作科学出版社
以下是对本次实验所用到器件的一个简单介绍:
(1):555集成定时器
它是一种模拟电路和数字电路相结合的中规模集成电路,其电路如下图所示
(2):电压比较器
(3)JK触发器:
UPS电源:
所谓不断电电源系统,就是当停电时能够接替市电持续供应电力的设备,它的动力来自电池组,
由于电子元器件反应速度快,停电的瞬间在4~8毫秒内或无中段时间下继续供应电力。

目录
摘要 (03)
关键字 (03)
1 前言 (04)
2 系统设计 (04)
2.1 电子密码锁的工作原理 (04)
2.2 系统硬件组成 (04)
2.3 矩阵键盘扫面工作原理 (05)
2.4 LED数码管动态显示原理 (05)
2.5 电子密码锁系统硬件设计..... .. (06)
2.6 电子密码锁系统软件设计....... (07)
3 设计体会与结论 (07)
4附录 (08)
5参考文献 (13)。

相关文档
最新文档