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

下载本文档

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

文档简介

PAGEPAGE2毕业设计论文基于单片机的电子密码锁设计目录TOC\o"1-2"\h\z\u1.引言 11.1课题背景和意义 11.2电子密码锁发展趋势 22.总体设计方案 22.1电子密码锁设计的具体要求 22.2总体设计方案 32.3系统总体设计原理 43.电子密码锁的硬件设计 53.1主控芯片STC89C52 53.2存储电路 63.3LCD显示模块 73.4单片机最小系统 83.5报警电路 93.6开锁电路 93.7键盘输入模块 104.电子密码锁的软件设计 104.1主程序 114.2按键软件设计 114.3密码设置软件设计 124.4开锁软件设计 135.调试与实现 145.1软件调试 145.2Proteus仿真 155.3Protel99SE电路设计 165.4硬件调试 176.结论 20参考文献 221.引言1.1课题背景和意义随着电子技术和计算机技术的飞速发展,单片机性能不断完善,性能价格比显著提高,技术日趋完善。由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因而在国民经济建设、军事及家用电器等各个领域均得到了广泛的应用。本设计利用单片机及附加电子元器件实现数据采集和控制算法,来完成某一实际功能,检验并提高同学对整体电路设计和把握能力,了解单片机系统设计流程,以及电路板的实际制作和调试能力。同时也加强对数字电路、单片机和微机原理等课程知识的实际应用能力,也为同类产品的进一步发展奠定理论和实践基础。随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。但较实用的还是按键式电子密码锁。20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过不断的努力,使电子密码锁在我国也能得到广泛应用[1]。1.2电子密码锁发展趋势

电子密码锁应用于金融业,其根本的作用是“授权”,即被“授权”的人才可以存取钱、物。广义上讲,金融业的“授权”主要包括以下三种层次的内容:(1)授予保管权,如使用保管箱、保险箱和保险柜;(2)授予出入权,如出入金库、运钞车和保管室;(3)授予流通权,如自动存取款。目前,金融行业电子密码锁的应用主要集中在前两个层面上。下面将介绍几种在金融行业中使用较多的电子密码锁以及它们的技术发展方向。当然,以上所说的授权技术再高超,都必须由精良的“锁具”担当承载结构部件,实现开启、闭锁的功能,而且承担实体防护作用,抵抗住或尽量延迟破坏行为,让电子密码锁“软、硬不吃”。一般情况下,锁具防盗的关键是锁身外壳、闭锁的部件的强度、锁止型式、配合间隙和布局。提高电子密码锁之防护能力的必然途径是报警,在金融业的许多场所有人值守、有电视监控,具有报警功能,可以综合物理防范和人力防范两种作用。报警的前提是具备探测功能,根据电子密码锁的使用场所和防护要求,可选择多种多样的探测手段。在中国的城市金融业中,实现联网报警已经成为对各金融网点的基本要求。根据国内外的实践经验,金融业实行安全防范风险等级很有必要,即依据使用的防盗报警器材的性能、安装布局和人员值守状况等,可以评估被防护物或区域的防护能力,得出风险等级,其中,电子密码锁的性能至关重要。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子密码锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子密码锁,这样对盗贼而言是“道高一尺、魔高一丈”。组合使用信息也能够使电子密码锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。2.总体设计方案2.1电子密码锁设计的具体要求电子密码锁设计的具体要求如下:(1)本设计为了防止密码被窃取要求在输入密码时在LCD屏幕上显示*号。(2)设计开锁密码位小于六位密码的电子密码锁。(3)能够LCD显示在密码正确时显示OPNEOK!,密码错误时显示PASSWORDERROR,输入密码时显示YOURPASSWORD。(4)4×4矩阵键盘其中包括0-9的数字键和A-F的功能键。(5)本产品具有报警功能,当输入密码三次错误时蜂鸣器报警。(6)密码可以由用户自己修改设定(只支持6位密码),修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。2.2总体设计方案方案一:采用数字电路控制。用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。故不采用[2]。方案二:采用一种是用以STC89C52选用单片机STC89C52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用[2]。其原理如图1所示图1单片机控制密码锁原理图由图1可知方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要,此次设计采用此方案。2.3系统总体设计原理本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载发光二极管换成电子密码锁的电磁铁吸合线圈即可[3]。系统整体框图如图2所示。图2系统结构框图各模块功能如下:(1)键盘输入模块:分为密码输入按键与几个功能按键,用于完成密码锁输入功能。(2)显示模块:用于完成对系统状态显示及操作提示功能。(3)复位电路:完成系统的复位。(4)报警电路:用于完成输错密码时候的警报功能。(5)密码存储模块:用于完成掉电存储功能,使修改的密码断电后仍能保存。(6)开锁电路:应用发光二极管模拟开锁,完成开锁及开锁提示。3.电子密码锁的硬件设计3.1主控芯片STC89C523.1.1单片机STC89C52简介STC89C52是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含8kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位STC89C52单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域[4]。主要特性:·与MCS-51兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路3.1.2STC89C52功能STC89C52是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,STC89C52芯片引脚图如图3所示。

