数字密码锁的PCB电路

合集下载

电子密码锁电路设计(嵌入式系统设计)

电子密码锁电路设计(嵌入式系统设计)

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

设计本课题时构思了三种方案:一种是用以AT89C2051为核心的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案;还有一种采用74LS160十进制计数器、利用74LS1488线一3线编码器进行编码的多位十进制可报警多功能密码锁。

二、总体方案设计1、设计方案方案一:采用数字电路控制。

其原理方框图如图1- 1所示。

图2-1 —1数字密码锁电路方案采用数字密码锁电路的好处就是设计简单。

用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。

电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。

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

方案二:采用一种是用以AT89S51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的10端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。

其原理如图1-2所示。

图2-1 —2单片机控制方案方案三:采用74LS160十进制计数器、利用74LS148 8线一3线编码器进行编码的多位十进制可报警多功能密码锁。

电子锁主要由输入元件、电路(包括电源)和锁体三部分组成,后者包括电磁线圈、锁拴、弹簧和锁框等。

密码锁构造原理图

密码锁构造原理图

密码锁构造原理图
密码锁是一种常见的电子锁具,它通过输入正确的密码来解锁,而不需要使用钥匙。

密码锁的构造原理图如下:
1. 控制模块,密码锁的核心部件是控制模块,它通常由微处理器、存储器、输入输出接口等组成。

微处理器负责处理输入的密码
信息,存储器用于存储密码信息和其他相关数据,输入输出接口则
用于与外部设备进行通信。

2. 键盘模块,密码锁上通常配有一个键盘模块,用于输入密码。

键盘模块上通常有数字键和功能键,用户可以通过按下数字键来输
入密码,通过功能键来进行确认、取消等操作。

3. 显示模块,一些密码锁还配有显示模块,用于显示密码输入
的状态、错误提示、解锁状态等信息。

显示模块通常采用液晶显示
屏或LED显示器。

4. 电源模块,密码锁需要电源供电,因此需要配备电源模块。

电源模块通常由电池或外部电源适配器组成,用于为密码锁提供稳
定的电源。

5. 电子锁体,电子锁体是密码锁的实际锁具部分,它通常由电机、锁舌、传动装置等组成。

当密码验证通过时,电子锁体会通过
电机驱动锁舌的运动,从而完成开锁动作。

6. 报警模块,为了增强密码锁的安全性,一些密码锁还配备了
报警模块。

当密码输入错误次数达到一定次数时,或者密码锁受到
撬锁、震动等异常操作时,报警模块会发出警报。

密码锁的构造原理图如上所述,通过以上各个模块的协作,密
码锁能够实现安全、方便的开锁功能。

同时,密码锁也具有一定的
防盗、防撬功能,能够有效保护物品的安全。

密码锁在家庭、商业、工业等领域都有广泛的应用,成为现代生活中不可或缺的一部分。

课程设计:电子密码锁(附原理图及PCB)

课程设计:电子密码锁(附原理图及PCB)

课程设计:电子密码锁(附原理图及PCB)电子密码锁摘要:本设计是通过判断输入密码正确与否从而控制相应电路工作,完成开锁、报警、锁定键盘等任务的电子密码锁。

它具有预设密码功能,超时报警功能,键盘锁定功能,错误提示功能等。

预设密码和输入密码是用两个八位的锁存器实现,密码判断是由数值比较器电路组成,超时报警功能是用NE555所构成的单稳态触发器实现,超时次数及密码错误次数由计数电路记录,而键盘锁定功能则是通过电路的逻辑关系巧妙控制锁存器的输出使能端实现的。

关键词:电子锁,密码锁,键盘锁定,报警电路Abstract:This design is to control the corresponding circuit by judging the password correctly or not work, do lock, alarm, lock the keyboard and other electronic combination lock. It has default password function, timeout alarm function, and key lock function, error function, etc. Default password and enter the password is to use two of the eight latch, password is consist of numeric comparator circuit, timeout alarm function is formed by using NE555 monostable trigger, timeout number and password error number recorded by counting circuit, and key lock function is through the logical relationship of the circuit can control the output of the latch makes the server-side implementation.Keywords:Electronic lock ,Combination lock,Keyboard lock, warning circuit.目录1 前言 (1)1.1 设计背景 (1)1.2 设计概述 (1)2 总体方案设计 (3)2.1 程序框图 (3)2.2 电路分析 (4)3 单元模块设计 (5)3.1 密码锁存电路 (5)3.2 密码判断电路 (7)3.3 计数器电路 (8)3.4 计时器电路 (9)3.5电路参数的计算及元器件的选择 (13)3.6 各单元模块的联接 (13)4 系统调试 (14)4.1 仿真电路总图 (14)4.2系统仿真参数设置 (14)4.3 功能调试 (17)4.4 调试结果分析 (23)5 系统功能、指标参数 (25)5.1 系统实现的功能 (25)5.2 系统指标参数测试 (25)6 结论 (26)7 设计总结 (27)7.1 设计的收获体会 (27)7.2 对设计的进一步完善提出意见或建议 (27)8 致谢 (28)9 参考文献 (29)附录1:电子密码锁的仿真总图 (31)附录2:电子密码锁的PCB图 (33)1 前言1.1 设计背景随着人们生活水平的提高,对家庭防盗技术的要求也是越来越高,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。

数字密码锁电路设计与制作.doc

