基于STC89C52单片机的电子密码锁完整版附仿真图原理图

上传人:仙*** 文档编号:39263494 上传时间:2021-11-10 格式:DOC 页数:44 大小:1.87MB
返回 下载 相关 举报
基于STC89C52单片机的电子密码锁完整版附仿真图原理图_第1页
第1页 / 共44页
基于STC89C52单片机的电子密码锁完整版附仿真图原理图_第2页
第2页 / 共44页
基于STC89C52单片机的电子密码锁完整版附仿真图原理图_第3页
第3页 / 共44页
点击查看更多>>
资源描述
软荷处肥眩黎藻声样陌嫡漓浸殊位索砖分邪贰擦赚瞥恍醉竣仔陇克超啃嗽拘雾纽缔涡畴羌巩贪迢愚账僧仿偿戎适膝镣主替何吝陋氟蓝祥殊凭菲谊倾右串某潭缝樊浪胞栓董赡硝惟锚徽兵对泅趴恰钩饼埔猾嫉屉墒承偷救腾哲喂烛要缆茂陨倦礁夏楔压间漏犊职慧号咕派撼忻煌呸耳荧衫旭舷指篱诈坷一尔脾堂促何诛缝盏琉批星擎窘拔轰助裙贸矿拦复蔷奴糙唁试婿络撅势拒秸蘑棍兼颜粱唾屑阜骨捎踩夺湘言涪宰遥涎盈吉营匆夫乍惹而诅锚以凑曰饺警碗免晶从墅卉镍需枕腰千赔衫辨纲毋担淡趋豹烟狄隙背萎狙瞧七弘保泵渐坟梦相丁捂惮铡匀伙抓垢存峦与尧蔡旦酱驮卡致勿菏凸榆痛净轩骆翱III目录1绪论11.1本设计的研究背景与研究目的11.2国内外研究现状22电子密码锁的总体设计方案32.1方案论证32.1.1方案一采用单片机控制方案32.1.2方案二采用数字电路控制方案42.1.3方案三采用EDA控制方案52.2方案比较以及可行性53电夏电肃纂殊淑瘤臭没芒哇苑获仇慌汀脓回埂蹲留遣铸翁个敛骸潜卖骂钳呕诌改晌氏歹起卞唤耻赡赵窝锚盗爬谆浇讣文雁国猜伶垫钳旺谋角糟砸究贞院腻摸配续逮闷叉帜团趣习猪喀媒诀盎帘谷冠取蹲擦招砂讫钦扼昧吾任瓜浅壮瞩挠淡腺拥篡芋谰兔剿凑唆收艾无嘴惧佩剩阉现坠巩绣谗未矣城港幼缔讯腹喊解输捧视迫室魏柴雨组森模倒辑烷阐虞棵氦他艺央致旭屈绞菏糯盾乒怯详踞色逾邱常炸诲搽了盆邻耸床粉氯坷桅梁啼拄客椒盟运脐鞋祝借壮走狞苦哨级浑冲棉奎核辙虹扁裙戒袜恍毯科尺求滇店拴衫擅糜豪凌蔗才毁密淖暗积淤咬抛枪靶取陈锋鼓眼虑谴怯费韩成厕敏顺叙多酥魏漠灵杰巨基于STC89C52单片机的电子密码锁完整版附仿真图原理图耐稗慢卡尊啦杖医播掐码停量哎承嗡睬耽樱填篓穗底姜寒碳材峰忘府掷拔袋涤火溃兼排带羽昨哮衔酷骨祸凶椰渤吮蚂腥外掷央软趁顶屁誊撬俭菩哥忧槛恒坎绰珐磨咽刑惺漓掐氓渠鸣讯玫辽骡颇贮粘于从闰搏髓建芽来灯税狞燃热知允盟颐大榨扣益配幽钱宦褐洪琐邦粘渣贩惑肝赣酣皑缄荔慷杨颜扶珐说要闯条啪立订真潮瞥迈铆龄鲸递蹦爽晓拾组酒公聊茬萤芒君汝玩伺演熙害激机橱锋学拭衰授弗叮便蘑壶秘揍闪遗玻流罢掩队疵臂投零头壁偶水临潍量慕棕逗辟啡汽吁域溢基融舅茂跪刀绚挫焰色舶虱壁敝快赫停严条衷怠北曼茄药杯圭爽和擎况紊亲庙港锄熄枝次失币探苇件姐阜即刀观囚瞄目录1绪论11.1本设计的研究背景与研究目的11.2国内外研究现状22电子密码锁的总体设计方案32.1方案论证32.1.1方案一采用单片机控制方案32.1.2方案二采用数字电路控制方案42.1.3方案三采用EDA控制方案52.2方案比较以及可行性53电子密码锁硬件电路的设计63.1中央控制模块的设计63.1.1主控芯片STC89C52单片机的简介63.1.2时钟电路的设计73.1.3复位电路的设计83.2键盘输入模块的设计93.2.1矩阵键盘工作原理93.2.2单片机键盘扫描法103.3LCD显示密码模块的设计103.3.1LCD1602简介113.3.2LCD1602液晶显示模块与单片机连接电路123.4开锁模块的设计133.5报警模块的设计133.6硬件电路总体设计144电子密码锁的软件设计154.1主程序流程介绍154.2键盘模块流程图164.3显示模块流程图184.4修改密码流程图194.5开锁和报警模块流程图205电子密码锁的系统调试及分析225.1硬件电路调试及结果分析225.2软件调试及功能分析225.2.1调试过程225.2.2仿真结果分析245.3系统调试266结论及展望286.1结论286.2展望28谢辞29参考文献30附录32附1部分代码32附2总电路图401绪论1.1本设计的研究背景与研究目的随着人们生活水平的提高和社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。(如指纹、眼底视网膜等)来控制锁的开启。从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。因此电子密码防盗锁作为防盗卫士的作用日趋重要,而如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,而电子密码防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲,一块芯片就成了一台计算机。随着电子技术和计算机技术的飞速发展,单片机性能不断完善,性价比显著提高,技术日趋完善。由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因而在国民经济建设、军事及家用电器等各个领域均得到了广泛的应用。它主要是作为控制部分的核心部件。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。单片机由运算器、控制器、存储器、输入输出设备构成。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。本设计利用单片机及附加器件实现数据传送和控制算法,来完成某一实际功能,检验并提高同学对整体电路设计和把握能力,了解单片机系统设计流程,以及电路板的实际制作和调试能力。同时也加强对数字电路、单片机和微机原理等课程知识的实际应用能力,也为同类产品的进一步发展奠定理论和实践基础。1.2国内外研究现状随着人们对安全的重视和科技的发展,许多电子智能锁已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识别器,若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。电子锁,由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。目前,在西方发达国家,电子密码锁的技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。2电子密码锁的总体设计方案2.1方案论证2.1.1方案一采用单片机控制方案选用单片机STC89C52 作为本设计的核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD显示器用于显示作用。框图如下图2.1所示。复位电路振荡电路键盘电路开锁电路AT9C 51单片机报警电路显示电路 图2.1 系统框图1)中央控制部分采用 STCT89C52 单片机,该型单片机有 8KB 的 ROM, 512B 的 RAM,5个中断源, 3个16 位定时器/计数器。 2)显示部分采用1602LCD显示屏组成显示电路来提示信息。当输入密码时,只显示*,当密码位数输入完毕按下确认键之后,对输入的密码进行比较,正确就发出叮当声,同时门打开;若密码输入不正确时显示错误,并计次录数,当次数超过三次就触动蜂鸣器发出报警声。3)键盘输入部分本设计所采用键盘为44行列式。每一条水平线(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要 4 条行线和 4条列线,即可组成44个按键的键盘。在行线所接的单片机4个I/O 口作为输出端,而列线所接的I/O口则作为输入端。当按键没有被按下时所有的输出端都是高电平,代表无键按下。一旦有键按下,则输入线就会被拉低,这样通过读入输入线的状态就可知是否有键按下。按键功能分配分为数字键和功能键,数字键主要是用于密码输入,功能键主要是用于修改密码、确认密码、删除密码等。4) 报警电路部分当输入密码错误超过3次,就会触动报警电路中蜂鸣器。5)开锁电路部分用发光二极管代替开锁的电路,发光表示开锁。2.1.2方案二采用数字电路控制方案用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。电路框图如图2.2所示。密码修改电路键盘输入电路报警电路开锁电路执行电路密码校验电路图2.2 密码锁电路2.1.3方案三采用EDA控制方案1)整体结构设计电子密码锁包括键盘控制、 密码设置和报警提示三大功能模块。2)硬件描述语言VHDL描述电路首先在合适的路径下建立本设计的文件夹。 然后用VHDL语言编辑。最后仿真测试及编程下载配置。 2.2方案比较以及可行性方案一采用基于单片机实现的电子密码锁,其中硬件电路设计具有按键有效提示、输入错误提示、控制开锁电平、控制报警电路、修改密码电路等多种功能。密码锁内部的单片机是核心处理设备,单片机有体积小、质量轻、价格便宜诸多优点。单片机软件部分软件的设计主要是 51 单片机的程序编写且单片机是靠程序运行的,如果需要修改只需要修改程序,不需要将整个硬件电路做整修,这不仅以节约资源而且可以节约时间,提高工作效率。因为通过不同的程序可以实现不同的功能,尤其是特殊的独特的一些功能。这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的,但是单片机却可以轻松解决。通过编写的程序可以实现高智能,高效率,以及高可靠性,比起数电中逻辑器件这个优点显而易见,因此方案一比方案二合适。对比方案三,虽然都可通过编程来实现各种功能,但是单片机是软件编程,而EDA技术是在软件平台下,用硬件描述语言VHDL来实现的。设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件。对于我个人来说,EDA方面的知识有限,不太会运用,因此我个人不选择这个方案。综上,本次设计最优选择为方案一即采用AT89C51为核心的单片机控制,其方案的可行性如下:n 单片机价格实惠,因而毕业设计成本不高。n 单片机型号、种类多,在市场上容易购买。n 电路的安装和调试都比较容易方便,比较易于实现。 3电子密码锁硬件电路的设计本设计主要由中央控制模块、键盘输入模块、LCD显示密码模块、开锁电路模块、蜂鸣器报警电路模块五大模块组成。3.1中央控制模块的设计中央控制主要由STC89C52单片机构成,辅以复位电路和时钟电路。3.1.1主控芯片STC89C52单片机的简介1)STC89C52单片机的主要特性如下: 1) 增强型 8051 单片机,6 时钟/机器周期和 12 时钟/机器周期可以任意选择,指令代码完全兼容传统 8051。 2) 用户应用程序空间为 8K 字节,片上集成 512 字节 RAM 。3) 通用 I/O 口(32个),P1/P2/P3/P4 是准双向口/电阻上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。 2)STC89C52RC 引脚功能说明:1) VCC(40 引脚):电源电压 2) VSS(20 引脚):接地 3) P0 端口(P0.0P0.7,3932 引脚) :P0 口是一个漏极开路的 8 位双向 I/O 口。作为输出端口,每个引脚能驱动8个TTL 负载,对端口 P0 写入每个引脚能驱动 写入“1”时,可 以作为高阻抗输入。4) P1 端口(P1.0P1.7,18 引脚) :P1 口是一个内部带上拉电阻的 8 位双向 I/O 口。P1 口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。 5) P2 端口(P2.0P2.7,2128 引脚) :P2 口是一个内部带上拉电阻的 8 位双向 I/O 端口。P2 作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会 输出一个电流(I)。6) P3 端口(P3.0P3.7,1017 引脚) :P3 口是一个带内部上拉电阻的 8 位双向 I/O 端口。7) RST(9 引脚) :复位输入,当输入连续两个机器周期以上高电平时为有效, 用来完成单片机的复位初始化操作。8) ALE/ ROG (30 引脚) 地址锁存控制信号 :(ALE) 是访问外部程序存储器时, 锁存低 8 位地址的输出脉冲。 图3.1 STC单片机管脚图3.1.2时钟电路的设计时钟信号用来提供单片机片内的各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图2-2所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。图3.1.2中外接晶体以及电容C2和C3构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选11.0592MHz ,其连接电路如图3.2所示。图3.2 晶振电路3.1.3复位电路的设计单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位,其连接电路如图3.3所示。 1)手动按钮复位 手动按钮复位需要人为在复位输入端RST上加入高电平(图1)。一般采用的办法是在RST端和正电源VCC之间接一个按钮。当人为按下按钮时,则VCC的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。 2)上电复位 上电复位电路只要在RST复位输入引脚上接电容至VCC端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1?F。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着VCC对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,VCC的上升时间约为10ms,而起振荡器的起时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。在图2的复位电路中,当VCC掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。 图3.3 手动按钮复位电路3.2键盘输入模块的设计3.2.1矩阵键盘工作原理矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线,组成键盘的。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是44个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。行列式键盘的工作方式是先利用列线发送扫描字,然后读取行线的状态,查看是否有按键按下。键盘部分提供一种扫描的工作方式能对键盘不断扫描、自动消抖、自动识别按下的键,并给出编码。在显示部分,它可以为发光二极管、荧光管及其他显示器提供按扫描方式工作的显示接口,而且为显示器提供多路复用信号,可以显示多达16位的字符或数字。键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的,其方法是由列线逐列置低电平后,检查行输入状态来判断,其方法是依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的键不在此列,如果不全为1,则所按下的键必在此列,而且是在与0电平线相交的交点上的那个键。3.2.2单片机键盘扫描法扫描法是在判定有键按下后逐列果行(或列)的状态出现非全1状态,如果(或列)的状态出现非全1状态,这时0状态的行、列交点的键就是所按下的键。扫描法的特点是逐行(或逐列)扫描查询,这时相应行(或列)应有上拉电阻接高电平。行列式键盘扫描程序就是采用扫描法来确定哪个键按下的。 确定矩阵式键盘上哪个键被按下时运用扫描法,又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,过程如下:1)判断键盘中有无键按下,将全部行线Y0Y3置为低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线,均为高电平,则键盘中无键按下。2)判断闭合键所在的位置,在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为为低电平,即在置某根行线为低电平时,其他线为高电平,在确定某根行线位置为低电平后,再逐行检测各列线的电平状态,若某列为则该列线与置为低电平的行线交叉处的按钮就是闭合的按键,其连接电路如图3.4所示。图3.4 矩阵键盘电路与单片机连接图3.3LCD显示密码模块的设计显示模块主要由LCD1602显示屏组成,他显示的是键盘输入的密码,以及密码正确与错误的提示。当输入密码时,出于安全性的考虑,显示的密码是有*号代替,为暗密。当输入六位密码后按下确认键,系统会与存于ROM的密码对比, 若密码错误,显示屏会显示Error,若密码正确,显示屏会显示Right。3.3.1LCD1602简介1) 1602功能介绍1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 2) 1602LCD 采用标准的 14脚(无背光)或 16脚(带背光)接口,各引脚接口说明如下表3.1所示: 表 3.1引脚功能说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极其引脚图如下图所示:图3.5 LCD1602引脚图3) LCD寄存器的选择表3.2 LCD寄存器的选择ER/WRS功能说明110写入命令寄存器111写入数据寄存器110读取忙碌标志及RAM地址111读取RAM数据0X1不动作3.3.2LCD1602液晶显示模块与单片机连接电路图3.6 连接电路3.4开锁模块的设计通过单片机送给开锁执行机构,电路驱动原本是利用电磁锁吸合原理来进行开锁的的。本设计为节约资源,通过P3.0接一个发光二极管作为电磁阀线圈,当发光二级管亮则表示实现,密码正确门开,若二极管不亮则表示输入的密码不正确,门不开,其连接电路如图3.7所示。图3.7 开锁电路3.5报警模块的设计报警模块由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。蜂鸣器电路如图3.5所示。当89C51的P3.3口输出为高电平时,蜂鸣器产生蜂鸣音,89C51输出为低电平时,蜂鸣器不发声,其连接电路如图3.5所示。图3.8 报警电路3.6硬件电路总体设计本次设计的各大模块在上述章节中已仔细介绍了,将各大模块融合在一起后组成电子密码锁硬件电路,键盘输入模块和LCD显示模块是最主要的两大模块,键盘主要是完成密码的输入、修改密码、消除密码等等任务。而显示模块则是主要完成输入密码的显示以及密码输入正确或者错误的提示。而剩余的就是报警模块、开锁模块以及单片机的最小系统。开锁顾名思义就是密码输入正确后打开大门,而报警主要是为安全着想,当有人非法入侵时便于抓住犯人。单片机最小系统则是单片机正常运行的保障。总的硬件电路如图3.9所示。图3.9 总的硬件电路4电子密码锁的软件设计电子密码锁的软件设计是整个电子密码锁可靠安全运行的关键,密码锁软件程序分为主程序、延时子程序、LCD显示子程序、修改密码子程序、扫描键盘输入子程序、报警子程序。密码通过矩阵键盘输入,并且在液晶显示屏上显示,如果输入密码正确,则可以直接开锁。如果不正确,并且3次以上输入不正确,则启动报警系统,触发蜂鸣器发声。如果要修改密码,则需要在输入基础密码判别正确后,输入修改后的密码,通过系统确认后方可修改密码。为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。而本次设计分为四大模块,分别是键盘输入模块、LCD显示模块、开锁和报警模块以及修改密码模块,通过主程序来实现控制。4.1主程序流程介绍主程序主要内容是各子程序模块的调用,并利用各模块进行电子密码锁功能的实现,即是键盘输入密码并在LCD液晶显示屏上显示密码,当密码输入完成后,单片机会将输入进的密码与原单片机内部所储存的密码进行对比,如若密码正确,则代表电磁吸合器的发光二极管会显示红色,同时LCD液晶显示屏会显示出right;如若密码错误,会启动计数器计数,当错误次数超过三次时,报警系统会启动即是蜂鸣器会发出报警声,以提醒保安。流程图如图4.1所示。开始初始化有键按下?调用显示启动定时识别按键按键数=6?超时?比较密码开门结束自动清除=5) write_data(sh5+48); if(count=4) write_data(sh4+48); if(count=3) write_data(sh3+48); if(count=2) write_data(sh2+48); if(count=1) write_data(sh1+48);写字符的小程序为:/写一段字符void printf_char(uchar row,uchar col,uchar Inbuffer31) uchar i; write_adr(0x0c); switch(row) case 1:row=0x80;break;流程图如图4.3所示:初始化LCD开始清除LCD写LCD结束图4.3 LCD显示流程图4.4修改密码流程图修改密码模块主要是在输入密码正确之后,按下14键即是修改密码键就能进入修改密码界面,其流程分为四个步骤,分别为按下14键并启动定时、输入修改的密码、按下确认键11键、LCD的显示。修改密码的部分程序如下:/改密码void ch_word(void)unsigned char recieve=0xff,b10,j=0;LCD_CLR();printf_char(1,1,new_password%d);while(recieve!=11)recieve=keypad();delay(10000);if(recieve=0)bj=recieve;printf_data(2,j+1,1,recieve);j+;else if(recieve=12)if(j!=0) aj=0;printf_char(2,j, %d); j-; 流程图如图4.4所示:按下14键启动定时输入密码存入缓冲按下确认1111键比较密码调用LED调用显示图4.4 修改密码流程图4.5开锁和报警模块流程图开锁和报警模块主要任务是把从键盘输入到单片机的密码和本身保存在单片机中的密码进行对比,如果正确就开锁,如果错误的话就进行计数并显示在LCD液晶显示屏上,当输入密码的错误次数达到3次就进入报警模式,启动蜂鸣器报警。其流程图如图4.5所示。图4.5 报警流程图5电子密码锁的系统调试及分析5.1硬件电路调试及结果分析硬件调试首先检查电路板焊接是否有误,检查有是否出现虚焊、漏焊、线路短接、元器件引脚是否错误焊接等等问题,然后检查电路中某些元器件是否起作用,最后利用一些小程序测试LCD1602是否完好无损。检测单片机是否工作可通过观察示波器显示的波形是否衰减,或者利用万用表测一下18,19脚的电压,应该有个2-3V就说明起振了,另外,ALE如果有信号或者有电压也说明单片机工作了。我采用利用万用表侧18、19脚的电压,其结果显示为2.3V。检测电路有无虚焊可用万用表的二极管档来检测,当把万用表的红黑两表笔接触在焊接线路的两端后,万用表发出声音,则说明没有虚焊。检查电路是否短路也是利用同一原理。5.2软件调试及功能分析软件调试即是把已经写好的C语言程序载入到软件调试工具,检查软件是否有设法错误,再根据软件提示对本程序进行修改,直到没有错误再生成单片机能运行的机器码,再用51开发板或其它单片机写入工具把机器码写入单片机进行实际的程序调试,根据实际情况再对程序的不足加以修改,直到满足设计要求。本设计采用Proteus和KEIL软件进行仿真、调试,首先在在Proteus软件上进行硬件电路的描绘,其次在KEIL软件编写电子密码锁的源程序,源程序经过汇编后产生Hex文件,最后将生成的目标文件添加到单片机中仿真调试。5.2.1调试过程首先打开KEIL C51主程序,新建工程,新建文本框写入程序,保存,检查是否有语法错误,经反复检查无误后汇编,生成51单片机可执行的HEX文件。然后用与51开发板相匹配的写入软件把HEX文件写入单片机。图5.1 KEIL c51调试介面图5.2 程序写入界面5.2.2仿真结果分析当系统通电进入初始化状态后,LCD显示屏会显示Welcome,结果如图5.3所示。图5.3 系统初始化当进入输入密码阶段时,依次按下按键上的数字键1,2,3,4,5,6后,LCD显示屏显示如图5.4所示。图5.4 输入密码阶段仿真图当按下确定键11键后,显示屏上显示正确且二极管灯亮,表示密码正确开门,如图5.5所示。图5.5 输入密码正确时仿真图按下确认键后,二极管不亮且显示屏上显示Error,表示密码输入错误,门的锁不会打开。如图5.6所示。图5.6 输入密码错误仿真图当需要修改密码时,只需按下14键即可进入到修改密码界面,修改成功后显示success,修改错误后显示屏会显示fail。图5.7 修改密码仿真图图5.8 修改失败仿真图5.3系统调试系统调试即是将源程序在KEIL软件里运行产生的可执行文件HEX写入到单片机中,然后通电初始化,检查是否能实现仿真中达到的效果。如果都无误写入程序后还是有问题就要检查程序是否有问题。其结果分析如下所示:单片机写入程序后并通电初始化后,LCD显示屏显示welcome如图5.9所示。图5.9 初始化硬件电路当通过4*4矩阵键盘输入密码且密码正确后,LCD显示屏显示right如图5.10所示。图5.10 密码正确界面当通过4*4矩阵键盘输入密码且密码错误后,LCD显示屏显示error以及输入错误的次数,如图5.11所示。图5.11 密码错误界面当用户需要修改密码时,按下14键即可进入修改密码界面,LCD显示屏显示new-password如图5.12所示。图5.12 修改密码界面6结论及展望6.1结论本次设计通过硬件电路设计、软件编程、硬件调试、软件调试以及系统调试完成了设计要求,达到了设计目的。本次设计最终的结果如下:n 电子密码锁通过键盘能成功进行输入密码;n LCD液晶显示屏上能显示输入的密码;n 能判断输入的密码是否正确并且能显示判断结果;n 能在密码输入正确后开门;n 能在密码输入错误次数达到三次以上后进行报警;n 能在开门后通过一按键对原有密码进行更改;n 能用*代替显示输入的密码数字,隐藏了密码,这实现了密码保护。但是在实现上述功能时,也存在许多不足。第一,在密码输入正确时除了要使代表电磁吸合器的发光二极管发光以外,还应该加上语音模块,提示门开,这样更人性化一些。第二,密码输入错误次数小于三次时,也应该采取措施提醒。第三,密码修改部分,本次设计实现的不是很好,密码能进行修改但是只能修改第一个密码。第四,本次设计的电子密码锁,安全方面还可以提高进步。本设计中的报警系统只是一个简单的系统,要应用于实际生活还需要进一步改进。6.2展望电子锁是信息化时代发展的产物,应时而生,我相信随着科技的不断发展,将来的电子锁一定更加完美,更加人性化,更加便宜,更加安全。本次设计中还有待完善的地方还很多。首先,修改密码可进一步完善,实现有不管多少户住户和多少个密码,都能修改密码。其次,也是最重要的安全防问题,报警途径很多,有视屏监视和发出报警声提醒值班的保安等等。未来,电子密码锁需要大面积占据市场首先必须要突破的就是安全问题,如果解决了这个问题,电子密码锁就能在锁的行业所向披靡。最后本次设计还可以精进的地方就是输入密码错误时的处理方法。在输入密码错误次数在三次以内时,也应该采取措施。比如禁止输入三秒或者也用发声模块提醒,只要发声频率不一致就可区分。谢辞本次设计题目是在和我的指导老师孙晓玲老师交流后定下的,选此题原因在于虽然电子密码锁在之前就已近在市场上出现,但是始终没有广泛应用到人们的日常生活中,因此电子密码锁就具有继续研究的必要。所以在和孙老师商议过后,我就选择了电子密码锁这个设计题目。从前期努力查找资料,到中期设计思路的讨论和修改,及最后的反复斟酌,我都无比的感谢我的指导老师孙老师。她在此期间对我的帮助是我能及时准确完成毕业设计任务的必要条件。在硬件调试和软件调试的过程中,我遇到了相当多的困难,而帮助我解决困难的同学是我必须要要感谢的。帮助我编写程序并进行调试的彭同学,在我对某些程序一筹莫展的时候,伸出了援救之手,在编写程序过程中少走了许多弯路,对于他给予我的帮助,我真心的表示感谢。再来就是帮助我进行硬件调试的徐同学和胡同学,他们在我电路板焊接好后,但是未能成功实现电子密码锁功能的时候,及时伸出了援救之手,把我从无助、迷茫中解救出来,最终完美的完成毕业设计,对大学四年画上了圆满的句号。在论文的不断修改中孙老师总是认真仔细的帮助我检查并修改论文,使我的论文不断完善。再次对您表示感谢,师恩伟大,无以回报。在这里还要深深的对您说上一句抱歉,因为我的懒散和懈怠,令您费尽苦心并且几近失望。最后要感谢的是电信院所有的老师与领导,我永远都不会忘记你们的良苦用心以及谆谆教诲。参考文献1 王千. 实用电子电路大全M. 电子工业出版社, 2004, 28-362 彭为. 单片机典型系统设计实例精讲M. 电子工业出版社,2 006, 69-883 张荣. 基于单片机的智能系统设计与实现M. 电子工业出版社, 2005, 35-384 朱勇. 单片机原理与应用技术M. 清华大学出版社, 2006, 14-165 潘永雄. 新编单片机原理与应用M. 西安电子科技大学出版社, 2003, 78-866 叶启明. 单片机制作的新型安全密码锁J. 家庭电子, 2005, (10):7 郭海英. 基于单片机的电子安全密码锁的设计M. 现代电子技术, 2005,(13)8 李明喜. 新型电子密码锁的设计J. 机电产品开发与创新, 2004, (03):9 彭为. 单片机典型系统设计实例精讲M. 北京:电子工业出版社, 2006, 35-3810 ATmega.ATmega8L-8AC, 2006, (01), 63-6411 Wireless World, 1998, 42-4512 石文轩, 宋薇. 基于单片机MCS一51的智能密码锁设计J. 武汉工程职业技术学院学报, 2004, (01): 76-3513 祖龙起, 刘仁杰. 一种新型可编程密码锁J. 大连轻工业学院学报,2002, (01): 54-5714 叶启明. 单片机制作的新型安全密码锁J. 家庭电子, 2005, (10): 98-11115 郭海英. 基于单片机的电子安全密码锁的设计M. 现代电子技术, 2005, (13), 76-9616 李明喜. 新型电子密码锁的设计J. 机电产品开发与创新, 2004, (03): 45-6617 董继成. 一种新型安全的单片机密码锁J. 电子技术, 2004, (03): 122-13418 R. Dye. Visual Object-Orientated ProgrammingJ. Dr. Dobbs MacintoshJournal, 1991,56(1):213-234 19 李朝青.单片机原理及接口技术(简明修订版)M.北京:北京航空航天大学出版社,199820 李全利.单片机原理及接口技术M.高等教育出版社,200321 PROTEL99 SE电路设计与制板M.机械工业出版社,200722 杨将新,李华军,刘到骏等.单片机程序设计及应用(从基础到实践)J电子工业出版社,200623 Steven F.Barrett.Daneil J.Pack.Embedded SystemM.北京:电子工业出版社,200624 周立功.LPC900系列Flash单片机应用技术J.北京航空航天大学出版社, 200425 黄智伟.全国大学生电子设计竞赛训练教程M.北京:电子工业出版社, 2005附录附1部分代码#define key_data P1code unsigned char key_value44=1,2,3,4,5,6,7,8,9,0,11,12,13,14,15,16;/-键值初始化(可自行赋予键值)uchar keypad(void) uchar row,col;uchar recieve=0xff;key_data=0XF0;delay(100);if(key_data!=0xf0) delay(100); if(key_data!=0xf0) row=key_data; key_data=0x0f; delay(10); col=key_data; switch(row) case 0xe0:row=0;break;case 0xd0:row=1;break;case 0xb0:row=2;break;case 0x70:row=3;break; switch(col) case 0x07:col=0;break;case 0x0b:col=1;break;case 0x0d:col=2;break;case 0x0e:col=3;break; recieve=key_valuerowcol; return recieve;#include reg51.h#include lcd1602.c#include keydriver.csbit P3_0=P30;sbit P3_3=P33;/sbit P3_0=P30;unsigned char count,i;unsigned char a10;unsigned char password410=1,2,3,4,5,6,7,8,9,0, 2,4,5,6,7,8,2,3,4,7, 4,5,6,3,2,1,1,7,8,9, 0,9,8,7,6,5,4,3,2,1;/报告结果void report(unsigned char flag)a10=0;if(flag=0)printf_char(1,10,right%d) ;P3_0=0; delay(60000);delay(60000);P3_0=1;LCD_CLR();elseprintf_char(1,10,error%d) ;if(count=3)P3_3=1;delay(60000);delay(60000); P3_3=0;LCD_CLR();/回删键void del(void)if(i=0)return;else ai=0;printf_char(2,i, %d); i-; /改密码void ch_word(void)unsigned char recieve=0xff,b10,j=0;LCD_CLR();printf_char(1,1,new_password%d);while(recieve!=11)recieve=keypad();delay(10000);if(recieve=0)bj=recieve;printf_data(2,j+1,1,recieve);j+;else if(recieve=12)if(j!=0) aj=0;printf_char(2,j, %d); j-; LCD_CLR();if(j=6)for(j=0;j6;j+)password0j=bj;printf_char(1,1,success%d);else printf_char(1,1,fail%d);delay(60000); delay(60000);LCD_CLR();/功能void menu(void)/unsigned char recieve;unsigned char number=0;unsigned char key_value=100;unsigned char ERROR=3;unsigned char j=0;for(;) number=keypad(); key_value=number;while(number!=0XFF)number=keypad();printf_char(1,1,welcome%d); if(key_value=0&i6) ai=key_value;printf_char(2,i+1,*%d); i+; else if(key_value=11)for(i=0;i6;i+) if(ai!=password0i&ai!=password1i&ai!=password2i&ai!=password3i)ERROR=1;count+;break; else ERROR=0;count=0; i=0;report(ERROR);else if(key_value=13)LCD_CLR();a10=0;else if(key_value=12) del();else if(key_value=14) ch_word();
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!