基于单片机控制的密码锁的设计_第1页
基于单片机控制的密码锁的设计_第2页
基于单片机控制的密码锁的设计_第3页
基于单片机控制的密码锁的设计_第4页
基于单片机控制的密码锁的设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精选优质文档-----倾情为你奉上精选优质文档-----倾情为你奉上专心---专注---专业专心---专注---专业精选优质文档-----倾情为你奉上专心---专注---专业常州机电职业技术学院毕业设计(论文)作者:****学号:*******系部:电气工程系专业:电子设备维修题目:基于单片机控制的电子密码锁的设计指导者:********评阅者:年月毕业设计(论文)中文摘要在科技高速发展的今天,如何实现有效的防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,容易被撬开,不能有效的防住“梁上君子”,如何解决好这个大难题?为了满足现代人高节奏,方便,时尚的潮流,实现智能化生活,数字化生活,电子密码锁出现了,由于其稳定性高,使用灵活方便,电子密码锁受到了广大用户的喜爱,同时也被广泛的运用到人们的日常生活中,使用电子密码锁已近成为了一种趋势了。以单片机AT89C51作为密码锁监控装置的检测和控制核心,根据51单片机之间的串行通信原理,对密码信息随机加密和保护。采用键盘输入的电子密码锁具有较高的优势,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。软件设计采用模块化设计思想,增强系统的可扩展性和运行的稳定性。关键词:单片机密码锁矩阵式键盘TOC\o"1-4"\h\u0122456680212245778 903121引言1.1电子密码锁的简介密码锁是锁的一种,开启时用的是一系列的数字或符号。密码锁的密码通常都只是排列而非真正的组合。它是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。电子密码锁的特点是不用钥匙、无锁孔、机械传动、不易损坏、不磨损、不易被破译、可多次更换密码、换号不换锁、一把锁多个密码,具有防拨、防砸、防撬、防堵等功能。安装门锁时不破坏原门的结构,避免用钥匙开启旋芯式锁具的一切烦恼(如丢、落、拆、堵门被反锁等)。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。键盘式电子密码锁使用的日益广泛,该产品主要应用于保险箱、和,还有一部分应用于保管箱和运钞车。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。1.2电子密码锁的发展历程锁自古以来就是把守门户的“铁将军”,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。19世纪60年代后期,美国人发明了保险柜用之锁机构及多锁栓技术,保险柜的安全性能才有了大大的提升。早期带锁机构及多门栓设计的保险柜,出现于1865年之后。19世纪末20世纪初,欧洲人利用瑞士钟表工艺,开发出转盘式密码锁,保险柜技术才出现了突破性的发展,保密性、安全性大幅度提高。锁具的发展与保险柜相辅相成,直到今天,转盘式密码锁仍大量运用于保险柜行业。早期的转盘式密码锁也应用此类锁具的保险柜。20世纪六七十年代因为半导体技术的日新月异,业界开发出电子密码锁,电子密码锁亦广泛运用于各种类型之保险柜产品。之后又将LED、LCD数码显示用于保险柜中,用户对于防火的需求也催生了各类防火产品,指纹扫描识别技术的发展又促进指纹锁在保险柜中的运用,磁卡的流行派生了磁卡式保险柜……而保险柜的产品种类,以当初最简单的功能发展到防盗、防火、防盗/防火、防磁、家用、商用、酒店用、枪械用、文件/数据等几乎不可胜数的种类。因此,为了发扬优点、克服弱点,键盘式电子密码在不断发展中,如“任意设定密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“自动更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测;独出心裁的键盘乱序显示技术使得键盘上的固定键位每次显示出的字符不固定,并且显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码;“多重密码设定”技术使得单组密码不一定有效,适合多人使用,需要输入两组以上的密码才被认可,大大提高了保密性,如果限定输入这些密码的先后顺序或时间区段,则保密性还可提高。在输入密码的过程中,为了限制试探密码的企图,通常输入错误码若干次或若干时间内输入不正确,即“封锁”键盘,不再接受输入操作。在安全技术防范领域,具有防盗报警功能的电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,出现了带微处理器的智能数码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,当今智能发展已经到了非常高的境界,由于特别是在这几年得到空前发展,无论功能性,稳定性都比较全面,在保密方面已做到人眼识别,,识别基本上上有的现实也有。在国外发展比较早,所以应用也比较广泛,主要在较贵重地方,银行,等应用较多,在国内这方面发展也较快,不管自己开发或是引进都有,在重要地方应用也较多,由于价钱比普通较贵,早几年应用较少,现在越来越普及到平常化,未来的发展也会越来越被采用,由于它的功能、安全是弹子锁无法相比的。总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁仍然“老树发”,不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段,应用也日益广泛。