数字密码锁电路设计与制作.doc
方案二:采用一种是用以AT89C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的io端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。
考虑到编码电子锁制作成本低,设计要求少,比较容易检查校验并且易实现控制要求,而单片机方案原理的复杂,调试较为繁琐,本着对本专业的数字电路基础较熟悉,有利于研究该课题。所以采用了方案一。
4.国内的技术不够成熟。对一个小康家庭而言,买一把价钱在一千元以内的国产的电子密码锁,并不是什么难事。但是人们都希望买一把可靠性、安全性好的锁,如果买回一把电子锁,没用多久就坏了,那还不如买机械锁方便。至于进口的锁,价钱昂贵,一般用户难以接受。目前在国内,电子锁还未大批量生产,技术不成熟更是是一个主要的原因。
2.厂商推广的力度不够。电子密码锁属于高科新产品,许多的用户根本不知道有这种锁,更不用说拿它与传统的机械锁作比较。而一般的商场也不会经营这种产品,用户即使想买也难以买到。
3.密码锁自身的不便以及人们的习惯和意识问题。机械锁普及已久,人们已经习惯了用一把钥匙开一把锁,如果换成密码锁,不符合习惯。而且,每次开门时都要输入密码,除了需要记忆密码外,还要担心密码被人看见带来的麻烦。此外,用户还会担心电子锁的电源断电问题,即万一停电或是电池耗尽,会不会打不开锁而进不了屋。诸如此类的问题给用户带来了很多的不便,再加上大部分人对“互开锁”、“急开锁”现象不了解,对机械锁的安全问题没有足够的重视,使得人们在选择家用锁的时候更倾向于购买传统的机械锁。
目前国内,大部分人使用的还是传统的机械锁。然而,眼下假冒伪劣的机械锁泛滥成灾,互开率非常之高。所谓互开率,是各种锁具的一个技术质量标准,也就是1把钥匙能开几把锁的比率。经国家工商局、国家内贸局、中国消协等部门对锁具市场的调查,发现个别产品的互开率居然超标26倍。弹子锁质量好坏主要取决于弹子数量的多少以及弹子的大小,而弹子的多少和大小受一定条件的限制。此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开,提供了发展的空间。

电子行业电子密码锁的电路设计

电子行业电子密码锁的电路设计

电子行业电子密码锁的电路设计一、引言电子密码锁是一种常见的应用于安全领域的电子设备,它通过输入正确的密码来解锁,并可以提供对门锁的电源控制。

本文将详细介绍电子行业电子密码锁的电路设计方案。

二、电子密码锁的工作原理电子密码锁的工作原理主要包括输入模块、控制模块、驱动模块和电源模块。

其中,输入模块用于接收用户输入的密码,控制模块对输入密码进行验证,驱动模块用于控制门锁的开关,电源模块为整个电子密码锁提供电能。

三、电路设计要点1. 输入模块输入模块一般采用键盘进行密码输入,常见的键盘有矩阵键盘和薄膜键盘。

在设计过程中需要考虑键盘的防护性能、抗干扰能力和稳定性等因素。

2. 控制模块控制模块是电子密码锁的核心部分,其功能主要是对用户输入的密码进行验证,并根据验证结果控制门锁的开关。

在控制模块设计中,需要考虑密码验证算法的安全性和可靠性,同时还需要考虑对密码位数和错误次数的限制。

3. 驱动模块驱动模块用于控制门锁的开关,一般通过继电器或者功率场效应管来实现。

在驱动模块设计中,需要考虑门锁的电流和电压需求,以及门锁锁芯的安全性能。

4. 电源模块电源模块为整个电子密码锁提供稳定的电能。

一般可以采用直流电源或者电池供电。

在电源模块设计中,需要考虑电源的容量、电源的续航时间和对电池充电的保护等因素。

四、电子密码锁的电路设计示例1. 输入模块设计以矩阵键盘为例,采用4行4列的键盘布局。

键盘的输出通过独立按键接口连接到控制模块,以实现对按键的读取。

// 键盘输入模块的C代码示例#include <stdio.h>#define KEY_ROWS 4#define KEY_COLS 4char keymap[KEY_ROWS][KEY_COLS] = { {'1', '2', '3', 'A'},{'4', '5', '6', 'B'},{'7', '8', '9', 'C'},{'*', '0', '#', 'D'}};char getKeyPressed() {int row, col;char key = 0;// 通过扫描矩阵键盘获取按键// 省略具体实现细节return key;}2. 控制模块设计控制模块采用微控制器进行实现,常见的微控制器有STM32、Arduino等。

电子密码锁单片机设计完整程序电路

电子密码锁单片机设计完整程序电路
(2)系统的总体思路设计
以 STC89C516 单片机为主控制单元,键盘为主要输入单元,结合开锁装置、 报警器和显示器完成整个系统设计。
系统的运行过程大致如下: 假设初始状态为闭锁,此时整个系统只等待按键输入,显示屏 显示“Input password Press key A”。按下 A 后,每按下一个数据键 (即每输入一个密码),lcd1602 显示一个“*”,当密码全部输入完成后, 需按下确认键“#”,此时系统判断密码是否正确,正确则开锁,错误则 报警。若按下密码重置键“*”,则需先输入原密码,正确后请输入新密 码,还要确认一遍新密码。按下删除键可以删除输错的密码。
单片机课程设计
1 系统的总体设计和主要元器件介绍 (1)设计要求
以 STC89C516 单片机为核心器件,结合按键电路、LCD1602 显 示电路、报警指示电路和开锁机构,利用单片机灵活的编程设计和丰富 的 I/O 端口,及其控制的准确性通过软件程序来控制整个系统实现电子 密码锁的以下基本功能:
(2)LCD1602 显示器
接口信号说明:
1602 型 LCD 的接口信号说明如表 2-2 所示。
表 2-2 LCD1602 接口信号说明
2
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资0配不料置仅试技可卷术以要是解求指决,机吊对组顶电在层气进配设行置备继不进电规行保范空护高载高中与中资带资料负料试荷试卷下卷问高总题中体2资2配,料置而试时且卷,可调需保控要障试在各验最类;大管对限路设度习备内题进来到行确位调保。整机在使组管其高路在中敷正资设常料过工试程况卷中下安,与全要过,加度并强工且看作尽护下可关都能于可地管以缩路正小高常故中工障资作高料;中试对资卷于料连继试接电卷管保破口护坏处进范理行围高整,中核或资对者料定对试值某卷,些弯审异扁核常度与高固校中定对资盒图料位纸试置,卷.编保工写护况复层进杂防行设腐自备跨动与接处装地理置线,高弯尤中曲其资半要料径避试标免卷高错调等误试,高方要中案求资,技料编术试写5交、卷重底电保要。气护设管设装备线备置4高敷、调动中设电试作资技气高,料术课中并3试中、件资且卷包管中料拒试含路调试绝验线敷试卷动方槽设技作案、技术,以管术来及架避系等免统多不启项必动方要方式高案,中;为资对解料整决试套高卷启中突动语然过文停程电机中气。高课因中件此资中,料管电试壁力卷薄高电、中气接资设口料备不试进严卷行等保调问护试题装工,置作合调并理试且利技进用术行管,过线要关敷求运设电行技力高术保中。护资线装料缆置试敷做卷设到技原准术则确指:灵导在活。分。对线对于盒于调处差试,动过当保程不护中同装高电置中压高资回中料路资试交料卷叉试技时卷术,调问应试题采技,用术作金是为属指调隔发试板电人进机员行一,隔变需开压要处器在理组事;在前同发掌一生握线内图槽部纸内故资,障料强时、电,设回需备路要制须进造同行厂时外家切部出断电具习源高题高中电中资源资料,料试线试卷缆卷试敷切验设除报完从告毕而与,采相要用关进高技行中术检资资查料料和试,检卷并测主且处要了理保解。护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

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

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