图3单片机引脚图3.2存储电路AT24C04是美国Atmel公司的低功耗CMOS型E²PROM,内含256×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)、抗干扰能力强、数据不易丢失、体积小等特点。而且他是采用了I²C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。AT24C04中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I²C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。AT24C04正是运用了I²C规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C04)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C04的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向[5]。管脚功能:SCL为串行时钟:串行时钟输入管脚用于产生器件所有数据发送或接收的时钟这是一个输入管脚。SDL为串行数据/地址:双向串行数据/地址管脚用于器件所有数据的发送或接收SDL,是一个漏极开路输出管脚可与其它漏极开路输出或集电极开路输出进行线或。A0、A1、A2为器件地址输入端:当使用24C04时最大可级联8个器件,如果只有一个24C04总线寻址,这三个地址输入脚A0、A1、A2可悬空或连接到Vss。WP为写保护:如果WP管脚连接到Vcc所有的内容都被写保护只能读当WP,管脚连接到Vss或悬空,允许器件进行正常的读/写操作。管脚图如图4所示。图4AT24C04引脚图3.3LCD显示模块 液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。1602型LCD可以显示2行16个字符,有8位数据总线D0-D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能[6]。1602型LCD基本操作程序如表1所示。表1LCD1602基本操作程序读状态输入RS=L,R/W=H,E=H输出D0—D7=状态字写指令输入RS=L,R/W=L,D0—D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0—D7=数据写数据输入RS=H,R/W=L,D0—D7=数据,E=高脉冲输出无1602型LCD主要技术参数:·显示容量:16×2个字符·芯片工作电压:4.5—5.5V·工作电流:2.0mA(5.0V)·模块最佳工作电压:5.0V·字符尺寸:2.95×4.35(W×H)mm1602型LCD的接口信号如表2所示。表2LCD1602接口信号编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极3.4单片机最小系统3.4.1STC89C52引脚XTAL1和XTAL2与晶体振荡器及电容C1、C2按图3所示方式连接。晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C1、C2取值范围在5~30pF之间。根据实际情况,本设计中采用12MHZ做系统的外部晶振。电容取值为30pF。晶振电路图如图3所示。图3晶振电路3.4.2复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C3上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C3足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C3通过R1放电。当电容C1放电结束后,CPU处于复位状态,松手后,电容C3充电,RST端电位下降,CPU脱离复位状态。R1的作用在于限制按键按下瞬间电容C3的放电电流,避免产生火花,以保护按键触电。其电路如图4所示。图4复位电路3.5报警电路报警部分由蜂鸣器发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入三次错误时,单片机的P3.7引脚为低电平,三极管T3导通蜂鸣器发出噪声报警[7]。图6报警电路3.6开锁电路开锁控制电路的功能是当输入正确的密码后发光二极点亮将锁打开。开锁步骤如下:首先利用键盘上的数字键0-9输入密码,然后按下键盘上的开锁按键。当用户输入密码后,单片机自动识别密码,如果密码输入三次不符,则报警。只有当密码正确,单片机才能使发光二极管亮系统处于开锁状态[8]。具体电路如图7所示。图7开锁电路3.7键盘输入模块由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置[9]。其大体能(看键盘按键上的标记)及与单片机引脚接法如图5所示。图54*4矩阵按键4.电子密码锁的软件设计本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。4.1主程序主程序流程图如图8所示,当开始接上电源,程序进行初始化设置,然后在键盘上输入密码,此系统进行键盘扫描,密码正确,开锁成功,密码错误3次出错报警,选择是否修改密码,若要修改密码,先输入旧密码,密码正确后设置新密码,错误时报警,需要两次确认新密码,确认后,密码修改成功,否则结束最终返回。然后启动程序,进行保护,再次在键盘上输入密码,系统进行扫描,如果和之前一样,则执行相同程序,如不是,则执行另一种程序[10]。图8主程序流程图4.2按键软件设计按键功能流程图如图9所示,在按键当中,有与输入、开锁、清除、设置、确认、清除一位的程序相对应的按键,并按顺序与输入的数相比较,当输入正确时,进入密码程序,错误时进行清除,输入两次新密码正确时,可进行重新设置密码,最后确认程序。图9按键功能流程图4.3密码设置软件设计密码设置流程图如图10所示,开始按下设置键,输入旧密码,如果错误累计三次,进行报警程序。如果输入正确,可以修改密码,确认后再次输入新密码,如果两次输入一样,则输入成功。如果两次输入的新密码不一样,则修改密码失败,重新返回设置新密码[11]。图10密码设置流程图4.4开锁软件设计开锁流程如图11所示,当开始接上电源,程序进行初始化设置,然后在键盘上输入密码,按下开锁键,如果输入正确,则开锁成功。如果输入错误累计达到三次,则执行报警程序。 图11开锁流程图5.调试与实现5.1软件调试程序在KEILC51上调试,采用模块程序设计技术,则逐个模块调好后再进行系统程序总调。