2系统的方案和原理2.1设计的方案电子密码锁所用元件是单片机的硬件和软件相结合的方法,利用了C语言的强大功能,通过编写一个合适的正确的程序,依靠所接的按键开关输入相应的指令就可以进行一系列的程序操作,从而实现所需要的功能。电路节省了大量的硬件电路设计过程,使得硬件电路的焊接对设计的要求和结果的影响达到最低的限度,而51系列单片机所用元件简单,成本也较低;电路不是很复杂,易于焊接;如果在电路的测试过程中出现了一些问题,可以很容易的检查出来。而采用数字密码锁电路的好处就是设计简单。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。2.2密码锁的工作原理它是以51系列单片机(AT89C51)为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值、接收传感器送来的报警信号、发送数据等功能,单片机接收键入的代码,并与存贮在EEPROM中的六位密码进行比较,六位密码的可以有298万多组密码供主人随意变换,保密性极高,可选密码组是连续排列的,如果密码正确,则驱动电磁执行器开锁;如果密码三次都不正确,则单片机通过通信线路向智能报警器发出报警信号。密码锁主要由矩阵键盘、单片机、液晶显示器和外部硬件等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈,单片机将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给单片机的芯片处理,同时将接收来自无限循环的密码识别程序的报警信息也发送给智能报警器,从而使整个密码锁正常运行。电子密码锁使用框图如图2-1所示:44×4键盘单片机控制器LCD显示器图2-1电子密码锁使用框图密码锁的使用方法简单,而用户所看到的界面很简洁,只有一个输入键盘,一个显示器,一个小喇叭,这样不仅让使用者看的舒心,也简化界面起到美观的作用,同时简介的界面也解决了文话水平不高的大众人群,使得用户用起来不会觉得无从下手。3系统的硬件设计3.1系统框图及AT89C51的介绍本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、电路复位部分、晶振部分、数码管显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、密码储存程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、密码设置程序、密码修改程序、ROM读写程序和延时程序等组成。电子密码锁系统框图如3-1所示:AT89C51AT89C51密码锁电路输入电路按键部分数码管显示密码储存修改密码开锁系统报警系统图3-1电子密码锁系统框图硬件部分的密码锁电路是密码锁系统的整体工作电路,可以很清晰的看出密码锁的工作流程,输入电路是密码锁的电源输入端,保证密码锁可以正常工作,按键部分选择的是矩阵式键盘,矩阵式键盘的有点是减少I/O口的占用、按键选择多,数码管显示部分是显示用户输入密码位数,并不显示输入数据。软件部分的密码储存是放在AT24C02储存芯片里,保证储存、验证用户输入的密码是否正确,修改密码的系统部分用于用户更换密码时所需的处理程序的执行,开锁报警系统是用户输入密码开锁时执行的程序,密码正确则开锁,密码错误则报警。关于AT89C51:AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51的芯片引脚如图3-2所示:14014023933843753663573483393210311130122913281427152616251724182319222021P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST(RXD)P3.0(TXD)P3.1(INT0)P3.2(INT1)P3.3(T0)P3.4(T1)P3.5(WR)P3.6(RD)P3.7XTAL2XTAL1GNDVCCP0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)EA/VPPALE/PROGPSENP2.7(A15)P2.6(A14)P2.5(A13)P2.4(A12)P2.3(A11)P2.2(A10)P2.1(A9)P2.0(A8)图3-2AT89C51芯片引脚图其主要功能特性:兼容MCS-51指令系统4k可反复擦写(>1000次)ISPFlashROM32个双向I/O口4.5-5.5V工作电压2个16位可编程定时/计数器时钟频率0-33MHz全双工UART串行中断口线128x8bit内部RAM2个外部中断源低功耗空闲和省电模式中断唤醒省电模式3级加密位看门狗(WDT)电路软件设置空闲和省电功能灵活的ISP字节和分页编程双数据寄存器指针AT89S51引角功能说明:VCC:电源电压GND:接地P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。端口引脚 第二功能P1.5 MOSI(用于ISP编程)P1.6 MISO(用于ISP编程)P1.7 SCK(用于ISP编程)P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口同时为闪烁编程和编程校验接收一些控制信号。P3口的第二功能如下表3-1所示:表3-1P3口的第二功能端口功能第二功能端口引脚第二功能RXD(P3.0)串行输入口T0(P3.4)定时/计数器0外部输入TXD(P3.1)串行输出口T1(P3.5)定时/计数器1外部输入INT0(P3.2)外中断0WR(P3.6)外部数据存储器写选通INT1(P3.3)外中断1RD(P3.7)外部数据存储器读选通RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:第当访问外部数据存储器时将跳过一个ALE脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位禁位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,高有两次有效的PSEN信号。EA/VPP:外部访问允许。欲使CPU公访问外部程序存储器(地址0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程电压VPP。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。AT89C51芯片内部结构:特殊功能寄存器:特殊功能寄存器的片内空间分存如AT89C51的芯片引脚所示。这些地址并没有全部占用,没有占用的地址不可使用,读这些地址将得到一个随意的数值。而写这些地址单元将不能得到预期的结果。中断寄存器:各中断允许控制位于IE寄存器,5个中断源的中断优先级控制位于IP寄存器。双时钟指针寄存器:为方便地访问内部和外部数据存储器,提供了两个16位数据指针寄存储器:PD0位于SFR区块中的地址82H、83H和DP1位于地址84H、85H,当SFR中的位DPS=0时选择DP0,而DPS=1时选择DP1。在使用前初始化DPS。电源空闲标志:电源空闲标志(POF)在特殊功能寄存储器SFR中PCON的第4位(PCON.4),电源打开时POF置“1”,它可由软件设置睡眠状态并不为复位所影响。存储器结构:MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具有64KB外部程序和数据的寻址空间。程序存储器:如果EA引脚接地(GND),全部程序均执行外部存储器。在AT89C51,假如接至VCC(电源+),程序首先执行从地址0000H-0FFFH(4KB)内部程序存储器,再执行地址为1000H-FFFFH(60KB)的外部程序存储器。数据存储器:在AT89C51的具有128字节的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间。看门狗定时器(WDT):WDT是为了解决CPU程序运行时可能进入混乱或死循环而设置,它由一个14bit计数器和看狗复位SFR(WDTRST)构成。外部复位时,WDT默认为关闭状态,要打开WDT,必按顺序将01H和0E1H写到WDTRST寄存器,当启动了WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT溢出复位外没有其它方法关闭WDT,当WDT溢出,将使RST引脚输出高电平的复位脉冲。3.2密码锁电路总体结构本系统总体结构由硬件部分与软件部分构成。其中硬件部分由电源输入部分、键盘输入部分、数码管显示部分,软件部分由主程序、密码储存程序、键盘扫描程序、启动程序、密码修改程序、ROM读写程序和延时程序等组成。密码锁的总体电路原理图如图3-3所示:图3-3电路原理图其工作过程是:当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。3.3输入电源的设计密码锁主控制部分电源需要用直流电源供电,其电路如下图所示,把频率为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。其主要原理过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压平滑。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。本电路使用集成稳压芯片7805解决了电源稳压问题。电源输入电路图如图3-4所示:D1T1C5C8C60C7D1T1C5C8C60C77805123¡«220V5VR3D2VCC3.4按键键盘的处理3.4.1矩阵式键盘的原理图单片机系统中,在中按键数量较多时,为了减少I/O口的占用,通常将按键排列成形式,如图3-5所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4×4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就得知是否有键按下了,矩阵式键盘的原理图如图3-5所示:R4R4R3R2VCCR10123456789开锁清空启动关闭设置确认 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6P1.7图3-5矩阵式键盘的原理图由图可知,一个4×4的行、列结构可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。3.4.2矩阵式键盘的按键识别1、判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。2、判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键,键盘扫描程序设计的流程图如图3-6所示:按键程序按键程序键值=‘0-9’键值=‘开锁’键值=‘清除’键值=‘重设’键值=‘确认’密码输入程序重设程序清除程序开锁程序确认程序YYYYYNNNN返回N图3-6键盘扫描程序设计的流程图当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码,系统会调用密码输入程序判断密码是否正确,当密码正确时系统会调用开锁程序,当开锁程序执行完后系统会自动清除,当密码输入正确后用户可以重新设置密码,重设完成后,用户需要再一次输入确认密码,系统会自动检测两次输入的密码是否一样,一样则要用户按确认键,如果两次输入的密码不同,系统会跳到前面要用户再次输入确认密码。键盘处理程序就作这么一个简单的介绍,实际上,键盘处理是很复杂的,它往往占到一个的大部份代码,可见其重要性。3.5数码管显示的处理为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。LCD1602液晶也叫LCD1602字符型液晶它是一种专门用来显示字母、数字、符号等的型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。选用1602LCD特征是因为它的微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。1602采用标准的16脚接口,其中:第1脚:GND为电源地。第2脚:VCC接5V电源正极。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。其显示电路部分引脚接口如图3-7所示:GNDVCCVORSRWGNDVCCVORSRWEDB0DB1DB2DB3DB4DB5DB6DB7BGVCCBGGND23P3.24P3.15P3.0 6P0.0 7P0.1 8P0.2 9P0.310P0.411P0.512P0.613LCD1602P0.714VCC1516LCD1602图3-7显示电路引脚图只有按下键盘上的开启按键后,显示器才处于开启状态。同理只有按下关闭按键后显示器才处于关闭状态。否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个”-”,输入多少位就显示多少个”-”。当密码输入完成时,按下确认键,如果输入的密码正确的话,显示“E”,单片机其中P2.0引角会输出低电平,使三极管T2导通,电磁铁吸合,电子密码锁被打开,如果密码不正确,显示屏会显示“O”,P2.0输出的是高电平,电子密码锁不能被打开。通过LCD显示屏,可以清楚的判断出锁所处的状态。4系统的软件设计4.1储存芯片AT24C0218273645AT24C02VCCAT24C02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。AT24C02支持IC,总线数据传送协议IC,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。1-A0,2-A1,3-A2地址管脚;4-Vss电源地;5-SDA串行数据;6-SCL串行时钟;7-WP写保护;8-Vcc电源。VccVss电源供电电压在2-6V之间。SCL串行时钟,18273645AT24C02VCC图4-1AT24C02的电路接线图图中AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。在AT89C51试验开发板上它们都接地,第8脚和第4脚分别为正、负电源。第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送,I2C总线由单片机控制,挂在I2C总线上的设备可以很多个,每个有独立的地址,A0,A1,A2。但单片机发送地址后,该地址的设备就会被激活,向单片机反馈一个应答信号,然后进行该设备的操作任务,AT24C02,它是用来存储数据的,具体的操作有发送地址,发送指令,接受数据以及发送数据等等。在AT89C51试验开发板上和单片机的P3.5连接。第6脚SCL为串行时钟输入线,在AT89C51试验开发板上和单片机的P3.6连接。SDA和SCL都需要和正电源间各接一个5.1K的电阻上拉。第7脚需要接地。24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总写入时间,一次操作可写入多达8个字节的数据。4.2密码储存系统密码锁是用EPROM芯片AT24C02存储密码。AT24C02是一种低功耗CMOS型E2PROM,内含256×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)、抗干扰能力强、数据不易丢失、体积小等特点。而且他是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。密码存储电路原理图如图4-2所示:VCCVCC5WP6SCL7SDL8GND4A23A12A01AT24C02VCCR3R4P3.5P3.6P3.74-2密码存储电路原理图AT24C02正是运用了I2C规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。4.3主程序流程的编辑主程序的功能说明在主程序中用户可以实现密码的储存,修改密码,键值的判断,密码错误报警,通过不同的键值判断程序的下一步走向,在没按键时或是在没按下特殊功能键时,程序在不停顶循环,密码锁的使用方法为当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码,密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键,用户需要再次输入确认密码以保证新密码输入无误,使新密码将得到存储,密码修改成功。主程序流程如图图4-3所示:NN键值=11?开始储存密码显示欢迎界面、初始化调用键盘扫描程序键值=10?调用判断密码程序YNY图4-3主程序流程图当用户需要修改密码时,先按下键盘设置键后输入原来的密码,系统会自动识别用户输入新输入的密码是否与储存芯片AT24C02内储存的密码相同,只有当输入的原密码正确后,才能设置新密码。设置新密码需要输入两次,第一次为初次设置,第二次为确认设置,保证用户不会把两次密码设置的不一样而导致用户最后无法使用新密码,新密码输入无误后按确认键使新密码将得到存储,密码修改成功。修改密码子程序设计的流程图4-4:字符长度减一=0?字符长度减一=0?出口Y入口初始化LCD根据情况给DPTR送数,确定显示字符串的长度调用LCD判忙程序取相应的数将所取数送P1口调用显示允许程序DPTR加一N图4-4修改密码子程序设计的流程图为了更安全的使用密码锁,用户应该定期更换密码,毕竟密码锁也不能保证万无一失,而用户定期更换密码能保证密码锁的可靠性,但用户不必太频繁的更换密码导致自己都记不清密码是多少。4.4复位系统的设计单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间),P0口为高组态,P1-P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。根据实际情况选择如图4-5所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C1通过R5放电。当电容C1放电结束后,RST端的电位由R5与R6分压比决定。由于R5<<R6因此RST为高电平,CPU处于复位状态,松手后,电容C1充电,RST端电位下降,CPU脱离复位状态。R5的作用在于限制按键按下瞬间电容C1的放电电流,避免产生火花,以保护按键避免触电。其原理图如图4-5所示:K1K1R5R6C1VCCRST图4-5复位电路原理图复位电路的作用复位按钮按下后,内存和相关的寄存器,记数器,记时器等具有状态表示的器件全部被复位,也就是回到了初始状态,这个时候系统就只能从头开始启动了。当用户输入密码错误需要修改或密码输入完成后系统都会执行复位程序。4.5开锁程序的处理开锁控制电路的功能是当输入正确的密码后将锁打开。系统使用单片机其中一引脚线发出信号,经三极管放大后,由继电器驱动电磁阀动作将锁打开。用户通过键盘任意设置密码,并储存在EEPROM中作为锁码指令。只有用户操作键盘时,单片机的电源端才能得到3V电源,否则.单片机处于节电工作方式。开锁步骤如下:首先按下键盘上的开锁按键,然后利用键盘上的数字键0-9输入密码,最后按下确认键。当用户输入一密码后,单片机自动识码,如果识码不符,则报警。只有当识码正确,单片机才能控制电子锁内的微型继电器吸台。当继电器吸台以后带动锁杆伸缩,这时,锁勾在弹簧的作用下弹起,完成本次开锁。开锁以后,单片机自动清除掉由用户输人VCCGNDT28550K3DR74.7KVCCGNDT28550K3DR74.7KP2.0图4-6开锁电路原理图通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。密码锁开锁流程原理图如图4-7所示:单片机微控制器单片机微控制器开锁驱动电路电磁锁密码正确?Y返回N图4-7密码锁开锁流程原理图当用户输入的密码正确而且是在规定的时间输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。在本文当中,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。密码锁开锁结构电路图4-8所示:R1R133KT10D5D6C24电磁锁T11GND来自微控制器信号图4-8密码锁开锁结构电路图电路驱动和开锁两级组成。由R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管如9014、9018都可以满足要求。D5作为开锁的提示;由D6、C24、T11组成。其中D6、C24是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰, T11可选用中功率的三极管如8050。4.6报警电路的选择R9VCCS1T385504.7KR9VCCS1T385504.7KP2.1 图4-9报警电路原理图用户在使用密码锁是也应当注意按键的排布,否则按错密码系统就会报警,真是大水冲了龙王庙,一家不认识一见人了。开锁与报警的流程图如图4-10所示:次数>3?报警返回Y次数>3?报警返回Y按键开锁程序初始化按键开锁输入密码确认程序开锁成功Y输入密码正确?输入次数加1NN图4-10开锁与报警流程图当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码。密码输完后按下确认键,系统会自动识别密码,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警。4.7晶振电路系统++XTAL2XTAL1C220PF112MHZ2C320PF++XTAL2XTAL1C220PF112MHZ2C320PF图4-11晶振电路原理图晶体振荡器是一种高精度振荡器,相对来说震荡频率一般都比较稳定,被广泛应用于彩电、计算机、遥控器等各类振荡电路中,以及通信系统中用于频率发生器、为数据处理设备产生时钟信号和为特定系统提供基准信号,单片机晶体振荡器两边的电容对频率有微调作用。5电子密码锁的未来展望5.1设计密码锁的目的目前,我国已成为世界上最大的锁具生产国和消费国。在国内,大部分人使用的还是传统的机械锁,然而,眼下假冒伪劣的机械锁泛滥成灾,互开率非常之高,所谓互开率,是各种锁具的一个技术质量标准,也就是1把钥匙能开几把锁的比率。经国家工商局、国家内贸局、中国消协等部门对锁具市场的调查,发现个别产品的互开率居然超标26倍,而且许多居民小区,高档公寓,办公室等等这些地方经常会应为忘记或丢掉钥匙而出现许多麻烦,这些都是不与时俱进,不用智能电子密码锁的后果,所以锁具产品从过去单一的机械弹子挂锁、门锁向多领域、多功能、多品种方面转变。电子密码锁应运而生不用钥匙,不用电源,不用电池,没有废弃污染物。全机械结构,能承受相当恶劣的外部环境,使用范围广。操作简单,开锁时间比较短,平均开锁时间约15秒。实际密码量大保密性能高,试探开锁的概率几乎为零。结构简单,结实可靠。所以设计密码锁就是为了让使用者看的舒心,用的放心,住的开心。电子密码锁性能和安全性已大大超过了机械锁,为人们的日常生活提供了很大的便利,普通居民、商场、公司的安全提供了很大的保障,其特点:使用灵活性好,不像机械锁必须佩带钥匙才能开锁;密码可变,用户可以随时更改密码,防止密码被盗;误码输入保护,当输入密码多次错误时,报警系统自动启动。5.2密码锁的发展趋势目前中国的消费电子产品市场正在急速扩张,电子产业是我国增长最快的行业之一。1995年到2003年,电子产业总产值由2471亿元增加到24058亿元,增长874%,年均增长32.9%;电子产业增加值由449亿元增加到3545亿元,增长690%,年均增长29.4%,均远远高于同期制造业的平均增长速度。电子产业的持续快速增长,初步确立了我国作为世界电子产品生产大国的地位。1998年中国大陆电子产品总产值占世界电子产品总产值的4.52%,超过作为世界重要电子产品生产基地的韩国(3.96%)和台湾(2.86%),仅次于美国(30.40%)和日本(19.58%)。电子产业的快速增长是与该行业的外国直接投资密切相关的,电子产业是外商投资最集中的制造业领域。数字家庭的热潮,改变着人们的生活和娱乐方式,以数字化为代表的消费电子整合产品正呈现高速增长的趋势;消费电子产品市场包含了消费电子、信息技术、通讯和影像产品之间的整合,在今天的中国,传统技术与数字化产品的市场构成正在迅速改变,各类产品的界限变得模糊。企业和零售商在面临挑战的同时,也意味着面临更多的机遇。当今智能发展已经到了非常高的境界,由于特别是在这几年得到空前发展,无论功能性,稳定性都比较全面,在保密方面已做到人眼识别,,识别基本上上有的现实也有。在国外发展比较早,所以应用也比较广泛,主要在较贵重地方,银行,等应用较多,在国内这方面发展也较快,不管自己开发或是引进都有,在重要地方应用也较多,由于价钱比普通较贵,早几年应用较少,现在越来越普及到平常化,未来的发展也会越来越被采用,由于它的功能、安全是弹子锁无法相比的。随着大规模集成电路技术的发展,出现了带微处理器的智能数码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性可靠性,很好的方便性,因此它的应用也日益广泛,发展前境是非常大的。结论回想此次单片机课程设计,至今我仍感慨颇多,我深刻体会到单片机技术应用领域的广泛。不仅让我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。本设计涉及到《单片机应用技术》、《模拟电子技术》等学科。让我对专业知识有了更深的理解。在本次课程设计过程中,我学会了在网络上查找有关本设计的各硬件的资源,其中包括:AT89C51单片机及其引脚说明、键盘扫描程序的编写等,为本次课程设计提供了一定的资料。不但对单片机有了更为深入的了解,对一个课题如何排版、画流程图、编程序等,有了一定的认识。进一步加强了自己的动手能力和运用专业知识的能力。从中学习到如何去思考和解决问题,以及如何灵活地改变方法去实现设计方案;特别是深刻体会到的是软件和硬件结合的重要性,以及两者的联系和配合作用。同时明白了办事只要有信心,有毅力,找对方法,就会成功!通过本次课程设计,让我了解到智能化技术对当今人们生活的重要性。同时这次做课程设计的经历也使我受益匪浅。让我知道做任何事情都应脚踏实地,刻苦努力地去做。只有这样,才能做好。致谢在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。在此,我要再次衷心感谢帮助和教育过我的老师,愿他们身体健康,永远年轻!参考文献1茹国宝,刘克刚编.单片机原理及应用.实验指导书.武汉大学电子信息学院2先锋工作室.单片机程序设计实例北京:清华大学出版社2003年3王静霞.单片机应用技术(C语言版).电子工业出版社,2010年4耿永刚,陶国正编.单片机与接口应用技术.华东师范大学出版社5李群芳.单片微型计算机与接口技术(第2版)。北京:电子工业出版社,2007年6李朝青.单片机原理及接口技术.北京:北京航空航天大学出版社,2004年7月7钱金法,颜云华.模拟电子技术及应用机械工业出版社2010年8祖龙起,刘仁杰.一种新型可编程密码锁大连轻工学院学报20029王千.实用电子电路大全电子工业出版社200110马志喜.电气工程设计.北京机械工业出版社2008 附录主程序:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintucharjian[16]={0xe7,0xee,0xde,0xbe,0xed,0xdd,0xbd,0xeb,0xdb,0xbb,0x7e,0x7d,0x7b,0x77,0xb7,0xd7};ucharUsers[6]={0,1,2,3,4,5};ucharFu_hao=0;ucharU_Interrupt=0;ucharTxet=0;uchartimer_1=0;ucharcodetable4[]="Isexiting!";ucharcodetable7[]="inputnewcode";ucharcodetable12[]="Timeistoolong";sbitlcden=P3^4;sbitlcdrs=P3^5;sbitWarning=P3^1;sbitLock=P3^0;voidDelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}voidwrite_com(ucharcom){ lcdrs=0; P0=com; Delay(5); lcden=1; Delay(5); lcden=0;}voidwrite_data(uchardate){ lcdrs=1; P0=date; Delay(5); lcden=1; Delay(5); lcden=0;}voidinit(){ lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80);}voidXian_shi(ucharb){ uchari; switch(b) { case0:{ write_com(0x80+0x4f-Fu_hao); write_data('*'); Fu_hao++; };break; case1:{ for(i=0;i<16;i++) { write_com(0x80+0x40+i);write_data('');//0x20Delay(2); } Fu_hao=0;};break; }}ucharkeyscan(void){ uchark,i,j,m,t;while(1){ P1=0xff; i=0xfe; if(U_Interrupt==1)return20; for(j=0;j<4;j++) { P1=i; k=P1&0xf0; if(k!=0xf0) { Delay(5); if(k!=0xf0){ t=k|(i&0x0f); for(m=0;m<16;m++) if(jian[m]==t)break; while(k!=0xf0) {k=P1;k=k&0xf0; }Delay(5); while(k!=0xf0) {k=P1;k=k&0xf0; } returnm;} }i=(i<<1)|0x01; } }}voidShe_zhi(void){ ucharNew,Wei,Zhi,bb[6],cc[6],i,k,j; ucharcodetable8[]="inputnewagain";ucharcodetable9[]="Successfully!";ucharcodetable10[]="Inputiserror!";ucharcodetable11[]="putenteragain"; New=0; Wei=0; Fu_hao=0; for(k=0;k<6;k++) { bb[k]=0; cc[k]=0; } write_com(1); for(j=0;j<14;j++) write_data(table7[j]); while(1) { Zhi=keyscan(); if(Zhi>=0&&Zhi<=9) { Xian_shi(0); if(New==0) bb[Wei++]=Zhi; if(New==1) cc[Wei++]=Zhi; continue; } if(Zhi==15) { Xian_shi(1); Wei=0; Fu_hao=0; continue; } if(Zhi==10||Zhi==11||Zhi==12)continue; if(Zhi==14) { Txet=0; TR1=0; write_com(1); for(j=0;j<12;j++) write_data(table4[j]); Delay(2000); write_com(1); Wei=0; Fu_hao=0; } if(Zhi==13) { New++; if(New==1) { write_com(1); for(j=0;j<15;j++) write_data(table8[j]); Fu_hao=0; continue; } if(New==2) { for(k=0;k<6;k++) if(bb[k]!=cc[k])break; if(k>=6) { write_com(1); for(j=0;j<13;j++) write_data(table9[j]); Users[j]=bb[j]; Delay(2000); Txet=0; TR1=0; write_com(1); for(j=0;j<12;j++

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论