利用数字电路实现电子密码锁学生: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)利用数字电路实现电子密码锁前言随着社会物质财富的日益增长,安全防盗已成为社会问题。

电子密码锁的电路设计

电子密码锁的电路设计

电子密码锁的电路设计电子密码锁的电路设计是电子技术领域中的一个重要课题。

它的设计不仅涉及到硬件电路的搭建,还包括了软件编程的实现。

在这篇文档中,我们将从电路设计的角度来谈谈电子密码锁的实现方法。

首先,电子密码锁的核心部分是一个微控制器(MCU),通常采用单片机。

单片机是一种集成了微处理器、存储器和外设接口的芯片,它可以控制硬件操作,同时也可以运行任务和程序。

因此,单片机是电子密码锁的重要组成部分。

其次,电子密码锁的设计需要考虑到安全性。

为了确保密码不被窃取,设计师通常会采用多种加密方式。

例如,基于MD5 或SHA1 等加密算法,可以将用户密码进行加密存储,防止黑客通过破解获取密码。

同时,为了防止密码的抄录,许多电子密码锁还会采用随机密码产生器和动态密码技术。

通过这些方式,可以确保系统的安全性。

第三,电子密码锁还需要具备输入输出界面。

为了和用户进行交互和数据传输,电子密码锁通常会有显示屏、按键、接口等。

显示屏可以展示数据和提示信息,按键则可以用来输入密码和控制操作。

接口则可以连接其他设备或系统,在进行信息交换和远程控制时使用。

最后,电子密码锁的电源设计也非常重要。

为了确保电子密码锁正常运行并且安全可靠,电源系统的设计需要满足电压、电流等要求,并且需要采用过载保护和短路保护等安全措施。

同时,还需要考虑节能和环保的因素,例如采用低功耗电源和材料等,以保证电子密码锁长期稳定运行。

综上所述,电子密码锁的电路设计需要考虑多个方面,包括单片机、加密、输入输出接口和电源设计等。

只有从多个维度进行考虑和设计,才能确保电子密码锁的安全、高效且可靠。

电子密码锁电路设计(嵌入式系统设计)

电子密码锁电路设计(嵌入式系统设计)

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

设计本课题时构思了三种方案:一种是用以AT89C2051为核心的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案;还有一种采用74LS160十进制计数器、利用74LS148 8线—3线编码器进行编码的多位十进制可报警多功能密码锁。

二、总体方案设计1、设计方案方案一:采用数字电路控制。

其原理方框图如图1-1所示。

图2-1-1 数字密码锁电路方案采用数字密码锁电路的好处就是设计简单。

用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。

电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。

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

方案二:采用一种是用以AT89S51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。

其原理如图1-2所示。

簧和锁框等。

当电磁线圈中有一定的电流通过时,磁力吸动锁栓,锁便打开。

否则.锁栓进入锁框,即处在锁住状态。

为了便于试验,我们可用发光二极管代表电磁线圈,当发光二极管为亮状态时,代表电子锁被打开,暗状态代表锁着。

单片机:密码锁仿真图+原理图+PCB电路图

单片机:密码锁仿真图+原理图+PCB电路图

