基于单片机的电子密码锁的设计毕业设计.docx
- 文档编号:13703369
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:57
- 大小:386.49KB
基于单片机的电子密码锁的设计毕业设计.docx
《基于单片机的电子密码锁的设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁的设计毕业设计.docx(57页珍藏版)》请在冰点文库上搜索。
基于单片机的电子密码锁的设计毕业设计
毕业设计(论文)
课题名称单片机密码锁的设计
2011年11月2日
单片机密码锁的设计
摘要
在现代社会,电子密码锁已不是一个陌生的名词。
本文中将要介绍的电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子锁装置。
本设计是基于AT89C51单片机为控制核心的密码锁设计方案,它是一种通过密码输入来控制电路或是芯片工作,运用键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路来完成开锁、闭锁等任务。
利用识别密码是否正确来开锁或报警。
通过键盘输入次数记录来实现键盘的锁定。
本文设计的密码锁具有安全性高、成本低、功耗低、易操作等优点。
关键词:
AT89C51;电子密码锁;控制电路;识别密码
Abstract
Inmodernsociety,theelectroniclockhasnotastrangenoun.Thiswillintroduceanelectroniclockthatisanelectronicproductscanpasswordtocontrolcircuitandcontrolwork,orchipmechanicalswitch,completethetaskofunlockandlock.
ThedesignisbasedonAT89C51ascontrolcoredesignschemeoflocks,itisapasswordtocontrolcircuitthroughwork,orchipkeyboardinput,passwordrevision,passwordlockcircuit,detectionandalarmcircuit,keyboardinputfrequencylock,tocompletethecircuit,etc.Usingthecorrectpasswordrecognitiontoreplaceoralarm.Throughthekeyboardinputfrequencytolockthekeyboardrecording.Inthisdesignwithhighsecuritylocks,lowcost,lowpowerconsumption,easyoperation,etc.
Keywords:
AT89C51;electroniclocks;controlcircuit;identifythepassword
第1章绪论
1.1引言
在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作等优点。
根据本设计要求,通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁等任务。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。
其性能和安全性已大大超过了机械锁。
其主要优点有:
(1)保密性好,编码量多,远远大于弹子锁。
随机开锁成功率几乎为零。
(2)密码可变。
用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。
(3)误码输入保护。
当输入密码多次错误时,报警系统自动启动。
(4)操作简单易行,一学即会。
1.2课题来源
目前,最常用的锁是20世纪50年代意大利人设计的机械锁,其机构简单、使用方便、价格便宜。
但在使用中暴露了很多缺点:
一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。
据统计,每4000把锁中就有两把锁的钥匙齿牙相同或类似,故安全性低。
根据国外的统计资料,装有电子防盗装置的商业区或居民区盗窃犯罪率平均下降30%左右。
二是钥匙一旦丢失,无论谁捡到都可以将锁打开。
三是机械锁的材料大多为黄铜,质地较软,容易损坏。
四是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。
出于安全、方便等方面的需要,许多智能锁(如指纹辨别、IC卡识别)已相继问世,但这类产品的特点是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。
另外,卡片式的IC卡易丢失,加上其成本一般较高,在一定程度上限制了这类产品的普及和推广。
根据单片机技术及相关原理,设计一个以单片机为控制核心,采用程序控制方法,能实现对电子产品安全保护的电路。
1.3国内外研究现状
当今电子密码锁的发展已经到了非常高的境界,由于电子元件特别是单片机应用在这几年得到空前发展,无论功能性,稳定性都比较全面,在保密方面已做到人眼识别,指纹识别,人声识别基本上电影上有的现实也有。
在国外发展比较早,所以应用也比较广泛,主要在家庭装较贵重地方,银行,保险柜等应用较多,在国内这方面发展也较快,不管自己开发或是引进都有,在重要地方应用也较多,由于价钱比普通弹子锁较贵,早几年应用较少,现在越来越普及到平常化,未来的发展也会越来越被大众采用,由于它的功能、安全是弹子锁无法相比的。
发展前境是非常大的。
第2章方案设计与论证
2.1设计思路
根据本设计的要求,构思如下:
(1)输入密码用矩形键盘,包括数字键和功能键。
(2)LED数码管显示输入密码,但是只是输出显示符号-。
采用动态扫描输出。
(3)用发光二极管模拟锁的情况,锁关时发光二极管灭,打开时发光二极管亮。
(4)输入密码错误或操作错误时报警。
软件的设计主要包括矩形键盘键值的读取、LED动态扫描输出程序、密码判断程序和报警程序。
2.2系统方案一
用以74LS112双JK触发器构成的数字逻辑电路控制方案。
密码锁电路包含:
键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
其总体方框图如图2.1所示。
图2.1数字电路控制电子密码锁总体方框图
2.3系统方案二
采用一种是用以AT89S51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。
其原理如图2.2所示。
图2.2单片机控制电子密码锁总体方框图
2.4方案论证
考虑到数字电路方案原理简单,造价低廉,但是不能满足现在的安全需求,而单片机方案有较大的活动空间,不但能实现所要求的功能,而且能在很大的程度上扩展功能及方便地对系统进行升级,实现基本的密码锁功能,添加掉电存储、声光提示甚至添加遥控控制功能。
所以我们采用后一种方案。
第3章硬件电路设计
单片机(SCM)是单片微型计算机(SingleChipMicrocomputer)的简称。
它是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。
随着SCM在技术上、体系上不断扩展其控制功能,国际上已经采用MCU(MicrocontrollerUnit)代替单片机的名词。
它的最大优点是体积小,可放在仪表内部。
但存储量小,输入输出适配器简单,功能较低。
目前,单片机在民用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活中。
近年来,AT89C51在我国非常流行,它最大的特点是内部有可以多次重复编程的闪烁ROM,并且闪烁ROM可以直接用编程器来擦写,使用起来比较方便。
一个单片机应用系统的硬件电路设计包含有两部分内容:
一是系统扩展,即单片机内部的功能单元,如ROM﹑RAM﹑I/O口﹑定时/记数器﹑中断系统等能量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。
二是系统配置,既要按照系统功能要求配置外围设备,如键盘显示器﹑打印机﹑A/D和D/A转换器等,又要设计合适的接口电路。
3.1AT89C51单片机硬件结构
AT89C51是一种低功耗/低电压、高性能的八位CMOS单片机,片内有一个4KB的FLASH可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory),它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC—51兼容。
片内置通用8位中央处理器(CPU)和FLASH存储单元,片内的存储器允许在系统内改编程序或用常规的非易失性存储器编程。
因此,AT89C51是一种功能强、灵活性高且价格合理的单片机,可方便的应用于各种控制领域。
3.1.1主要特性
(1)与MCS-51产品指令系统兼容
(2)4K字节可编程闪烁存储器
(3)寿命:
1000写/擦循环
(4)数据保留时间:
10年
(5)全静态工作:
0Hz-24Hz
(6)三级程序存储器锁定
(7)128*8位内部RAM
(8)32可编程I/O线
(9)两个16位定时器/计数器
(10)6个中断源
(11)可编程串行通道
(12)低功耗的闲置和掉电模式
(13)片内振荡器和时钟电路
另外,AT89C51是用静态逻辑来设计的,其工作频率可下降到零并提供两种软件的省电方式-空闲方式和掉电方式。
在空闲方式中,CPU停止工作。
在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内RAM中的内容,直到下次硬件复位为止。
3.1.2管脚说明
VCC(40):
供电电压,其工作电压为5V。
GND(20):
接地。
P0端口(P0.0-P0.7):
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1端口(P1.0-P1.7):
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2端口(P2.0-P2.7):
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3端口(P3.0-P3.7):
P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入端时,由于外部下拉为低电平,P3口将输出电流(ILL)。
P3口也可作为AT89C51的一些特殊功能口,如表3.1所示。
表3.1P3端口引脚兼用功能表
P3口同时为闪烁编程和编程校验接收一些控制信号。
复位RST(9):
复位输入。
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
复位后P3.0-P3.7口均置1,引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。
复位操作不会对内部RAM有所影响。
ALE/
(30):
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
(29):
外部程序存储器的选通信号。
在由外部程序存储器取指令期间,每个机器周期两次
有效。
但在访问外部数据存储器时,这两次有效的
信号将不出现。
EA/VPP(31):
当
保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,
将内部锁定为RESET;当
端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1(19):
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2(18):
来自反向振荡器的输出。
其引脚图如图3.1所示。
图3.1AT89C51引脚图
3.1.3振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.1.4芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.1.5AT89C51最小系统
AT89C51最小系统接线如图3.2所示,在XTAL1、XTAL2端接上晶振及两个谐振电容,在RESET端接上相应的电阻、电容,如需要按键复位,加上按键即可组成一个最小系统,按要求通电后,系统就可以工作了。
图3.2AT89C51最小系统
3.2键盘电路设计
(1)键盘命令及执行过程
①FFH:
复位键盘。
系统通过此软件复位命令使键盘进入程序复位和内部自测试,称为基本保证测试(BAT)。
复位键盘的过程如下:
a键盘收到FFH后立即回送ACK(FAH)作答;
b键盘接口收到ACK后,将键盘时钟和数据线置为高电平;
c键盘检测到此状态后开始BAT操作;
d如果BAT正确完成,键盘发送AAH以表示结束,否则以FDH(或其它任何值)表示诊断有误。
②FEH:
重新发送。
当系统检测到从键盘送来的任何传输错误时,它便向键盘发送FEH命令。
键盘接收到此命令后,将重新送出原来的内容。
③FDH~F7H:
空操作(保留未用)。
④F6H:
设置缺省值。
此命令使键盘所有条件复位到电源接通时的缺省状态,键盘继续扫描。
⑤F5H:
设置缺省值和停止键盘。
此命令使键盘所有条件复位到电源接通时的缺省状态,并停止键盘扫描,等待下一个键盘命令。
⑥F4H:
启动键盘。
键盘接收到此命令后,用ACK(FAH)作答,清除输出缓冲器,并启动键盘开始扫描。
⑦F3H:
设置拍发速率和延时参数。
每当按下任一键时,键盘以拍发速率连续送出键的接通码,直到键被释放为止。
延时参数是指按下一键后,键盘输出的响应时间。
按键原理电路图如图3.3所示。
共计数字键10个,功能键2个,采用4×3行列式键盘。
图3.3按键原理电路图
3.3开锁电路设计
单片机密码信号送给开锁执行机构,通过校正密码的正确性来开锁或报警。
其示意图如图3.4所示。
错误
图3.4密码锁开锁机构示意图
当用户输入的密码正确而且是在规定的时间输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。
其实际电路如图3.5所示。
由D5、R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管。
D5作为开锁的提示,由D6、C24、T11组成。
其中D6、C24是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;没亮而且报警,表示密码错误或输入有误!
图3.5开锁装置图
3.4显示电路设计
电子密码锁中需要显示的信息比较少,一般密码设计为6位。
本设计采用的是8位数码显示管,前面用6位是用来存储密码的,后面两位是来识别是否按下Enter键,具体连接方式如图3.6所示。
图3.6显示电路连接图
3.5AT24C02掉电存储单元的设计
掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。
AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。
其电路如图3.7所示。
图3.7掉电存储电路原理图
图3.7中R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。
3.6电源电路设计
为了防止停电情况的发生,本电路后备了UPS电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。
市电供电路图如图3.8所示。
图3.8电源电路原理图
220V市电通过变压器降压成12V的交流电,再经过整流桥整流,7805稳压到5V送往电由R8,R9,R6,R7及IC14构成电压比较器,正常情况下,V+
其电路图如图3.9所示:
图3.9蓄电池电路原理图
T1,T2构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中D1亮为正在充电,D2为工作指示。
由R4,R5,T1构成电压检测电路,蓄电池电压低,则T1,T2导通,实现对其充电;充满后,T1,T2截止,停止充电,同时D1熄灭,电路中C4的作用是滤除干扰信号。
其电路图如图3.10所示:
图3.10蓄电池自动充电原理图
3.7总体原理图
图3.11总体电路原理图
第4章软件设计
4.1程序设计
程序设计(Programming)是指设计、编制、调试程序的方法和过程。
它是目标明确的智力活动。
在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。
因此,软件设计在微机控制系统设计中占重要地位。
对于本系统,软件也占有重要的地位。
在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。
数据处理包括:
数据的采集、数字滤波、标度变换等。
过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。
为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。
把一个程序分成具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化程序设计。
所谓“模块”,实质上就是能完成一定功能,并相对独立的程序段,这种程序设计方法称为模块程序设计法。
模块程序设计法的主要优点是:
(1)单个模块比起一个完整的程序易编写、调试及修改。
(2)程序的易读性好。
(3)程序的修改可局部化。
(4)模块可以共存,一个模块可以被多个任务在不同条件下调用。
(5)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。
本系统软件采用模块化结构,由主程序模块,键盘扫描及识别子程序,调电存储服务程序,显示子程序。
4.2主程序设计
(1)主程序模块
主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。
当初始化就会自动等待输入密码,若操作有误便会报警提示并对各位进行清零,等待密码的再次输入;若输入密码正确,在输完之后等待你按下Enter键,再判断密码是否正确,若错误便报警并再次将各位密码清零;若输入密码正确就会自动开锁并亮灯。
主程序的流程图如图4.1所示。
图4.1主程序流程图
在系统的程序设计中,主控模块只负责根据消息调用相应模块的处理函数,具体如何处理这些消息由各功能模块中的对应程序决定。
主程序
LED_BIT_1EQU30H
LED_BIT_2EQU31H
LED_BIT_3EQU32H
LED_BIT_4EQU33H
LED_BIT_5EQU34H
LED_BIT_6EQU35H
LED_BIT_7EQU36H
LED_BIT_8EQU37H
;以下6个字节存放初始密码
WORD_1EQU38H
WORD_2EQU39H
WORD_3EQU3AH
WORD_4EQU3BH
WORD_5EQU3CH
WORD_6EQU3DH
;以下6个字节存放用户输入的6位密码
KEY_1EQU3EH
KEY_2EQU3FH
KEY_3EQU40H
KEY_4EQU41H
KEY_5EQU42H
KEY_6EQU43H
CNT_AEQU44H
CNT_BEQU45H
KEY_CNTEQU46H;已输出的密码位数
LINEEQU47H;按键行号
ROWEQU48H;按键列号
VALEQU49H;键值
ORG00H
SJMPSTART
ORG0BH
LJMPINT_T0
START:
MOVCNT_A,#00H;程序初始化
MOVCNT_B,#00H
MOVKEY_CNT,#00H
MOVLINE,#00H
MOVROW,#00H
MOVVAL,#00H
SETBP1.0
MOVLED_BIT_1,#00H;段码存储区清0
MOVLED_BIT_2,#00H
MOVLED_BIT_3,#00H
MOVLED_BIT_4,#00H
MOVLED_BIT_5,#00H
MOVLED_BIT_6,#00H
MOVLED_BIT_7,#79H
MOVLE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电子 密码锁 设计 毕业设计