对于模块结构程序.要一个个子程序分别调试。调试时,一定要符合入口条件和出口条件,调试可用单步运行和断点运行方式,通过检查用者系统的CPU现场情况、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求,有无循环错误、有无机器码错误以及转移地址的错误,同时,还可以发现系统中存在的硬件设计错误和软件算法错误。

各程序模块通过后,则可以把相关功能块连在一起进行总调。这个阶段若有故障,可以考虑各子程序运行时是否破坏了现场,缓冲单元、工作寄存器是否发生冲突,标志位的建立和清除是否有误,堆栈区是否有溢出,输入设备的状态是否正常等等,若用者系统是在开发机的监控程序下运行时,还要考虑用者缓冲单元是否和监控程序的工作单元发生冲突。

单步和断点调试后,还应进行连续调试,用以确定定时精度、CPU的实时响应等问题。当全部调试和修改完成后,将程序固化到STC89C52中。进行整机调试。各功能实现则调试完成[12]。5.2Proteus仿真在软件能实现的条件下,利用Proteus进行仿真,通过不停的调试与改正,最后终于实现了密码锁的功能,Proteus仿真结果如图12与图13所示。当连好各个模块电路的导线后,导入芯片程序,运行该密码锁仿真电路,通过按键可以进行密码锁的开锁,修改密码,错误密码3次以上报警的操作,LCD显示屏显示相应的操作现象,密码正确可以开锁,进而可以修改密码,密码错误三次由蜂鸣器发出报警声,如果系统出现错误还可以通过复位电路进行复位[13]。总之,在原有的理论基础上,通过Proteus能够成功的进行密码锁基本操作的仿真,实现了相关的功能。图12密码输入正确仿真电路图图13密码输入错误仿真电路图5.3Protel99SE电路设计Protel99SE是Altium公司推出的一款著名的电子电路PCB辅助设计软件,广泛应用于原理图设计、PCB设计等。Protel99SE的功能完善,包括Servicepack6,并且提供了各种元件库,为用户提供了大量的电子器件参考手册及全套教程。Protel99SE基于Windows环境,功能强大,人机界面友好,能让使用者在具有最完整的功能环境下,提升设计上的品质和效率[14]。在proteus运行仿真实现的条件下,利用Protel99SE画出原理图,生成PCB图如图14所示。图14电子密码锁PCB图5.4硬件调试单片机应用系统的硬件调试和软件调试是分不开的.许多硬件故障只有通过软、硬件联调才能发现,但一般是先排除系统中比较明显的硬件故障后才和软件一起联调。

