基于单片机实现电子密码锁的设计综合实验论文_第1页
基于单片机实现电子密码锁的设计综合实验论文_第2页
基于单片机实现电子密码锁的设计综合实验论文_第3页
基于单片机实现电子密码锁的设计综合实验论文_第4页
基于单片机实现电子密码锁的设计综合实验论文_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

攀枝花学院本科综合实验论文基于单片机实现电子密码锁的设计学生姓名学生学号_院(系)_年级专业_指导教师_摘要本设计是基于51系列的单片机进行的电子密码锁设计,采用的是单片机作为数据处理主控芯片。电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。应用较广的电子密码锁是以芯片为核心,通过编程来实现的。电子密码锁的设计主要由四部分组成矩阵键盘、以AT89C52芯片为核4心的密码锁的数据处理及控制电路、掉电情况下依然能保存密码的EEPROM存储器芯片,输出七段显示电路。另外系统还有LED提示灯,报警蜂鸣器,单片机复位电路等。电子密码锁设计的关键问题是实现密码的输入、清除、开锁、更改等功能。同时该密码具有设计方法合理,简单易行,成本低,安全实用等特点,符合住宅、办公室等场所的用锁要求,具有推广价值。关键词单片机,密码锁,44矩阵键盘,EEPROM存储芯片,AT89C52ABSTRACTTHISDESIGNISBASEDON51SERIESSINGLECHIPELECTRONICCOMBINATIONLOCKDESIGN,USESASINGLECHIPMICROCOMPUTERASTHEMASTERCONTROLCHIPDATAPROCESSINGELECTRONICCOMBINATIONLOCKISAPASSWORDORTOCONTROLCIRCUIT,SOASTOCONTROLMECHANICALSWITCHESCLOSED,LOCK,LOCKTASKOFELECTRONICPRODUCTSITSALOTOFMOREPHYLETIC,HASSIMPLECIRCUITPRODUCTS,ALSOHASAHIGHCOSTPERFORMANCEPRODUCTSBASEDONTHECHIPWIDELYUSEDELECTRONICCODEDLOCKBASEDONCHIPASTHECORE,THROUGHTHEPROGRAMMINGELECTRONICCOMBINATIONLOCKDESIGNISMAINLYCOMPOSEDOFFOURPARTSTHEMATRIXKEYBOARDCOMBINATIONLOCK,AT89C52CHIPASTHECOREOFDATAPROCESSINGANDCONTROLCIRCUIT,THEELECTRICBLOCKCANSTILLSAVEPASSWORDEEPROMMEMORYCHIPS,SEVENSEGMENTDISPLAYCIRCUITOUTPUTADDITIONALSYSTEMANDLEDLIGHTS,ALARMBUZZER,SINGLECHIPMICROCOMPUTERRESETCIRCUIT,ETCELECTRONICCOMBINATIONLOCKDESIGNISTHEKEYPROBLEMOFPASSWORDINPUT,CLEAR,LOCK,CHANGES,ETCATTHESAMETIME,THEPASSWORDISDESIGNMETHODISREASONABLE,SIMPLE,LOWCOST,SAFEANDPRACTICALCHARACTERISTICS,CONFORMTOTHEREQUIREMENTSOFTHERESIDENTIAL,OFFICEANDOTHERPLACESWITHLOCKS,HASPROMOTIONVALUEKEYWORDSMICROCONTROLLER,TRICKLOCK,THE44MATRIXKEYBOARD,EEPROMMEMORYCHIPS,AT89C52目录摘要IABSTRACTII1绪论111本课题研究的背景及意义112国内外研究现状、水平213本课题的发展趋势214本课题的研究内容215本题目所要实现的设计任务3151本设计实现的技术指标3152本设计的创新点32方案分析与选择421设计方案422方案论证53系统的硬件设计与实现631电路设计框图632主要芯片介绍6321AT89C52单片机简介6322存储芯片AT24C0211323LM032L显示器1233单片机最小系统设计1334键盘输入模块1335密码存储模块1436晶振部分1437显示模块1538警报部分164系统的软件设计1741软件的设计架构1742系统仿真电路图1743显示模块仿真电路图18431开锁显示仿真18432修改密码显示仿真1944程序代码205结束语21参考文献22附录A系统电路图23附录B系统程序24致谢431绪论11本课题研究的背景及意义随着社会物质财富的日益增长和人们生活水平的提高,安全防盗已成为现代居民最关心的社会问题之一。而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁着长期以来研制的主题。目前,最常用的锁是20世纪50年代意大利人设计的机械锁,其结构简单,使用方便,价格便宜。但在使用中暴露了很多缺点一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。据统计,每4000把锁中就有两把锁的钥匙齿牙相同或类似,故安全性低。根据国外的统计资料,装有电子防盗装置的商业区或居民区盗窃犯罪率平均下降30左右。二是钥匙一旦丢失,无论谁捡到都可以将锁打开。三是机械锁的材料大多为黄铜,质地较软,容易损坏。四是机械锁钥匙易于复制,不适于诸如宾馆等公共场合使用。出于安全,方便等方面的需要,许多智能锁(如指纹辨别,IC卡识别)已相继问世,但这类产品的特点是针对特定指纹或有效卡,只能使用于保密要求高且仅供个人使用的箱,柜,房间。另外,卡片式的IC卡易丢失,加上其成本一般较高,在一定程度上限制了这类产品的普及和推广。随着人们生活水平的提高,电子密码防盗作为防盗卫士的作用越来越重要。电子密码锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。如果采用4位密码,则密码组合可达到10000,每增加1位,密码组合就增加10倍,同时可设多组密码,其中一组是管理密码,可以增加用户密码又清除所有用户的密码。笔者设计的电子密码防盗锁利用串行EEPROM存储器,将设计的电子密码存入EEPROM中,从而克服了旧式电子密码锁电路断电后所设置密码丢失的缺点。另外,该锁还具有报警等辅助功能,是典型的机电一体化产品。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械锁,克服了机械式安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现勒带位处理器的智能密码锁,它除具有电子密码锁的功能外,还引入勒智能化管理,专家分析等功能,从而使密码锁具有很高的安全性,可靠性,应用日益广泛。鉴于目前的技术水平与市场的接收程度,电子密码锁是电子防盗产品的主流。12国内外研究现状、水平电子密码锁的种类繁多,例如数码锁、指纹锁、磁卡锁、IC卡锁、生物锁等,但比较实用的还是按键式电子密码锁。20世纪80年代后,随着电子锁专用集成电路的出现,电子锁体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,而且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显的进展。目前,在西方发达国家,密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国密码锁整体水平尚处在国际70年代左右,电子密码锁的成本还很高,市场上仍以按键电子密码锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个工厂供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过不懈努力,使电子密码锁在我国也能得到广泛应用。13本课题的发展趋势随着电子技术的发展,人类不断研究,不断创新纪录。智能电子密码锁国内外发展现状,当今智能电子密码锁发展已经到了非常高的境界,由于电子元件特别是单片机应用在这几年得到空前发展,无论功能性,稳定性都比较全面,在保密方面已做到人眼识别,指纹识别,人声识别基本上电影上有的现实也有。在国外发展比较早,所以应用也比较广泛,主要在家庭装较贵重地方,银行,保险柜等应用较多,在国内这方面发展也较快,不管自己开发或是引进都有,在重要地方应用也较多,由于价钱比普通弹子锁较贵,早几年应用较少,现在越来越普及到平常化,未来的发展也会越来越被大众采用,由于它的功能、安全是弹子锁无法相比的。发展前境是非常大的。14本课题的研究内容基于单片机的电子密码锁的总体选型,矩阵键盘控制,AT24C02掉电存储,串口显示电路,开锁控制电路,报警控制电路,单片机密码锁软件总体选型。电子密码锁的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52单片机,LCD液晶显示屏,及矩阵键盘控制电路等组成,在单片机选择上采用AT89C52单片机,ATMEL公司生产的低电压,高性能CMOS8位单片机片内含8KBYTES的可反复擦写的只读程序存储器(PEROM)和256BYTES。的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和FLASH由存储单元,功能强大AT89C52单片适用于许多较为复杂控制应用场合。显示电路则采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见。实时时钟电路采用DS1302实时时钟芯片,DS1302的使用寿命长,误差小。对于数字电子密码锁采用直观的数字显示。软件方面主要包括1602液晶显示程序、延迟调整程序、矩阵按键程序等。程序采用C语言编写,以便跟简单的实现调整时间。所有程序编写完成后,在KEIL软件中进行调试,确定没有问题后,在PROTEUS软件中嵌入单片机内进行仿真。15本题目所要实现的设计任务1、设置初始密码6位,密码通过键盘输入,若密码正确,则将锁打开;2、密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时需要二次确认,以防止误操作;3、报警、锁定键盘功能。密码输入错误时显示器会出现错误提示,并具有蜂鸣器报警声。如密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘;4、能够用LCD或者LED实时显示;5、锁可以用发光二极管或继电器模拟;6、完成硬件和软件设计。151本设计实现的技术指标显示电子密码锁不仅能显示密码,还能显示输入提示及错误提示密码数据由LCD液晶显示屏显示152本设计的创新点有备份电源,当发生停电或者电池电量耗尽等情况时,它通过内置的纽扣电池给密码锁供电以保持正确的数据,但关闭其他部分的电源,这样在来电或者更换电池之后用户不必重新设定密码。2方案分析与选择21设计方案方案一图21方案一设计框图此方案采用数字电路控制。方案二图22方案二设计框图此方案采用一种是用以AT89C52为核心的单片机控制方案。22方案论证方案一,采用数字密码锁电路的好处就是设计简单。用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。电路由两大部分组成密码锁电路和备用电源UPS,其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。方案二,采用一种是用以AT89C52为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。结论由以上分析可知,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以采用后一种方案。3系统的硬件设计与实现31电路设计框图本设计主要由单片机AT89C52、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可。其系统原理框图如图31所示。图31系统原理框图各模块功能如下1键盘输入模块分为密码输入按键与几个功能按键,用于完成密码锁输入功能。2液晶显示模块用于完成对系统状态显示及操作提示功能。3密码存储模块用于完成掉电存储功能,使修改的密码断电后仍能保存。4开锁电路应用继电器及发光二极管模拟开锁,完成开锁及开锁提示。5报警电路密码输入错误会发出蜂鸣声。32主要芯片介绍321AT89C52单片机简介AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52是一个低电压,高性能CMOS8位单片机,片内含8KBYTES的可反复擦写的FLASH只读程序存储器和256BYTES的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS51指令系统,片内置通用8位中央处理器和FLASH存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。主要功能特性1)兼容MCS51指令系统2)8K可反复擦写1000次)FLASHROM3)32个双向I/O口4)256X8BIT内部RAM5)3个16位可编程定时/计数器中断6)时钟频率024MHZ7)2个串行中断8)可编程UART串行通道9)2个外部中断源共6个中断源10)2个读写中断口线3级加密位11)低功耗空闲和掉电模式12)软件设置睡眠和唤醒功能AT89C52各引脚功能及管脚电压概述AT89C52P为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8XC52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHZ晶振。RST/VPD(9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40脚)和VSS(20脚)为供电端口,分别接5V电源的正负端。P0P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(3239脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。其引脚图如图32所示图32AT89C52的引脚图VCC供电电压VSS接地。P0口在不接外存储器与不扩展I/O接口时,可作为准双向输入/输出接口。在接有片外存储器或扩展I/O接口时,分时复用为低8位地址总线和双向数据总线。P1口可作为准双向输入/输出接口,对于52子系列,P10和P11还可分别作为定时/计数器2的计数脉冲输入端T2和外部控制端T2EX。P2口可作为准双向输入/输出接口,在接有片外存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,详见表31。表31P3口的第二功能引脚号功能特性P30RXD串行输入口)P31TXD串行输出口)P32外部中断0请求输入端)0INTP33外部中断1请求输入端)P34T0定时器/计数器0计数脉冲输入端)P35T1定时器/计数器1计数脉冲输入端)P36片外数据存储器写选通信号输出端WRP37片外数据存储器读选通信号输出端)RDRST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是每当访问外部数据存储器时将跳过一个ALE脉冲。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。需注意的是如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。FLASH存储器编程时,该引脚加上12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。XTAL1振荡器反相放大器的及内部时钟发生器的输入端。XTAL2振荡器反相放大器的输出端。中断系统(1)中断源AT89C52是一个多中断源单片机,有五个中断源外部中断0、定时器0中断、外部中断1、定时器1中断和串行接受或发送中断。各中断源的中断处理程序入口地址如下表32所示。表32中断向量表2中断控制中断的开发或禁止是由中断允许寄存器IE控制的。IE的格式如下EAESET1EX1ET0EX0EA中断允许位。EA1,开放总中断,而各个中断源的中断请求允许还是中断源入口地址外部中断00003H定时器0000BH外部中断10013H定时器1001BH串行口0023H禁止,分别由各自的中断允许位确定;EA0,禁止一切中断。ES串行口中断允许位。ET1和ET0分别是定时器T1和T0的中断允许位。EX1和EX0分别是外部中断1(INT1)和外部中断0(INT0)的中断允许位。中断源优先级控制中断优先级寄存器IP。AT89C52单片机有高低两个中断优先级,5个中断源可由程序设置为高优先级中断,实现二级中断嵌套。一个正在执行的低优先级中断源的中断服务程序,能被高优先级中断源所中断,但不能被同级别的另一个中断源所中断。AT89C52的5个中断源的优先级由中断优先级寄存器的IP的相应位设定。IP的格式如许下PSPT1PX1PT0PX0PS是串行口中断优先级控制位。PT1和PT0分别是定时器T1和T0的中断优先级控制位。PX1和PX0分别是外部中断INT1和INT0的中断优先级控制位。中断优先级控制位的意义是0设定为低优先级中断源;1设定为高优先级中断源。如果同优先级的多个中断请求同时出现时,则按照AT89C52单片机的CPU查询次序确定哪个中断请求被响应,起查询次序为IE0、TF0、IE1、TF1、R1或T13定时系统在控制系统中,常常要求有一些实时时钟以实现定时或延时控制,如定时中断、定时检测、定时扫描等,也往往要求有计数器能对外部事件计数。AT89C52单片机有两个定时器,称为定时器0(T0)和定时器1(T1)。定时器结构AT89C52单片机的定时器又计数器0、计数器1、方式控制寄存器和定时器控制寄存器组成。计数器0和计数器1分别由8位计数器TH0、TL0和TH1、TL1构成。TH0、TL0、TH1、TL1是不能位寻址的特殊功能寄存器,通过对TH0、TL0、TH1、TL1的初始化编程来控制T0和T1的计数初值。AT89C52单片机的两个计数器TH0、TL0和TH1、TL1可以构成16位的计数器、13位的计数器和8位的计数器。计数器是定时器T0和T1的核心,它可以对引线T0和T1来的外部事件计数;也可以对单片机的机器周期计数。一个机器周期等于12个振荡脉冲周期,因此计数频率为振荡频率的1/12。这样,不但可以根据计数值计算出定时事件,也可以反过来安定时时间的要求来计算出计算器的预置值。计数器是加法计数器,所以预置的计数初值应为计数值的补码。定时器的工作方式AT89C52单片机的T0有方式0、方式1、方式2和方式3四种工作方式;T1有方式0、方式1和方式2三种工作方式。工作方式控制器TMODTMOD寄存器是不能寻址的特殊功能寄存器,用于控制T1和T0的工作方式,各位的定于如下GATEC/TM1M0GATEC/TM1M0TMOD的高半字节和低半字节的定义相同,高半字节用于控制T1,低半字节用于控制T0,其中,GATE是门控位。GATE为1时,定时器的计数器受外部引线INT0或INT1的输入电平的控制,输入高电平计数,输入低电平停止计数,这时可以用于测量在INTX引线出现的正脉冲宽度;GATE为0时,定时器的计数不受INT0或INT1的控制。C/T是定时器和计数器的选择位。C/T为1,选择计数器方式,计数器THI和TLI对TI引线输入的外部事件计数;C/T为0,选择定时器方式,计数器THI和TLI对机器周期计数。M1和M0是定时器的工作方式选择位。M1和M0这2位有0011四个状态,分别选择方式0(13位定时器)、方式1(16位定时器)、方式2(8位自动重装定时器)和方式3(T0分成两个8位的定时器)。322存储芯片AT24C02AT24C02是美国ATMEL公司的低功耗CMOS型EEPROM,内含256位存8储空间,具有工作电压宽2555V、擦写次数多、写入速度快、抗干扰能力强、数据不易丢失、体积小等特点。而且它是采用了C总线式进行数据读写的串I2行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便,AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。C总线是一种用于IC器件之间连接的二线制总线。他通过SDA及SCL两根I2线在连到总线上的器件之间传递信息,并根据地址识别每个器件。AT24C02正是运用了C规程,使用主/从机双向通信,主机和从机均可工作于接收器和发2送器状态。主机产生串行时钟信号并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线的传送方向。仿真过程中用24C02C代替芯片AT24C02。管脚如图33所示。管脚描述SCL为串行时钟串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是输入管脚。SDA为串行数据/地址双向串行数据/地址管脚用于器件所有数据的发送或接收,是一个开漏输出管脚可与其他开漏输出或集成电极开路输出进行线或。A0、A1、A2为器件地址输入端当使用24C02时最大可级联8个器件,如果只有一个24C02被总线寻址,这三个地址输入脚A0、A1、A2可以悬空或连接到VSS。WP为写保护位如果WP管脚连接到VCC,所有的内容都被写保护只能读,当WP连接到VSS或悬空,允许器件进行正常读/写操作。图33AT24C02引脚图323LM032L显示器现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。LM032L型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。LM032L型LCD可以显示2行20个字符,有8位数据总线D0D7和RS,RW,E三个控制端口,工作电压为5V,并且具有字符对比度调节功能。接口信号说明LM032L型LCD的接口信号说明如表33所示。表33LM032L型LCD的接口信号说明基本操作程序读状态令RSL,RWL,EH输出D0D7状态字读数据令RSH,RWH,EH输出无写指令令RSL,RWL,D0D7指令码,E高脉冲输出D0D7数据写数据令RSH,RWL,D0D7数据,E高脉冲输出无33单片机最小系统设计主控芯片AT89C52的XTAL2,XTAL1引脚外接上12MHZ石英晶体以及30PF电容C2和C3,构成并联谐振电路,在RST脚上外接按键与上电复位电路,在VCC引脚接上5V电压,EA脚上接高电平,VSS接地,就构成了单片机最小系统,如图34所示。接通5V电源后,用示波器检测XTAL2有无脉冲信号,在ALE/PROG上检测到12/6MHZ的脉冲,系统就可以进行工作。图34AT89C52最小单片机系统结构图34键盘输入模块由于本设计所用到的按键数量较多而不适合用独立按键式键盘。所以采用的是矩阵式按键键盘,它由行和列组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个44键盘不但能完成密码的输入还能做特别功能键使用。键盘的每个按键功能在程序设计中设置。键盘如图35所示。图35键盘输入模块35密码存储模块如图36所示。AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址,在AT89C52试验开发板上它们都接地。AT24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。图36密码存储电路36晶振部分晶振电路如图37所示。AT89C52引脚XXTAL1和XTAL2与晶体振荡器及电容C1、C2按图示方式连接。晶振、电容C1/C2及片内与非门构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在033MHZ之间,电容C1、C2取值范围在530PF之间。根据实际情况,本设计中采用12MHZ作为系统的外部晶振,电容取值为20PF。其电路图如图37所示。图37晶振电路37显示模块显示部分由液晶显示器LCDLM016L取代普通的数码管完成。开锁时,按下键盘上的开锁按键后,利用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个,输入多少位就显示多少个。当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD显示“PASSWORDRIGHT”,单片机其中P33引脚会输出高电平,使三极管Q3导通,LED灯D1亮,电磁铁吸合,继电器开关跳转,电子密码锁被打开,如果密码不正确,LED显示屏会显示“PASSWORDWRONG”,P33输出的是低电平,电子密码锁不能打开。通过LCD显示屏,可以清楚的判断出密码锁所处的状态。电路图如图38所示。图38显示电路38警报部分警报控制电路的功能是当输入错误的密码后,P23口输出电平由低变高,此时蜂鸣器将发出刺耳蜂鸣声,做出报警提示,报警电路如图39所示。P23LS1SOUNDER图39警报电路图4系统的软件设计41软件的设计架构主程序设计流程图如图41所示。图41主程序流程图42系统仿真电路图本次设计用KEIL51单片机开发软件编写C语言程序代码,生成用于烧录至单片机的HEX文件,用单片机仿真软件PROTCUS78进行软件仿真,仿真电路如图42所示。P23P16P17P10P1P12P13RWESP23P076P054P032P01RSWEP01P023P045P067P14P15P01P023P045P076P10P123P145P167XTAL218XTAL119ALE301PSN29RST9P0/AD0391/18P02/AD2373/36P04/AD4355/54P06/AD637/72P101P123P145P1678P30/RXD101/TP32/IN012/IT13P34/014P37/RD176/W65/T15P27/A1528P20/A8211/9P2/A0233/14P24/A2255/1366/47U1AT89C51C12PFC22PFX1CRYSTALSCK6DA5WP7A1223U224C04AD1LEDREDR120D71463D5124D31029D1807E6RW5S4VS1D2VE3LCD1LM016L234567891RP1ESACK8LS1SOUNDER图42系统仿真图43显示模块仿真电路图431开锁显示仿真当从键盘输入数字A时显示开锁提示,输入六位密码,当密码与设置的密码匹配时,开锁电路中的LEDD1亮,显示器提示如图43所示。图43开锁成功仿真图输入六位密码,当密码与设置的密码不相匹配时,显示器显示如图44所示。图44开锁失败仿真图432修改密码显示仿真当从键盘输入修改密码时显示修改密码提示,输入六位密码,当输入的密码与原密码不匹配时,显示器显示如图45所示。图45输入密码与原密码不匹配仿真显示图输入六位密码,当输入的密码与原密码匹配时,显示器提示如图46所示。图46输入密码与原密码匹配仿真显示图输入新密码,当两次密码相同时,显示器提示如图47所示。P07P06P05P04P03P02P01RSRWEP0P00P0P01P02P03P04P05P07P06D714D613D512D41D310D29D18D07E6RW5RS4VS1VD2VE3LCD1LM016LP07P06P05P04P03P02P01RSRWEP0P00P0P01P02P03P04P05P07P06D714D613D512D41D310D29D18D07E6RW5RS4VS1VD2VE3LCD1LM016L图47密码修改成功显示图输入新密码,当两次输入新的密码不相同时,显示器提示如图48所示。图48密码修改失败显示图44程序代码本次设计用KEIL51单片机开发软件编写C语言程序代码,代码见附录。5结束语第一次做综合实验,虽然花费了很多时间和精力,但是收获颇多,也激起了我对这方面的兴趣。从不知道综合实验论文怎样写,我开始了独立的学习和实验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己的论文一步步完善起来,每一次改进都是我学习的收获,每一次改进的成功都会让我兴奋好长一段时间。在这段时间,我学会了很多,感受也很多。对于单片机的理论学习,我掌握不是很好,这次综合实验不但让我对理论知识有了进一步的巩固,也使我熟练地掌握了PROTEUS和KEILC两个软件的操作。与此同时,认识到理论与实践相结合的重要性,自己在设计的过程中,总是会出现各种各样或大或小的错误,正是因为有另外的同学的指正才能尽量减少甚至避免出现不必要的错误,为设计大大节约了时间。在整个设计过程中,尽管很小心,但是仍然遇到了很多问题,不过最后都及时解决,这不仅练就了我的细心,更培养了我的耐心。总之,这次试验设计算是成功的,充分发挥人的能动性和自主学习的能力,学到了很多以前没有接触过的东西,知道了做事情一定要认真努力,不半途而废;学会从多个角度去思考问题、解决问题;明白了欲速则不达的道理。此次设计中学到了很多很多东西,使我的能力得到了全方位的提高,使得我的操作能力和专业技能都有了很大的提高,也为以后的毕业设计打下了基础。参考文献1丁元杰单片微机原理及应用北京机械工业出版社,20052张军AVR单片机应用系统开发典型实例北京中国电力出版社,20053辛有顺,胡永生,薛小玲单片机应用设计与实现福州福建科学技术出版社,20054求是科技单片机典型模块设计实例导航北京人民邮电出版社,20045许立梓,何小敏,陈玮,高明琴微型计算机原理及应用北京机械工业出版社,20036谢自美电子线路设计实验测试第二版M武汉华中科技大学出版社,20007AT89C52DATASHEET,ATMEL,20048DS1302DATASHEET,DALLASSEMICONDUCTOR,20049周明德,陶龙芳,微机原理与应用,中央广播电视大学出版社,2007年8月第12次印刷。10余锡存,曹国华,单片机原理及接口技术,西安电子科技大学出版社,2008年五月第14次印刷。11王连英,章小印,数字电子技术,江西高校出版社,2008年5月第一版本第二次印刷。12孙惠芹,电路设计PROTEL,天津大学出版社,2008年5月第一次印刷。13谭浩强,C程序设计第三版,清华大学出版社,2008年5月第20次印刷。14冷淑君,计算机操作与应用,高等教育出版社,2004年8月第一次印刷。15潘松,黄继业EDA技术实用教程(第二版)北京科学出版社,200616王迎旭,单片机原理及应用,机械工业出版社,200117周航慈,单片机应用程序设计技术,北京航空航天大学出版社18彭为,单片机典型系统设计实例精讲M,北京电子工业出版社,200619潘永雄,新编单片机原理与应用M,西安西安电子科技大学出版社,200320何立民,单片机应用技术选编M,北京北京航空大学出版社,1998附录A系统电路图P23P16P17P10P1P12P13RWESP23P076P054P032P01RSWEP01P023P045P067P14P15P01P023P045P076P10P123P145P167XTAL218XTAL119ALE301PSN29RST9P0/AD0391/18P02/AD2373/36P04/AD4355/54P06/AD637/72P101P123P145P1678P30/RXD101/TP32/IN012/IT13P34/014P37/RD176/W65/T15P27/A1528P20/A8211/9P2/A0233/14P24/A2255/1366/47U1AT89C51C12PFC22PFX1CRYSTALSCK6DA5WP7A1223U224C04AD1LEDREDR120D71463D5124D31029D1807E6RW5S4VS1D2VE3LCD1LM016L234567891RP1ESACK8LS1SOUNDER附录B系统程序/主程序C/INCLUDEINCLUDE“DELAY_MSH“INCLUDE“矩阵键盘H“INCLUDE“I2CH“INCLUDE“1602H“INCLUDE“DELAY_MSH“INCLUDE“MIMAH“DEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINEA0X0A/输入密码DEFINEB0X0B/修改密码DEFINED0X0D/关锁DEFINEENTER0X0C/确认DEFINEBACKSPACE0X0F/退格键SBITBAOJINGP23/蜂鸣器接口SBITLOCKP30/锁信号SBITSETP27UCHARIDATAMIMA_561,2,3,4,5,6/初始密码UCHARFLAG_CHANGEUCHARAA/存放密码错误的次数,够三次报警UCHARBBUCHARFLAG_T0VOIDBAOJ1/报警函数INTIFORI0IINCLUDE/_NOP_延时一个机器周期INCLUDE“1602H“INCLUDE“DELAY_MSH“/检查LCD忙状态/LCD_BUSY为1时,忙,等待。LCDBUSY为0时,闲,可写指令与数据。/BITLCD_BUSYBITRESULTLCDRS0LCDWR1LCDEN1_NOP_NOP_RESULTBITDATALCDEN0RETURNRESULT/写指令数据到LCD/RSL,RWL,E高脉冲,D0D7指令码。/VOIDWRITE_COMUNSIGNEDCHARCOM/向液晶写命令WHILELCD_BUSYLCDWR0LCDRS0LCDEN0DATACOMDELAY_MS5LCDEN1DELAY_MS5LCDEN0/写显示数据到LCD/RSH,RWL,E高脉冲,D0D7数据。/VOIDWRITE_DATAUNSIGNEDCHARDATE/向液晶写一个数据WHILELCD_BUSYLCDWR0LCDRS1LCDEN0DATADATEDELAY_MS5LCDEN1DELAY_MS5LCDEN0VOIDWRITE_1_CHARUNSIGNEDCHARZIFU/写一个字符WRITE_DATAZIFU/向液晶写N个字符/VOIDWRITE_N_CHARUNSIGNEDCHARZIFU/写N个字符UNSIGNEDCHARCOUNTFORCOUNT0COUNTWRITE_1_CHARZIFUCOUNTIFZIFUCOUNT10BREAKVOIDLCD_POSUNSIGNEDCHARX,UNSIGNEDCHARY/设置液晶显示位置,X0为第一行,1为第2行UNSIGNEDCHARPOSIFX0X0X80ELSEIFX1X0X800X4

温馨提示

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

评论

0/150

提交评论