文档库 最新最全的文档下载
当前位置:文档库 › 基于51单片机电子密码锁设计

基于51单片机电子密码锁设计

扬州科技学院(筹)

设计(论文)题目:单片机电子密码锁

系别:汽车与电气工程系1

专业:机电一体化

班级:07机电(4)班1

姓名:

学号:0702010421

指导教师:戴亦宗

完成时间:2010年5月20日

目录

摘要------------------------------------------1

关键词----------------------------------------1

第一章概述------------------------------------------2

课题简介---------------------------------------------2

第二章系统总体方案设计------------------------------4

第三章硬件电路设计----------------------------------5 3.1键盘电路设计-------------------------------------6

3.2LED显示电路--------------------------------------7

3.3开锁电路-----------------------------------------8

3.4 报警电路-----------------------------------------9

3.5密码存储电路设计----------------------------------9

3.6复位电路-----------------------------------------10

3.7系统电路图---------------------------------------12

第四章软件设计---------------------------------------13

4.1软件设计思路-------------------------------------13

4.2键盘扫描子程序-----------------------------------13

4.3 LED显示子程序-----------------------------------14

4.4 密码修改比较和报警程序---------------------------16

第五章调试系统 ---------------------------------------18

第六章谢词--------------------------------------------19

第七章参考文献----------------------------------------20

扬州科技学院(筹)

第八章附录--------------------------------------21

8.1源程序清单---------------------21

8.2 系统电路图---------------25

单片机电子密码锁

摘要:单片机也被称微控器,是因为它最早被用在工业控制领域。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能。这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!

单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。单片机在硬件资源方面的利用率必须很高才行。

本文涉及的是市场占有率很高的MCS—51系列,很多IC生产厂家都生产51兼容的芯片。到目前为止,WCS-51单片机已有数百个品种。还不断推出功能更强的产品。

本设计是基于单片机的密码锁设计方案,根据要求,给出单片机密码锁的硬件电路和软件程序,同时给出单片机型号的选择,硬件设计,软件流程图等内容。

关键词:单片机 8051 74JS247 74LS138 LED数码管

扬州科技学院(筹)

第一章概述

课题简介:

电子密码锁是一种通过密码输入来控制电路或是芯片工作,控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁,特点如下:

1.保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。

2.密码可变。用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。

3.误码输入保护。当输入密码多次错误时,报警系统自动启动。

目前常见的密码锁有很多,下面介绍常见的几种。

遥控密码锁:常见有遥控式电子防盗锁主要有光遥控和无线电遥控两类。光遥控又分为红外线遥控和可见光遥控,光遥控利用窄角度的光传输密码,优点是传输信息量可以很大、速度极快、人眼识别不出来,又无法在光路径上(操作者与电子防盗锁主体之间)以仪器捕获信号试图复制,因此保密性极高。无线电遥控的优点也是传输信息量可以很大、速度快、人眼识别不出来,但发射的信号弥散空间,容易被仪器捕获,因此适合采用“变化的密码”,如所谓的“跳码”、“滚码”(均是随机变化而无明显规律),这样即使捕获了当时的信号也无利用、复制的价值。使用遥控式电子防盗锁,需要仔细保管遥控器(即钥匙),而且对某些应用而言,这种钥匙大了一点,可能还要使用特定的电池。

键盘式电子密码锁:从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展中,如“任意设定密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“自动更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测;独出心裁的“键盘乱序显示”技术使得键盘上的固定键位每次显示出的字符不固定,并且显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码;“多重密码设定”技术使得单组密码不一定有效,适合多人分权使用,需要输入两组以上的密码才被认可,大大提高了保密性,如果限定输入这些密码的先后顺序或时间区段,则保密性还可提高。在输入密码的过程中,为了限制试探密码的企图,通常输入错误码若干次或若干时间内输入不正确,即“封锁”键盘,不再接受输入操作。总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁仍然“老树发新芽”,不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段。

