514651961设计论文基于单片机的电子密码锁设计.doc

上传人:仙人指路1688 文档编号:3930673 上传时间:2023-03-28 格式:DOC 页数:34 大小:352.50KB
返回 下载 相关 举报
514651961设计论文基于单片机的电子密码锁设计.doc_第1页
第1页 / 共34页
514651961设计论文基于单片机的电子密码锁设计.doc_第2页
第2页 / 共34页
514651961设计论文基于单片机的电子密码锁设计.doc_第3页
第3页 / 共34页
514651961设计论文基于单片机的电子密码锁设计.doc_第4页
第4页 / 共34页
514651961设计论文基于单片机的电子密码锁设计.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《514651961设计论文基于单片机的电子密码锁设计.doc》由会员分享,可在线阅读,更多相关《514651961设计论文基于单片机的电子密码锁设计.doc(34页珍藏版)》请在三一办公上搜索。

1、创 新 实 验 论 文(2008 2009 年度 第 二 学期) 题 目: 电 子 密 码 锁 设 计 院 系: 电子信息工程学院 学生姓名: 班 级: 专 业: 指导老师: 2009 年 4 月 25 日基于单片机的电子密码锁设计摘要:随着电子产品向智能化和微型化的不断发展,单片机已经成为电子产品研制和开发中首选控制器。本文介绍了一种应用AT89S52单片机设计的防盗报警电子密码锁系统。经实验验证该系统具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点,可作为产品进行开发,应用于住宅、办公室的保险箱及档案柜等需要防盗的场所,有较强的实用性。关键词:电子密码锁;AT89S52;设

2、计Base on the microcontroller electeonic password lock designAbstract:With the intelligent electronic products and the continuing development of micro,SCM hasbecome electronic products in the research and development of the preferred controller.This paper pressents a design of the single-chip microco

3、mputer application AT89S52 electronic password lock anti-theft alarm system.The experimental verifcation of the hardware and software system is designd to be simple,easy development,lower cost,safe,reliable,easy to operate,and other characteristics,can be used as product development,application of r

4、esidential,office safes and filling cabinets,and other places security needs of a relatively strong pracyicality.Key Words:electronic password lock;AT89S52;design目 录0 引言31 硬件设计4 1.1 要求及方案41.2 系统方框图41.3 工作原理51.4 键盘输入模块61.5 显示部分61.6 电路复位部分7 1.7 LED 显示部分71.8 晶振部分81.9 开锁部分82 主要元器件介绍92.1主控芯片AT89C5292.2 L

5、CD1602显示器133 系统软件设计154 调试175 结束语20参考文献 21附录 220引言 在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。由于电子器件所限,以前开发的

6、电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。出于安全、方便等方面的需要许多电子密码锁已相继问世。但这类产品的特点是针对特定有

7、效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,这样对盗贼而言是“道高一尺、魔高一丈”。组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。可以看出组合使用电子信息是电子密码锁以后发展的趋势。本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,

8、为了提高安全性,当密码输入错误三次将报警。密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。1 硬件设计1.1 要求及方案1.1.1 设计要求设计一款能设定密码的电子智能密码锁。1、能输入6位数字密码,显示输入数据个数,但不显示密码,能删除并重新输入。2、具有2次输入确认功能。 3、具有掉电以后密码不丢失,3次输入错误报警的功能,给出声光报警。1.1.2 方案设计 本设计选用单片机AT89S52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接

9、输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键09输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。1.2 系统方框图 本设计的系统方框图如图1,由以上的方案可以知道本系统主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的

10、矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警.AT89S52键盘输入复位电路密码存储电路晶振电路电源输入显示电路报警电路开锁电路 图1 系统方框图1.3 工作原理本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由键盘输入部分、复位部分、LCD显示部分、LED显示部分、晶振部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。 其原理图如图2所示:图2 电路原理图

11、1.4 键盘输入模块 本系统中的键盘输入部分是由16个小键盘拼接而成的,采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置。其大体功能(看键盘按键上的标记)及与单片机引脚接法如图3所示:图3 按键图1.5 显示部分为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。只有按下键盘上的开启按键后,显示器才处于开启状态。同理只有

12、按下关闭按键后显示器才处于关闭状态。否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话, LCD子显示“RIGHT”,单片机其中P2.0引角会输出低电平,使三极管T2导通,电磁铁吸合,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“ERROR”,P2.0输出的是高电平,电子密码锁不能被打开。通过LCD显示屏,可以清楚的判断出锁所处的状态。其显示部分引脚接口如图4所示: 图4 显示电路原理图1.6 电路复位部分单片

13、机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间),P0口为高组态,P1P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。根据实际情况选择如图4-6所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CP

14、U脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C1通过R5放电。当电容C1放电结束后,RST端的电位由R5与R6分压比决定。由于R51000次)ISP Flash ROM 32个双向I/O口 4.5-5.5V工作电压 2个16位可编程定时/计数器 时钟频率0-33MHz 全双工UART串行中断口线 128x8 bit内部RAM 2个外部中断源 低功耗空闲和省电模式 中断唤醒省电模式 3级加密位 看门狗(WDT)电路 软件设置空闲和省电功能 灵活的ISP字节和分页编程 双数

