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

下载本文档

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

文档简介

河南工业职业技术学院毕业论文 i 毕业设计毕业设计 设计题目:基于单片机的电子密码锁设计题目:基于单片机的电子密码锁 类别:类别: 三年制高职三年制高职 专业:专业: 电子信息工程技术电子信息工程技术 班级:班级: 电子电子 08010801 姓名:姓名: 指导老师:指导老师: 2010 年年 11 月月 15 日日 河南工业职业技术学院毕业论文 ii 摘要摘要 在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报 表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开 锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。 随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。 为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。 密码锁具有安全性高、成本低、功耗低、易操作等优点。 在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械 式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在 技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是 单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外, 还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、 可靠性,应用日益广泛。 随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、ic 卡辨 认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只 能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容 易机械损坏,ic 卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上 限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密 码锁是这类电子防盗产品的主流。电子密码锁的设计主要由三部分组成:44 矩 阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有 led 提 示灯,报警蜂鸣器等。 关键词:关键词:44 矩阵键盘;at89c51;密码锁;密码二次确认 河南工业职业技术学院毕业论文 iii abstract in daily life and work, the housing with the departments safety, unit of files, financial statements, and some of the personal data preservation in locking solution to. if use the traditional mechanical key in the lock, people often need to carry more keys, use very convenient, and the key missing after safety namely the discount. along with the development of science and technology, the safety of peoples daily life insurance device of demand is higher and higher. to satisfy people to lock the use requirement, increase its safety, use the password instead of key combination lock arises at the historic moment. trick lock has high security, low cost, low power consumption, easy operation, etc. in the safety guard field, anti-theft alarm function with electronic combination lock gradually replaced the traditional mechanical trick lock, overcoming the mechanical combination lock passwords quantity is little, safety performance is poor disadvantages, making combination lock whether in technical or in performance are greatly enhanced step. along with large scale integrated circuit technology development, especially the advent of single chip, appeared with micro-processors intelligent trick lock, it is in addition to the function of electronic combination lock outside, also introduced intelligent management, expert analysis system, and other functions, thus make combination lock has high safety and reliability, widely used day by day. as people opposite safety value and the development of science and technology, many electronic intelligence lock (fingerprint identification, ic identify) at home and abroad have already appeared. but these characteristics of the products for a particular fingerprints and effective card, only applicable requirements of box, ark to tilt toward secrecy from a parochial view, door to wait. and if the general reader fingerprint public use existing easy mechanical damage, ic card still exist easily lost, damaged, etc. plus its cost is higher, in the certain extent limits the products to the popularization and promotion. in view of the current technology level and market receiving degree, electronic combination lock is this kind of electronic security product mainstream. electronic combination lock design of three main parts: 4 * 4 matrix keyboard interface circuit, control circuit and the output combination lock paragraphs display circuit. another system has led lights, alarm buzzer etc. keywords: 4 * 4 matrix keyboard, at89c51, trick lock; password two confirmations 河南工业职业技术学院毕业论文 iv 目录目录 一、绪一、绪论论.1 1.1 背景.1 1.2 电子密码锁.1 1.3 电子密码锁的特点.1 1.4 电子密码锁的发展趋势2 二、方案论证与比较二、方案论证与比较.3 2.1 数字电路控制的密码锁.3 2.2 单片机控制的密码锁.3 三、三、 系统总体设计系统总体设计.5 3.1 设计要求.5 3.2 设计构想.5 3.3 系统结构.5 3.4 系统组成6 3.5 系统可行性分析6 四、四、 硬件电路设计硬件电路设计.7 4.1 单片机 at89c51 简介.7 4.1.1 主要特性.7 4.1.2 管脚说明.7 4.1.3 震荡特性.9 4.1.4 芯片擦除.9 4.2 44 矩阵键盘输入电路 .9 4.3 复位电路.10 4.4 振荡电路.11 4.5 数码管显示电路.12 4.6 显示方式.13 4.7 开锁电路14 4.8 报警电路.15 4.9 上拉电阻的作用.15 4.10 按键去抖动的方法.16 4.11 部分元器件列表.16 五、软件程序设计五、软件程序设计.17 河南工业职业技术学院毕业论文 v 5.1 软件设计流程图.18 5.2 具体功能软件实施19 5.2.1 开始等待流程.19 5.2.2 密码检查功能.19 5.2.3 键盘扫描20 5.2.4 修改密码.21 六、六、 结论结论.22 七、七、参考文献参考文献.23 附录一总原理图附录一总原理图.24 附录二电子密码锁源程序附录二电子密码锁源程序.25 河南工业职业技术学院毕业论文 vi 河南工业职业技术学院毕业论文 1 一、绪论一、绪论 1.1 背景背景 随着社会物质财富的日益增长,安全防盗已成为社会问题。而锁自古以来就 是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便, 这也是制锁者长期以来研制的主题。目前国内,大部分人使用的还是传统的机械 锁。然而,眼下假冒伪劣的机械锁泛滥成灾,互开率非常之高。所谓互开率,是 各种锁具的一个技术质量标准,也就是1把钥匙能开几把锁的比率。经国家工商局、 国家内贸局、中国消协等部门对锁具市场的调查,发现个别产品的互开率居然超 标26倍。 为何弹子锁的“互开率”会如此之高?据有关专家人士剖析,弹子锁质量好 坏主要取决于弹子数量的多少以及弹子的大小,而弹子的多少和大小受一定条件 的限制。此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏 锁的前提下将锁打开。机械锁的这些弊端为一种新型的锁-电子密码锁,提供了 发展的空间。随着社会的发展和人们生活水平的提高,人们的安全意识也逐步加 强。密码锁以其安全性高、成本低、功耗低、易操作等优点受到越来越多人的欢 迎。 1.2 电子密码锁电子密码锁 电子密码锁是采取电子电路控制,以电磁铁或者卫星电机和锁体作为执行装 置的机电一体化锁具,相比传统的机械锁具,电子密码锁不使用金属钥匙,保密 性、精度都有很大提高。 电子密码锁的发明思路,源自古代发明的自动机械,例如古希腊数学家赫伦 的液压自动门,中国古代诸葛亮的木牛流马,它们以重力或蒸汽压力驱动,最广 泛的用途乃是用在古代墓道的地下机关。电子工业的诞生,使得以微小电量驱动 机械成为可能,于是有了电子锁一日千里的跃进。 1.3 电子密码锁的特点电子密码锁的特点 电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开 关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品, 也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心, 通过编程来实现的。其性能和安全性已大大超过了机械锁,主要特点如下: 1)保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。 河南工业职业技术学院毕业论文 2 2)密码可变,用户可以经常更改密码,防止密码被盗,同时也可以避免因人 员的更替而使锁的密级下降。 3)电子密码锁操作简单易行,一学即会。 4)干扰码功能,在输入正确密码前可输入任意码。 5)误码输入保护,当输入密码多次错误,报警电路启动,防止试探密码。 6)入侵感应功能,在门上锁的状态下,有人破锁而入 ,会发出报警音。 7)火灾报警功能,在室内如果温度达到 75左右,将会发出强力的报警 音,同时锁会自动开启。 8)双重锁定功能 外部强制锁定:在内部不能开启,适用于外出时,防止有人入侵。 内部强制锁定:在外部不能开启,让您在家时更安心、安全。 9)弱电提醒,当电量不足时,在启动开门时,会有美妙的音乐提示您及时 更换电池。 10)自动上锁功能,采用全自动锁芯,门关后 6 秒内自动上锁,外出更安 全。 11)外部显示功能,当密码输入错误,锁舌没正常锁到位,室内反锁,弱 电等情况下,外部都有提示功能。 1.41.4 电子密码锁的发展趋势电子密码锁的发展趋势 从目前的技术水平和市场认可程度看,使用最广泛的是键盘式电子密码锁, 该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。 键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是 “密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失,难以 被窃。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可 能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可 能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬 优点、克服弱点,键盘式电子密码也在不断发展中,如“任意设定密码”技术使 得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“自动更改密码” 技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人 所知,因而不怕旁观者窥测;独出心裁的“键盘乱序显示”技术使得键盘上的固 定键位每次显示出的字符不固定,并且显示的窄小角度只能由操作者正面看得到, 因而即使旁观者看见操作动作也难以窥测出密码;“多重密码设定”技术使得单 组密码不一定有效,适合多人分权使用,需要输入两组以上的密码才被认可,大 大提高了保密性,如果限定输入这些密码的先后顺序或时间区段,则保密性还可 提高。在输入密码的过程中,为了限制试探密码的企图,通常输入错误码若干次 或若干时间内输入不正确,即“封锁”键盘,不再接受输入操作。总之,尽管新 河南工业职业技术学院毕业论文 3 式电子防盗锁层出不穷,但键盘式电子密码防盗锁不仅在市场上居于主流地位, 而且,还经常作为其他类型电子防盗锁的辅助输入手段。 二、方案论证与比较二、方案论证与比较 2.1 数字电路控制的密码锁数字电路控制的密码锁 方案一:采用数字电路控制。其原理方框图如图 2.1 所示 图 2.1.1 数字密码锁电路方案 采用数字密码锁电路以 74ls112 双 jk 触发器构成的数字逻辑电路作为密码锁 的核心控制,共设了 9 个用户输入键,其中只有 4 个是有效的密码按键,其它的 都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效, 需要重新输入;如果用户输入密码的时间超过 40 秒(一般情况下,用户不会超过 40 秒,若用户觉得不便,还可以修改)电路将报警 80 秒,若电路连续报警三次, 电路将锁定键盘 5 分钟,防止他人的非法操作。 电路由两大部分组成:密码锁电路和备用电源(ups),其中设置 ups 电源是为 了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。 密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、 报警电路、键盘输入次数锁定电路。 河南工业职业技术学院毕业论文 4 2.2 单片机控制的密码锁单片机控制的密码锁 方案二:由于单片机品种繁多,各种型号都有一定的应用环境,因此在选用 时要多加比较,合理选择,以期获得最佳性价比。一般来说在选择单片机时从下 面几个方面考虑:性能、存储器、运行速度、i/o 口、定时/计数器、串行接口、 模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一 些还有一些最基本的,比如:中断源的数量和优先级、工作温度范围、有没有低 电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中 单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和 服务等因素。基于以上因素本设计选用单片机 at89c51 作为本设计的核心元件, 利用单片机灵活的编程设计和丰富的 i/o 端口,及其控制的准确性,实现基本的 密码控制功能。在单片机外围电路外接输入键盘用于密码的输入和一些功能的控 制,外接 led 用于显示。当用户需要开锁时,先按开锁键之后输入密码,密码输 入完确认。如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三 次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来 密码,只有当输入的原密码正确才能设置新密码。新密码输入无误后按确认键使 新密码得到存储,密码修改成功。可以看出方案二的控制灵活,准确性好,且保 密性强还具有扩展功能,根据现实生活的需要此方案。 其原理框图如图 2.2 所示。 at89c51 数码管 电源 报警电路 振荡电路 开锁电路 复位电路 44 键盘 图 2.2.1 单片机控制方案 通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求 的功能而且能在很大的程度上扩展功能,所以我们采用后一种方案。 河南工业职业技术学院毕业论文 5 三、三、 系统总体设计系统总体设计 3.1 设计要求设计要求 本次设计使用 atmel 公司的 at89c51 实现一基于单片机的电子密码锁的设计, 其主要具有如下功能: (1)设置 6 位密码,密码通过键盘输入,若密码正确,则将锁打开。 (2)密码可由用户自己修改设定(只支持 6 位密码) ,锁打开后才能修改密 码。修改密码前必须再次输入密码,在输入新密码时候需二次确认,防止误操作。 (3)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密 码输入错误次数超过 3 次,蜂鸣器报警并且锁定键盘。 3.2 设计构想设计构想 电子密码锁的设计主要由三部分组成:44 矩阵键盘接口电路、密码锁的控 制电路、输出八段显示电路。另外系统还有 led 提示灯,报警蜂鸣器等。 密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能: (1)密码输入功能:按下一个数字键,一个“”就显示在最右边的数码管 上,同时将先前输入的所有“”向左移动一位。 (2)密码清除功能:按下清除键,清除前面输入的值,并清除所有显示。 (3)密码更改功能:将输入的值作为新的密码。 (4)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确 锁打开,否则不打开。 主要的设计实施过程:首先,选用 atmel 公司的单片机 at89c51,以及选 购其他电子元器件。第二步,使用 altium designer 6 设计硬件电路原理图,并设 计 pcb 图完成布线。第三步,使用 keil uvision3 编译软件将 c 语言程序输入并 进行编译得到 hex 格式的机器码文件。第四步,使用 a51 编程器及 fx-51pro 编 程器软件将机器码文件烧录道单片机 at89c51 中并且进行模拟、调试。最后,联 合软、硬件调试电路板,完成本次毕业设计。 3.3 系统结构系统结构 本设计主要由单片机、矩阵键盘、数码管显示和开锁电路等部分组成。其 河南工业职业技术学院毕业论文 6 中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的 矩阵键盘输入密码,然后经单片机对用户输入的密码与自己保存的密码进行对比, 从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控 制开锁还是报警。本系统由两部分组成,即硬件部分与软件部分。其中硬件部分 由键盘输入部分、复位部分、显示部分、报警部分等组成。软件部分由主程序、 键盘扫描程序、延时程序等组成。 at89c51 数码管 电源 报警电路 振荡电路开锁电路 复位电路 44 键盘 图 3.3.1 系统结构框图 3.4 系统组成系统组成 如图 3.3.1 所示系统主要由 at89c51(51 系列)、八位数码管、报警电路、 44 矩阵键盘、复位电路等组成。 3.5 系统可行性分析系统可行性分析 系统工作原理分析:使用 at59c51 单片机、44 矩阵键盘、报警电路等。矩 阵键盘分别为 0、1、2、3、4、5、6、7、8、9、*、clear、enter、modify。系统开始显示 “input”提示输入密码;输入密码时,数码管显示电路显示为“-” ,当密码输入 完毕按下 enter 键时,对输入密码与设定的密码进行比较,若密码正确则数码管 显示电路显示为“pass”提示锁打开;若密码不正确,数码管显示电路显示提示 “error” ,若连续 3 次输入不正确,则发出警报声同时锁定键盘。 在输入正确密码后,按下修改键时,数码管显示电路显示“old”提示“输入 旧密码” ,此时输入正确的旧密码,则显示电路会有提示输入新密码在输入新密码 后,显示电路会再次提示“再次输入新密码”若两次输入密码不一致,则修改密 码失败,一致则成功。在修改密码的过程中,如果一开始输入的旧密码错误显示 电路会显示提示,同时系统返回到开始。 河南工业职业技术学院毕业论文 7 若在“再次输入新密码”的时候输入新密码与前次不一致,则会返回到系统 开始。修改密码完成后,系统自动清零上锁。要再次开锁则需要输入正确的密码。 系统中 clear 键用于退格,在输入密码时,若输入错误且未按下 enter 键, 按下 clear 可以删除刚输入的密码,然后再次输入。 为了防止恶意尝试,系统才用若连续输入 3 次错误密码则发出报警声,且锁 定键盘,可以提高系统的安全系数,同时也能够保护合法用户的正常使用。 四、四、 硬件电路设计硬件电路设计 4.1 单片机单片机 at89c51 简介简介 at89c51 是美国 atmel 公司生产的低电压,高性能 cmos8 位单片机,片 内含 4k bytes 的可反复擦写的只读程序存储器(eprom)和 128bytes 的随机存 取数据序存器(ram) ,器件采用 atmel 公司的高密度/非易失性存储技术生产, 兼容标准 mcs-51 指令系统,片内置通用 8 位中央处理器(cpu)和 flash 存储 单元,由于将多功能 8 位 cpu 和闪烁存储器组合在单个芯片中,atmel 的 at89c51 是一种高效微控制器,at89c51 单片机为许多嵌入式控制系统提供了一 种灵活行高且价廉的方案。其引脚排列如图 4.1.1 所示。 4.1.1 主要特性主要特性 8031 cpu 与 mcs-51 兼容 4k 字节可编程 flash 存储器(寿命:1000 写/ 擦循环) 全静态工作:0hz-24khz 三级程序存储器保密锁定 128*8 位内部 ram 32 条可编程 i/o 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 4.1.2 管脚说明管脚说明 vcc:供电电压。 图 4.1.1 芯片管脚排列 河南工业职业技术学院毕业论文 8 gnd:接地。 p0 口:p0 口为一个 8 位漏级开路双向 i/o 口,每脚可吸收 8ttl 门电流。当 p1 口的管脚第一次写 1 时,被定义为高阻输入。p0 能够用于外部程序数据存储器, 它可以被定义为数据/地址的第八位。在 fiash 编程时,p0 口作为原码输入口, 当 fiash 进行校验时,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。因此它可用作对外部 输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将 河南工业职业技术学院毕业论文 9 跳过一个 ale 脉冲。如想禁止 ale 的输出可在 sfr8eh 地址上置 0。此时, ale 只有在执行 movx,movc 指令是 ale 才起作用。另外,该引脚被略微拉 高。如果微处理器在外部执行状态 ale 禁止,置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机 器周期两次/psen 有效。但在访问外部数据存储器时,这两次有效的/psen 信号 将不出现。 /ea/vpp:当/ea 保持低电平时,则在此期间外部程序存储器(0000h-ffffh), 不管是否有内部程序存储器。注意加密方式 1 时,/ea 将内部锁定为 reset;当 /ea 端保持高电平时,此间内部程序存储器。在 flash 编程期间,此引脚也用于 施加 12v 编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。 4.1.3 震荡特性震荡特性 xtal1 和 xtal2 分别为反向放大器的输入和输出。该反向放大器可以配置 为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件, xtal2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部 时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 4.1.4 芯片擦除芯片擦除 整个 perom 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保 持 ale 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且 在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,at89c51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持 两种软件可选的掉电模式。在闲置模式下,cpu 停止工作。但 ram,定时器, 计数器,串口和中断系统仍在工作。在掉电模式下,保存 ram 的内容并且冻结 振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 4.2 44 矩阵键盘矩阵键盘输入电路输入电路 键盘可以分为独立连接式和矩阵式两类。由于设计所用到的按键数量多而不 适合独立式按键,采用矩阵式按键,按键位于行列的交叉点上,密码锁的密码由 键盘输入完成。本电路设计采用 44 行列式键盘,同时也能减少键盘与单片机接 口时所占用的 i/o 线的数目判别键盘中有无按键按下,由单片机 i/o 口向键盘送 (输出)全扫描字,然后读入(输入)行线状态来判断。方法是:向列线输出全 扫描字 00h,把全部列线置为低电平,然后将行线的电平状态读入累加器 a 中。 河南工业职业技术学院毕业论文 10 如果有键按下,总会有一根行线电平拉至低电平,从而使列输入不全为 1。键盘 中哪一个键按下,是由列线逐列置低电平后,检查行输入状态实现的,其方法是: 依次给列线送低电平,然后查所有行线状态,如果全为 1,则所按下的键不在此 列,如果不全为 1,则所按下的键必在此列,而且是在与零电平行线相交的交点 上的那个键。如图 4.2.1 所示,本系统采用 44 矩阵键盘,16 个按键分为输入 数字键:*、0、#、1、2、3、4、5、6、7、8、9;功能键 lock(锁住) 、 modify(修改) 、clear(清除)、enter(确认)。矩阵键盘。 s7 sw-pb s4 sw-pb s1 sw-pb s* sw-pb s-modify sw-pb s8 sw-pb s5 sw-pb s2 sw-pb s0 sw-pb s-enter sw-pb s9 sw-pb s6 sw-pb s3 sw-pb s# sw-pb s-clear sw-pb s-lock sw-pb p2.0 p2.1 p2.2 p2.3 p2.4 p2.5 p2.6 p2.7 图 4.2.1 矩阵键盘图 河南工业职业技术学院毕业论文 11 4.3 复位电路复位电路 10k r5 0.47uf c1 470 r4 s10 sw-pb vcc rst 图 4.3.1 复位电路图 复位是使 cpu 和系统中的其他功能部件都处在一个确定的初始状态,并从这 个状态开始工作。无论是单片机刚开始接上电源时,还是断电后或者发生故障后 都要复位。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间 电容 c1 上电压很小,复位下拉电阻上的电压接近电源电压,即 rst 位高电平。在 电容充电的过程中 rst 端电压逐渐下降,当 rst 端的电压小于某一数值后,cpu 脱离复位状态,由于电容 c1 足够大,可以保证 rst 高电平有效时间大于两个机器 周期(即 24 个振荡周期 ) ,cpu 能够可靠复位。 增加手动复位按键是为了避免 死机时无法可靠复位,当复位按键按下后电容 c1 通过 r4 放电。当电容 c1 放电结 束之后 ,rst 端的电位由 r4 与 r5 分压比决定,由于 r4 void view_input_password(void); void view_input_error(void); void key1(void); void key2(void); void key3(void); void newpassword(void); void again(void); void key(void); void input_view(void); void voice(void); void view_again(void); void oldpassword(void); unsigned int x,y,i,j,k,falg; unsigned int counter=0; unsigned int password6=5,6,7,9,10,11; unsigned int check6; unsigned int check26; void delay(); void newpassword(void); main() p0=0; ea=0; start:falg=0; delay(); while(1) p0=0; key1(); if(counter=3) /输入错误超过 3 次报警 p0_1=1;p0_2=0; voice(); 河南工业职业技术学院毕业论文 26 counter=0; for(i=0;i255;i+) for(j=0;j255;j+) view_input_error(); p3_0=1; goto start; for(k=0;k6;k+) key(); checkk=falg; if(falg=8)k=0;p1=0xff;goto start;/取消 if(falg=4) /输入未够 6 位都视作错误 k=0;p1=0xff;counter+;p0_1=1;p0_2=0;voice(); for(y=0;y100;y+) view_input_error();goto start; input_view(); delay(); key(); if(falg=8)k=0;p1=0xff;continue; if(falg=4)/按下确认键盘,密码开始比对 for(k=0;k6;k+) if(checkk=passwordk)falg=1;continue; if(checkk!=passwordk) falg=0;counter+;p0_1=1;p0_2=0;voice(); for(i=0;i100;i+) view_input_error();goto start; if(falg=1)/6 位都正确,开锁 p0_1=0;p0_2=1;voice(); for(k=0;k100;k+) for(i=0;i200;i+) 河南工业职业技术学院毕业论文 27 p3=0xcd;p1=0x7f;/p for(i=0;i200;i+) p3=0xcf;p1=0xbf;/a for(i=0;i200;i+) p3=0xab;p1=0xdf;/s for(i=0;i200;i+) p3=0xab;p1=0xef;/s break; if(falg!=1)p0_1=1;p0_2=0;voice();for(i=0;i100;i+) view_input_error();goto start; while(1) p1=0xff;voice(); key(); if(falg=16)p3=0xff;p1=0x00;p0_2=0;delay();goto start;/上锁键 if(falg=12)/修改键 delay(); key2(); for(k=0;k6;k+) key(); checkk=falg; input_view(); delay(); if(falg=8)k=0;continue; if(falg=4)k=0;counter=0;goto start; key(); if(falg=8)k=0;continue; if(falg=4) for(i=0;i6;i+) if(checki=passwordi)falg=1;continue; if(checki!=passwordi) counter=0;falg=0; for(j=0;j500;j+) 河南工业职业技术学院毕业论文 28 for(k=0;k500;k+) view_input_error(); goto start; falg=0; for(k=0;k70;k+) p0=0xff; for(i=0;i200;i+) p3=0xcd;p1=0x7f;/p for(i=0;i200;i+) p3=0xcf;p1=0xbf;/a for(i=0;i200;i+) p3=0xab;p1=0xdf;/s for(i=0;i200;i+) p3=0xab;p1=0xef;/s while(1) p1=0xff; key3(); for(k=0;k6;k+) key(); checkk=falg; input_view(); delay(); if(falg=8)k=0;p1=0xff;continue; if(falg=4)k=0;falg=0;counter=0; for(j=0;j50;j+) view_input_error(); goto start; 河南工业职业技术学院毕业论文 29 if(k=6)for(j=0;j50;j+)again();break; delay(); while(1) for(k=0;k6;k+) key(); check2k=falg; input_view(); delay(); if(falg=8)k=0;continue; if(falg=4)k=0;falg=0;counter=0; for(j=0;j25;j+) view_input_error(); goto start; if(k=6)break; delay(); key(); if(falg=4) for(i=0;i6;i+) if(check2i=checki)continue; if(check2i!=checki) counter=0;falg=0; for(j=0;j500;j+) view_input_error(); goto start; for(i=0;i6;i+) passwordi=checki; goto start; 河南工业职业技术学院毕业论文 30 /*键盘扫描子程序*/ void key(void) while(1) p2=0xfe;if(p2_4=0)falg=1;break; if(p2_5=0)falg=2;break; if(p2_6=0)falg=3;break; if(p2_7=0)falg=4; break; p2=0xfd;if(p2_4=0)falg=5; break; if(p2_5=0)falg=6; break; if(p2_6=0)falg=7; break; if(p2_7=0)falg=8; break; p2=0xfb;if(p2_4=0)falg=9; break; if(p2_5=0)falg=10;break; if(p2_6=0)falg=11;break; if(p2_7=0)falg=12;break; p2=0xf7;if(p2_4=0)falg=13;break; if(p2_5=0)falg=14;break; if(p2_6=0)falg=15;break; if(p2_7=0)falg=16;break; /*输入密码显示子程序*/ void input_view(void) switch(k) case 0:p1=0xef;p3=0x01;break; case 1:p1=0xcf;p3=0x01;break; case 2:p1=0x8f;p3=0x01;break; case 3:p1=0x0f;p3=0x01;break; case 4:p1=0x0e;p3=0x01;break; case 5:p1=0x0a;p3=0x01;break; /*显示“input”子程序*/ void view_input_password(void) for(x=0;x200;x+) 河南工业职业技术学院毕业论文 31 p3=0x48;p1=0xfe;/i for(x=0;x200;x+) p3=0x43;p1=0x7f;/n for(x=0;x200;x+) p3=0xcd;p1=0xbf;/p for(x=0;x200;x+) p3=0x62;p1=0xdf;/u for(x=0;x200;x+) p3=0x69;p1=0xef;/t /*没有输入时一直显示“input”*/ void key1(void) while(1) view_input_password(); p2=0xfe;if(p2_4=0)falg=1;break; if(p2_5=0)falg=2;break; if(p2_6=0)falg=3;break; if(p2_7=0)falg=4; break; p2=0xfd;if(p2_4=0)falg=5; break; if(p2_5=0)falg=6; break; if(p2_6=0)falg=7; break; if(p2_7=0)falg=8; break; p2=0xfb;if(p2_4=0)falg=9; break; if(p2_5=0)falg=10;break; if(p2_6=0)falg=11;break; if(p2_7=0)falg=12;break; p2=0xf7;if(p2_4=0)falg=13;break; if(p2_5=0)falg=14;break; if(p2_6=0)falg=15;break; if(p2

温馨提示

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

最新文档

评论

0/150

提交评论