单片机密码锁课程设计仿真图原理图部分图代码#include <REG51.h>#include<intrins.h>#define LCM_Data P0#define uchar unsigned char#define uint unsigned int#define w 6 //定义密码位数sbit lcd1602_rs=P2^5;sbit lcd1602_rw=P2^6;sbit lcd1602_en=P2^7;sbit Scl=P3^4; //24C02串行时钟sbit Sda=P3^5; //24C02串行数据sbit ALAM = P2^1; //报警sbit KEY = P3^6; //开锁sbit open_led=P2^2; //开锁指示灯bit operation=0; //操作标志位bit pass=0; //密码正确标志bit ReInputEn=0; //重置输入充许标志bit s3_keydown=0; //3秒按键标志位bit key_disable=0; //锁定键盘标志unsigned char countt0,second; //t0中断计数器,秒计数器void Delay5Ms(void);unsigned char code a[]={0xFE,0xFD,0xFB,0xF7};//控盘扫描控制表unsigned char code start_line[] = {"password: "}; unsigned char code name[] = {"===Coded Lock==="};//显示名称unsigned char code Correct[] = {" correct "};//输入正确unsigned char code Error[] = {" error "};//输入错误unsigned char code codepass[] = {" pass "}; unsigned char code LockOpen[] = {" open "};//OPENunsigned char code SetNew[] = {"SetNewWordEnable"}; unsigned char code Input[] = {"input: "};//INPUTunsigned char code ResetOK[] = {"ResetPasswordOK "};unsigned char code initword[] = {"Init password..."};unsigned char code Er_try[] = {"error,try again!"};unsigned char code again[] = {"input again "};unsigned char InputData[6];//输入密码暂存区unsigned char CurrentPassword[6]={1,3,1,4,2,0};//当前密码值unsigned char TempPassword[6];unsigned char N=0; //密码输入位数记数unsigned char ErrorCont; //错误次数计数unsigned char CorrectCont; //正确输入计数unsigned char ReInputCont; //重新输入计数unsigned char code initpassword[6]={0,0,0,0,0,0};//=====================5ms延时==============================void Delay5Ms(void){unsigned int TempCyc = 5552;while(TempCyc--);}//===================400ms延时==============================void Delay400Ms(void){unsigned char TempCycA = 5;unsigned int TempCycB;while(TempCycA--){TempCycB=7269;while(TempCycB--);}}//=============================================================================================//================================24C02========================================================//=============================================================================================void mDelay(uint t) //延时{uchar i;while(t--){for(i=0;i<125;i++){;}}}void Nop(void) //空操作{_nop_();_nop_();_nop_();_nop_();}/*起始条件*/void Start(void){Sda=1;Scl=1;Nop();Sda=0;Nop();}/*停止条件*/void Stop(void){Sda=0;Scl=1;Nop();Sda=1;Nop();}/*应答位*/void Ack(void){Sda=0;Nop();Scl=1;Nop();Scl=0;}/*反向应答位*/void NoAck(void){Sda=1;Nop();Scl=1;Nop();Scl=0;}/*发送数据子程序,Data为要求发送的数据*/void Send(uchar Data){uchar BitCounter=8;uchar temp;do{temp=Data;Scl=0;Nop();if((temp&0x80)==0x80)Sda=1;elseSda=0;Scl=1;temp=Data<<1;Data=temp;BitCounter--;}while(BitCounter);Scl=0;}/*读一字节的数据,并返回该字节值*/uchar Read(void){uchar temp=0;uchar temp1=0;uchar BitCounter=8;Sda=1;do{Scl=0;Nop();Scl=1;Nop();if(Sda)temp=temp|0x01;elsetemp=temp&0xfe;if(BitCounter-1){temp1=temp<<1;temp=temp1;}BitCounter--;}while(BitCounter);return(temp);}void WrToROM(uchar Data[],uchar Address,uchar Num){uchar i;uchar *PData;PData=Data;for(i=0;i<Num;i++){Start();Send(0xa0);Ack();Send(Address+i);Ack();Send(*(PData+i));Ack();Stop();mDelay(20);}}void RdFromROM(uchar Data[],uchar Address,uchar Num){uchar i;uchar *PData;PData=Data;for(i=0;i<Num;i++){Start();Send(0xa0);Ack();Send(Address+i);Ack();Start();Send(0xa1);Ack();*(PData+i)=Read();Scl=0;NoAck();Stop();}}//==================================================================================================//=======================================LCD1602====================================================//==================================================================================================#define yi 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)#define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)//----------------延时函数,后面经常调用----------------------void delay(uint xms)//延时函数,有参函数{uint x,y;for(x=xms;x>0;x--)for(y=110;y>0;y--);}//--------------------------写指令---------------------------write_1602com(uchar com)//****液晶写入指令函数****{lcd1602_rs=0;//数据/指令选择置为指令lcd1602_rw=0; //读写选择置为写P0=com;//送入数据delay(1);lcd1602_en=1;//拉高使能端,为制造有效的下降沿做准备delay(1);lcd1602_en=0;//en由高变低,产生下降沿,液晶执行命令}//-------------------------写数据-----------------------------write_1602dat(uchar dat)//***液晶写入数据函数****{lcd1602_rs=1;//数据/指令选择置为数据lcd1602_rw=0; //读写选择置为写P0=dat;//送入数据delay(1);lcd1602_en=1; //en置高电平,为制造下降沿做准备delay(1);lcd1602_en=0; //en由高变低,产生下降沿,液晶执行命令}//-------------------------初始化-------------------------void lcd_init(void){write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据write_1602com(0x0c);//开显示不显示光标write_1602com(0x06);//整屏不移动,光标自动右移write_1602com(0x01);//清显示}//========================================================================================//=========================================================================================//==============将按键值编码为数值=========================unsigned char coding(unsigned char m){unsigned char k;switch(m){case (0x11): k=1;break;case (0x21): k=2;break;case (0x41): k=3;break;case (0x81): k='A';break;case (0x12): k=4;break;case (0x22): k=5;break;case (0x42): k=6;break;case (0x82): k='B';break;case (0x14): k=7;break;case (0x24): k=8;break;case (0x44): k=9;break;case (0x84): k='C';break;case (0x18): k='*';break;case (0x28): k=0;break;case (0x48): k='#';break;case (0x88): k='D';break;}return(k);}//=====================按键检测并返回按键值===============================unsigned char keynum(void){unsigned char row,col,i;P1=0xf0;if((P1&0xf0)!=0xf0){Delay5Ms();Delay5Ms();if((P1&0xf0)!=0xf0){row=P1^0xf0; //确定行线i=0;P1=a[i]; //精确定位while(i<4){if((P1&0xf0)!=0xf0){col=~(P1&0xff); //确定列线break; //已定位后提前退出}else{i++;P1=a[i];}}}else{return 0;}while((P1&0xf0)!=0xf0);return (row|col); //行线与列线组合后返回}else return 0; //无键按下时返回0}//=======================一声提示音,表示有效输入========================void OneAlam(void){ALAM=0;Delay5Ms();ALAM=1;}//========================二声提示音,表示操作成功========================void TwoAlam(void){ALAM=0;Delay5Ms();ALAM=1;Delay5Ms();ALAM=0;Delay5Ms();ALAM=1;}//========================三声提示音,表示错误========================void ThreeAlam(void){ALAM=0;Delay5Ms();ALAM=1;Delay5Ms();ALAM=0;Delay5Ms();ALAM=1;Delay5Ms();ALAM=0;Delay5Ms();ALAM=1;}//=====================显示输入的N个数字,用H代替以便隐藏============================void DisplayOne(void){// DisplayOneChar(9+N,1,'*');write_1602com(yi+5+N);write_1602dat('*');}//=======================显示提示输入=========================void DisplayChar(void){unsigned char i;if(pass==1){//DisplayListChar(0,1,LockOpen);write_1602com(er);for(i=0;i<16;i++){write_1602dat(LockOpen[i]);}}else{if(N==0){//DisplayListChar(0,1,Error);write_1602com(er);for(i=0;i<16;i++){write_1602dat(Error[i]);}}else{//DisplayListChar(0,1,start_line);write_1602com(er);for(i=0;i<16;i++){write_1602dat(start_line[i]);}}}}void DisplayInput(void){unsigned char i;if(CorrectCont==1){//DisplayListChar(0,0,Input);write_1602com(er);for(i=0;i<16;i++){write_1602dat(Input[i]);}}}//========================重置密码==================================================//==================================================================================void ResetPassword(void){unsigned char i;unsigned char j;if(pass==0){pass=0;DisplayChar();ThreeAlam();}else{if(ReInputEn==1){if(N==6){ReInputCont++;if(ReInputCont==2){for(i=0;i<6;){if(TempPassword[i]==InputData[i]) //将两次输入的新密码作对比i++;else{//DisplayListChar(0,1,Error);write_1602com(er);for(j=0;j<16;j++){write_1602dat(Error[j]);}ThreeAlam(); //错误提示pass=0;ReInputEn=0; //关闭重置功能,ReInputCont=0;DisplayChar();break;}}if(i==6){//DisplayListChar(0,1,ResetOK);write_1602com(er);for(j=0;j<16;j++){write_1602dat(ResetOK[j]);}TwoAlam(); //操作成功提示WrToROM(TempPassword,0,6); //将新密码写入24C02存储ReInputEn=0;}ReInputCont=0;CorrectCont=0;}else{OneAlam();//DisplayListChar(0, 1, again); //显示再次输入一次write_1602com(er);for(j=0;j<16;j++){write_1602dat(again[j]);}for(i=0;i<6;i++){TempPassword[i]=InputData[i]; //将第一次输入的数据暂存起来}}N=0; //输入数据位数计数器清零}}}}//=======================输入密码错误超过三过,报警并锁死键盘======================void Alam_KeyUnable(void){P1=0x00;{ALAM=~ALAM;Delay5Ms();}}//=======================取消所有操作============================================void Cancel(void){unsigned char i;unsigned char j;//DisplayListChar(0, 1, start_line);write_1602com(er);for(j=0;j<16;j++){write_1602dat(start_line[j]);}TwoAlam(); //提示音for(i=0;i<6;i++){InputData[i]=0;}KEY=1; //关闭锁ALAM=1; //报警关operation=0; //操作标志位清零pass=0; //密码正确标志清零ReInputEn=0; //重置输入充许标志清零ErrorCont=0; //密码错误输入次数清零CorrectCont=0; //密码正确输入次数清零ReInputCont=0; //重置密码输入次数清零open_led=1;s3_keydown=0;key_disable=0;N=0; //输入位数计数器清零}//==========================确认键,并通过相应标志位执行相应功能===============================void Ensure(void){unsigned char i,j;RdFromROM(CurrentPassword,0,6); //从24C02里读出存储密码if(N==6){if(ReInputEn==0) //重置密码功能未开启{for(i=0;i<6;){if(CurrentPassword[i]==InputData[i]){i++;}else{ErrorCont++;if(ErrorCont==3) //错误输入计数达三次时,报警并锁定键盘{write_1602com(er);for(i=0;i<16;i++){write_1602dat(Error[i]);}doAlam_KeyUnable();while(1);}else{TR0=1; //开启定时key_disable=1; //锁定键盘pass=0;break;}}}if(i==6){CorrectCont++;if(CorrectCont==1) //正确输入计数,当只有一次正确输入时,开锁,{//DisplayListChar(0,1,LockOpen);write_1602com(er);for(j=0;j<16;j++){write_1602dat(LockOpen[j]);}TwoAlam(); //操作成功提示音KEY=0; //开锁pass=1; //置正确标志位TR0=1; //开启定时open_led=0; //开锁指示灯亮for(j=0;j<6;j++) //将输入清除{InputData[i]=0;}}else //当两次正确输入时,开启重置密码功能{//DisplayListChar(0,1,SetNew);write_1602com(er);for(j=0;j<16;j++){write_1602dat(SetNew[j]);}TwoAlam(); //操作成功提示ReInputEn=1; //允许重置密码输入CorrectCont=0; //正确计数器清零}}else //=========================当第一次使用或忘记密码时可以用131420对其密码初始化============{if((InputData[0]==1)&&(InputData[1]==3)&&(InputData[2]==1)&&(InputData[3]==4)&&(InputData[4]==2)&&(InputData[5]==0)){WrToROM(initpassword,0,6); //强制将初始密码写入24C02存储//DisplayListChar(0,1,initword); //显示初始化密码write_1602com(er);for(j=0;j<16;j++){write_1602dat(initword[j]);}TwoAlam();Delay400Ms();TwoAlam();N=0;}else{//DisplayListChar(0,1,Error);write_1602com(er);for(j=0;j<16;j++){write_1602dat(Error[j]);}ThreeAlam(); //错误提示音pass=0;}}}else //当已经开启重置密码功能时,而按下开锁键,{//DisplayListChar(0,1,Er_try);write_1602com(er);for(j=0;j<16;j++){write_1602dat(Er_try[j]);}ThreeAlam();}}else{//DisplayListChar(0,1,Error);write_1602com(er);for(j=0;j<16;j++){write_1602dat(Error[j]);}ThreeAlam(); //错误提示音pass=0;}N=0; //将输入数据计数器清零,为下一次输入作准备operation=1;}//==============================主函数===============================void main(void){unsigned char KEY,NUM;unsigned char i,j;P1=0xFF;TMOD=0x11;TL0=0xB0;TH0=0x3C;EA=1;ET0=1;TR0=0;Delay400Ms(); //启动等待,等LCM讲入工作状态lcd_init(); //LCD初始化write_1602com(yi);//日历显示固定符号从第一行第0个位置之后开始显示for(i=0;i<16;i++){write_1602dat(name[i]);//向液晶屏写日历显示的固定符号部分}write_1602com(er);//时间显示固定符号写入位置,从第2个位置后开始显示for(i=0;i<16;i++){write_1602dat(start_line[i]);//写显示时间固定符号,两个冒号}write_1602com(er+9); //设置光标位置write_1602com(0x0f); //设置光标为闪烁Delay5Ms(); //延时片刻(可不要)N=0; //初始化数据输入位数while(1){if(key_disable==1)Alam_KeyUnable();elseALAM=1; //关报警KEY=keynum();if(KEY!=0){if(key_disable==1){second=0;}else{NUM=coding(KEY);{switch(NUM){case ('A'): ; break;case ('B'): ; break;case ('C'): ; break;case ('D'): ResetPassword(); break; //重新设置密码case ('*'): Cancel(); break; //取消当前输入case ('#'): Ensure(); break; //确认键,default:{//DisplayListChar(0,1,Input);write_1602com(er);for(i=0;i<16;i++){write_1602dat(Input[i]);}operation=0;if(N<6) //当输入的密码少于6位时,接受输入并保存,大于6位时则无效。

