1基于单片设计电子密码锁摘要:本系统由单片机系统、矩阵键盘、LED显示和报警系统组成,而且简单介绍了MCS-51单片机结构及应用特点硬件和软件的工作原理。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。此设计安全性高、价格低廉便于实现、易于改进等优点。关键词:单片机电子密码锁矩阵键盘1绪论1.1引言随着人们生活水平的提高,如何实现防盗、安全这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。1.2电子密码锁的背景随着社会物质财富的日益增长,安全防盗已成为社会问题。而锁自古以来就是把门户的将军,人们对其要求比较高,不仅安全的防盗,而且还要使用方便,这是制锁者长期以来研制的主题。锁的种类很多有密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像(如指纹、眼底视网膜等)来控制锁的开启。从而大大的提高了锁的安全性能,是不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。1.3电子密码锁的意义和设计特点单片机,亦称单片机微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口I/O等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。计算机的产生加快了人类改造世界的步伐,但是它毕竟大,微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们生活在各个领域,我们的生活中都离不开单片2机。以前没有单片机时这些东西做,但是只能使用复杂模拟电路,然而这样做出来的产品不仅体积大,而且成本不高并且由于长期使用,元器件会不断老化,控制的精度自然达不到标准。单片机产生后,我们就将这些变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这些产品体积小,成本低,长期使用不会担心精度达不到了,而且容易升级改善。电子密码锁可以在日常生活和现代办公来完成,住宅与办公室的安全防范,单位的文件档案财务报表以及一些个人资料的保存等多种场合使用。大大提高了主人物资的安全性。目前使用的密码锁种类多,各具特色。2课题方案的选择方案一:使用8051单片机,采用汇编语言写程序,该程序语言功能强大,调试较为简单。具有很强的实用性。方案二:利用数字逻辑电路,运用电压比较器,555单稳态电路。计数器,JK触发器,UPS电源等实现对门的电子控制。方案三:利用8051单片机,利用单片机的C语言编写程序,通过KeilC51uVision2软件进行仿真模拟。综上分析:方案二给予数字电路,操作繁琐。会出现较多的器件故障,同时调试难以维护。方案三该逻辑语言较为复杂,编写程序时也较为复杂,还需进行软件仿真模拟,设计复杂。综上所述:使用较为简单,调试简单,硬件电路较少,易于维护。图一单片机的控制3方案3MCS-51单片机结构3.1硬件3.1.1芯片的介绍MCS-51系列中的各种芯片引脚是互相兼容的,其中8051单片机是高性能的单片机,它具有8位微处理器,128B片内RAM,4K的片内ROM,4个八位的并行I/O接口P0-P3,两个定时/计数器及五个中断源的中断控制系统。再不接任何外围电路的情况下可以实现大部分较为复杂的逻辑控制功能,进行外部RAM扩展还可以用于数据采集,点阵显示屏控制等方面应用。对于存储量要求不高的实际应用,8051是一种不可多得高性能的单片机,被广泛应用于各个领域。芯片引脚排列如图I所示,8051单片机的每个端口都是8位准双向口,每一条I/O线都能独立的用作输入或输出。每个端口都包括一个锁存器,一个输出驱动器和输入缓冲器。再无片外扩展存储器系统中,这四个端口都可以作为准双向I/O口使用。再具有片外扩展存储器的系统中,P2口送出高8位地址P0口位双向总线,送出低八位地址和数据的输入/输出;P3口是一个多功能端口各个引脚具有第二功能。(P3.0为串行口输入,P3.1位串行口输入,P3.2为外部中断0输入,P3.3为外部中断1输入,P3.4为定时器0的外部输入,P3.5为定时器1的外部输入,P3.6位片外数据存储器“写选通控制”输出,P3.7为片外数据存储器“读选存储器”输出)。图3.1芯片引脚排列43.1.2单片机的构成MCS-51单片机死一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O线等一台计算机所需要的基本功能部件,51单片机内包含下列几个部件:(1)一个8位CPU;(2)一个片内振荡器及时钟电路;(3)4K字节ROM程序存储器;(4)128字节RAM数据存储器;(5)两个16位定时器/计数器;(6)可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路;(7)32条可编程的I/O线(四个8位并行I/O端口);(8)一个可编程全双工串行口;(9)具有五个中断源、两个优先级嵌套中断结构;其内部机构框图如图所示:图3.3MCS-51单片机内部结构图3.1.3原理及硬件设计为实现密码锁的多功能,如图2所示P1.0-P1.6端口;LOCK(39脚)为密码正确条件下输出开锁电平,控制点控制的开启;ALARM(38脚)为三次误码输入时产生的报警电平;START(37脚)为开门关门时的控制信号;WARN(36脚)为输入错误时的提示音信号,产生外部中断信号(与外部中断0相接)并控制与P0.5相接的发光二极管;REVISE(35脚)为密码修改提示信号,用户可自由修改密码。该电路通过进一步的扩展和改进还可以和其他报警电路配5合完成功能更强大的防盗报警功能。图3.1.3硬件原理电路图3.1.4控制器控制器(CPU)是单片机的指挥控制部件,控制器的主要任务是识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。单片机执行指令是在控制器下进行的。首先从程序存储器中读出指令,送指令寄存器保存,然后送至指令译码器进行译码,译码结果送定时控制逻辑电路,由定时控制逻辑产生各种定时信号和控制信号,再送单片机的各个部件去进行相应操作,这就是执行一条指令的全过程,执行程序就是不断重复这一过程,控制器主要包括程序存储器、程序地址寄存器、指令寄存器IR、指令译码器、条件转移逻辑电路、及时序控制逻辑电路。3.1.5存储器的结构单片机在存储器的设计上,与共同特点是将程序存储器与数据存储器分开,他们有各自的寻址方式。51单片机内具有数据存储器,同时具有强大的外部存储扩展功能,存储器是单片机系统中的重要组成部分。在一片芯片内除了许多基本的记忆单元构成的存储矩阵外,还包括译码驱动电路,读写电路等。6图3.1.5半导体存储器芯片的基本结构框图3.2软件设计一个应用系统要完成各种功能,首先必须有较完善的硬件保证,同时必须得到相应合理的软件支持,许多由硬件完成的工作都可通过软件编程而代替。因此充分利用其内部丰富的硬件和软件资源,采用51系列单片机相对应的51汇编语言和结构化程序设计方法进行软件编程。程序设计语言由三种:机器语言、汇编语言、高级语言。机器语言是机器唯一能“懂”的语言,用汇编语言或高级语言编写的程序最终都必须翻译成机器语言的程序,计算机才能看“懂”,然后逐一执行。由于本系统是编制程序工作量不大、规模较小的单片机微控制系统,使用汇编语言可以不用像高级语言那样占较多的存储空间,适于存储量较小的系统。4题分析电路主要包括矩阵键盘输入密码,外部密码验证,单片机控制,原理方框如下:a)图4原理方框图74.1矩阵键盘输入控制电路设计方案是非编码键,每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线就可以确定哪一条键被触动。行线设计成上拉口线,初始时被置高点位,列线悬空,初始值低。通过不断读行线口线,或者中断方式触发键位扫描。当发现有键位按下,将列线逐一置低,其他列线置高,读行线口线,当某条列线置底时,某条行线也被拉低,则确定这两条线的交点处的按键被按下,将每个行线和列线的组合值做成列表,每次就可以通过查表确定键位,以决定之后要进行的操作。4.2课题要求本次课程设计,基于51单片机电子密码锁设计,利用4*4小键盘作为输入,LED作为显示,当输入密码和设定密码一致时,系统利用继电器输出解锁信号,其主要有一下功能:(1)设置6位密码,密码通过键盘输入,若输入正确,则将打开。(2)密码可以由用户自己设定(只支持6位密码),锁打开后才能改密码,修改密码之前必须再次输入密码,在输入新密码时候需要二次确认以防止误操作。(3)报警、锁定、键盘功能,密码输入用发光管显示,当连续3次输入错误密码,系统将报警。5系统设计5.1系统总设计结构图图5.1系统总设计结构图8本设计由主芯片51单片机、单片机时钟电路、键盘、和开锁电路组成。单片机负责控制整个系统的执行过程。5.2电路功能单元设计5.2.1开锁机构通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。其原理结构如图5.2.1所示:5.2.1-1密码锁开锁结构示意图当用户输入的密码正确而且是在规定的时间及次数输入之内,单片机便输出线号,送到开锁驱动电路,然后驱动电磁锁,到达开门的目的。电路驱动和开锁两级组成。由D5、R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管如9014、9018都可以满足要求。D5作为开锁的提示;由D6、C24、T11组成。其中D6、C24是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。T11可选用中功率的三极管如8050,电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。T10T11D5GNDR13.3K电磁锁C24VCC来自微控制器信号D69图5.2.1-2密码锁开锁机构电路图5.2.2案件电路设计由于涉及要求使用矩阵式键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占的I/O线的数目,在按键比较多的时候,通常采用这样的方法。其原理图如图5.2.2所示:图5.2.2行列式键盘原理电路图每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。89s51D0D1D2D3D4D5D6D7D8D9D105.1KX45.1KX4VCC10按键的操作面板如图图2-3所示。共计数字键10个,功能键6个。键盘上还有3个指示灯和一个蜂鸣器。5.2.2-2按键操作面板示意图10个数字键用来输入密码,另外6个功能键分别是:CLR、EN、F1、F2、F3、F4。其中CLR键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。EN键的功能是确认输入的密码。F1是管理模式切换键,