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

下载本文档

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

文档简介

毕 业 设 计 (论 文)题 目: 电子密码锁的设计 学 院: 电气与信息工程学院 专 业: 电子信息工程 姓 名: 学 号: 093409142 指导老师: 陈 英 完成时间: 2013年5月28日 河南城建本科毕业设计(论文)摘要摘 要随着经济社会发展,人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出。传统的机械锁,由于其构造简单,安全性能低,无法满足人们的需要。随着电子产品向智能化和微型化的不断发展,数字密码锁作为防盗卫士的作用显得尤为重要。而单片机以其实用,功能强大,价格低廉等功能,已成为电子产品研制和开发中首选的控制器。本文从经济实用的角度出发,阐述一个基于单片机的液晶显示电子密码锁的设计与实现。系统采用atmel公司的at89c51单片机作为系统核心,液晶显示器lcd1602作为输出设备显示系统提示信息,4*4矩阵键盘作为输入设备,cmos串行e2prom存储器at24c02作为数据存储器,配合蜂鸣器、继电器等电路构成整个系统硬件;系统软件采用c语言编写。设计的系统液晶显示,密码修改方便,具有报警、锁定等功能,使用便捷简单,符合住宅、办公用锁需求,具有一定的实用价值。关键词:单片机,密码锁,at89c51,lcd1602,at24c02 iv 河南城建本科毕业设计(论文)abstractabstractwith the development of our society and the improvement of peoples living standard, how to ensure the family security is becoming more and more important in particular. traditional mechanical lock is unable to meet the need of us because of its simple structure and low security. nowadays, electronic products become smarter and smaller, electronic password anti-theft lock plays a more important role as the security guards. the mcu with its practical, strong function, low price and other functions , has become the preferred controller in electronic product research and development.this article is written from the economic perspective, elaborates the design and implementation of a lcd electronic password anti-theft lock which is based on mcu. this system is composed of at89c51 which is designed as the core of this system, lcd1602 as the output device to display the message of this system, 4 * 4 matrix keyboard as the input device, a cmos serial e2prom at24c02 as the data storage, and a buzzer, relay circuit.the software of the system is written in c language. the system displays in a lcd, it can change password easily, and has the function of alarming, locking, and so on. this system has some practical value, and it is simple and easy to use, meets the demand of residential and the need of office lock.key words: mcu, password-lock, at89c51, lcd1602, at24c02 目 录摘要iabstractii目录iii1引言11.1课题的背景和意义11.2课题的研究现状11.3课题研究内容22 数字密码锁总体设计32.1 系统方案论证32.1.1 采用数字电路的设计方案32.1.2 采用以单片机为核心设计方案42.2 基于单片机的数字密码锁的设计原理53 系统硬件设计63.1 主要元器件介绍63.1.1 主控芯片at89c51的的介绍63.1.2 继电器的介绍93.1.3 存储芯片at24c02的介绍103.1.4 lcd1602显示器的介绍103.1.5 矩阵键盘模块的介绍113.2 系统硬件部分123.2.1 系统电源部分123.2.2 键盘输入部分133.2.3 密码存储部分143.2.4 显示部分143.2.5 报警部分153.2.6开锁部分164 系统软件设计174.1 系统程序流程图174.1.1主程序流程图174.1.2 键功能程序流程图184.1.3 修改密码程序流程图194.1.4 开锁程序流程图204.2 子程序举例214.2.1 按键扫描子程序214.2.2 显示子程序224.2.3 开锁子程序224.3 系统软件调试及结果244.3.1 proteus软件介绍244.3.2 系统软件调试254.3.3 仿真结果255 硬件系统制作及调试295.1焊接注意事项295.2硬件调试问题及解决办法305.3硬件调试效果31总结34致谢35参考文献36附录37附录a 电路原理图37附录b 系统总体程序38 1引 言1.1课题的背景和意义随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤为突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜。现在安防监控系统是一门被人们日益重视的新兴专业,就目前发展看,应用普及越来越广,科技含量越来越高。其中,数字密码锁电路简单,易于安装维护,而且价格便宜,因而被广泛应用于家庭防盗,银行,保险柜等场合。数字密码锁是由电子电路控制锁体的新型锁具,它采用触摸按键方式输入开锁密码,操作方便,灵活性好,保密性强,安全系数高,不会磨损,寿命长,成本低、功能全和可连网的等优点。正是这些优点使它广泛地被用于小区楼道的安全管理中。这种成本相对低的安全措施却提供了不小的安全作用。它的功能强,成本低和无钥匙等特点注定了它的成功。1.2课题的研究现状 本课题国内外研究现状综述:在国内早几年由于电子技术尚不发达,数字密码锁的研究比较滞后,产品种类很少。而且由于人们对数字密码锁还没有完全的认识,同时其价钱较普通弹子锁贵,应用较少。近几年随着电子技术的发展,电子密码锁应运而生。由于电子锁的密码量极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人使用。由于电子锁的功能、安全是弹子锁无法相比的,因此,发展前景是非常大的。总的来说,目前国内对单片机的密码锁的研究比较深入,技术也比较成熟。因此,单片机密码锁的发展大有前途。 在国外,电子密码锁发展已经到了非常高的境界,其技术相对先进,种类齐全,例如数码锁,指纹锁,磁卡锁,ic卡锁,生物锁等。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子密码锁获得高度的保密性。现电子密码锁普遍被人们所接受,已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。由于电子元件特别是单片机应用在这几年得到空前发展,产品无论是从功能性上还是从稳定性上都比较全面,在保密方面已做到人眼识别,指纹识别,人声识别等。数字密码锁在国外发展比较早应用也比较广泛,主要在家庭装较贵重地方,银行,保险柜等应用较多。1.3课题研究内容设计制作一个数字密码锁,替代传统的机械锁。电子密码锁可以根据设定好的密码,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键一定时间,比如3秒钟,同时发出报警声,直到没有按键按下,3秒钟后,再打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。要求液晶显示,在输入密码时,显示“*”。以单片机为主控芯片,完成密码输入键盘设计。时钟复位电路、密码复位电路设计。电子阀的使用和设计。硬件连接与调试。软件设计与调试。2 2 数字密码锁总体设计2.1 系统方案论证随着电子产品向智能化和微型化的不断发展,数字密码锁的种类也不断增多,本节主要讨论了目前较为常见的数字密码锁,有采用数字电路为控制核心和采用以单片机为控制核心的两种数字密码锁。2.1.1 采用数字电路的设计方案数字电路的设计方案的设计原理方框图如图2.1所示:密码修改电路键盘输入密码校验电路开锁电路执行电路限时报警报警次数检测锁定5分钟市电供电电路电子切换开关蓄电池断电检测充电电路锁定脉冲清除报警信号开始计时电源vcc220v开门图2.1 基于数字逻辑电路的数字密码锁框图采用数字密码锁电路的好处就是设计简单。用以74ls112双jk触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。电路由两大部分组成:密码锁电路和备用电源(ups),其中设置ups电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。采用数字电路设计的方案好处就是设计简单,但控制的准确性和灵活性差。故而本设计不采用此设计方案。2.1.2 采用以单片机为核心设计方案 用以at89c51为核心的单片机控制方案:利用单片机灵活的编程设计和丰富的io端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加掉电存储、声光提示甚至添加遥控控制功能。由于单片机种类繁多,因此在选用时要多加比较合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑: 性能、存储器、运行速度、i/o口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性。 除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。 在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等因素。基于以上因素本设计选用单片机at89c51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的i/o端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接at24c02芯片用于密码的存储,外接液晶显示器用于显示作用。其操作过程为:当用户需要开锁时,先按键盘的数字键0到9输入密码之后按键盘开锁键。如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误,则发出报警。当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。可以看出方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案。2.2 基于单片机的数字密码锁的设计原理基于单片机的数字密码锁的设计原理图如图2.2所示:at89c51 单片机显示电路报警电路开锁电路键盘输入密码输入复位电路晶振电路 图2.2 基于单片机的电子密码锁的设计原理图本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。用户通过矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警。本系统共有两部分构成,即硬件部分与软件部分。 硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成。 软件部分对应的由主程序、初始化程序、lcd显示程序、键盘扫描程序、启动程序、关闭程序、键功能程序、密码设置程序、eeprom读写程序和延时程序等组成。51 河南城建学院本科毕业设计(论文)系统硬件设计3 系统硬件设计3.1 主要元器件介绍数字密码锁硬件系统实现开锁,上锁,密码修改,报警等功能所需硬件主要有:主控芯片at89c51、继电器、存储芯片at24c02、lcd1602显示器,矩阵键盘模块等。3.1.1 主控芯片at89c51的的介绍本次毕业设计选用的是at89c51,at89c51是一种带4k字节flash存储器(fperomflash programmable and erasable read only memory)的低电压、高性能cmos 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次以上。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器。at89c51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。at89c51芯片引脚如图3.1所示:图3.1 at89c51单片机的引脚图at89c51主要特性: 与mcs-51 兼容,4k字节可编程flash存储器寿命:1000写/擦循环以上,数据保留时间:10年全静态工作:0hz-24mhz三级程序存储器锁定1288位内部ram32可编程i/o线两个16位定时器/计数器,5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路at89c51单片机引脚: vcc:供电电压。 gnd:接地。 p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p0口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在flash编程时,p0 口作为原码输入口,当flash进行校验时,p0输出原码,此时p0外部必须接上拉电阻。 p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为低八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。 p3口也可作为at89c51的一些特殊功能口,如下表所示: 口管脚 备选功能 p3.0 rxd(串行输入口) p3.1 txd(串行输出口) p3.2 /int0(外部中断0) p3.3 /int1(外部中断1) p3.4 t0(记时器0外部输入) p3.5 t1(记时器1外部输入) p3.6 /wr(外部数据存储器写选通) p3.7 /rd(外部数据存储器读选通) p3口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。 /vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。 振荡器特性: xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.1.2 继电器的介绍继电器是一种电控制器件。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。 当输入量(如电压、电流、温度等)达到规定值时,继电器被所控制的输出电路导通或断开。输入量可分为电气量(如电流、电压、频率、功率等)及非电气量(如温度、压力、速度等)两大类。继电器具有动作快、工作稳定、使用寿命长、体积小等优点。广泛应用于电力保护、自动化、运动、遥控、测量和通信等装置中。 电磁继电器工作原理和特性:图3.2 继电器原理图电磁继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。继电器一般有两股电路,为低压控制电路和高压工作电路。 3.1.3 存储芯片at24c02的介绍at24c02是美国atmel公司的低功耗cmos型e2prom,内含2568位存储空间,具有工作电压宽、擦写次数多、写入速度快、抗干扰能力强、数据不易丢失、体积小等特点。而且他是采用了i2c总线式进行数据读写的串行器件,占用很少的资源和i/o线,并且支持在线编程,进行数据实时的存取十分方便。at24c02中带有的片内地址寄存器。它通过sda(串行数据线)及scl(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。at24c02运用i2c规程,使用主/从机双向通信,主机(通常为单片机)和从机(at24c02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过scl引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,收到一个字节后必须发出一个确认信号ack。at24c02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。 at24c02引脚如图3.3所示:图3.3 at24c02存储器引脚图3.1.4 lcd1602显示器的介绍1602字符型lcd具有价廉、显示内容丰富、美观、使用方便等特点。字符型显示器把lcd控制器、点阵驱动器、字符存储器等做在一块板子上,再与液晶屏一起组成一个显示模块。因此,它的安装与使用都非常简单。液晶显示的原理是利用液晶的物理特性通过电压对显示区域进行控制,只要输入所需控制电压,就可以显示出字符。1602型lcd采用标准的14引脚(无背光)或16引脚(带背光)接口,其各引脚的功能如下所示:引脚1(vss):电源地引脚2(vdd):电源正极引脚3(vl):反视度调整引脚4(rs):寄存器选择,rs=1,数据寄存器;rs=0,指令寄存器引脚5():读写选择,高电平,读;低电平,写引脚6(e):模块使能端,e由高电平跳变成低电平时,液晶模块开始执行命令引脚7-引脚14(d0-d7):双向数据总线的第0位到第7位 引脚15(bla):背光显示器电源+5v引脚16(blk):背光显示器接地lcd是一个慢显示器件,所以在写每条指令前一定要先读lcd的忙碌状态。如果lcd正忙于处理其他指令,就等待;如果不忙,再执行写指令。为此lcd专门设置了一个忙碌标志位bf,该位连接在8位双向数据线的db7位上。如果bf为低电平,表示lcd不忙;反之表示忙碌,就需要等待。表3.1列出了1602型lcd的读写操作规定:表3.1:1602型lcd的读写操作规定读状态:输入rs=0,=1,e=1输出db0db7=状态字写指令:输入rs=0,=0,db0db7=指令码,e=高脉冲输出无读数据:输入rs=1,=1,e=1输出db0-db7=数据写数据:输入rs=1,=0,db0-db7=指令码,e=高脉冲输出无3.1.5 矩阵键盘模块的介绍 在键盘中按键数量较多时,为了减少i/o口的占用,通常将按键排列成矩阵形式,如图3.4所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如p1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,下图中,列线通过电阻接正电源,并将行线所接的单片机的i/o口作为输出端,而列线所接的i/o口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。矩阵键盘模块的原理图如图3.4所示: 图3.4 阵键盘模块的原理图3.2 系统硬件部分数字密码锁系统的硬件部分主要有:系统电源、键盘输入、密码存储、复位、显示、报警、开锁等部分。3.2.1 系统电源部分系统电源设计如图3.5所示。该电路以稳压集成模块7805为核心,先将家用50hz、220v交流电经过变压器变压,在经过4个二极管全波整流,配合滤波电路即可转换成稳定的可供单片机使用的5v直流电压。加入5v电池作为备用电池,即使在停电情况下依然能保证密码锁的正常工作。系统电源原理图如下图3.5所示: 图3.5 系统电源原理图3.2.2 键盘输入部分 键盘输入部分原理图如下图3.6所示: 图3.6 键盘输入原理图本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多i/o口。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置。3.2.3 密码存储部分at24c02作为i2c器件,服从i2c总线协议,其中对起始信号,停止信号,器件应答,非应答等进行了定义。起始信号:scl(时钟线)为高电平期间,sda(数据线)从高电平向低电平跳变,开始传送数据。结束信号:scl(时钟线)为高电平期间,sda(数据线)从高电平向低电平跳变,结束传送数据。at24c02正是运用了i2c规程,使用主从机双向通信,主机(通常为单片机)和从机(at24c02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过scl引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ack。at24c02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。密码存储部分如图3.7示: 图3.7 密码存储部分的接线图3.2.4 显示部分为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器lcd1602取代普通的数码管来完成。开启电源时,显示器即处于开启状态。当按下关闭电源键后显示器才处于关闭状态。否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话, lcd则显示“open ok !”,电子密码锁被打开。如果密码不正确,lcd显示屏会显示“error have try ”,p1.0输出的是高电平,电子密码锁不能被打开。通过lcd显示屏,可以清楚的判断出锁所处的状态。显示部分引脚接口如图3.8示: 图3.8 显示部分引脚接口图3.2.5 报警部分报警部分原理图如下图3.9示: 图3.9 报警部分接线图报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,密码正确时,不发声直接开锁,当密码输入错误超过3次时,就锁定按键3秒钟,同时单片机的p1.7引脚为低电平,三极管q2导通蜂鸣器发出噪鸣声报警,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。3.2.6开锁部分开锁控制电路的功能是当输入正确的密码后将锁打开。系统使用单片机其中一引脚线发出信号,经三极管放大后,由继电器驱动电磁阀动作将锁打开。用户通过键盘任意设置密码,并储存在eeprom中作为锁码指令。开锁步骤如下:首先按下键盘上的开锁按键,然后利用键盘上的数字键09输入密码,最后按下确认键。当用户输入一密码后,单片机自动识码,如果识码不符,则报警。只有当识码正确,单片机才能控制电子锁内的微型继电器吸合。完成本次开锁。开锁以后,单片机自动清除掉由用户输人的这个密码。开锁部分接线图如图3.10所示: 图3.10 开锁部分接线图河南城建学院本科毕业设计(论文) 系统软件设计 4 系统软件设计4.1 系统程序流程图本设计软件部分主要由主程序、初始化程序、lcd显示程序、键盘扫描程序、键功能程序、密码设置程序、eeprom读写程序和延时程序等组成。4.1.1主程序流程图本系统主要程序设计流程图如4.1所示,接通电源即进入程序初始化阶段,初始化的内容包括,液晶显示器lcd1602的初始化,密码存储器at24c02的初始化,以及各个寄存器的初始化。当有按键被按下时,即进入键盘扫描程序,确定所要执行的操作。开始初始化键盘扫描程序按键是否按下返回y图4.1 主程序流程图4.1.2 键功能程序流程图在按键当中,有与输入、开锁、清除、设置的程序相对应的按键,并按顺序与输入的数进行对比,当输入密码正确时,进入密码程序,错误时显示错误以及所输入的次数,并清除密码。键功能流程图如图4.2所示:键功能程序键盘扫描开锁程序输入密码密码正确上锁修改密码返回上锁程序修改密码程序清除密码ynyynynn清除键是否按下n 图4.2 键功能程序流程图4.1.3 修改密码程序流程图当密码锁处于开启状态时,按下修改密码键时会进入密码修改程序,此时会提示输入新密码,按下确认键后会提示再次输入密码,当两次输密码相同则会保存新密码,若两次密码不一致则会返回密码锁开启状态。修改密码程序流程图如图4.3所示:设置密码程序按下修改密码键开锁密码输入原始密码输入新密码再次输入新密码两次输入一致输入新密码设置密码成功nnyy图4.3 修改密码程序流程图4.1.4 开锁程序流程图在待机状态下输入密码,并按下开锁键则进入开锁程序,当密码正确单片机控制电子锁内的微型继电器吸合。当继电器吸台以后带动锁杆伸缩,这时,锁勾在弹簧的作用下弹起,完成本次开锁。开锁程序流程图如图4.4所示:开 始按键扫描输入密码按下开锁键密码正确开锁结束输入错误3次锁定键盘程序返回ynnnyy图4.4 开锁程序流程图4.2 子程序举例4.2.1 按键扫描子程序按键扫描程序是将按键转化为对应的按键值,单片机根据按键值执行相应的程序。按键扫描程序如下:uchar keys_scan() uchar temp,keynum; p2=0x0f; /将p2口高四位设为低电平,低四位设置为高电平 delayms(5); temp=p20x0f; /按下键后,p2口和0000 1111进行位异或操作 switch(temp) /将异或后的值作为case case 1:keynum=0;break; case 2:keynum=1;break; case 4:keynum=2;break; case 8:keynum=3;break; break; p2=0xf0; /翻转p2口电位,此时高四位为高电平,第四位为低电平;delayms(5); temp=p240x0f; /按键后,p2口右移4位,高四位移至低四位处,高四位为0000,再与0000 1111进行位异或操作。switch(temp) case 1:keynum+=0;break; /两步操作后得到按键值case 2:keynum+=4;break; case 4:keynum+=8;break; case 8:keynum+=12;break; break; delayms(600); return keynum; 4.2.2 显示子程序void display_string(uchar *p,uchar com) uchar i; write_com(com); /写指令 for(i=0;i16;i+) write_date(pi); /写数据 void init_lcd() /lcd的初始化 lcden=0; /lcden置低电平(根据表3.1,写指令时,lcden为高脉冲, 就是让lcden从0到1发生正跳变,所以应先置0 write_com(0x38); /显示模式设置:162显示,57点阵,8位数据接口 write_com(0x0c); /显示模式设置:显示开,无光标 write_com(0x06); /显示模式设置:光标右移,字符不移 write_com(0x01); /清屏幕指令,将以前的显示内容清除 write_com(0x80); display_string(table,0x80); /将数组在1602的第一行显示 display_string(lock ok! ,0xc0); /在第二行显示 4.2.3 开锁子程序case 10: /按a键开锁 flag=0;for(k=0;km;k+) if(bufferk=(userpasswordk+48) /密码对比 flag+; else flag=0; if (flag=6) /如果每一位都相同,则进入开锁程序 flag=0; i=0; m=0;ledred=1;clk=0;led=0; /点亮led display_string(open ok! ,0xc0); is_valid_user = 1; j=0; else /若输入密码错误,则提示错误,及输入的次数flag=0;j+;ledred=0;clk=1;led=1; /关闭ledclear_password(); display_string(error!have try ,0xc0); write_com(0xcf); write_date(0x30+j); is_valid_user=0;i=0; m=0;break; 4.3 系统软件调试及结果4.3.1 proteus软件介绍proteus软件是英国labcenter electronics公司出版的eda工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它eda工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。proteus是世界上著名的eda工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、pcb设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年又增加了cortex和dsp系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持isr、keil和mtlab等多种编译器。在proteus绘制好原理图后,调入已编译好的目标代码文件:*.hex,可以在proteus的原理图中看到模拟的实物运行状态和过程。 proteus 是单片机课堂教学的先进助手。 proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。 课程设计、毕业设计是学生走向就业的重要实践环节。由于proteus提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台 随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中proteus也能茯得愈来愈广泛的应用。 4.3.2 系统软件调试本设计系统软件仿真采用的仿真软件是英国labcenter electronics公司出版proteus软件。它不仅具有其它eda工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。本设计中数字密码锁proteus仿真图如图4.5所示。 图4.5 数字密码锁proteus仿真图本设计中数字密码锁实现的功能有:开锁、上锁、修改密码、保存密码、清除输入、输错提示、锁定键盘、报警等功能。4.3.3 仿真结果开锁功能:系统上电后,处于待机状态,此时可以输入密码,输入密码的密码在lcd1602上以“*”形式显示出来(如图4.6(1)所示),输入正确后按下开锁键,密码锁开启(如图4.6(2)所示)。若输入错误,会提示错

温馨提示

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

最新文档

评论

0/150

提交评论