15、据寄存器指针 可以看出AT89C52提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟。同时, AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式何在RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直接到一个硬件复位。2.1.2 AT89C52引角功能说明Vcc:电源电压GND:地P0口:P0口是一组8位漏极开路型双

16、向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址。表1

17、为P1口第二功能。表1 P1口第二功能端口引脚第二功能P1.5MOSI(用于ISP编程)P1.6MISO(用于ISP编程)P1.7SCK(用于ISP编程)P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。在访问位地址的外部数据存储器(如执行:MOVX Ri 指令)时,P2口线上的内(也即特殊功能寄存器,在整个访问期间不改变。Flash 编程或校验时,P2也接收高位地址和其它控制信号。P3口:P3口是一

18、组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端口时,被外部拉低的P3口将用上拉电阻输出电流I。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表2。 表2 P3口的第二功能端口功能第二功能端口引脚第二功能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

19、)外部数据存储器读选通RST:复位输入。当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。WDT益出将使该引脚输出高电平,设置SFR AUXR 的 DISRTO 位(地址8EH)可打开或关闭该功能。DISRTO 位缺省为RESET输出高电平打开状态。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:第当访问外部数据存储器时将跳过一个ALE脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D

20、0位置位,可禁止ALE操作。该位禁位后,只有一条MOVX 和MOVC指令ALE才会被激活。此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,高有两次有效的PSEN信号。EA/VPP:外部访问允许。欲使CPU公访问外部程序存储器(地址0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内

21、部程序存储器中的指令。Flash存储器编程时,该引脚加上12V的编程电压Vpp。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。2.1.3 AT89C52芯片内部结构特殊功能寄存器:特殊功能寄存器的片内空间分存如下图3-2所示。这些地址并没有全部占用,没有占用的地址不可使用,读这些地址将得到一个随意的数值。而写这些地址单元将不能得到预期的结果。中断寄存器:各中断允许控制位于IE寄存器,5个中断源的中断优先级控制位于IP寄存器。双时钟指针寄存器:为方便地访问内部和外部数据存储器,提供了两个16位数据指针寄存储器:PD0位于SFR区块中的地址82H、83

22、H和DP1位于地址84H、85H,当SFR中的位DPS=0时选择DP0,而DPS=1时选择DP1。在使用前初始化DPS。电源空闲标志:电源空闲标志(POF)在特殊功能寄存储器SFR中PCON的第4位(PCON.4),电源打开时POF置“1”,它可由软件设置睡眠状态并不为复位所影响。存储器结构:MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具有64KB外部程序和数据的寻址空间。程序存储器:如果EA引脚接地(GND),全部程序均执行外部存储器。在AT89S51,假如接至Vcc(电源),程序首先执行从地址0000H0FFFH(4KB)内部程序存储器,再执行地址为1000HFFFF

23、H(60KB)的外部程序存储器。数据存储器:在AT89S51的具有128字节的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间。看门狗定时器(WDT):WDT是为了解决CPU程序运行时可能进入混乱或死循环而设置,它由一个14bit计数器和看狗复位SFR(WDTRST)构成。外部复位时,WDT默认为关闭状态,要打开WDT,必按顺序将01H和0E1H写到WDTRST寄存器,当启动了WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT溢出复位外没有其它方法关闭WDT,当WDT溢出,将使RST引脚输出高电平的复位脉冲。2.2

24、 LCD1602显示器 现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。1602型LCD可以显示2行16个字符,有8位数据总线D0D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。2.2.1 接口信号说明1602型LCD的接口信号说明如表3所示: 表3 1602型LCD的接口信号说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3V0液晶显示偏压信号11D4Data I/O4RS数据/命令选择端(H/L)12D5D

25、ata I/O5R/W读写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极2.2.2 主要技术参数1602型LCD的主要技术参数如下表所示: 表4 1602型LCD的主要技术参数显示容量16X2个字符芯片工作电压4.55.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.95X4.35(WXH)mm2.2.3 基本操作程序读状态:输入:RS=L,RW=L, E=H 输出:D0D7=状态字读数据:输入:RS=H,RW=H, E=H 输出:无写指令:输入:RS=L,R

26、W=L, D0D7=指令码,E=高脉冲 输出:D0D7=数据写数据:输入:RS=H,RW=L, D0D7=数据, E=高脉冲 输出:无3 系统软件设计本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。主要程序设计流程图如下所示:开始初始化键盘扫描启动程序键盘扫描键功能程序结束关闭程序 图9 主程序流程图 设置程序初始化按下设置键输旧密码确认程序所输入旧密码正确?输新密码确认程序设置成功输入次数加1次数3?报警程序NYNY返回确认程序再次输新密码两次新密码输入相同?NY 图10 密码设置流程图初始化按开锁键输入密码确

27、认程序所输入密码正确?Y开锁成功开锁程序输入次数加1次数3?报警程序返回NYN 图11 开锁流程图4 调试调试过程如下:首先把密码锁接通电源,使之运行程序,从而置入初始密码,其模拟电路图如图12所示,当前状态为初始状态,这时的初始密码根据程序可作为:012345,此时从键盘上依次按下代表0,1,2,3,4,5的按键在按下代表确认的键,当输入密码正确时模拟图如图13所示,再次输入密码后确认开锁,绿灯(D1)亮起,其模拟图如图14所示。若输入密码错误时,其模拟图如图15所示,当三次都输入错误密码后,红灯(D2)亮起,其模拟图如图16所示。模拟电路图12 (键盘扫描,LCD开)模拟电路图13 (密码

28、第一次输入正确)模拟电路图14 (绿灯(D1)亮起,开锁状态)模拟电路图15 (输入错误密码)模拟电路图16 (三次输入都错,红灯(D2)亮起,上锁状态)5 结束语本设计从经济实用的角度出发,采用美国Atmel公司的单片机AT89C52作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警、开锁等电路并用汇编编写主控芯片的控制程序,研制了一款可以多次更改密码具有报警功能的电子密码锁。设计完全可行可以达到设计目地。使用单片机制作的电子密码锁具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点,可应用于住宅、办公室的保险箱及档案柜等需要防盗的场所,有一定的实用性。该电路设计还具有

29、按键有效提示,输入错误提示,控制开锁电平,控制报警电路,修改密码等多种功能。可在意外泄密的情况下随时修改密码。保密性强,灵活性高,特别适用于家庭、办公室、学生宿舍及宾馆等场所。 参考文献1祖龙起,刘仁杰.一种新型可编程密码锁J.大连轻工业学院学报,2002. 2 李瀚荪.电路分析基础M,北京:高等教育出版社1991.3 童诗白,华成英,模拟电子技术基础M,北京:高等教育出版社,2000.4 王千.实用电子电路大全M,电子工业出版社,2001,p101.5 何立民.单片机应用技术选编M,北京:北京航空大学出版社,1998.6 李华.MCS-51系列单片机使用接口技术M,北京航空航天大学出版社,1

30、993.7 彭为.单片机典型系统设计实例精讲M,北京:电子工业出版社,2006.8 潘永雄.新编单片机原理与应用M,西安:西安电子科技大学出版社,2003.9 董继成.一种新型安全的单片机密码锁J.电子技术,2004. 10 祖龙起,刘仁杰,孙乃凌.一种新颖的电子密码锁J.电子世界,2001.11 李明喜.新型电子密码锁的设计J.机电产品开发与创新,2004. 12 杨茂涛.一种电子密码锁的实现J.福建电脑,2004. 附录主程序:#include#define uchar unsigned char#define uint unsigned intuchar jian16=0xe7,0xee

31、,0xde,0xbe,0xed,0xdd,0xbd,0xeb,0xdb,0xbb,0x7e,0x7d,0x7b,0x77,0xb7,0xd7;uchar Users6=0,1,2,3,4,5; /用户密码uchar Fu_hao=0; /符号输出控制位uchar U_Interrupt=0; /中断标志位 uchar Txet=0;uchar timer_1=0;uchar code table4=Is exiting !;uchar code table7=input new code;uchar code table12=Time is too long;sbit lcden=P34;sb

32、it lcdrs=P35;sbit Warning=P31; /报警指示灯sbit Lock=P30; /开锁指示灯/*/延迟子程序/*void Delay(uint z) uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*/LCD1602驱动子程序/*void write_com(uchar com) /LCD16002控制指令lcdrs=0;P0=com; Delay(5);lcden=1;Delay(5);lcden=0;void write_data(uchar date) /LCD1602输出指令lcdrs=1;P0=date;Delay(5);lc

33、den=1;Delay(5);lcden=0;void init() /LCD1602初始化lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);/*/LCD1602显示子程序/*void Xian_shi(uchar b) uchar i;switch(b) case 0: write_com(0x80+0x4f-Fu_hao); write_data(*); Fu_hao+; ;break; case 1: for(i=0;i16;i+) write_com(0x80+

34、0x40+i); write_data( ); /0x20 Delay(2); Fu_hao=0; ;break; /*/键盘扫描子程序/*uchar keyscan(void) /一次扫描,有键按下才跳出 uchar k,i,j,m,t; while(1) P1=0xff;i=0xfe;if(U_Interrupt=1) return 20; for(j=0;j4;j+) P1=i; k=P1&0xf0; if(k!=0xf0) Delay(5); if(k!=0xf0) t=k|(i&0x0f);for(m=0;m16;m+) /哪个键按下 if(jianm=t) break;while(k!=0xf0) k=P1; k=k&0xf0; Delay(5);while(k!=0xf0) k=P1; k=k&0xf0; return m; /编译键值 i=(i1)|0x01;/*/密码设置子程序/*void She_zhi(void) uchar New,Wei,Zhi,bb6,cc6,i,k,j;uchar code table8=input new again; uchar code table9=Su

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号