数字密码锁毕业设计.doc_第1页
数字密码锁毕业设计.doc_第2页
数字密码锁毕业设计.doc_第3页
数字密码锁毕业设计.doc_第4页
数字密码锁毕业设计.doc_第5页
免费预览已结束,剩余36页可下载查看

下载本文档

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

文档简介

数字密码锁设计作者: 指导老师: 系: 年级专业: 提交日期: 答辩日期: 答辩委员会主席: 评阅人: 年 月 日 摘 要随着电子工业的发展,数字电子技术已经深入到了人们生活的各个层面,而且各种各样的电子产品也正在日新月异地向着高精尖技术发展。由于电子产品的功能不断增加,使用也越来越方便,有些产品已经成为了人们日常生活中不可缺少的必备物品。发展历史悠久的机械式门锁,因其功能单一,安全性能较差等缺点,必将被新一代的电子门锁所代替。新颖的多功能电子门锁,集电子门锁、防盗报警器,门铃等功能于一身,而且还具有定时器呼唤,断电自动报知,显示屋内有无人和自动留言等诸多附加功能。本次设计中,我们的基本目的是实现按预先设定的密码,按下相应的按键可通过继电器将锁打开。本设计是密码锁设计中比较简单的一种,考虑到经济水平的原因设计中扩展的功能还不够强大,但是其主要功能有键盘输入、LCD显示、加密、修改密码、密码检测、错误报警,开锁功能等。除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。本设计简单易懂、使用方便、安全性能高等。设计采用AT89S51单片机为芯片主体,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘,采用触摸键盘方式输入开锁密码,操作方便。触摸式电子锁的输入部分采用触摸开关(键盘输入),外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用,采用 Protel 99软件来画电路图和软硬件调试来完成整个设计。【关键词】AT89S51 AT24C02 数字密码锁 目 录1 数字密码锁概述-12 数字密码锁设计-12.1 数字密码锁设计原理和基本功能- 12.2 主要设计模块-32.2.1 键盘模块-32.2.2 晶振电路模块-52.2.3 复位模块-52.2.4 电源模块-62.2.5 ISP下载口模块-72.2.6 蜂鸣器模块- -82.2.7 AT24C02串行EEPROM的读写模块-93 数字密码锁主要硬件介绍- -133.1 单片机AT89S51介绍-133.2 1602字符型LCD简介-143.3 AT24C02 简介-184 程序设计-204.1 程序流程图-204.2 程序模块介绍-215 设计方案以及原器件的比较选择-235.1 方案论证与比较-235.2 89S51和89C51的比较-255.3 内、外时钟的选择对比-266 仿真及系统调试-277 手工焊接-278 总结与体会-28致谢-28参考文献-29附录-301 数字密码锁概述随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜。电子密码锁是由电子电路控制锁体的新型锁具,它采用触摸键盘方式输入开锁密码,操作方便。触摸式电子锁的输入部分采用触摸开关(键盘输入),其保密性高,使用灵活性好,安全系数高,无活动零件,不会磨损,寿命长等受到了广大用户的亲昵。出于安全、方便等方面的需要许多电子密码锁已相继问世。但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。而且卡片式IC卡还有易丢失等特点,加上其成本一般较高,一定程度上限制了这类产品的普及和推广。在科学技术不断发展的今天,电子密码防盗锁作为防盗卫士的作用也日趋重要。本设计采用单片机S51作为单片机的核心单元,设计了一款具有本机开锁和报警功能的电子密码锁。即简单又适用。2 数字密码锁设计2.1 数字密码锁设计原理及工能数字密码锁以AT89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。以下是单片机最小系统工作原理图: 图2-1 最小系统单片机芯片配以必要的外部器件,一般包括电源供入及电源开关、复位电路、晶振、输入输出电路等就能构成最小系统。 数字密码锁的基本功能:本设计使用AT89S51实现基于单片机的数字密码锁的设计,其主要具有如下功能:(1)设置密码,密码通过键盘输入,若密码正确,则将锁打开。(2)密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。(3)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。图2-2 单片机控制方案2.2 主要设计模块数字密码锁的设计主要由三部分组成:44矩阵键盘接口电路、密码锁的控制电路、输出显示电路。另外系统还有LED提示灯,报警蜂鸣器等。密码锁设计的关键问题是实现密码的输入、正确、更改、开锁等功能:(1) 密码输入功能:按下一个数字键,一个“”就显示在最右边的数码管上,同时将先前输入的所有“”向左移动一位。(2) 密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。(3)密码更改功能:将输入的值作为新的密码。(4)开锁功能:当按下开锁键,系统将输入密码进行检查核对,如果输入密码正确锁将打开,否则不打开。2.2.1 键盘模块图2-3 44行列式矩阵键盘排列 图2-4 44行列式矩阵键盘原理图行列式键盘也即矩阵式键盘,它由行和列组成,在每个行列的交叉点上放置一个按键,这样44行列式键盘共需要16个键盘组成;具体的电路原理图如上图键盘模块的作用是让用户输入或修改设定固定的时间段。键盘模块采用4X4标准的16键矩阵键盘模式,键盘的行线从上到下分别连到单片机的P2.0-P2.3口,而键盘的列线从左到右分别连接到单片机的P2.4-P2.7口,按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。平时无按键时,行线处于高电平状态;当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。列线电平如果为低,则行电平为低;列线电平如果为高,则行线电平亦为高。这一点是识别矩阵键盘按键是否被按下的关键所在,由于矩阵键盘中行、列线为多键共用,各按键均影响键所在行和列的电平,因此各个按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合链的位置。2.2.2 晶振电路模块图 2-5 晶振电路 在引脚X1和X2跨接晶振Y1和微调电容C2、C3就构成了内部振荡方式,由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器时钟脉冲。其中Y1是可插拔更换的,默认值是12MHZ2.2.3 复位模块 图2-6 复位电路手动复位是最小系统常用的功能,系统板采用上电自动复位和按键手动复位方式。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。其电路原理图如上图所示。上电自动复位通过外部复位电容C4充电来实现。按键手动复位是通过复位端经电阻和Vcc接通而实现的。二极管用来防止反相放电。2.2.4 电源模块(a) USB和外部电压图2-7(a) 电源模块电源提供2种供电方式,USB和外部电压。外部电源供电可以是7到15V,因为板子上有7805降压,S22是一个6脚的自锁开关,由图可知道任何情况下只会有一种方式供电(即互相排斥)。注意:下载程序时,要用USB供电,不能用外部电源。(b) 变压器供电图2-7(b) 电源模块从图上看,变压器输入端经过一个保险连接电源插头,如果变压器或后面的电路发生短路,保险内的金属细丝就会因大电流引发的高温溶化后断开。变压器后面由4个二极管组成一个桥式整流电路,整流后就得到一个电压波动很大的直流电源,所以在这里接一个1000uF/25V的电解电容。 三端稳压器是一种集成电路元件,内部由一些三极管和电阻等构成,在分析电路时可简单的认为这是一个能自动调节电阻的元件,当负载电流大时三端稳压器内的电阻自动变小,而当负载电流变小时三端稳压器内的电阻又会自动变大,这样就能保持稳压器的输出电压保持基本不变。 因为我们要输出5V的电压,所以选用7805,7805前面的字母可能会因生产厂家不同而不同。LM7805最大可以输出1A的电流,内部有限流式短路保护,短时间内,例如几秒钟的时间,输出端对地(2脚)短路并不会使7805烧坏,当然如果时间很长就不好说了,这跟散热条件有很大的关系。 虽然7805最大电流是一安培,但实际使用一般不要超过500mA,否则会发热很大,容易烧坏。一般负载电有200mA以上时需要散热片。2.2.5 ISP下载口模块图2-8 ISP下载口这是常见的10针ISP接口,配合USBISP编程下载软件便可以对AT89S系列的单片机下载程序,ISP下载时,最好把LCD拔下,程序下载完后插上,有指示灯的。以下是提供的ISP下载线的原理图。图2-9 ISP下载口原理图2.2.6 蜂鸣器模块图2-10 蜂鸣器原理图使用蜂鸣器时,需要把J10短接,8550是PNP,用于电流放大,当P3.7输出低电平时,蜂鸣器响。具体是单片机控制,通过三极管驱动,发光二极管采用高亮度发光二极管,有红和绿2种,红灯亮表示输入密码不正确,绿灯亮表示密码正确,且已控制电路实现开锁。蜂鸣器采用5V可驱动蜂鸣器,用于对用户的操作作出相应的提示,用户每输入一个有效键,则蜂鸣器响一短声以提示;若输入密码错误,则蜂鸣器响长声,发出报警声信号。2.2.7 AT24C02串行EEPROM的读写模块 IC总线是一种用于IC器件之间连接的二线制总线。它通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件:不管是单片机、存储器、LCD驱动器还是键盘接口。1IC总线的基本结构采用IC总线标准的单片机或IC器件,其内部不仅有IC接口电路,而且将内部各单元电路按功能划分为若干相对独立的模块,通过软件寻址实现片选,减少了器件片选线的连接。CPU不仅能通过指令将某个功能单元电路挂靠或摘离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统的既简单又灵活的扩展与控制。IC总线接口电路结构如图2-11所示。图2-11 总线接口2双向传输的接口特性传统的单片机串行接口的发送和接收一般都各用一条线,如MCS51系列的TXD和RXD,而IC总线则根据器件的功能通过软件程序使其可工作于发送或接收方式。当某个器件向总线上发送信息时,它就是发送器(也叫主器件),而当其从总线上接收信息时,又成为接收器(也叫从器件)。主器件用于启动总线上传送数据并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。I2C总线的控制完全由挂接在总线上的主器件送出的地址和数据决定。在总线上,既没有中心机,也没有优先机。总线上主和从(即发送和接收)的关系不是一成不变的,而是取决于此时数据传送的方向。SDA和SCL均为双向I/O线,通过上拉电阻接正电源。当总线空闲时,两根线都是高电平。连接总线的器件的输出级必须是集电极或漏极开路,以具有线“与”功能。IC总线的数据传送速率在标准工作方式下为100kbit/s,在快速方式下,最高传送速率可达400kbit/s。3IC总线上的时钟信号在IC总线上传送信息时的时钟同步信号是由挂接在SCL时钟线上的所有器件的逻辑“与”完成的。SCL线上由高电平到低电平的跳变将影响到这些器件,一旦某个器件的时钟信号下跳为低电平,将使SCL线一直保持低电平,使SCL线上的所有器件开始低电平期。此时,低电平周期短的器件的时钟由低至高的跳变并不能影响SCL线的状态,于是这些器件将进入高电平等待的状态。当所有器件的时钟信号都上跳为高电平时,低电平期结束,SCL线被释放返回高电平,即所有的器件都同时开始它们的高电平期。其后,第一个结束高电平期的器件又将SCL线拉成低电平。这样就在SCL线上产生一个同步时钟。可见,时钟低电平时间由时钟低电平期最长的器件确定,而时钟高电平时间由时钟高电平期最短的器件确定。4数据的传送在数据传送过程中,必须确认数据传送的开始和结束。在IC总线技术规范中,开始和结束信号(也称启动和停止信号)的定义如图2-12所示。当时钟线SCL为高电平时,数据线SDA由高电平跳变为低电平定义为“开始”信号;当SCL线为高电平时,SDA线发生低电平到高电平的跳变为“结束”信号。开始和结束信号都是由主器件产生。在开始信号以后,总线即被认为处于忙状态;在结束信号以后的一段时间内,总线被认为是空闲的。 图2-12 数据传输图IC总线的数据传送格式是:在IC总线开始信号后,送出的第一个字节数据是用来选择从器件地址的,其中前7位为地址码,第8位为方向位(R/W)。方向位为“0”表示发送,即主器件把信息写到所选择的从器件;方向位为“1”表示主器件将从从器件读信息。开始信号后,系统中的各个器件将自己的地址和主器件送到总线上的地址进行比较,如果与主器件发送到总线上的地址一致,则该器件即为被主器件寻址的器件,其接收信息还是发送信息则由第8位(R/W)确定。在IC总线上每次传送的数据字节数不限,但每一个字节必须为8位,而且每个传送的字节后面必须跟一个认可位(第9位),也叫应答位(ACK)。数据的传送过程如图2-13所示。每次都是先传最高位,通常从器件在接收到每个字节后都会作出响应,即释放SCL线返回高电平,准备接收下一个数据字节,主器件可继续传送。如果从器件正在处理一个实时事件而不能接收数据时,(例如正在处理一个内部中断,在这个中断处理完之前就不能接收IC总线上的数据字节)可以使时钟SCL线保持低电平,从器件必须使SDA保持高电平,此时主器件产生1个结束信号,使传送异常结束,迫使主器件处于等待状态。当从器件处理完毕时将释放SCL线,主器件继续传送。图2-13 传送数据图当主器件发送完一个字节的数据后,接着发出对应于SCL线上的一个时钟(ACK)认可位,在此时钟内主器件释放SDA线,一个字节传送结束,而从器件的响应信号将SDA线拉成低电平,使SDA在该时钟的高电平期间为稳定的低电平。从器件的响应信号结束后,SDA线返回高电平,进入下一个传送周期。IC总线还具有广播呼叫地址用于寻址总线上所有器件的功能。若一个器件不需要广播呼叫寻址中所提供的任何数据,则可以忽略该地址不作响应。如果该器件需要广播呼叫寻址中提供的数据,则应对地址作出响应,其表现为一个接收器。5总线竞争的仲裁总线上可能挂接有多个器件,有时会发生两个或多个主器件同时想占用总线的情况。例如,多单片机系统中,可能在某一时刻有两个单片机要同时向总线发送数据,这种情况叫做总线竞争。IC总线具有多主控能力,可以对发生在SDA线上的总线竞争进行仲裁,其仲裁原则是这样的:当多个主器件同时想占用总线时,如果某个主器件发送高电平,而另一个主器件发送低电平,则发送电平与此时SDA总线电平不符的那个器件将自动关闭其输出级。总线竞争的仲裁是在两个层次上进行的。首先是地址位的比较,如果主器件寻址同一个从器件,则进入数据位的比较,从而确保了竞争仲裁的可靠性。由于是利用IC总线上的信息进行仲裁,因此不会造成信息的丢失。6. IC总线接口器件目前在视频处理、移动通信等领域采用IC总线接口器件已经比较普遍。另外,通用的IC总线接口器件,如带IC总线的单片机、RAM、ROM、A/D、D/A、LCD驱动器等器件,也越来越多地应用于计算机及自动控制系统中。3 数字密码锁主要硬件介绍3.1 单片机AT89S51介绍AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。表1 89S51的主要功能特性兼容MCS-51指令系统4k可反复擦写(1000次)ISP Flash ROM32个双向I/O口4.5-5.5V工作电压2个16位可编程定时/计数器时钟频率0-33MHz全双工UART串行中断口线128x8bit内部RAM2个外部中断源低功耗空闲和省电模式中断唤醒省电模式3级加密位看门狗(WDT)电路软件设置空闲和省电功能灵活的ISP字节和分页编程双数据寄存器指针AT89S51是常用的一种单片机,它将计算机的功能都集成到这个芯片内部去了,就这么一个小小的芯片就能构成一台小型的电脑,因此叫做单片机。图3-1 AT89S51单片机实物图3.2 1602字符型信号真值表表2信号读写使能真值表RSR/WE功能00下降沿写指令代码01高电平读标志TAC码10下降沿写数据11高电平读数据(1)1602LCD引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明表3-1 引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。(4)显示电路图图2-5 LCD1602本系统设计的显示电路使用LCD1602,使用时把液晶往相应的接口一插就可以了(最好关闭点阵管,即跳线帽插到“OFF”)。短接J23则有背光,否则则无。电路设定:当程序检测在5分钟内没有按键操作的时候,就关闭显示。这个功能使用程序来实现的,一旦没有按键动作就启动一个定时器,检测在5分钟内没有按键动作的时候,启动一个程序,关闭显示,这样可以达到节省电能的目的。从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,达到显示的目的。移位寄存器74HC164还兼作数码管的驱动,插头1(header1)接电源,插头2(header2)接数据和脉冲输出端。电路中的三个整流管D1D3的作用是降低数码管的工作电压,增加其使用寿命。1602采用标准的16脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第1516脚:空脚 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”3.3 AT24C02 简介图3-4 AT24C02实物图图3-5 AT24C02内部原理图AT24C02系列为较为典型的串行EEPROM,简称IIC总线式串行器件。AT24C02串行器件不仅占用很少的资源和I/O线,而且体积大大缩小,AT24C02同时具有工作电源宽、抗干扰能力强、功耗低、数据不易丢失和支持在线编程等特点。IIC总线是一种用于IIC器件之间连接的二线制总线。它通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件:不管是单片机、存储器、LCD驱动器还是键盘接口。AT24C02是美国ATMEL公司的低功耗CMOS串行EEPROM,它是内含2568位存储空间,具有工作电压宽(2.55.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。各引脚功能如下。A2A0:这3个引脚是器件地址选择引脚。将这3个引脚配置成不同的编码值,在同一串行总线上最多可扩充8片同一容量或不同容量的24系列串行EEPROM芯片。SDA:串行数据输入输出口,是一个双向的漏极开路结构的引脚,容量扩展时可以将多片24系列的SDA引脚直接相连,实际使用时该引脚必须接一个5.1k 的上拉电阻。SCL:串行移位时钟控制端。写入时上升沿起作用,读出时下降沿起作用。TEST:硬件写保护控制引脚。当其为低电平时,正常写操作,高电平时,对EEPROM部分存储区域提供硬件写保护功能,即对被保护区域只能读不能写。GND:接地。VCC:接+5V电压。4 程序设计4.1 程序流程图4.2 程序模块介绍该计程计价系统的软件设计分为以下几个模块:(1) 主程序模块主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。主程序的流程图如图3-2所示。(2)键盘扫描及识别子程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。其程序流程如下图所示.图3-8 键盘扫描及识别子程序(3)调电存储服务程序当比较密码的时候,需要读AT24C02程序,将存储在芯片内的数据读到RAM中,然后和输入的密码相比较。当修改密码的时候,需要把输入的密码保存到AT24C02中,其程序流程如图3-2所示.(4)显示子程序由于是分屏显示数据,所以就要用到5个显示子程序,分别是:关闭状态显示子程序(DIS_A)、开锁状态显示子程序(DIS_B)、密码输入及修改状态显示子程序(DIS_C)、密码输入错误后的提示子程序(DIS_D)。密码在规定的时间内输入错误次数超过3次后的锁定状态显示子程序(DIS_E).LCD显示器主显示几个字符,给用户提供指示见图所示。 图39 a关闭状态 图39 b 开锁状态 图39 c 密码输入及修改状态 图31 d 密码输入错误后的提示 图31 e密码在规定的时间内输入错误次数超过3次后的锁定状态5 设计方案以及原器件的比较选择5.1 方案论证与比较设计本课题时构思了两种方案:一种是用以AT89s51为核心的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。考虑到数字电路方案原理过于简单,而且不能满足现在的安全需求,所以本文采用前一种方案。方案一:采用一种是用以AT89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图2-2所示。 方案二:采用数字电路控制。其原理方框图如图52 所示。图52 数字密码锁电路方案采用数字密码锁电路的好处就是设计简单。用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用前一种方案。5.2 89S51和89C51的比较MCS-51单片机是美国INTE公司于1980年推出的产品,典型产品有 8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在, MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51等),各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。有些文献甚至也将8051泛指MCS-51系列单片机,8051是早期的最典型的代表作,由于MCS-51单片机影响极深远,许多公司都推出了兼容系列单片机,就是说MCS-51内核实际上已经成为一个8位单片机的标准。其他的公司的51单片机产品都是和MCS-51内核兼容的产品而以。同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51, PHILIPS(菲利浦),和WINBOND(华邦)等,我们常说的已经停产的89C51指的是ATMEL公司的 AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000次)存储器取带了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。不过在市场化方面,89C51受到了PIC单片机阵营的挑战,89C51最致命的缺陷在于不支持ISP(在线更新程序)功能,必须加上ISP功能等新功能才能更好延续MCS-51的传奇。89S51就是在这样的背景下取代89C51的,现在,89S51目前已经成为了实际应用市场上新的宠儿,作为市场占有率第一的Atmel目前公司已经停产AT89C51,将用AT89S51代替。89S51在工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。89SXX可以像下兼容89CXX等51系列芯片。同时,Atmel不再接受89CXX的定单,大家在市场上见到的89C51实际都是Atmel前期生产的巨量库存而以。 89S51相对于89C51增加的新功能包括:- 新增加很多功能,性能有了较大提升,价格却基本不变,甚至比89C51更低!- ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。- 工作频率为33MHz,大家都知道89C51的极限工作频率只有24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。- 具有双工UART串行通道。- 内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。- 双数据指示器。- 电源关闭标识。- 全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。- 兼容性方面:向下完全兼容51全部字系列产品。比如8051、89C51等等早期MCS-51兼容产品。也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是8051还是89C51还是MCS-51等等),在89S51上一样可以照常运行,这就是所谓的向下兼容。5.3 内、外时钟的选择对比内部方式:在XTAL1和XTAL2(都是引脚)端外接石英晶体作定时元件,内部反相放大器自激振荡,产生时钟。外部方式:可以通过XTAL2接入外部脉冲,产生时钟(XTAL1接地)。两种方式的区别:内部方式中,需要的主要元件只有晶振(和电容),而处理晶振信号产生振荡的元件在单片机内;但外部方式所需的晶振、电容和处理晶振信号产生振荡的元件都在单片机外,所以自由性较大,需要一些特殊运用时比较方便(比如像xxdz2008这位兄弟所说的)。当两个芯片需要严格同步时,就要使用外部时钟信号,否则在应用上两种方式没区别;6 仿真及系统调试2 仿真及系统调试本设计用Proteus等仿真软件操作,在徐老师的指导下仿真调试。利用Proteus实现了对数字密码锁的仿真,达到了良好的效果。该仿真电路比较接近实际,加上电源电路和时钟电路,就可以制作出实际的数字密码锁,并且该系统升级和维护都比较方便,不怕掉电。通过前期仿真缩短了开发周期,降低了开发成本,达到了事半功倍的成效。步骤:1.在进行Proteus仿真时,单片机需要加载程序,其所加载的程序为.HEX文件。本设计利用Keil Uvision2,在新建Keil项目时选择AT89S51单片机作为CPU。将预先编写并编译通过的C语言程序导入,在“Options For HEX File”,编译链接后就可以生成.HEX文件。在Proteus ISIS中,选中AT89S51并单击鼠标左键对AT89S51进行设置,设置单片机时钟频率为12MHz,并按照正确的路径加载.HEX文件。对单片机设置完毕后,就可以进行仿真了。仿真过程中如有硬件问题,可在ProteusISIS中直接修改;如有软件问题,可在Keil Uvisiong2中直接修改,并通过Keil与Proteus 的联合调试就可以得到满意的结果。2.单片机接手4*4键盘的键值,并与储存在EEPROM中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许操作人员重新输入密码,最多可输入3次;如果3次都不正确,则密码锁锁定,并响起警报,一定时间内无法输入。3.在系统中预先设定密码为“000000”6位数字,4*4键盘中的键有清除密码数字的作用,按下就可以清除一位数字,也有一个确认键,当仿真开始时,1602液晶交替显示“input password please Press 1 . change password please Press2”。按下“1”键,液晶显示“input password”,输入6位密码后,按下确认键输入,通过与EEPROM中存储的密码相比较,如果密码正确,则显示“correct”,电磁执行器开锁,如果密码错误,则显示“wrong password”,允许操作人员重新输入密码,最多可以输入3次,如果3次都不正确,则密码锁锁定,并响报警,一定时间内无法输入。按下“2”键,可以修改密码,液晶显示“Input old password”。如果输入的旧密码错误,则允许操作人员重新输入旧密码,最多可输入3次;如果3次都不正确,则密码锁锁定,并响警报。如果输入旧密码正确,系统显示“password correct”并要求输入新密码,当输入新密码后,再重复输入一次,当输入密码的位数少于6位时,系统提示“error”。系统返回原始界面。如果输入正确,按下确认键输入。系统判断两次输入均正确无误后。EEPROM储存新密码,系统提示“password has been changed”。至此已经完成了密码的修改工作,以后就以新密码作为输入判断的标准。运行时,IIC调试界面将会出现(如果界面没有自动弹出,可以通过Debug菜单调出)。界面可以分为几个区域,它不仅可以监视IIC总线上的数据,还可以分主机或从机的身份仿真总线。(1) 输入数据显示:主窗口区域显示在总线上的所有活动记录,用户可以查看数据每一位的传输,当系统以字节或更长数据为单位观察时,其序列起止时间被记录;当以位为单位观察时,引脚的逻辑状态和位标号显示在时间旁;当箭头显示不可见时,表明传输是双向的;如果有非法的序列,则箭头上会出现问号标志。(2) 预定义序列表:预定义序列表在对话框的右上角,该表显示了在SCL引脚控制下的SDA引脚传送的预编制的一系列数据。用户可以在序列输入增加预编数据。当仿真正在进行时,双击事先定义的序列会把该序列添加到缓冲器、队列表后用于总线上的传输。注意:传送的时间决定于总线的特性,例如此时的总线是主机还是从机等。(3) 缓冲、队列的序号表:缓冲序列表位于窗口的左下角,用于显示在下一个有效时刻IIC将要传送的一系列数据,用户可以在序列输入窗增加预编数据。(4) 序列输入窗口:该窗口位于界面右下角,允许用户输入序列,即可以将序列放在预编程的序列窗或立即放在输入队列,以便在下一个有效的时刻传送到SDA引脚。(5) 控制按钮:ADD按钮:向预定义序列表输送在Sequence Entry Box 定义的序列,为以后的操作使用;Delete按钮:删除在预定义序列表中的序列;Queue按钮:从Sequence Entry Box 或Predefined Sequence List 中排列已被选项,被排列的选项会出现在Buffered/Queued Sequences List .因为本装置要实现密码检测、密码设定和声光提示等功能,要求微处理器必须能提供至少21个IO口,而且由于装置体积的限制,无法使用锁存器扩展IO口和使用外部程序存储器,所以选用MCS一51系列的89S51单片机作为这次设计电子密码锁的微处理器并且采用二个按键实现密码的输入功能大大减少了对单片机外部引脚资源51系列单片机为标准型的8位单片机,可实现向外部接口电路的扩展,实现微控制器完善的控制功能该系列单片机由于采用了CMOS技术制造而成,具有集成度高、速度快和功耗低等优点而89S51也是该系列使用较为频繁的单片机,具有4k的EEPROM,128*8字节的RAM,2个定时计数器,6个中断和32个IO口由于使用EEPROM作为程序存储器,89C51可以通过电擦除方法重复擦写上万次,所以特别适合研究开发阶段使用除此之外,该单片机拥有程序保密的功能,保证了单片机内的程序不会被读取盗用7 手工焊接焊接步骤烙铁焊接的具体操作步骤可分为五步,称为五步工程法,要获得良好的焊接质量必须严格的操作。按上述步骤进行焊接是获得良好焊点的关键之一。在实际生产中,最容易出现的一种违反操作步骤的做法就是烙铁头不是先与被焊件接触,而是先与焊锡丝接触,熔化的焊锡滴落在尚末预热的被焊部位,这样很容易产生焊点虚焊,所以烙铁头必须与被焊件接触,对被焊件进行预热是防止产生虚焊的重要手段。操作后检查(1)用完烙铁后应将烙铁头的余锡在海绵上擦净。(2)必须将烙铁座上的锡珠、锡渣、灰尘等物清除干净,然后把烙铁放在烙铁架上。(3)将清理好的电烙铁放好。 8 总结与体会 以上为实习期间所设计的电子密码锁电路,它经过多次修改和整理,以是一个比较不错的设计,可以满足人们的基本要求。本设计由于他人不知道密码的位数,而且还要求在规定的时间内按一定的顺序开锁,所以他人开锁的几率很小;如果有好的意见,希望老师给以支持。通过这

温馨提示

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

评论

0/150

提交评论