带自锁保护功能的电子密码锁电路图

带自锁保护功能的电子密码锁电路图

本电子密码锁的特点是,如果按错了密码键顺序或按下了任何一个非密码键,电路即锁定为关断状态,各按键均失效,大大增加了*难度。

电路见图。

可控硅SCR5、SCR6、SCR7为该密码锁的主控元件。

当按照正确顺序按下三位密码键(本例为AN2、AN5、AN7)时,可控硅SCR2、SCR3、SCR4依次导通,从而触发可控硅SCR5、SCR6、SCR7依次导通,VT1饱和导通,电磁铁DL动作,实现*。

与此同时,AN7键按下后SCR4导通,进而VT2饱和导通,使各按键在*后不再起作用。

若按错密码键顺序,不但不能*,还会使电路处于关断状态,图中R3、VT3的作用是否决定按键顺序AN5、AN2、AN7的可*性。

如先按AN5,则SCR3导通,VT3基极有了偏置电流,再按下AN2,则VT3饱和导通,使SCR2无触发电压而不能导通,因而不能*。

先按AN7也不能*已如上述。

本密码锁的按键顺序只能是AN2、AN5、AN7。

当按下任何一个非密码键时,SCR1导通,使VT2饱和导通,各按键失效,电路锁定为关断状态。