常见的硬件故障:

(1)逻辑错误

硬件的逻辑错误是由于设计错误和焊接过程中的工艺错误而造成的,包括错线、开路、短路等,其中最常见的是短路故障。

(2)元器件错误元器件错误的原因有器件损坏或性能不符合要求,电解电容、二极管的极性接反或集成块装反等。

(3)可靠性差应用系统可靠性差的原因很多,如内部和外部的干扰、电压纹波系数过大、器件负载过重等均会造成系统的可靠性差。另外,走线和布置的不合理也会造成系统可靠性差。(4)电源故障电源故障包括:电压值不符合设计要求、电源功率不足、负载能力差、纹波太重等。硬件调试办法:脱机调试是在加电前,先用万用表等工具,按图纸仔细核对线路是否正确,并对元器件的安装、型号、规格等进行仔细检查,特别焊接时有无走线之间相互短路等[15]。经过软件和硬件调试成功后,所做实物演示如图15、16以及图17所示。图15输入密码时实物演示图图16密码输入正确时实物演示图图17密码输入错误时实物演示图6.结论以上为毕业期间所作的毕业论文基于单片机的电子密码锁设计,它经过多次修改和整理,可以满足设计的基本要求。输入密码时,如三次输入错误,则进行报警,在输入时,LCD显示为“*”,在修改密码时,则显示数字。次设计还具有防盗功能,如对密码控制系统进行破坏,有报警功能。通过对该课题的研究,加深对所学知识的理解,提高对课外知识的学习能力,增强知识的应用能力,提高解决实际问题的能力,培养自我创新意识。积累实践经验,为以后的发展打下基础,也为以后我们自己在这方面的发展打下基础,并能够在这方面培养自己的兴趣。在设计中我们必须首先熟悉和掌握单片机的结构及工作原理,单片机的接口技术及相关外围芯片的外特性,控制方法。以单片机核心的电路设计的基本方法和技术了解表关电路参数的计算方法。单片机不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。随着单片机的广泛应用,将大大促进各领域的技术更新,向自动化、小型化、智能化方向迈进。而对于我们来说,我们这代人的目标和任务是把这些高科技产品更升一个层次。毕业设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。通过这次毕业设计,无论从选题到定稿,从理论到实践都使我学到了很多东西,它不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。同时也明白了理论与实践相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。参考文献[1]韩团军.基于单片机的电子密码锁设计[J].国外电子测量技术,2010,(07):58-61.[2]康华光.电子技术基础(数字部分)第4版[M].北京:高等教育出版社,2008.[3]郭海英.基于单片机的电子安全密码锁的设计[J].现代电子技术,2005,(13):95-97.[4]李建忠.单片机原理及应用[M].西安:西安电子科技大学出版社,2002.[6]康华光.电子技术基础(模拟部分)第4版[M].北京:高等教育出版社,2006.[7]丁冬艳.基于单片机防盗电子密码锁设计[J].硅谷,2010,(01):126-130.[8]王金国.采用单片机的电子密码锁控制电路[J].山东煤炭科技,2000,(03):30-33.[9]董继成.一种新型安全的单片机密码锁[J].电子技术,2004,(03):58-60.[10]陈开文.基于AT89C51的安全密码锁应用设计[J].科技资讯,2006,(04):27-28.[11]周勇,付大鹏,刘刚强.新型家用密码锁的研究[J].机械,2002,29(增刊):128-129.[12]周功明.基于AT89C51单片机的防盗自动报警电子密码锁系统的设计[J].绵阳师范学院学报,2007,(05):112-115.[13]王宜怀.单片机原理及其嵌入式应用教程[M].北京:北京希望电子出版社,2002.[14]周鑫,何建新,刘琥.基于单片机的电子密码锁控制电路设计[J].成都信息工程学院学报,2009,(04):341-345.[15]先锋工作室.单片机程序设计实例[M].北京:清华大学出版社,2003.DesignofElectricPasswordLockBasedonMCUDepartmentofPhysicsandElectronicInformationScienceandElectronicInformationScienceandTechnologyProfessionalAbstract:Aspeoplelivingstandardriseandsecurityawarenessstrengthening,people’ssafetyrequirementswillhigherandhighertoo.Thesafestandardofthetraditionalmechanicallocksandthenightlockishighcostandlowuseveryinconvenientthatcannotmeettheneedofpeople’sneed.Onethatbasedonsingle-chipprocessorelectroniclocksarisesatthehistoricmoment.Thisarticleisbasedonthesafetyandeconomicalpracticalpointofview,usestheUnitedStatesAtmelCorporationSTC89C52microcontrollerandLowpowerconsumptionCMOStypeE²PROMAT24C04asamasterchipandthedatamemoryunit,itCombinedperipheralkeyboardinputwithLCDdisplayandalarmandthelockcircuitmodule.realizeThefunctionofelectroniclocks.Itisunderthepremiseofcorrectpasswordcanopenthelock;Enterthewrongpasswordcanalarm;Passwordcanchangeaccordingtotheneedsofuser.Function.Thispasswordlock’sdesignmethodisrational,simple,lowcost,safeandpracticalcharacteristics,andithasstrongpracticalapplicationvalue.Keywords:Passwordlock;STC89C52MCU;Alarm;LCDDisplay;AT24C04致谢四年的大学生活不知不觉中就要结束了,在这段难忘的生活中,有许多美好的回忆,在毕业论文设计之中,我的老师和我的同学都不吝的指导我,我需要感谢的人太多太多,首先要感谢我的学校,感谢在这四年中让我领悟到诚实做人,踏实做事,扎实做学问的深刻道理,让我从一个懵懂得高中生变成一个成熟的大学生,其次我要感谢的是我的导师杨利容老师。虽然杨利容老师平日里工作繁多,但在我做毕业设计的每个阶段,都给予我悉心的指导和帮助现在即将挥别我的学校、老师、同学,还有我四年的大学生活,虽然依依不舍,但是对未来的路,我充满了信心。最后,感谢在大学期间认识我和我认识的所有人,有你们的陪伴,才有我大学生活的绚丽多彩。附录Ⅰ电子密码锁源程序:#include<reg52.h>#include<string.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineLCDIOP2#definedelay4us()_nop_();_nop_();_nop_();_nop_();ucharbuffer[6]={0};sbitsda=P3^3; //串行数据sbitscl=P3^2;//串行时钟bitflag=0,aa; //用户蹲渊义定时溢出标志位ucharDSY_BUFFER[16]="";//显示缓冲ucharUserpassword[6]="";//用户输入密码sbitrs=P2^0;sbitrd=P2^1;sbitlcden=P2^2;sbitled=P2^7;sbitLEEP=P3^7;//定义蜂鸣器端口ucharcodetable2[]="123456";//初始密码设置ucharcodetable[]="YourPassword...";//标题字符串voiddelayms(uintz)//延时子程序{ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}voiddelay() //短延时,两个机器周期,做总线的延时用{;;}voidwrite_com(ucharcom)//向LCD写指令{ rs=0; rd=0; lcden=0; P1=com; delayms(3); lcden=1; delayms(3); lcden=0; }voidwrite_date(uchardate)//向LCD写数据{ rs=1; rd=0; lcden=0; P1=date; delayms(3); lcden=1; delayms(3); lcden=0; }voidDisplay_String(uchar*p,ucharcom)//在LCD指定行显示字符串子程序{uchari;write_com(com);for(i=0;i<16;i++){write_date(p[i]); }}voidinit_lcd()//LCD初始化{ lcden=0; write_com(0x38);//设置功能两行显示 write_com(0x0c);//光标移动显示数字 write_com(0x06);//设置光标向右移 write_com(0x01);//清屏 write_com(0x80);//显示数据储存器地址Display_String(table,0x80); Display_String("",0xc0);}voidstart()//起始位(scl保持“高”时,sda由“高”变为“低”为开始条件){ sda=1; scl=1; delay4us(); sda=0; delay4us(); scl=0;}voidstop()//停止位(scl保持“高”sda由“低”变为“高”时为停止条件){ sda=0; scl=1; delay4us(); sda=1; delay4us(); scl=0;}voidinit() //24C04初始化{sda=1;delay();scl=1;delay();}voidack()//发送应答信号{ sda=0; scl=1; delay4us(); scl=0; sda=1;}voidnoack()//发送非应答信号{ sda=1; scl=1; delay4us(); scl=0; sda=0;}ucharrecbyte()//从芯片读取1字节{ uchari,rd; rd=0x00; sda=1;//置数据线为输入方式 for(i=0;i<8;i++) { scl=1; rd<<=1;//rd等于rd左移1位 rd|=sda;//rd等于sda与rd位或 delay4us(); scl=0; delay4us(); } scl=0; delay4us(); returnrd;}ucharsendbyte(ucharwd)//向芯片发送1字节{ uchari; bitack0; for(i=0;i<8;i++) { sda=(bit)(wd&0x80);//循环移入8位 _nop_(); _nop_(); scl=1; delay4us(); scl=0; wd<<=1; } delay4us(); sda=1;//释放总线并准备读取应答 scl=1; delay4us(); ack0=!sda;//0表示无应答 scl=0; delay4us(); returnack0;//返回应答}ucharRecstring(ucharslave,ucharsubaddr,uchar*buffer,ucharn)//接收多字节数据函数{uchari;start();if(!sendbyte(slave))return0;//器件地址if(!sendbyte(subaddr))return0;//器件子地址start();if(!sendbyte(slave+1))return0;//器件地址,读操作for(i=0;i<n-1;i++){ buffer[i]=recbyte();//接收数据 ack();//发送应答位}buffer[n-1]=recbyte();//接收最后一位noack();//发送非应答stop();return1;}ucharSendstring(ucharslave,ucharsubaddr,uchar*buffer,ucharn)//发送多字节数据函数{ uchari; start(); if(!sendbyte(slave))return0;//发送器件地址 if(!sendbyte(subaddr))return0;//发送器件子地址 for(i=0;i<n;i++) { if(!sendbyte(buffer[i]))return0;//发送数据 } stop(); return1;}voidclear_password()//清除密码子程序{ uchari; for(i=0;i<6;i++) { Userpassword[i]=''; } for(i=0;i<16;i++) { DSY_BUFFER[i]=''; }}ucharKeys_Scan()//键盘矩阵扫描子程序{ uchartemp,keynum; P0=0x0F;//高四位置0,放入四行 delayms(5); temp=P0^0x0F;//异或操作,把3个1变成0,唯一的0变成1 switch(temp)//判断按键发生于0~3列中的哪一列 { case1:keynum=0;break; case2:keynum=1;break; case4:keynum=2;break; case8:keynum=3;break; break; } P0=0xF0;//低四位置0,放入四列 delayms(5); temp=P0>>4^0x0F;//将高四位移至低四位,并将其中唯一的0变为1,其余为0 switch(temp)//对0~3行分别附加起始值0,4,8,12 { case1:keynum+=0;break; case2:keynum+=4;break; case4:keynum+=8;break; case8:keynum+=12;break; break; } delayms(500);returnkeynum;}voidmain(){uchartemp,i=0,j=0,k=0,n; ucharIS_valid_user; init(); //调用24C04初始化主程序init_lcd();//调用LCD初始化显示子程序 delayms(5); delayms(5); aa=Recstring(0xa0,1,buffer,6);//向IIC读取数据。 delayms(10); P0=0x0f; while(1) { if(P0!=0x0f)//扫描键盘获取键盘序号temp { temp=Keys_Scan(); switch(temp){case0:case1:case2:case3:case4:case5:case6:case7:case8:case9:if(i<=5)//密码限制在6位以内{Userpassword[i]=temp;DSY_BUFFER[i]='*';Display_String(DSY_BUFFER,0xc0); i++;} break;case10://开锁 for(k=0;k<6;k++) { if(buffer[k]==(Userpassword[k]+48)) flag=1; else flag=0; }if(flag==1){flag=0; i=0;led=0;//点亮LEDclear_password();Display_String("OPENOK!",0xc0);IS_valid_user=1; j=0;}else{ j++;led=1;//关闭LEDclear_password();Display_String("ERROR!Havetry",0xc0); write_com(0xcf); write_date(0x30+j);IS_valid_user=0;}i=0;break;case11://上锁led=1;clear_password();Display_String(table,0x80);Display_String("LockOK!",0xc0);i=0;IS_valid_user=0;break;case12://设置新密码//如果是合法用户则提示输入新密码 if(!IS_valid_user) { i=0; Display_String("Norights!",0xc0); delayms(1000); Display_String("YourPassword...",0x80); Display_String("LockOK!",0xc0); }else{i=0;Display_String("NewPassword:",0x80);Display_String("",0xc0);}break;case13://保存新密码if(!IS_valid_user) { i=0; Display_String("Norights!",0xc0); delayms(1000); Display_String("YourPassword...",0x80); Display_String("LockOK!",0xc0); }else{i=0; init(); delayms(5); for(k=0;k<6;k++) { Userpassword[k]=Userpassword[k]+48; } delayms(5);aa=Recstring(0xa0,1,buffer,6);//从IIC读取密码 delayms(5);clear_password();Display_String(table,0x00);Display_String("PasswordSaved!",0xc0); delayms(1000); Display_String("Dolockagian?",0xc0);}break;case14://按E键消除所有输入i=0;clear_password();Display_String("",0xc0); break; case15: //清除一位 if(i!=0)i--; for(n=0;n<i;n++) { DSY_BUFFER[n]='*'; } Display_String(DSY_BUFFER,0xc0); } LEEP=0;delayms(100);LEEP=1;delayms(100);//按按键蜂鸣器响一声 P0=0x0f; } if(j==3) { Display_String("THIEF!!!THIEF!!!",0xc0); j=0; while(1) LEEP=0;delayms(1000);LEEP=1;delayms(1000);//蜂鸣器报警 } }}附录Ⅱ电子密码锁总电路图:

毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:日期:

学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名: 日期:年月日导师签名:日期:年月日

指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神□优□良□中□及格□不及格2、学生掌握专业知识、技能的扎实程度□优□良□中□及格□不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力□优□良□中□及格□不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性□优□良□中□及格□不及格5、完成毕业论文(设计)期间的出勤情况□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)指导教师:(签名)单位:(盖章)年月日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、

温馨提示

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

评论

0/150

提交评论