单片机课程设计-电子密码锁
基于单片机的电子密码锁设计课件
3.5 晶振部分
根据实际情况,本设计中采用12MHZ做为系统的外部晶振,电容取值为20pF。
图3-6 晶振电路原理图
3、硬件电路
3.6 显示部分
为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示LCD1602取代普通的数码管来完成。其显示部分引脚接口如图3-8所示:
基于单片机的电子密码锁设计
1、系统结构分析
图1-1 系统结构框图
本设计系统主要由单片机芯片、电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分显示部分、报警部分、开锁部分组成。
AT 89S51
键盘输入
复位电路
密码存储电路
晶振电路
电源输入
显示电路
报警电路
开锁电路
选用单片机AT89S51作为本设计的主控芯片。 采用矩阵键盘进行功能按键的输入。 外接AT24C02芯片用于密码的存储与修改。 利用LCD1602液晶显示器进行显示。 利用蜂鸣器进行报警工作。
图3-3 键盘输入原理图
3.3 电源输入部分
3、硬件电路
密码锁主控制部分电源需要用5V直流电源供电,其电路如图3-5所示:
图3-4 电源输入电路原理图
3.4 复位部分 根据实际情况选择如图3-6所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键。
3、硬件电路
图3-5 电源输入电路原理图
2、方案设计
3.1 存储芯片AT24C02
3、硬件电路
图3-1 AT24C02的电路接线图
3.2 矩阵键盘 采用4*4矩阵式键盘实现密码输入功能。 4*4键盘不但能完成密码的输入,还能作特别功能键使用,比如修改密码功能等。
3、硬件电路
图3-2 矩阵键盘
基于单片机的电子密码锁
基于单片机的电子密码锁第一章:引言电子密码锁是随着科技的不断进步,应用于各个领域的一种新型门禁系统。
相较于传统的机械锁具,电子密码锁具有更高的安全性与便捷性。
而基于单片机的电子密码锁,则是通过单片机作为核心控制器,通过输入正确的密码才能进行开锁操作。
本文旨在介绍基于单片机的电子密码锁的原理、设计和实现过程。
第二章:电子密码锁的工作原理2.1 单片机简介单片机是一种集成了微处理器、存储器和各种输入输出接口于一体的微型计算机系统。
它具有体积小、功耗低、性能稳定等特点,适用于各种电子设备的控制系统。
2.2 电子密码锁的组成部分基于单片机的电子密码锁由输入模块、控制模块、显示模块和输出模块组成。
输入模块用于输入密码,控制模块用于验证密码的正确性和执行开锁指令,显示模块用于显示相关信息,输出模块用于控制锁的状态。
2.3 电子密码锁的工作原理当用户输入密码时,控制模块将用户输入的密码与预设密码进行比较。
如果输入的密码正确,则控制模块发送开锁指令,输出模块解除锁的限制,用户可以开启门。
否则,控制模块继续等待用户输入密码。
第三章:电子密码锁的设计步骤3.1 系统需求分析根据实际应用需求,确定电子密码锁系统的功能、性能和外观设计等方面的要求。
3.2 硬件设计根据系统需求,设计硬件电路,包括输入模块、控制模块、显示模块和输出模块等。
3.3 软件设计基于单片机的电子密码锁需要编写适用的软件程序。
根据密码验证算法,编写程序实现密码的比较和开锁指令的发送。
3.4 电子密码锁的制作流程根据硬件设计和软件设计的结果,进行电子密码锁的组装和制作。
3.5 电子密码锁的测试与调试对制作完成的电子密码锁进行测试,包括考虑用户输入的密码是否正确、开锁是否正常、显示是否准确等方面的问题。
第四章:电子密码锁的功能与特点4.1 密码设置与管理用户可以根据需要设置密码,并进行密码的管理,包括密码的增、删、改等功能。
4.2 多种开锁方式电子密码锁可以支持多种开锁方式,例如密码开锁、指纹识别、刷卡开锁等。
PIC单片机电子密码锁
一、系统主要功能1)基本要求1.硬件设计要求:(1)CPU使用PIC16F877A。
(2)用4x4矩阵键盘作为操作信息输入。
(3)用LCD1602或六位数码管作为信息输出。
(建议使用LCD1602)(4)用蜂鸣器及发光二极管作为错误报警及状态显示。
2.系统功能要求:(1)输入密码功能。
输入密码时用“*”号或“-”显示。
在输入密码时,具有清除前一位密码功能(用CLR键)。
密码输入完毕,按(ENTER键)确认并生效。
(2)上锁功能。
在锁开状态下,通过(LOCK键)上锁。
(3)在锁合的状态下,通过密码开锁功能。
开锁时,直接在键盘上输入六位密码,按(ENTER键)确认,如果密码正确,转入锁开状态。
(4)在锁开状态下,修改密码功能。
在键盘上输入六位新的密码,按(ENTER键)确认,代替旧密码,并保存在RAM中。
(4)在开锁时,如果输入密码三次错误,产生声、光报警功能。
(5)0~9为密码键数字键,E为ENTER键,C为清除键CLR键,D作为上锁键LOCK键,如果用到其他键时,可自行定义。
2)进阶要求密码保存在PIC16F877A内部的EEPROM中,以防断电密码丢失。
(不使用外挂的EEPROM,如:AT24C02等)二、系统设计要求1)根据系统的功能和目标,画出系统功能框图。
2)根据系统功能框图用Proteus画出仿真电路图。
3)根据系统的功能要求,画出程序流程图。
4)根据程序流程图,用PIC C语言编写系统源程序。
5)进行编译、调试建立目标代码。
6)在Proteus环境下进行仿真。
三、设计报告报告内容包括系统设计思路、方案选择、器件选择及电路元器件明细表、系统功能框图、程序流程图、源程序清单、系统工作原理和设计心得等。
四、评分标准:1、完成《基本要求》者,得分80~89分;2、完成《基本要求》及《进阶要求》者,得分90~100分;五、设计时间安排十九周的星期一至星期五(2011年6月27日至7月1日)1)周一:布置任务,进行方案选择、器件选择。
密码锁-课程设计
《单片机原理与应用》课程设计报告基于单片机的密码锁的设计院系:专业(班级):姓名:学号:指导教师:职称:完成日期:《单片机原理与应用》课程设计任务书院(系):专业:指导教师:目录1 课题设计 (1)1.1 课题背景 (1)1.2 课题设计目标 (1)2系统方案论证 (2)2.1 主控部分的选择 (2)2.2 密码输入方式的选择 (2)3 系统总体设计和主要芯片介绍 (3)3.1 系统总体设计 (3)3.2 主要芯片介绍 (3)4 系统硬件构成 (10)4.1 系统整体电路图 (10)4.2 单片机最小系统原理图 (10)4.3 电源输入部分 (11)4.4 键盘输入部分 (12)4.5 密码存储部分 (12)4.6 显示部分 (13)4.7 报警部分 (14)5软件的设计与实现 (14)5.1 设计原理 (15)5.2 主程序流程图 (15)6 结论 (16)[参考文献] (17)7 附录 (18)1课题设计随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。
锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。
随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
1.1 课题背景由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。
电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。
电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。
但较实用的还是按键式电子密码锁。
1.2 课题设计目标本设计采用AT89S51单片机为主控芯片,通过软件程序组成电子密码锁系统,能够实现:1.正确输入密码前提下,开锁提示;2.错误输入密码情况下,蜂鸣器报警;3.密码可以根据用户需要更改;4.断电存储功能;5. 完成实际实物的焊接;2系统方案论证系统从主控部分和密码输入方式两方面进行论证2.1 主控部分的选择方案一:采用数字电路控制用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,将密码保存在JK触发器中,与输入密码通过比较器比较,判断结果是否相符合。
单片机指纹密码锁毕业设计
单片机指纹密码锁毕业设计1. 什么是单片机指纹密码锁单片机指纹密码锁是一种电子门锁系统,它使用集成在单片机芯片上的指纹识别技术和密码输入功能,实现对门锁的访问控制。
用户可以通过输入正确的密码或者将指纹与已注册的指纹进行比对来解锁门锁。
这种锁具有高安全性和方便性,适用于各种需要保护的场所,如家庭、办公室和商店等。
2. 单片机指纹密码锁的工作原理是什么单片机指纹密码锁的工作原理主要分为三个部分:指纹模块、密码输入模块和控制模块。
指纹模块负责采集和存储用户的指纹信息。
当用户将手指放在指纹传感器上时,指纹模块会对指纹进行扫描并提取关键特征信息。
然后,它会将提取的特征信息与已存储的指纹模板进行比对,以确定是否匹配。
如果匹配成功,指纹模块会发送信号给控制模块,表示门锁可以解锁。
密码输入模块负责接收用户输入的密码。
用户可以通过键盘或者其他输入设备输入密码。
密码输入模块将接收到的密码与事先存储的正确密码进行比对,如果匹配成功,则发送信号给控制模块。
控制模块是单片机芯片,它负责整个单片机指纹密码锁系统的逻辑控制。
当控制模块接收到指纹模块或者密码输入模块发送的解锁信号后,它会打开电磁锁或者其他解锁机制,让用户能够进入被保护的区域。
3. 单片机指纹密码锁的优点是什么单片机指纹密码锁具有以下几个优点:首先,安全性高。
通过指纹识别技术,单片机指纹密码锁可以准确地识别用户的指纹,大大降低了被非法进入的风险。
同时,密码输入模块也可以提供备用的解锁方式,增加了安全性。
其次,方便性高。
用户只需要将手指放在指纹传感器上或者输入正确的密码,即可快速解锁门锁。
相比传统的钥匙锁,单片机指纹密码锁更加方便快捷。
另外,可靠性强。
单片机指纹密码锁采用先进的技术和稳定的电子元件,具有较高的可靠性和耐用性。
它可以抵御一些常见的攻击手段,如暴力破解密码等。
最后,可扩展性好。
单片机指纹密码锁可以通过与其他安全系统集成,如门禁系统或监控系统,提供更全面的安全保障。
基于单片机电子密码锁设计论文
第1节引言1.1 电子密码锁概述随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。
而锁自古以来就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。
传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。
另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。
随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。
从而使密码锁具有很高的安全性、可靠性。
目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。
但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现。
很多行业的许多地方都要用到密码锁,随着人们生活水平的提高,如何实现家庭或公司的防盗这一问题也变的尤其突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,再者,普通密码锁的密码容易被多次试探而破译,所以,考虑到单片机的优越性,一种基于单片机的电子密码锁应运而生。
电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。
设计本课题时构思的方案:采用以AT89C2051为核心的单片机控制方案;能防止多次试探而不被破译,从而有效地克服了现实生活中存在的许多缺点。
1.2 本设计主要任务(1)共8位密码,每位的取值范围为1~8。
(2)用户可以自行设定和修改密码。
(3)按每个密码键时都有声、光提示。
(4)若键入的8位开锁密码不完全正确,则报警5秒钟,以提醒他人注意。
(5)开锁密码错3次要报警10分钟,报警期间输入密码无效,以防窃贼多次试探密码。
(6)键入的8位开锁密码完全正确才能开锁,开锁时要有1秒的提示音。
(7)密码键盘上只允许有8个密码按键和1个发光管。
课程设计:电子密码锁(附原理图及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 设计背景随着人们生活水平的提高,对家庭防盗技术的要求也是越来越高,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。
基于单片机的电子密码锁设计
基于单片机的电子密码锁设计
电子密码锁是一种常用的智能锁具,它使用数字密码代替传统的钥匙,能够提供更高的安全性和方便性。
基于单片机的电子密码锁能够实现简单的密码输入、校验和控制逻辑,下面是一种基于单片机的电子密码锁设计方案。
硬件部分:
1、MCU:选择一款高性价比的8位单片机,如AT89C51,具备足够的存储空间、操作速度和通用IO口。
2、键盘:选用16键或12键矩阵键盘,提供数字、字母和功能键,可灵活设置密码。
3、数码管:用于显示输入密码和状态信息,一般采用4位共阳数码管。
4、电路保护:此处需添加过流保护、短路保护、反向保护以及过压保护等电路。
5、电源:选择电池供电模式,例如4节AA碱性电池并联,以保证足够的电量和使用寿命。
软件部分:
1、键盘输入检测:通过IO口扫描矩阵键盘输入状态,检测按下的键位并读取对应键值,避免误触。
2、密码存储:将设定好的开锁密码存储在MCU内部的Flash或EEPROM中,以保证密码安全并避免意外丢失。
3、密码校验:将输入的数字密码与存储的密码进行比较,如一致则允许开锁,否则拒绝开锁并显示“密码错误”。
4、状态显示:通过4位共阳数码管显示输入密码、开锁状态、警报状态等信息,方便用户操作。
5、警报功能:若输入错误密码超过规定次数,则触发警报,并向指定手机号或邮箱发送警报信息。
总之,基于单片机的电子密码锁设计需要合理安排硬件和软件功能,充分保证安全性和可靠性,并考虑升级和扩展的可能性。
基于单片机的电子智能密码锁
基于单片机的电子智能密码锁电子智能密码锁是一种集密码输入、识别、控制和驱动电机等功能于一体的安全装置。
本文将介绍基于单片机技术的电子智能密码锁的原理和设计。
一、引言随着科技的不断发展,传统钥匙锁已经逐渐被电子智能密码锁取代。
电子智能密码锁结合了密码学、电子技术和计算机技术,提供了更高的安全性和便捷性。
本文将介绍基于单片机的电子智能密码锁的设计与实现。
二、原理介绍基于单片机的电子智能密码锁主要由以下几个部分组成:键盘输入模块、显示模块、控制模块和电机驱动模块。
其中,键盘输入模块负责接收用户输入的密码,显示模块用于显示密码输入和开锁状态,控制模块通过对输入密码的处理来判断是否开锁,电机驱动模块则用于控制门锁的开关。
三、设计步骤1. 系统初始化在电子智能密码锁启动时,进行系统的初始化工作,包括对系统各个模块的初始化和参数的设置。
2. 用户输入密码用户通过键盘输入模块输入密码,密码可以采用数字、字母或其他特定字符,密码长度根据设计要求设置。
3. 密码处理与验证控制模块接收到密码后,对密码进行处理和验证。
处理可以包括对密码进行加密后再进行比对,以增加安全性。
4. 开锁控制如果密码验证通过,控制模块将发送开锁信号给电机驱动模块,电机驱动模块控制门锁的开关动作。
5. 显示与提示显示模块负责显示密码输入和开锁状态,以及提示用户的操作结果,例如密码错误的提示。
6. 安全性考虑为了增强电子智能密码锁的安全性,可以考虑添加如下功能:密码错误多次后自动报警、针对暴力破解的保护机制等。
四、应用场景基于单片机的电子智能密码锁广泛应用于家庭、办公室、酒店等地方的门锁系统中。
它不仅提供了开锁便捷和安全性,还可以方便地进行密码的修改和管理。
五、总结基于单片机的电子智能密码锁通过集成密码输入、识别、控制和驱动电机等功能,成为了传统钥匙锁的理想替代品。
通过合理的设计和实现,电子智能密码锁可以提供更高的安全性和便捷性,更好地满足人们对门锁系统的需求。
单片机控制的电子密码锁(电路图 流程图 原理图)-课程设计
单片机控制的电子密码锁(电路图+流程图+原理图)-课程设计单片机控制的电子密码锁(电路图+流程图+原理图) 摘要:本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。
系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。
除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。
本系统成本低廉,功能实用关键词:AT89S51,AT24C02, 电子密码锁,矩阵键盘一、引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。
设计本课题时构思了两种方案:一种是用以AT89s51为核心的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。
考虑到数字电路方案原理过于简单,而且不能满足现在的安全需求,所以本文采用前一种方案。
二、方案论证与比较方案一:采用数字电路控制。
其原理方框图如图1-1所示。
图2-1 数字密码锁电路方案采用数字密码锁电路的好处就是设计简单。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。
电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
方案二:采用一种是用以AT89S51为核心的单片机控制方案。
单片机电子密码锁毕业论文
单片机电子密码锁毕业论文单片机电子密码锁随着科技的不断发展,电子产品在我们的日常生活中扮演着越来越重要的角色。
其中,单片机作为一种重要的电子元件,被广泛应用于各种设备中。
本文将探讨单片机在电子密码锁中的应用,并对其进行详细的分析和设计。
一、电子密码锁的背景和意义随着社会的进步和人们对安全的日益重视,传统的机械密码锁逐渐被电子密码锁所取代。
电子密码锁具有更高的安全性和便利性,可以避免传统密码锁容易被暴力破解的问题。
同时,电子密码锁还可以实现更多的功能,如记录开锁记录、远程控制等,提升了用户的使用体验。
二、单片机在电子密码锁中的应用单片机作为电子密码锁的核心控制部件,起到了至关重要的作用。
它可以通过编程实现密码的输入、验证和控制锁的开关。
同时,单片机还可以与其他外设进行通信,如键盘、显示屏、指示灯等,实现更多的功能。
1. 密码输入和验证在电子密码锁中,用户通过键盘输入密码,单片机接收并进行验证。
单片机可以通过编程实现密码的存储和比对,确保只有输入正确密码的用户才能开锁。
这种密码验证方式相比于传统机械密码锁更加安全可靠。
2. 控制锁的开关单片机可以通过控制电磁锁或电动锁的开关,实现锁的自动开关。
当密码验证通过后,单片机发送信号给锁,使其解锁;反之,当密码验证失败或超过尝试次数时,单片机发送信号给锁,使其上锁。
这种自动控制方式提高了开锁的便利性和安全性。
3. 其他功能扩展单片机还可以与其他外设进行通信,实现更多的功能。
例如,可以通过单片机控制显示屏显示开锁记录,方便用户了解开锁情况;还可以通过单片机实现远程控制功能,用户可以通过手机等设备远程开锁。
三、单片机电子密码锁的设计在设计单片机电子密码锁时,需要考虑以下几个方面。
1. 硬件设计硬件设计包括选择合适的单片机、键盘、显示屏、锁等元件,并进行电路连接。
单片机的选择应根据实际需求进行,考虑到处理速度、存储容量等因素。
键盘和显示屏的选择应方便用户的操作和信息显示。
单片机电子密码锁课程设计
单片机技术及应用综合训练设计报告前言随着人们生活水平的提高;如何实现家庭防盗这一问题也变得尤为突出..在科学技术不断发展的今天;电子密码防盗锁作为防盗卫士的作用显得日趋重要..本文从经济实用的角度出发;系统由STC89C52与低功耗CMOS型E2PROMAT24C02作为主控芯片与数据存储器单元;结合外围的键盘输入、LCD显示、报警、开锁等电路模块..它能完成以下功能:正确输入密码前提下;开锁;错误输入密码情况下;报警;密码可以根据用户需要更改..用C语言编写的主控芯片控制程序与EEPROMAT24C02读写程序相结合;并用Keil软件进行编译;设计了一款可以多次更改密码;具有报警功能的电子密码控制系统..本密码锁具有设计方法合理;简单易行;成本低;安全实用;保密性强;灵活性高等特点;具有一定的推广价值..关键词:电子密码锁、报警、液晶显示目录一、选题要求 (1)二、硬件电路设计 (1)2.151单片机 (2)2.2键盘电路 (2)2.3液晶显示电路 (2)2.4警报电路 (3)2.5密码储存电路 (3)2.6晶振、复位及关锁 (3)三、软件设计 (4)四、软硬件调试结果 (9)4.1电路总原理图 (9)4.2调试结果 (10)五、总结 (11)一、选题要求本文从经济实用的角度出发;设计采用单片机为主控芯片;结合外围电路;组成电子密码控制系统;密码锁共6位密码;每位的取值范围为0~9;用户可以自行设定和修改密码..用户想要打开锁;必先通过提供的键盘输入正确的密码才可以;密码输入错误有提示;为了提高安全性;当密码输入错误三次将报警;期间输入密码无效;以防窃贼多次试探密码..6位密码同时输入正确;锁才能打开..锁内有备用电池;只有内部上电复位时才能设置或修改密码;因此;仅在门外按键是不能修改或设置密码的;因此保密性强、灵活性高..其特点如下:1保密性好;编码量多;远远大于弹子锁..随机开锁成功率几乎为零..2密码可变;用户可以随时更改密码;防止密码被盗;同时也可以避免因人员的更替而使锁的密级下降..3误码输入保护;当输入密码多次错误时;报警系统自动启动..4无活动零件;不会磨损;寿命长..5使用灵活性好;不像机械锁必须佩带钥匙才能开锁..6电子密码锁操作简单易行;一学即会..二、硬件电路设计下面是整个设计的流程图:2.151单片机这次课程设计采用的是5系列单片机AT89C52..其外部封装如下图所示:AT89C52单片机有4组8位的可编程I/O口;分别位P0、P1、P2、P3口;每个口有8位8根引脚;共32根8..P0口Pin39~Pin32:8位双向I/O口线;名称为P0.0~P0.7P1口Pin1~Pin8:8位准双向I/O口线;名称为P1.0~P1.7P2口Pin21~Pin28:8位准双向I/O口线;名称为P2.0~P2.7P3口Pin10~Pin17:8位准双向I/O口线;名称为P3.0~P3.72.2键盘电路本次试验采用的是行列键盘;C语言程序中有相应的驱动程序;其硬件电路如下所示;下右对应的为各个按键所对应的数字及功能..2.3液晶显示电路实验中采用的是LM016L液晶显示;其数据端口采集数据通过单片机的P0口;接法如下图所示..不同情况下会有不同的显示;显示内容包括:Welcome、HelloBoss、Wrong、OK等内容..2.4警报电路下图是警报电路连接图;警报触发为:连续三次输错密码;警报触发后会有一个时间延迟;延迟时间内任何操作都是无效的;过后通过关锁按钮可解除..2.5密码储存电路实验中考虑到实用性方面时;就想到了密码储存及修改的问题;于是采用了FM24C02F作为面膜储存模块;电路连接如下所示:2.6晶振、复位及关锁晶振、复位及关锁电路如下所示作图所示按钮为复位按钮:三、软件设计C语言源程序:include<reg52.h> include<stdio.h> include<intrins.h> defineCHECK_BUSY defineDataPortP0 defineKeyPortP1 sbitRS=P2^4;//液晶显示的定义端口sbitRW=P2^5;sbitEN=P2^6;sbitscl=P3^0;//24c02端口定义sbitsda=P3^1;sbitbaojing=P2^1;//报警器sbitjdq=P2^0;//继电器sbitjb=P2^3;//警报灯sbitclose=P2^2;unsignedcharold1;old2;old3;old4;o ld5;old6;//原始密码000000 unsignedcharnew1;new2;new3;new4;n ew5;new6;//代表新密码voiddelay1unsignedintm{unsignedintn;forn=0;n<m;n++;}voiddelayunsignedintm{unsignedinta;unsignedcharb;fora=0;a<m;a++{forb=0;b<125;b++;}}voidDelayUs2xunsignedchart{while--t;}voidDelayMsunsignedchart{whilet--{DelayUs2x256;DelayUs2x256;}}voidbaojingqi{baojing=0;DelayUs2x256;ifbaojing==0{baojing=0;DelayUs2x256;}}bitLCD_Check_Busyvoid//判忙函数{ifdefCHECK_BUSYDataPort=0xFF;RS=0;RW=1;EN=0;_nop_;EN=1;returnbitDataPort&0x80;elsereturn0;endif}voidLCD_Write_Comunsignedcharcom/ /写入命令函数{//whileLCD_Check_Busy;//忙则等待DelayMs5;RS=0;RW=0;EN=1;DataPort=com;_nop_;EN=0;}voidLCD_Write_DataunsignedcharDat a//写入数据函数{//whileLCD_Check_Busy;//忙则等待DelayMs5;RS=1;RW=0;EN=1;DataPort=Data;_nop_;EN=0;}voidLCD_Clearvoid//清屏函数{LCD_Write_Com0x01;DelayMs5;}voidLCD_Write_Charunsignedcharx;u nsignedchary;unsignedcharData//写入字符函数{ify==0{LCD_Write_Com0x80+x;}else{LCD_Write_Com0xC0+x;}LCD_Write_DataData;}voidLCD_Write_Stringunsignedcharx ;unsignedchary;unsignedchars//写入字符串函数{whiles{LCD_Write_Charx;y;s;s++;x++;}}voidLCD_Initvoid //液晶显示的初始化函数{LCD_Write_Com0x38;//显示模式设置DelayMs5;LCD_Write_Com0x38;DelayMs5;LCD_Write_Com0x38;DelayMs5;LCD_Write_Com0x38;LCD_Write_Com0x08;//显示关闭LCD_Write_Com0x01;//显示清屏LCD_Write_Com0x06;//显示光标移动设置DelayMs5; LCD_Write_Com0x0C;//显示开及光标设置}unsignedcharKeyScanvoid//键盘扫描函数;使用行列反转扫描法{unsignedcharcord_h;cord_l;//行列值中间变量KeyPort=0x0f;//行线输出全为0 cord_h=KeyPort&0x0f;//读入列线值ifcord_h=0x0f//先检测有无按键按下{DelayMs10;//去抖ifKeyPort&0x0f=0x0f{cord_h=KeyPort&0x0f;//读入列线值KeyPort=cord_h|0xf0;//输出当前列线值cord_l=KeyPort&0xf0;//读入行线值whileKeyPort&0xf0=0xf0;//等待松开并输出returncord_h+cord_l;//键盘最后组合码值}}return0xff;//返回该值}unsignedcharKeyProvoid{switchKeyScan{case0x7e:return0;break;//0按下相应的键显示相对应的码值case0x7d:return1;break;//1case0x7b:return2;break;//2case0x77:return3;break;//3case0xbe:return4;break;//4case0xbd:return5;break;//5case0xbb:return6;break;//6case0xb7:return7;break;//7case0xde:return8;break;//8 case0xdd:return9;break;//9 case0xdb:return10;break;//10 case0xd7:return11;break;//11 case0xee:return12;break;//12 case0xed:return13;break;//13 case0xeb:return14;break;//14 case0xe7:return15;break;//15 default:return0xff;break;}}voidinit//24c02初始化子程序{scl=1;_nop_;_nop_;sda=1;_nop_;_nop_;}voidrespons //应答{unsignedchari;scl=1;_nop_;_nop_;whilesda==1&&i<250i++;scl=0;_nop_;_nop_;}voidclock//I2C总线时钟{unsignedchari=0;scl=1;_nop_;_nop_;whilesda==1&&i<255i++;scl=0;_nop_;_nop_;} voidstart//启动I2C总线{sda=1;_nop_;_nop_;scl=1;_nop_;_nop_;sda=0;_nop_;_nop_;scl=0;_nop_;_nop_;}voidstop//停止I2C总线{sda=0;_nop_;_nop_;scl=1;_nop_;_nop_;sda=1;_nop_;_nop_;}voidwritebyteunsignedchara//写一个字节{unsignedcharb;tem;tem=a;forb=0;b<8;b++{tem=tem<<1;scl=0;_nop_;_nop_;sda=CY; //temp左移时;移出的值放入了CY中_nop_;_nop_;scl=1; //待sda线上的数据稳定后;将scl拉高_nop_;_nop_;}scl=0;_nop_;_nop_;sda=1;_nop_;nop_;}unsignedcharreadbyte//读一个字节{unsignedchari;j;k=0;scl=0;_nop_;_nop_;sda=1;fori=0;i<8;i++{_nop_;_nop_;scl=1;_nop_;_nop_;ifsda==1j=1;elsej=0;k=k<<1|j;scl=0;}_nop_;_nop_;returnk;}unsignedcharread24c02unsignedchar address//从24c02的地址address中读取一个字节数据{unsignedchardate;start;writebyte0xa0;clock;writebyteaddress;clock;start;writebyte0xa1; clock;date=readbyte;stop;delay1100;returndate;}voidwrite24c02unsignedcharaddress ;unsignedcharinfo//向24c02的address地址中写入一字节数据info {start;writebyte0xa0;clock;writebyteaddress;clock;writebyteinfo;clock;stop;delay15000;//这个延时一定要足够长;否则会出错..因为24c02在从sda上取得数据后;还需要一定时间的烧录过程..}main{unsignedcharnum;i;bj;c=0; unsignedchartemp6;bitFlag;init;//初始化24C02LCD_Init;//初始化液晶屏DelayMs10;//延时用于稳定;可以去掉LCD_Clear;//清屏LCD_Write_String0;0;"welcome";//写入第一行信息old1=read24c02110;old2=read24c02111;old3=read24c02112;old4=read24c02113;old5=read24c02114;old6=read24c02115;while1//主循环{num=KeyPro;//扫描键盘ifnum=0xff//如果扫描是按键有效值则进行处理{ifi==0//输入是第一个字符的时候需要把改行清空;方便观看密码LCD_Write_String0;1;"";//清除该行ifi<6//密码是6位;大于6位时不再输入按键值{tempi=num;LCD_Write_Chari;1;'';}i++;//输入数值累加ifnum==11 //重试键{i=0;LCD_Write_String0;1;"";}}ifnum==12{i=0;LCD_Write_String0;1;"";ifbj==0{whilei<=6{num=KeyPro;//扫描键盘ifnum=0xff//如果扫描是按键有效值则进行处理{ifi==0//输入是第一个字符的时候需要把改行清空;方便观看密码LCD_Write_String0;1;"";//清除该行ifi<6//密码是6位;大于6位时不再输入按键值{tempi=num; LCD_Write_Chari;1;'';}i++;//输入数值累加ifnum==11 //重试键{i=0;LCD_Write_String0;1;"";}}ifnum==10{num=0;new1=temp0;new2=temp1;new3=temp2; new4=temp3;new5=temp4;new6=temp5; old1=new1;old2=new2;old3=new3; old4=new4;old5=new5;old6=new6;//新密码代替旧密码write24c02110;old1;write24c02111;old2;write24c02112;old3;write24c02113;old4;write24c02114;old5;write24c02115;old6;LCD_Write_String0;1;"ok";bj=1;DelayMs220;DelayMs220;DelayMs220;}ifclose==0{bj=1;i=0;LCD_Write_String0;1;"";}}}i=0;}ifnum==10 //数字10为确认键{new1=temp0;new2=temp1;new3=temp2;new4=temp3;new5=temp4;new6=temp5;ifi==7//6位后的按键输入数值;相当于确认按键任意按键即可{i=0;//计数器复位Flag=1;//先把比较位置1old1=read24c02110;old2=read24c02111;old3=read24c02112;old4=read24c02113;old5=read24c02114;old6=read24c02115;Flag=Flag&new1==old1&new2==old2&n ew3==old3&new4==old4&new5==old5&n ew6==old6;//比较输入值和已有密码ifFlag//如果比较全部相同;标志位置1{i=0;LCD_Write_String0;1;"HelloBoss";/ /密码正确显示的信息jdq=0;bj=0;delay3000;jdq=1;LCD_Write_String0;1;"";}else{i=0;c++;LCD_Write_String0;1;"error";//密码错误;提示重新输入whilec==3{baojingqi;jb=0;DelayMs255;DelayMs255; baojing=1;i=0;jb=1;LCD_Write_Stri ng0;1;"";ifclose==0{i=0;bj=1;jb=1;c=0;baojing=1;LCD_W rite_String0;1;"";}}}}else//当密码不是6位数字时按下确认键也算输错密码一次{i=0;LCD_Write_String0;1;"error"; c++;whilec==3{baojingqi;jb=0;DelayMs255;DelayMs255;ifclose==0{i=0;jb=1;bj=1;c=0;baojing=1;LCD_W rite_String0;1;"";}}}}ifclose==0{i=0;bj=1;jb=1;c=0;jdq=1;baojing=1;LCD_Write_String0;1;"";jdq=1;}}四、软硬件调试结果4.1电路总原理图电路总原理图如下所示:4.2调试结果各种情况下的的调试结果如下个图所示:依次为开机、开锁、成功修改密码、密码错误..五、总结在这次实验中;用到了单片机和C语言的知识;这两门知识都是非常具有实用性的..在这次实验中再次加深了对此的认识..首先;在一开始输程序的时候;在程序仿真过程中出现了不能打开头文件的现象;后来经老师知道后知道了头文件的具体作用和使用方式..这些都是以前所没能掌握的..在后面的硬件电路调试过程中也遇到了很多问题;经过不懈努力之后都一一解决了..本次试验为期一周;不得不说;这次试验让我学到了好多东西..也感谢老师的辛勤指导。
电子密码锁课程设计任务书
目录1 系统总体方案设计11.1 系统方案11.2 系统设计思路:12 硬件电路设计22.1 键盘电路设计22.2 LED显示电路32.3 解锁电路52.4 报警电路53 软件设计63.1 软件设计思路63.2 每个子程序的设计64 系统调试104.1 系统硬件连接示意图:104.2 部分系统测试115 经验12参考文献13发送13附录131 系统总体方案设计1.1 系统方案的选择综合其他方案的优缺点,采用基于AT89S51的单片机控制方案。
凭借单片机灵活的编程设计和丰富的IO口,以及其控制的精确性,不仅可以实现基本的密码锁功能,而且还增加了功率调节和存储、声光提示等功能。
遥控。
原理如图1-1所示。
图1-1 单片机控制方案该方案活动空间大,既能实现所需功能,又能在很大程度上扩展功能,还可以方便地进行系统升级。
本方案采用以89S51为核心的单片机控制方案。
凭借单片机灵活的编程设计和丰富的I/O端口,以及其控制的准确性,实现了基本的密码锁功能。
1.2 系统设计思路:1. 使用矩形键盘进行密码输入,包括数字键和功能键。
2.LED数码管显示输入密码,74JS247用于驱动数码管点亮并显示数字,74LS138用于控制各个位置的显示及时显示。
3. 将解锁电路更换为LED,表示解锁。
4、密码输入错误次数超过3次,系统会报警。
5、上电后显示屏显示“”,原密码为“123456”。
只需输入此密码即可开门。
这样可以防止断电后再次调用时没有密码可用。
000000”6. 按“C”键清除显示为“.000000”7. 要重置密码,首先在记录“*”上输入密码。
8. 输入密码,然后按“D”键。
如果密码与设置的密码相同,开门。
否则,显示清零为“00000”。
9、软件设计主要包括键盘读键、LED显示程序、密码比对程序和报警程序。
2 硬件电路设计2.1 键盘电路设计采用矩阵键盘,因此本设计采用行列式键盘,同时可以减少键盘与单片机接口时占用的I/O线数。
基于单片机的红外电子密码锁的设计
基于单片机的红外电子密码锁的设计基于单片机的红外电子密码锁的设计随着科技的发展,红外电子密码锁逐渐取代传统的机械密码锁成为了门禁系统中的主流。
红外电子密码锁通过红外线传输数据,使得开锁变得更加智能化、快速化,而且提高了安全性,防止了密码泄露以及密码碰撞的问题。
本文将介绍一种基于单片机的红外电子密码锁的设计方案。
一、系统方案本设计采用C51单片机为控制器,红外线信号接收模块作为主控,驱动步进电机控制门锁的开关,使得门的开关更加方便快捷,并提高了安全性。
电路运用了ISP编程器,通过USB 接口与电脑连接,并通过Keil软件编写程序上传到控制器中,以控制系统的整体运行流程。
二、硬件设计1. 单片机选型本设计中,选用51系列单片机控制器Atmel AT89C51,其具有内部FLASH可编程存储器,可在编程过程中对程序进行修改,更加便于控制器程序的更新维护。
同时,该单片机具有多种外设接口,包括计数器、定时器、串口等,便于实现控制器与各种传感器、执行器的互联。
2. 电源设计本系统使用直流12V供电,其中12V正极接单片机VCC,负极接GND,同时将12V作为步进电机的电源。
在电路中使用L7805稳压电源,将电压稳定输出为5V供给单片机芯片和红外线传感器等其他模块。
3. 红外线接收模块在门锁上方适当放置一个2150nm红外线传感器模块,以接收红外线信号并将其转化为数字信号。
这里采用的是RS232接口连接,将红外二极管所收到的红外线信号交给MCU进行处理。
4. 步进电机为实现门的自动开启关闭,本设计采用了步进电机驱动门锁的开关。
步进电机与单片机控制器的连接采用的是四线步进电机驱动电路。
其中,两根草绿色和橙色的线为电机的控制线,将其接入单片机P3口中,蓝色和红色的两根线分别为电机的两个电极,将它们接到电机驱动器的两个对应通道上。
三、软件设计1. 开发环境本设计所需的IDE使用Keil 4.0集成开发工具,同时也需要用到AT89C51单片机的ISP编程器,将程序下载到MCU板上。
基于单片机的电子密码锁设计
基于单片机的电子密码锁设计一、电子密码锁的工作原理电子密码锁主要由输入模块、控制模块、存储模块和执行模块组成。
用户通过输入模块(如键盘)输入密码,控制模块(单片机)对输入的密码进行处理和判断,并与存储模块中预先设定的密码进行比对。
如果输入密码正确,控制模块将向执行模块发送开锁指令,实现开锁;如果输入密码错误,则执行相应的错误处理操作,如报警、锁定等。
二、硬件设计(一)单片机的选择在本设计中,选用了_____型号的单片机。
该单片机具有性能稳定、功耗低、接口丰富等优点,能够满足电子密码锁的控制需求。
(二)输入模块输入模块采用了矩阵键盘,通过行列扫描的方式获取用户输入的密码。
矩阵键盘具有按键数量多、占用端口少的特点,能够有效节省单片机的资源。
(三)存储模块为了存储预设的密码,选用了_____型号的EEPROM芯片。
EEPROM具有掉电不丢失数据的特性,能够保证密码的安全性和可靠性。
(四)显示模块为了给用户提供反馈信息,使用了_____型号的液晶显示屏。
可以显示开锁状态、输入错误提示等信息。
(五)执行模块执行模块包括电磁锁和报警装置。
当输入密码正确时,单片机控制电磁锁打开;当输入密码错误次数超过设定值时,启动报警装置。
三、软件设计(一)主程序流程系统上电后,首先进行初始化操作,包括单片机端口初始化、EEPROM读取预设密码等。
然后进入密码输入等待状态,当检测到有按键输入时,进行密码处理和判断,并根据判断结果执行相应的操作。
(二)密码输入处理在密码输入过程中,对输入的按键进行去抖处理,防止误判。
同时,对输入的密码进行加密处理,提高密码的安全性。
(三)密码比对将输入的密码与存储在EEPROM中的预设密码进行比对。
比对过程中,采用逐位比较的方式,确保密码的准确性。
(四)错误处理当输入密码错误时,记录错误次数。
如果错误次数超过设定值,则启动报警装置,并锁定键盘一段时间,防止暴力破解。
四、系统调试与测试(一)硬件调试首先检查电路连接是否正确,有无短路、断路等情况。
基于单片机的指纹密码锁系统设计
参考内容
基于单片机的指纹密码锁是一种集成了生物识别技术和嵌入式系统技术的安 全装置。它通过采集并比对指纹信息来决定是否授予访问权限。这种密码锁具有 很高的安全性和便捷性,因此在家庭、办公场所、工业等领域得到了广泛应用。
指纹密码锁的发展可以追溯到20世纪90年代,当时人们开始研究生物识别技 术在安全领域的应用。随着科技的发展和人们安全意识的提高,指纹密码锁逐渐 普及。现在,指纹密码锁已经成为市场上的主流产品,需求量不断增长。
指纹密码锁是一种利用指纹识别技术来控制锁的开启与关闭的设备。它通过 采集用户的指纹信息并存储在芯片中,在开锁时进行比对,以判断是否为合法用 户。单片机作为控制核心,负责处理指纹信息、控制开关门等操作。
设计指纹密码锁的主要步骤包括硬件设计和软件设计。硬件设计主要包括指 纹采集模块、控制开关和报警模块等的设计。软件设计主要涉及指纹信息的采集、 存储和比对等操作。具体步骤如下:
1、选取合适的单片机作为控制核心,例如STM32系列单片机。
2、安装指纹采集模块,并连接单片机。该模块可采用光学或电容式指纹识 别技术。
3、设计控制开关,连接单片机,实现通过单片机的控制进行开关门操作。 4、添加报警模块,如遇到非法入侵,通过单片机控制触发报警系统。
5、在单片机中编写控制程序,实现指纹信息的采集、存储和比对等功能。
总之,基于单片机的指纹密码锁是一种非常实用的安全装置,具有很高的安 全性和便捷性。随着科技的不断进步和应用场景的不断扩展,我们有理由相信它 将成为未来安全领域的重要发展方向。
参考内容二
在当今社会,随着科技的不断发展,人们对于自身财产的安全性越来越重视。 其中,门锁作为保护家庭或重要场所的第一道防线,历来受到广泛。传统门锁存 在被钥匙遗忘、复制钥匙等风险,因此,指纹密码锁作为一种新兴的安全防护设 备,逐渐进入人们的视野。本次演示将介绍一种基于单片机的指纹密码锁的设计。
51单片机课程设计密码锁
课程设计课程名称单片机原理题目名称密码锁学生学院信息工程专业班级学号学生姓名指导教师2012 年 6 月8 日密码锁一设计构思:单片机控制的密码锁设计。
STC89C52单片机P1引脚外接独立式按键S1-S8,分别代表数字键0-5、确定键、取消键。
单片机从P3.0-P3.3输出4个信号,分别为1个电磁开锁驱动信号和密码错误指示、报警输出、已开锁指示信号,分别用发光二极管L1-L4指示。
P3.4接一有源蜂鸣器,用于实现提示音。
(1)初始密码为123450,输完后按确定键开锁,取消键清除所有输入,每次按键有短“滴”声按键提示音。
(2)密码输入正确后,输出一个电磁锁开锁信号与已开锁信号,并发出两声短“滴”声提示。
4秒后开锁信号与已开锁指示清零。
(3)密码输入错误时,发出一声长“滴”声错误指示提示音,并密码错误指示灯亮,三次密码错误时,发出长鸣声报警,并密码错误指示灯亮,报警指示灯亮,此后15秒内无法再次输入密码,15秒过后,清除所有报警和指示。
(4)5秒内无任何操作后,清除所有输入内容,等待下次输入。
二系统设计:(1)分析构思要求。
写出系统整体设计思路根据题目的要求,需要考虑如下几个任务:按键的输入,密码的判断,密码输入正确或错误的计时、输出信号的控制等。
键盘的输入:由于需要输入6个数字作为密码,先要判断按键时数字键还是功能键,若判断为数字键按下,则需要将每次键盘的输入内容依次暂存在一个数组中。
在每次按键输入时,需要启动定时器实现待机计时(5秒)。
若5秒内没有输入内容则清除已输入的内容。
密码的判断和计时:在按下确认键之后,要将输入的内容与初始密码核对,如果密码正确,输出相应的指示,同时还要启动定时器实现4s的计时。
如果密码错误,错误计数变量增1,同时输出密码指示信号,若错误次数超过3s,则输出报警等信号,同时启动定时器实现15秒的计时。
输出信号的控制主要根据按键输入与密码的核对情况来决定。
整体程序设计思想:程序分为主程序和中断服务程序两个主要部分,主程序完成变量和单片机特殊功能寄存器的初始化后,进入一个循环结构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子密码锁的设计说明书院系:机电汽车工程学院专业:机械设计制造及其自动化班级:姓名:学号:指导老师:同组人员:中文摘要摘要:随着经济的发展,人们对日常生活质量的要求也越来越高,从工作、学习、出行、购物等的各个方面,人们也对现代安全设施提出来更高的要求。
在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。
密码锁具有安全性高、成本低、功耗低、易操作等优点,同时还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
本次电子密码锁的设计主要就针对于这种社会需求,从程序设计到硬件设计以及硬件安装连接都做了详细的说明。
设计说明本次设计使用 ATMEL公司的 AT89C51 实现一基于单片机的电子密码锁的设计,其主要具有如下功能:①密码通过键盘输入,若密码正确,则将锁打开。
②报警、锁定键盘功能。
密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过 3 次,蜂鸣器报警并且锁定键盘。
电子密码锁的设计主要由三部分组成:4×4 矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。
另外系统还有LED 提示灯,报警蜂鸣器等。
密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:①密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。
②密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。
③开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。
主要的设计实施过程:首先,选用 ATMEL公司的单片机AT89C51,以及选购其他电子元器件。
第二步,使用 DXP 2004设计硬件电路原理图,并设计 PCB图完成人工布线(后因 PCB 板损坏决定采用万能板焊接的方法)。
第三步,使用 Keil uVision3 软件编写单片机的 C 语言程序、仿真、软件调试。
第四部,使用 PROTEUS 软件进行模拟软、硬件调试。
最后,联合软、硬件调试电路板,完成本次毕业设计。
关键词:4×4矩阵键盘;AT89C51;密码锁;密码二次确认;电子密码锁目录中文摘要 (2)设计说明 (3)目录 (5)第1章系统总体方案设计 (1)1.1 系统法案的选择 (1)1.2 系统设计思路 (2)第2章硬件电路设计 (3)2.1 键盘电路设计 (3)2.2 LED显示电路 (4)2.3 开锁电路 (6)2.4 报警电路 (7)第3章软件设计 (9)3.1 软件设计思路 (9)3.2 各子程序设计 (10)第4章系统调试 (15)4.1系统硬件连接示意图 (15)4.2系统测试的局部示意图 (16)第5章心得体会 (17)第6章参考文献 (18)附录 (19)源程序清单 (19)第一章:系统的总体方案设计1.1 系统方案的选择:综合其他多种方案设计的优缺点,采用以AT89S51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。
其原理如图1-2所示。
图2-2单片机控制方案该方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级。
本方案采用一种是用以89S51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
1.2系统的设计思路:1.输入密码用矩形键盘,包括数字键和功能键。
2.LED数码管显示输入密码,用74JS247驱动数码管发光显示数码,用74LS138控制各位显示器分时进行显示。
3.用发光二极管代替开锁的电路,发光表示开锁。
4.输入密码错误次数超过3次,系统报警。
5.打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。
这样可预防停电后再来电时无密码可用。
6.按“C”键,清除显示器为“000000”。
7.欲重新设定密码,先输入密码在案“*”。
8.输入密码,再按“D”键。
若密码与设定密码相同,则开门。
否则显示器清为“000000”。
9.软件的设计主要包括键盘键值的读取,LED显示程序,密码比较程序和报警程序。
第2章硬件电路设计2.1 键盘电路设计使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
其原理如图2.1。
图2.1 矩阵键盘每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。
对照图2.1所示的4×4键盘,说明线反转个工作原理。
首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。
方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。
如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。
判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。
方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。
具体的功能设计如表2.1:表2.1 按键功能2.2LED显示电路本系统设计的显示电路是为了给使用者以提示而设置的。
本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能,显示电路的电路原理图如图2.2所示。
用P0.0—P0.3接74LS247的A,B,C,D四端口,74LS247的输出口接LED的七段显示;而P0.4—P0.6接74LS138的A,B,C三个输入口,74LS138的输出口接LED的位显示。
通过软件实现数字和位控制。
图2.2 LED显示电路用74LS247可以控制输出什么字型。
74LS247的逻辑功能表如表2.2:表2.2 74LS247的逻辑功能表用74LS138控制位循环显示,其逻辑功能表如表2.3:表2.3 74LS138逻辑功能表C B A Y1 Y2 Y0 Y3 Y4 Y5 Y6 Y70 0 0 0 1 1 1 1 1 10 1 0 1 1 0 1 1 1 1 11 0 0 1 1 1 1 0 1 1 11 0 1 1 1 1 1 1 0 1 11 1 0 1 1 1 1 1 1 0 11 1 1 1 1 1 1 1 1 1 02.3 开锁电路在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。
电路图如2.3所示。
当P2.0口输出低电平时,二极管发光,表示开锁。
图3.3 开锁电路2.4报警电路图2.4 报警电路报警模块由蜂鸣器和单片机组成。
选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。
蜂鸣器电路如图2.4所示。
当89C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。
第三章软件设计3.1软件设计思路电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。
当输入密码连续输入错误3次时,系统报警。
密码的设定,在此程序中密码是固定40H—45H 中,假设预设的密码为"123456"共6位密码。
由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。
在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。
进入密码的判断比较处理状态并给出相应的处理过程。
3.2 各子程序设计1. 键盘扫描子程序键盘扫描流程图如图3.2.1图3.2.1 键盘扫描流程图键盘扫描子程序如下(请结合总程序进行阅读):L2: MOV R3,#0F7HMOV R1,#00HL3: MOV A,R3MOV P1,AMOV A,P1MOV R4,ASETB CMOV R5,#04HL4: RLC AJNC KEYININC R1DJNZ R5,L4CALL DISPMOV A,R3SETB CRRC AMOV R3,AJC L3JMP L22. LED显示子程序LED显示流程图如图3.2.2图3.2.2 LED显示流程图LED显示子程序如下(请结合总程序进行阅读):DISP:MOV R0,#45HDISP1: MOV A,@R0ADD A,#50HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#40HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#30HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#20HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#10HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#00HMOV P0,ACALL DELAYRET3 密码比较和报警程序密码比较和报警流程图如3.2.3图3.2.3 密码比较和报警流程密码比较和报警程序(请结合总程序进行阅读):COMP: MOV R1,#45HMOV R0,#35HMOV R2,#06HC1: MOV A,@R1XRL A,@R0JNZ C3DEC R1DEC R0DJNZ R2,C1CLR P2.0MOV R2,#200C2: MOV R6,#248DJNZ R6,$DJNZ R2,C2C3: INC R5MOV A,R5MOV R5,ACJNE R5 ,#03H,C4 CLR P2.1MOV R5,#00HC4: JMP START第四章系统调试4.1系统硬件连接示意图:4.2 系统测试的局部本次调试采用Protues软件仿真。
首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。
依次按下1,2,3,4,5,6后,LED显示如图4.1图4.1 LED显示按下确定键后,二极管亮,表示密码正确开门。