这时必须断开开关K再合上,电路才复位。

电子密码锁的电路设计

电子密码锁的电路设计

电子密码锁的电路设计随着现代科技的发展,电子密码锁已经成为了现代人们生活中常见的一种安全保护设备。

它可以有效地保护我们的财产安全,如家庭、办公室、商店等场所。

因此,了解电子密码锁的电路设计显得尤为重要。

电子密码锁主要由两个部分组成:输入密码及开锁控制。

输入密码需要一个键盘,通常包括数字键和确定键。

而开锁控制需要一个控制电路,它可以是单片机,也可以是普通的数字电路。

在设计电子密码锁电路之前,需要明确以下几点。

一、电源电子密码锁需要一个稳定的电源,电压为5V左右。

传统的电池可以提供电源,但需要定期更换,较不方便。

因此,使用交流电源或直流稳压器电源较为便利。

二、键盘键盘通常包括数字键、确定键、清零键等。

输入正确密码后,按下确定键,锁就会打开。

普通的锁需要转动锁芯,而电子密码锁可以设置一个电磁锁来控制锁的开关。

此时,在控制电路中需要将电磁锁的电压控制在一定的范围内,以保证锁的正常使用。

三、控制电路电子密码锁的控制电路可以是单片机,也可以是普通的数字电路。

单片机控制电路可以编写程序,实现更为复杂的功能,如密码复杂度设置、开锁记录等。

而普通的数字电路虽然功能简单,但制作成本较低。

在具体设计中,需要根据自己的需求和实际情况进行选择。

在控制电路中,需要使用一些基本的器件,如晶体管、三极管、逻辑门等。

其中,逻辑门是电子密码锁电路中常用的电子元器件。

它负责将输入的密码与预设的密码进行比较,并给出相应的信号来控制锁的开关。

电子密码锁电路的设计可以分为两个部分:输入密码和开锁控制。

输入密码部分需要将输入的密码传输到开锁控制电路中进行处理。

电子密码锁的输入部分可以使用矩阵键盘或直接接入数字信号。

矩阵键盘是一种广泛使用的数字输入设备,它由多个按钮组成,每个按钮可以表示一个数字或符号。

在电子密码锁的输入部分,需要将每个按钮的输出信号接入到一个矩阵中,然后通过行扫描和列扫描的方式来获取输入的密码。

最终,将获取到的密码传输到开锁控制电路中进行处理。

数字式密码锁电路图