使用各种“卡”作为钥匙的电子防盗锁是当前最为活跃的产品,无论卡的种类如何多种多样,按照输入卡的操作方式,都可分为接触式卡和非接触式卡两大类。值得注意的是,由于安防行业的要求,通常不得使用可靠性差、易被仿制的磁卡。目前接触式卡的技术成

信息量大是卡的优势,它不仅作为钥匙,还可载入多项个人信息,特别适合金融业注重“验明正身”的行业特点,而且一卡多用(如入门、开锁、存储、付费等)带来持卡人的便利。使用这类电子防盗锁,需要仔细保管卡(即钥匙),尤其丢失了必须尽快取消该卡的授权。

人的某些与生俱来的个性特征(如手、眼睛、声音的特征)几乎不可重复,作为“钥匙”就是唯一的(除非被逼迫或伤害),因此,利用生物特征做密码的电子防盗锁,也特别适合金融业注重“验明正身”的行业特点。

由于这种“自生自长、随身携带”的“钥匙”优点突出,因此这种锁很快度过了性能不太稳定、价格昂贵的初始期,变得越来越实用、越来越“特征”,受到人们的普遍欢迎。现今,生物特征技术发展迅速,除了价格因素和尺寸体积因素对普及尚有所限制外,生物特征电子防盗锁在金融业的前景被人们普遍看好。不过,在要求保密性极高的情况下,还不宜单独使用生物特征电子防盗锁,最好是组合其他电子信息作为密码。

由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,这样对盗贼而言是“道高一尺、魔高一丈”。组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。

本设计系统主机采用8051单片机,MCS-51单片机的程序存储器和数据存储器的地址空间是相互独立的,而且程序存储器一般为ROM或EPROM,只能读出不能写入。扩展用的程序存储器芯片大多采用EPROM芯片,最大可扩展到64K字节。该设计使用矩阵键盘输入。LED数码管显示输入密码,用74JS247驱动数码管发光显示数码,74LS138控制各显示器分时进行显示。AT24C01存储器存储密码。密码正确,二极管发光。输入密码错误次数超过三次系统报警,蜂鸣器发出报警音。

扬州科技学院(筹)

第二章 系统总体方案设计

系统总体设计方案如下图

图2-1

该设计可利用单片机中一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器 。外接石英晶体(或陶瓷谐振器)及电容C1、C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,最好电容使用30pF ±10pF ,而如使用陶瓷谐振器建议选择40pF ±10F 。用户也可以采用外部时钟,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。

本方案采用一种是以8051为核心的单片机控制方案。利用石英晶体谐振器和单片机灵活的编程设计和丰富的I/O 端口,及其控制的准确性,实现其基本密码锁功能。 初步设计如下,

①输入密码用矩形键盘,包括数字键和功能键。

②LED 数码管显示输入密码,用74JS247驱动数码管发光显示数码,74LS138控制各显示器分时进行显示。

③用发光二极管代替发光电路,发光表示开锁。 ④输入密码错误次数超过三次系统报警。 ⑤打开电源后显示器显示“000000”,设原始密码“123456”输入密码便可开锁, ⑥按“C ”键,显示器清零。 ⑦重设密码,先输入“*”。

⑧输入密码后按“D ”键。密码正确则开锁,否则显示器清零。

⑨软件的设计主要包括键盘的读取,LED 显示程序,密码比较程序和报警程序

超次报警电路

密码正确开门电路

键盘控制电路

8051 单片机

LED 显示电路

存储器

复位电路

第三章硬件电路设计

3.1键盘电路设计

键盘是单片机系统中最常见的一种人机联系的一种输入设备,由若干个按键组成,用户通过键盘向CPU输入数据或命令以实现简单的人机通信。

对键盘的识别可分为两类:一类由专用的硬件电路来识别(如2376,74C922 ),它使用起来方便,但需要价格昂贵的专用芯片,在单片机系统中一般不采用,另一类靠软件来识别,称为非编码键盘,它的结构简单,价格便宜,应用灵活。但需要编制相应的键盘管理程序。单片机普遍采用这种方式。