数字式密码锁电路图
D、上述三处短接线要平直,长度等于该短接焊盘间的间距。
E、用短路片插在双排插针XS的i、t两点间,使i、t两点短路。
F、用短路片插在双排插针XS的o、w两点间,使o、w两点短路。
G、用短路片插在双排插针XS的p、x两点间,使p、x两点短路。
H、用短路片插在双排插针XS的q、y两点间,使q、y两点短路。
电路工作过程如下:假设设置的密码为112225555。当按下S1,即密码为1时,电源电压经S1,VD1加到IC2A端 脚,即CBA为001码,如前所述D1输出端与 脚接通,这时IC1Q0的高电平经VD21加至D1,IC2 脚为高电平,使VT3饱和导通,IC3 脚为低电平,同时高电平亦经S1、VD1、VD24加到IC3A时钟端 脚,经延时后IC3 脚输出高电平,加到IC1时钟端 脚,使计数器进1,Q1为高电平。这时再按S1、S2、S2、S2、S5、S5、S5、S5,IC1的Q2、Q3、Q4、Q5、Q6、Q7、Q8、Q9依次出现高电平。当Q9密码,如最后一个不是S5,而是S7,这时经S7、VD4、VD7、VD9使IC2 脚均为高电平,即CBA为111,IC2的D7被选通。D7经R1接地为低电平,故IC2 脚为低电平,使VT3截止。其集电极为高电平。当触发器IC3A单稳态结束时,Q 脚输出的电平上升沿加到IC3B时钟端,由于IC3B 脚为高电平,故IC3BQ 脚输出高电平,加到IC1清零端 脚。IC1清零,除Q0为高电平外,其余均为低电平。前面努力失败,密码必须重新输入。本电路绿灯发光表示电子锁被打开。红灯发光表示电子锁关上。VD22,VD23,VD24起隔离作用。VT5至VT8构成讯响电路,使每按下一次按键,讯响器HA能发出“嘟”的一声提示音。
四、调试要求和方法:
1.设置密码:设定本机密码为112225555(参考原理图所画线路)。

电子密码锁的电路设计说明

电子密码锁的电路设计说明

概述随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国外相继面世。

但是这些产品的特点是针对特定的指纹和有效卡,只能适用于要求的箱、柜、门等。

而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。

加上其成本较高,一定程度上限制了这类产品的普及和推广。

鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。

随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。

单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。

本文所涉及的是市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。

到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。

本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等容。

单片微型计算机(Single.ChipMicrocomputer)简称单片机(MCU)。

它是在一块片上集成了中央处理单元(CPU)、振荡器电路、只读存储器(ROM)、随机存取存器(RAM)、并行/串行I/O接口、可编程定时器/计数器等,有的甚至包含了A/D转器。

总之,这么一块小小的单片机芯片,就相当于一台微型计算机,它具有体积小、量轻、单一电源、低功耗、功能强、价格低廉、运算速度快、抗干扰能力强、可靠性等特点。

1974年,美国仙童(Fairchild)公司生产出世界上第一块单片机,短短几十的时间,单片机如雨后春笋一般,大量涌现出来。

硬件设计课程_数字密码锁电路设计和制作

硬件设计课程_数字密码锁电路设计和制作

数字密码锁的设计思路编码电子锁电路分为编码电路、控制电路、计数(分配器)电路、讯响电路、。

电子锁主要由输入元件、电路(包括电源)以及锁体三部分组成,当电磁线圈中有一定的电流通过时,磁力吸动锁栓,锁便打开。

用发光二极管代表电磁线圈,当发光二极管为亮状态时,代表电子锁被打开。

每来1个输入时钟,编码电路的相应状态就向前前进一步。

在这个操作过程中,如果按照规定的代码顺序按动编码按键,编码电路的输出就跟随这个代码的信息。

正确输入编码按键的数字,控制电路通过整形供给编码电路时钟。

一直按规定的编码顺序操作完,则解码电路驱动开锁电路把锁打开。

1 数字密码锁电路图的设计1.编码电路的设计由按键开关S0~S9与二极管VD1~VD12构成三位BCD码编码电路,S1~S7,对应的BCD码分别为001~111,S0,S8,S9起迷惑作用,且具有复位功能.2.数据选择器的设计CD4512为8选1数据选择器,其选择端CBA输入的是编码电路产生的三位BCD码,用以输入密码。

其中D0~ D7为数据输入端,14脚为输出端如按下按扭S3时,编码电路产生的BCD码为011,CD4512的选择端CBA=011,这时将数据输出端D3输入的信号送到输出端14脚,即14脚的输出信号电平与D3输入信号电平一致。