按键工作处于两种状态:按下与释放。一般按下为接通,释放为断开,这两种状态要被CPU识别,通常将两种状态转换为与之对应的低电平或高电平。CPU通过按键信号电平的高低来判断按键的状态。

使用矩阵键盘,所以本设计采用行列式键盘,可减少键盘与单片机接口是所占用的I/O 线的数目,按键比较多时,通常采用这种方法。其原理图如下

图3-1

每一条行线和列线交叉处通过一个按键来连接,利用这种行列式矩阵结构只需要N条行线和M条列线就可组成N*M个按键。

扬州科技学院(筹)

有无键盘按下的程序段。确认有键盘按下后,下一步执行识别哪一个键按下。

对照4*4键盘,首先识别键盘中有无键盘按下,由单片机I/O口向键盘送全扫描字00H,把全部的列线置为低电平,然后把列线的电平状态读入累加器A中,如有键按下,总会有一根线电平为低使行线不全为1。

判断键盘中哪一个键被按下,使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后检查行输入状态来实现。如果全为1,则所按下键不在此列,如果不全为1则按下的键必在此列。而且是与零电平线相交的交点上的键。按键列表如下:

表3-1

按键键名功能说明

1~9键数字键输入密码

*键重设密码设定新密码

D键确定键比较密码

#键清除键显示器清零

理想的按键信号是一个标准脉冲,但键的按下和释放都需要一个过程来实现,在这一过程中是处于高低电平之间一种不稳定状态,称为抖动。抖动时间的长短,频率的高低与按键机械特征有关,一般在5到10ms之间。这就有可能造成CPU对一次按键过程进行多次处理。为了避免这种情况应采取措施消除抖动。消抖常见有两种方法,硬件消抖:如用滤波器,双稳态电路等。另一种用软件来实现,即当发现有键按下时,间隔10ms以上时间,才能进行下一次查询,这样就让过了抖动过程,键的释放进行同样处理。本设计为减少电路复杂程度,减少成本。采用软件消抖的方法。

3.2LED显示电路

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4

位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

①静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱

动5个数码管静态显示则需要5×8=40根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

②动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划的同名端“a,b,c,d,e,f,g,dp“连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

本设计的显示电路是为了给使用者以提示而设计的。本系统采用串行显示的方式,只使用单片机的一个串行口,74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能,显示电路原理图如下所示。

图3-2

用P0.0~P0.3接74LS247的ABCD端口,74LS247的输出接口接LED的七段显示,P0.4~P0.6接74LS138的ABC三个输入口,74LS138的输出接口接LED的输出接口LED的位显示,通过软件实现数字和位控制。

扬州科技学院(筹)

3.3开锁电路

本设计中,基于节省材料的原则,用发光二极管代替电磁锁,二极管发光表示开锁,电路图如图所示。当P2.0输出低电平时,二极管发光,表示开锁

3.4 报警电路

报警电路由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时需要约100mA的驱动电流。蜂鸣器电路如图所示。当89C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音。89c51输出为高电平时,蜂鸣器不发音。

3.5密码存储电路设计

本设计中,智能密码锁工作时分为两种工作状态,分别是正常状态和锁定状态。锁定状态时,输出锁定信号,实现上锁功能;正常状态时,锁定信号消失实现开锁功能。本设计采用AT24C01存储密码。

AT24C01是美国ATMEL公司的低功耗CMOS串行EEPROM,它内含128×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。具有PDIP、MSOP/TSSOP及SOIC等三种封装形式,以适应不同产品的需求。将密码存入AT24C01中,开锁时,将从面板上的微键盘输入的数字序与AT24C01中存储的密码相比较,如果位数及每一位上的数都相吻合,则进行开锁

程序复位后,先将AT24C01中保存的密码取出,放入RAM缓冲区1中暂存,将定时器、堆栈等进行初始化,为报警系统作好准备,将RAM缓冲区2中的密码初值设置为和RAM缓冲区1中的密码不同,保证程序复位后比较密码不会相同,这时,进入RAM缓冲区1和RAM 缓冲区2的密码比较程序,只有当两者位数相同而且每一位数字都相同时,执行开锁动作、输出开锁信号、进入正常状态,否则执行上锁动作、输出上锁信号、进入锁定状态。在正常状态时,可以进行重新设置密码、上锁等操作,重新设置密码时,首先验证原始密码,如相同则可进行密码更改,然后将新密码保存至AT24C01中,同时更新RAM缓冲区1。在锁定状态时,系统启动报警功能,同时等待用户开锁,如发现用户按下“开锁”键,则读入从微键盘输入的数字序列,用其更新RAM缓冲区2,转入密码比较程序,如密码相同则开锁,否则继续等待用户开锁,为防止非法用户恶意多次试探密码,可在程序中设置当连续三次输入错误密码后自动报警,直至开锁后解除。

扬州科技学院(筹)

图3-5

3.6复位电路

单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,电路图如图所示

图中由按键以及电解电容、电阻构成按键及上电复位电路。由于单片机是高电平复位,所以当按键按下的时候,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态。当上电后,由于电容的缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。

扬州科技学院(筹)3.7系统电路

第四章软件设计

4.1软件设计思路

电子密码锁工作的主要过程是通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,做出开锁或报警处理。当输入密码连续三次错误时,系统报警。

密码的的设定在此程序中密码是固定40H~45H中,假设预定密码为“123456”六位。在正常状态时,可以进行重新设置密码、上锁等操作。重新设置密码时,首先验证原始密码,如相同则可进行密码更改,然后将新密码保存至AT24C01中。

按键按其功能分为两种,其中一种为功能键另一种为数字键。输入密码后,直到所有密码输入完毕按下确认功能键之后,才完成密码输入过程。进入密码的判断比较处理状态并给出相应的处理过程。

4.2键盘扫描子程序设计

键盘扫描流程如图

键盘扫描子程序如下:

L2:MOV R3,#0F7H

MOV R1,#00H

L3: MOV A,R3

MOV P1,A

MOV A,P1

扬州科技学院(筹)

SETB C

MOV R5,#04H

L4:RLC A

JNC KEYIN

INC R1

DJNZ R5,L4

CALL DISP

MOV A,R3

SETB C

RRC

MOV R3,A

JC L3

JMP L2

4.3 LED显示子程序

LED显示子程序流程图如下

开始

载入按键值

按键值+74LS138的扫描值

送入P0口

图4-3

LED显示子程序如下:

DISP:MOV R0,#45H

DISP1:MOV A,@R0

ADD A,350H

MOV P0,A

CALL DELY

DEC R0

MOV A@R0

MOV P0,A CALL DELY DEC R0

MOV A,@R0 ADD A,#30H MOV P0,A CALL DELAY DEC RO

MOV A,@R0 ADD A,@10H

MOV P0,A

CALL DELAY

DEC R0

MOV A,@R0

ADD A,#00H

MOV P0,A

CALL DELAY

RET

扬州科技学院(筹)

4.4密码修改比较和报警程序

密码比较流程图如下

图4-4

密码修改与比较程序 COMP:MOV R1,#45H MOV R0,#35H MOV R2,#06H C1: MOV A,@R1 XRL A,@R0 JNZ C3 DEC R1 DEC R0

DJNZ R2,C1 CLR P2.0

MOV R2,#200

C2:MOV R6,#248 DJNZ R6,$ DJNZ R2,C2 C3:INC R5 MOV A,R5 MOV R5,A

CJNE R5,#03H,C4 CLR P2.1 MOV R5,#00H 开始

比较第一位

比较下一位

6位比较完?

正确开锁

清零

清除显示

记录错误次数

3次报警

Y

N

N

N

Y

Y

相关文档
相关文档 最新文档