3.单稳态触发器的设计CD4013为双D触发器,将其中两个触发器分别连接成单稳触发电路主要目的是为了防止触点抖动而产生失误IC3A,IC3B构成的单稳电路稳态为Q=0,当Q=1,则经电阻向电容充电,产生复位电压使Q段置0,当S0~S9中任一按键被按下时,电源电压经过VD22~VD24加到VT1的基极,使VT1导通,VT2截止(按键按下前,VT1截止,VT2导通),IC3A的时钟输入端有上升沿作用,使得Q=D=1为高电平,`Q非=0.经过一段时间充电后电容器C2上端变为高电平,复位端R作用使Q 变为0。

则Q非由0变成1,作为上升沿时钟信号控制IC3B及CD4017工作。

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

摘要
本文主要设计了一种以单片机89C51为核心的数字密码锁,详细的介绍了该数字密码锁完整的设计过程和外围的开锁电路的设计。

数字密码锁主要由三部分组成:键盘接口电路、数字密码锁的控制电路、输出八段显示电路。

键盘接口电路包括时序产生电路、键盘扫描电路、键盘译码电路。

数字密码锁控制电路设计包括数字按键的数字输入、功能按键的功能设计、密码清除、变更等。

输出八段显示电路包括数据选择电路、八段显示器扫描电路。

并按照实际的尺码,做出了PCB连接图。

关键词:单片机;密码锁;PCB
目录
1 引言 (1)
2 硬件设计 (2)
2.1 系统的结构框图 (2)
2.2 PCB原理图 (2)
3 操作步骤 (3)
4 心得体会 (8)
参考文献 (9)
1引言
PCB是电子工业重要的电子部件之一,几乎每种电子设备,小到电子手表,计算器,大到计算机,通讯电子设备,军用的武器系统,只要有集成电路等电子元器件,为了它们之间电气互连,都要使用印制板.在较大型的电子产品研制过程中,最基本的成功因素是该产品的印制板的设计、文件编制的制造。

PCB的设计的制造质量直接影响到整个产品的质量的成本,甚至会导致一家公司的命运。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁因具有安全性高、成本低、功耗低、易操作等优点,受到了广大用户的青睐。

现今常见的密码锁设计主要有两种方案,一种是中规模集成电路控制的方案,另一种是单片机控制的方案。

对于采用集成电路控制的方案,其中的编码电子锁电路分为编码电路、控制电路、复位电路、解码电路、防盗报警电路、门铃电路,而电子锁主要由输入元件、电路(包括电源)以及锁体三部分组成。

显然此种方案的物理实现结构较为复杂且重新设置密码、输入密码的操作过程也会给用户带来一定的不方便;而利用单片机控制的方案,由于单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加掉电存储、声光提示甚至添加遥控控制功能,但其也有一定的局限性,就在于其控制原理的复杂以及要求设计人员具有更加良好的程序设计能力,调试较为繁琐,否则程序一旦跑飞将造成意想不到的损失。

通过对这两种方案的优缺点比较,再考虑到本人自己对单片机设计具有一定的基础,所以此次选择利用单片机来进行密码锁的设计。

2 硬件设计
2.1 系统的结构框图
图2.1 电路的总体设计框架
2.2 PCB 原理图
各模块拼接组合,电路总体设计图如图2.2。

数码管位选的8个端口接在单片机的P2口;段选端则接在单片机的P0口,由于P0口内部没有接电阻,因此需在P0口外部接一个10k 的排阻,并将其上拉;键盘矩阵接在单片机的P3口,用来输入密码;报警装置安排在P1口。

图2.2 PCB 原理图
开锁模块 89C51 单片机 矩阵 键盘 控制 显示模块 报警模块
3操作步骤
1、打开DXP 2004软件新建一个PCB项目,在项目文件下追加一个原理图文件
2、创建原理图,在元件库里面依次找到构建原理图的每个元件并用连接线顺次连接,当遇到有的元件并不出现在相应的元件库中时,则需要自制相关原理图及其封装形式。

画好的密码锁原理图如下。

3、自制相关原理图的方法。

文件—>创建—>库—>原理图库,在打开的界面中画出相应的原理图,并进行保存,在密码锁的PCB制作中数码管和喇叭的原理图就是有自己创建的。

图3.1 创建原理图
图3.2 创建的数码管
4、自制相关封装形式的方法。

文件—>创建—>库—>PCB库。

在打开的界面中自制元件的封装形式,并进行保存,在此次PCB板设计中很多元件的封装形式都是自行制作的。

图3.3 创建PCB库
数码管开关扬声器晶振发光二极管
5、画好了原理图接下来就是制作PCB板了,首先创建一个PCB文件保存,然后回到原理图进行设计—>Updata PCB Document—>执行变化,得出如下结果,接下来就是将这些原件按一定的顺序排列在PCB板上。

图3.4 所有原件
6、手动排列后自动布线—>全部对象—>route all 执行后如下图所示
图3.5 结果图
7、最后需要将制作好的PCB板覆上铜并将其接地,防止在电路板印刷过程中的信号干扰。

结果如下图所示
图3.6 顶层覆铜后图3.7 底层覆铜后
4 心得体会
经过一学期的研究和创作,我终于完成了这次课设项目及课设报告。

感谢在本次论文设计中给予我帮助的老师和同学们。

在本次论文设计中,我学习到了很多知识,重新对51系列单片机进行了系统学习,更加详细的了解了51系列单片机的功能,也重新加深了对七段显示管,键盘矩阵等的功能了解及设计技巧。

当然,在本次设计中,遇到许多困难,充分表明我在以往的学习过程中在这方面知识的欠缺和经验不足。

转眼大学生活已经过去了三年,现在我们也将步入社会开始自己新的生活。

通过这段时间做设计,我深深的感到自己在学校所学到的书本上的知识,还远不能满足自己以后的需要。

虽然自己将要告别学生生活,但自己在以后的工作中还要更加努力的学习,做到“学习永无止境”。

我相信四年的大学学习、生活,将成为我人生中的一笔宝贵的财富。

本次课程设计的电子密码锁是最基本的设计,具有简单实用性,首先采用了AT89C51单片机作为主控制芯片,以达到使设计整体简洁明了的目的。

设计中实用的按键连接电路、显示连接电路、复位电路都是51单片机设计中最常采用的设计电路。

还学会了画电路图并自己设计PCB电路板。

意义非凡!
沈阳理工大学课程设计报告
参考文献
[1] 郭勇.Protel DXP 2004 SP2印制电路板设计教程.第一版. 机械工业出版社,
2014:71~112
[2] 李朝青.单片机原理及接口技术.第二版.北京航空航天大学出版社,2002: 32~63
[3] 王忠飞.胥芳MCS-51单片机原理及嵌入式系统应用.第四版.西安电大出版社,
2007: 31
[4] 何立民.我国单片机应用技术发展趋势及展望—自动化与仪表.第三版.机械工业出版
社,1992: 11~25
[5] 陈明荧.89C51单片机课程设计实训教材.第二版.清华大学出版社,2004: 41~45
9。

相关文档
最新文档