基于单片机的电子密码锁的设计与仿真要点_第1页
基于单片机的电子密码锁的设计与仿真要点_第2页
基于单片机的电子密码锁的设计与仿真要点_第3页
基于单片机的电子密码锁的设计与仿真要点_第4页
基于单片机的电子密码锁的设计与仿真要点_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、电子信息工程课程设计电子综合课程设计报告设计课题:基于单片机的电子密码锁设计专业班级:09级电子1班组长:_ 学号:20090813007组员: 学号:20090813005学号:20090813007学号:20090813010学号:20090813013指导教师:设计时间:设年11月20日一12月20日摘要在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一 些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带 多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展, 人们对日常生活中的安全保险器件的要求越来越高。为满足

2、人们对锁的使用要求,增加其 安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易 操作等优点。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码 锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性 能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带 微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析 系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。基于以上思路,本次设计使用 atmel公司的at89c5破现一基于单片机的电子密码 锁的设计,其主要具

3、有如下功能:1 .设置8位密码,密码通过键盘输入,若密码正确,则将锁打开。2 .密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入 密码,在输入新密码时候需要二次确认,以防止误操作。3 .报警、锁定键盘功能。密码输入错误液晶显示器会出现错误提示。4 .电子密码锁的设计主要由三部分组成:4x4矩阵键盘接口电路、密码锁的控制电路、 输出显示电路。另外系统还有led提示灯,报警蜂鸣器等。密码锁设计的关键问题是实现密码的输入、清楚、更改、开锁等功能:1)密码输入功能:按下一个数字键,一个“i 就显示在最右边的液晶屏上。2)密码清除功能:当按下清除键时,清除前面一位输入的密码,并

4、清除对应的“*”。3)密码更改功能:将输入的值作为新的密码。4)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。-iii -电子信息工程课程设计abstractin our daily life, the security of house, company department, documents and finance forms, also some personal information always used the lock to protect them. if use the normal keys to lock out the door

5、, we should taken many keys with ourself.that is so difficult to use. and if we lost the keys with careless, the security looks very easy to break out. as the developing of the technologypeopleask for high security machines.for satisfy this request, the cipher lock is appeared.the cipher has higher

6、security, lower cost, lower power and easy to use.base on the thinking of the cipher lock, this design uses at89c52 of atmel company to carry out the scm digital cipher lock, its main function as follow:1. set password with 8 words, enter the words via keyboard, if enter the right number, the lock w

7、ill unlock.2. password can set and fix by yourself, you can just fix the password when the lock is keeping unlock. it need to enter the new password twice to avoid the wrong activity.3. alarm function. if enter the wrong password, the mon will show the error message.this lock is made by 3 parts: gob

8、 circuit of 4x4 matrix keyboard , gob circuit of cipher lock, gob circuit of 8 way display output. other wise, the system has led light, and warning buzzer.the main function of this cipher lock is carried out enter, clear, and change the password, and unlock the door.1. enter the password: press one

9、 number button, one signal * will show on the digital tube on the right side.2. clear the password: press the clear button to clear the last code you have enter before one by one.3. change the password: use the new enter number as the new password.4. unlock function: press the unlock button, the sys

10、tem will check up the enter number and password, if yes the lock will open, if not it keep lock.-4 -目录摘要 iiabstract iii目 录 iv第一章引言 11.1 题目背景 11.2 电子锁 11.3 电子密码锁的特点 11.4 电子密码锁的的发展趋势 2第二章系统方案选择 32.1 总体方案比较与论证 3方案一:基于8d锁存器74ls373的锁存密码电路 3方案二:以stc89c52为核心的单片机控制方案 32.2 显示方案的选择 4方案一:使用lcd1602a行显示 4方案二:用数码

11、管来显示 42.2密码输入方式的选择 5方案一:指纹输入识别 5方案二:矩阵键盘输入识别 5第三章系统总体介绍和主要芯片介绍 63.1 系统总体介绍 63.2 主要芯片介绍 73.2.1 stc89c52 73.2.2 存储芯片 at24c02 93.2.3 lcd1602 显示器 10第四章硬件电路设计 12电子信息工程课程设计4.1 键盘输入模块 124.2 密码存储电路 134.3 复位电路 134.4 显示电路 134.5 报警显示电路 144.6 状态显示及继电器控制电路 14第五章软件设计 155.1 软件设计方案 155.2 软件设计总流程图 165.3 具体功能软件实施 175

12、.3.1 键盘扫描 175.3.2 液晶显示 195.3.3 密码保存 205.3.4 密码修改 21第六章仿真与调试 226.1 硬件调试 226.2 软件调试 23第七章结论与心得 25参考资料 26附录i 27附录口 27附录出 28-v -电子信息工程课程设计第一章引言1.1 题目背景随着社会物质财富的日益增长,安全防盗已成为社会问题。而锁自古以来就 是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便, 这也是制锁者长期以来研制的主题。目前国内,大部分人使用的还是传统的机械 锁。然而,眼下假冒伪劣的机械锁泛滥成灾,互开率非常之高。所谓互开率,是 各种锁具的一个技术质

13、量标准,也就是1把钥匙能开几把锁的比率。经国家工商 局、国家内贸局、中国消协等部门对锁具市场的调查,发现个别产品的互开率居 然超标26倍。为何弹子锁的“互开率”会如此之高?据有关专家人士剖析,弹子锁质量好 坏主要取决于弹子数量的多少以及弹子的大小,而弹子的多少和大小受一定条件 的限制。此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏 锁的前提下将锁打开。机械锁的这些弊端为一种新型的锁-电子密码锁,提供了 发展的空间。1.2 电子锁电子锁是采取电子电路控制,以电磁铁或者卫星电机和锁体作为执行装置的 机电一体化锁具,相比传统的机械锁具,电子锁不使用金属钥匙,保密性、精度 都有很大提高

14、。电子锁的发明思路,源自古代发明的自动机械,例如古希腊数学家赫伦的液 压自动门,中国古代诸葛亮的木牛流马, 它们以重力或蒸汽压力驱动,最广泛的 用途乃是用在古代墓道的地下机关。电子工业的诞生,使得以微小电量驱动机械 成为可能,于是有了电子锁一日千里的跃进。1.3 电子密码锁的特点电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品, 也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核 心,通过编程来实现的。其性能和安全性已大大超过了机械锁,主要特点如下:1 .保密性好,编码量多,远远大于弹子锁

15、。随机开锁成功率几乎为零。2 .密码可变。 用户可以经常更改密码,防止密码被盗,同时也可以避免因 人员的更替而使锁的密级下降。3 .误码输入保护。当输入密码多次错误时,报警系统自动启动,防止试探 密雇。1.4电子密码锁的的发展趋势从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码 锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞 车。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,具突出优 点是 密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除 了忘记),难以被窃(除非自己泄露)。但是密码不能太简单,太简单了就容易被 他人在键盘上

16、试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然, 密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低, 造成使用不便。因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展 中,如 任意设定密码”技术使得被授权人可以根据自己的需要或喜好设定密码, 常用常新;而自动更改密码”技术使得本次输入的密码将自动更改成下次应输入 的密码,更改的规律不为他人所知,因而不怕旁观者窥测;独出心裁的键盘乱序显示”技术使得键盘上的固定键位每次显示出的字符不固定,并且显示的窄小 角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密 码;多重密码设定”技术使得单组密码不一定

17、有效,适合多人分权使用,需要输 入两组以上的密码才被认可,大大提高了保密性,如果限定输入这些密码的先后 顺序或时间区段,则保密性还可提高。 在输入密码的过程中,为了限制试探密码 的企图,通常输入错误码若干次或若干时间内输入不正确,即封锁”键盘,不再接受输入操作。总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁 不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入 手段。-43 -第二章系统方案选择2.1 总体方案比较与论证方案一:基于8d锁存器74ls373的锁存密码电路此方案采用两个8d锁存器74ls373用于存储密码和接收输入信号,两者进 入比较器进行比较。共设有

18、八个用户输入键,74ls373为密码存储器件。先将74ls373的c和oc端置低电平,使其处于送数状态。当输入密码后将 oc置于 高电位,则锁存器将密码信号锁存,然后按键复位。当下次开锁时只有在规定时 间内,规定次数内输入密码才会发出开锁信号,否则不能开锁。并且,当时间或 输入次数到达一定值后,电路会自锁一段时间,并发出警报声。警报结束后,电 路回复原状,计时及计数归零,直至下一次开锁动作。第一部分是密码输入部分,由八个开关构成,密码输入共有28=255种输入方式(注:从0000-1111共256种组合),但能正确开锁的输入方式只有1种, 安全性较高。第二部分是由 74ls373组成的密码锁存

19、电路,通过控制 74ls373 的芯片管脚特性来控制芯片的工作状态。第三部分是由74ls85组成的比较器(或 者是同或门组成的比较电路),来比较输入信号与寄存密码的相等与否。第四部 分是有二极管构成的开锁信号电路,黄灯处于待开状态,绿灯表示开锁正确,红灯及警报声表示开锁错误或者是锁存状态。第五部分是计时及计数部分,计时表 示从准备开锁到开锁完成所规定的时间,以及锁存时期的锁存时间,计数记录的是误操作的次数。方案二:以stc89c52为核心的单片机控制方案选用单片机stc89c52作为本设计的核心元件,利用单片机灵活的编程设计 和丰富的i/o端口,及其控制的准确性,实现基本的密码锁功能。在单片机

20、的外 围电路外接输入键盘用于密码的输入和一些功能的控制,外接at24c02芯片用于密码的存储,外接lcd1602用于显示作用。当用户需要开锁时,先按键盘开 锁键之后按键盘的数字键 0-9输入密码。密码输完后按下确认键,如果密码输 入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后可以设置新密码。 新密码输入无误 后按确认键使新密码将得到存储,密码修改成功。单片机具有资源丰富、速度快、编程容易等优点。利用单片机内部的随机存 储器(ram)和只读存储器(rom)及其引脚资源,外接显示器,键盘输入等 实现数据的处理传输和显示功能, 基本上

21、能实现设计指标,而且单片机编程设计 灵活、i/o端口丰富、控制的准确性高,不但能实现基本的密码锁功能,还能添 加调电存储、声光提示甚至添加遥控控制等附加功能, 此外单片机方案有较大的 活动空间,不但能实现所要求的功能, 还能在很大的程度上扩展功能, 而且还可 以方便的对系统进行升级。综上分析:方案一虽然设计简单但密码输入控制复杂、实用性不是很 强,并且不能实现密码保存。而方案二设计复杂,使用方便,安全性好, 功耗低,成本低,而且容易操作保密性强。故在此设计中,我们选用第二 种方案,即利用单片机实现密码锁的控制。2.2 显示方案的选择方案一:使用lcd1602!行显示由于液晶显示器每一个点在收到

22、信号后就一直保持那种色彩和亮度,恒定发光,因此液晶显示器画质高;同样液晶屏的功率消耗比较小;液晶是平板型结构, 由两片玻璃组成的夹层盒,面积可大可小,安装时占用面积小减小了设备的体积; 液晶的信息量大相同的面积上与数码管比可以显示更多的信息;且他本身没有老方案二:用数码管来显示化问题寿命极长;与数码管相比液晶屏显示的更能够看懂, 他能将英文细腻的显 示出来是数码管做不到的。然而液晶屏也可在阳光下工作,具有防风、防雨、防 水功能。这就说明能够使用在室外。但是液晶在阳光强的时候会反光是视角模糊图21液晶显示与液晶相同也能显示数字和字母,但是在显示字母的时候没有液晶那么细腻很难辨认,而且用数码管显示

23、一个较长的 英文就会用到好几个数码管扩大了空 问,就显得美观。数码管的优点 是在强光下也能看清上面显示的内 容。日日:日日图2 2数码管显示综合两方案的比较用液晶显示比较合适2.2密码输入方式的选择方案一:指纹输入识别指纹识别技术主要设计四个功能: 读取指纹图像、提取特征、保存数据和对 比。通过指纹读取设备读取到人体指纹的图像,然后对原始图像进行初步的处理, 使之更加清晰,再通过指纹识别软件建立指纹的特征数据。软件从指纹上找到被 称之为“节点”的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些 点同时具有七种以上的唯一特征。通常手指上平均具有70个节点,所以这种方法会产生大约490个数据

24、。这些数据通常被称之为模板。通过计算机模糊比较的 方法,把两个指纹的模板进行比较, 计算出它们的相似程度,最终得到两个指纹 的匹配结果,从而判断输入结果的正确与否。方案二:矩阵键盘输入识别由各按键组成的矩阵键盘每条行线和列线都对应一条i/o 口线,键位设在行线和列线的交叉点,每当一个按键按下就会由某一条行线与某一条列线接触,只要确定接触的是哪两条i/o 口线,就可以确定哪一个按键被触动。行线初始置于 高位,通过不断读行线口线,或者中断方式触发键位扫描。当发现有键按下,将 列线逐一置低,其他列线置高,读取行线口线。当某条列线置低时,某条行线也 被拉低,则确定这两条线的交点处的按钮被按下。方案比较

25、:方案一虽然比较安全,不容易忘记密码但是软硬件太过复杂,很 难操控且成本很高。而方案二简单易行,可以进行程序控制,成本较低。故选取 方案二作为设计的输入部分。第三章系统总体介绍和主要芯片介绍3.1系统总体介绍本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成其中矩 阵键盘用于输入数字密码和进行各种功能选择的实现。由用户通过连接单片机的 矩阵键盘输入密码后,经过单片机对输入密码与自己保存的密码进行比对,从而判断出密码是否正确,然后控制引脚的高低电平传到开锁电路或者警报电路控制 开锁还是报警。实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁 吸合线圈即可。系统整体框图如图 3-1

26、所示。图3-1结构框图各模块功能如下:1 .键盘输入模块:分为密码输入按键和几个功能按键,用于完成密码锁输入功 能。2 .显示模块:用于完成对系统状态显示及操作提示功能。3 .复位电路:完成系统的复位4 .报警电路:用于完成输错密码时候的警报功能5 .密码存储模块:用于完成掉电存储功能,使修改的密码断电后仍能保存6 .开锁电路:应用继电器及发光二极管模拟开锁,完成开锁及显示3.2主要芯片介绍3.2.1 stc89c52mcs-51系列中的各种芯片引脚 是互相兼容的,其中stc89c52单片机是高性能的单片机。在不接任何外围 电路的情况下可以实现大部分较为复 杂的逻辑控制功能,进行外部ram扩图

27、 3-1at89c51 芯片被广泛应用于展还可以用于数据采集,点阵显示屏 控制等方面应用。对于存储量要求不高的实际应用,stc89c52是一种不可多得高性能的单片机 各个领域。stc89c521一种低功耗、高性能 cmos前微控制器,具有8k在系统可编 程flash存储器。在单芯片上,拥有灵巧的 8位cpu和在系统可编程flash, 使得stc89c5如众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节flash, 512字节ram 32位i/o 口线,看门狗定 时器,内置4kb eeprommax813位电路,2个16位 定时器/计数器,一个6 向量2级中断结构,

28、全双工用行口。另外 stc89x52可降至0hz静态逻辑操作, 支持2种软件可选择节电模式。空闲模式下,cpu停止工作,允许ram定时器 /计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率 35mhz 6t/12t 可选。stc89c52的弓i脚图如图3 2:vcc:电源电压gnd:地p0 口: p0 口是一组8位漏极开路型双向i/o 口,也即地址/数据总线复用口, 作为输出口用时,每位能驱动8个ttl逻辑门电路,对端口写“1”可作为高阻 抗输入端口。p0 口能够用于外部程序数据存储器,它可以被定义为数据

29、 /地址的 低八位。p1 : p1是一个带内部上拉电阻的8位双向i/o 口,p1的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“ 1”,通过内部的上拉电阻 把端口拉到高电平。作输入口使用时,因 内部有上拉电阻,不需要外接上拉电阻。p2 : p2 为一个内部上拉电阻的8位双向i/o 口,p2 口缓冲器可接收,输 出4个ttl门电流,当p2 口被写“1时, 其管脚被内部上拉电阻拉高,且作为输joooooooooooooooooodo 、o1 234567 to123 4 567-mn % 111i.1111s13m3.33 3 33 阻缸用 npppppppprpfp-fppf

30、p-pegpidp3契其方必力乂盯汜弭到 )8051 atm&s5x f 5tc69c5m )vccporpowpofo町 bp0usf2叫叫f2.pif2;乳00000 00000*000000032 stc89c52 引脚图入。p2 口当用于外部程序存储器或 16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址 “1时,它利用内部上拉优势,当对外部八位 地址数据存储器进行读写时,p2 口输出其特殊功能寄存器的内容。p3 : p3 作为一般i/o 口线的情况与上述相同。但更重要的用途是它的 第二功能。第二功能如下:表3-1 p3端口第二功能说明p3.0 rxd (串行输入口

31、)p3.4 t0 (记时器0外部输入)p3.1 txd (用行输出口)p3.5 t1 (记时器1外部输入)p3.2 /into (外部中断0)p3.6/wr (外部数据存储器写选通)p3.3 /int1 (外部中断1)p3.7 /rd (外部数据存储器读选通)rst复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog地址锁存允许。当单片机方位外部存储器时,该引脚的输出信号 ale用于锁存p0的八位地址。输出频率为时钟频率的 1/6。psen程序存储器允许,输出外部程序存储器的选通信号。 ea/vpp:当ea=0时,单片机只访问外部程序存储器。当 ea=1时,单

32、片机 只访问内部程序存储器。xtal1反向振荡放大器的输入及内部时钟工作电路的输入。xtal2来自反向振荡器的输出。3.2.2存储芯片at24c02at24c0统一个 2k位串行 cmos e2prqm 内部含有256个8位字节,catalys公司的 先进cmosfc术实质上减少了器件的功耗。at24c02有一个16字节页写缓冲器。该器件 通过iic总线接口进行操作,有一个专门的写 保护功能。24c02引脚说明:scl:用行时钟信号引脚在scl输入时钟信号的上升沿将数据 送入eeprom器件,并在时钟的下降沿将数 据读出。sda:图33 24c02的实物图a。匚18vccaic27 wpa?匚

33、36 sclvss匚45 sda图3-4 24c02的引脚功能图用行数据输入/输出引脚 sda引脚可 实现双向串行数据传输。该引脚为开漏输出, 可与其它多个开漏输出器件或开集电极器件线或连接。a0, a1, a2地址输入引脚。当使用24c02时最大可级联8个器件,如 果只有一个24c02被总线寻址,这三个地址输入脚 a0, a1, a2可悬空或拉高。wp写保护,当wp接地时,允许对器件的正常读写操作;当 wp接高 电平时,写保护,只能进行读操作。vcc, gnd 电源,接地引脚,1.8-5.5v24c02内部寻址,读/写操作:前八位是地址地址信号,从最高位 (msb)开始,其中前四位是固定值1

34、010, 后三位有管脚a0、a1、a2的基地情况确 定。最后一位是读写控制信号,0表示写, 1表示读。若与sda线发送过来的地址比椒即 t & i q m m m姗图3 5 24c02寻址方式较一致,则器件输出应答0,否则将返回等待状态。器件内部地址寻址是在器件寻址之后,对 256个字节进行寻址,直接传送8 位地址信号(00-ff)对应于器件内部的地址。写操作:先由主机发送起始命令,再发送送器件地址,当主机接收到器件的 ack应 答后,便继续发送内部字节地址,当接收到 ack应答后继续发送数据,当8位 数据发送完毕之后,主机接收到器件的 ack应答,在发送停止信号。做;净 融片 r.卞描收的画

35、 窗止条伸 *品 *r离 罪性 rin 卬rtttkrtttt乃 nml raml aas“c 含sccbbwkae kk图3 6 24c02写寻址读操作:内部地址计数器存放着上一次访问时最后一个地址加 1的值,只要芯片有 电,该值就被保存。当读到最后页的最后字节,该地址变为 0;当读到某页的页 尾时,该地址转向该页页首。bstfi s ff k*的喉 it 小mnrttni:mmuras3 t_c.ck图3-7 24c02读寻址3.2.3 lcd1602 显示器现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。1602型lcd液晶显示模块具有体积小,功耗低,显示内容丰富等特点

36、,超薄轻 巧,常用在袖珍式仪表和低功耗应用系统中。可以显示2行16个字符,有8位数据总线d0d7和rs,r/w,en三个控制端口 ,工作电压为5v,并且具有对字 符对比度调节和背光功能。1602液晶模块内部的字符发生存储器(cgrom)已经存储了 160个不同的 点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和 日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母a的代码是01000001b (41h),显示时模块把地址 41h中的点阵字符图形显示出来,我 们就能看到字母“a”。因为1602识别的是ascii码,试验可以用ascii码直接 赋值,在单片机编程中还可

37、以用字符型常量或变量赋值,如 a。lcd1602#弓i脚功能如下表所示:表3-2 lcd1602各引脚功能说明编勺符号引脚说明编勺符号引脚说明1vss电源地9d2数据2vdd电源止极10d3数据3vl液晶显示偏压11d4数据4rs数据/命令选择12d5数据5r/w读/写选择13d6数据6e使能信号14d7数据7d0数据15bla背光源止极8d1数据16blk背光源负极基本操作时序:读状态: 令rs=l,rw=l,e=h输出:d0d7=状态字读数据: 令rs=h,rw=h,e=h输出:无写指令: 令rs=l,rw=l,d0口7=指令码,e=高脉冲 输出:d0d7二数据写数据: 令rs=h,rw=

38、l,d0d7=数据,e=高脉冲 输出:无状态字说明sta7sta6sta5sta4sta3sta2sta1sta0d7d6d5d4d3d2d1d0sta0-6当前数据地址指针的数值;sta7读写操作使能 1:禁止0:允许1602系歹!j中有11种状态字,对应不同指令,具体见 datasheet第四章硬件电路设计本系统外围电路包括键盘输入部分、密码存储部分、复位部分、显示部分、 报警部分、开锁知识部分组成,根据实际情况键盘输入部分选择4*4矩阵键盘,显示部分选择字符型液晶显示 lcd1602密码存储部分选用at24c02e片来完成。 其原理图见附录。4.1 键盘输入模块由于本设计所用到的按键数量

39、较多而不适合用独立按键。采用的是矩阵式按 键键盘,由行和列组成,也称行列式键盘。本设计采用 4x4触点式键盘,分别 有数字键,确定键,清除键和干扰键。在软件设计中,通过对键盘的编程,可实 现各按键功能。它与单片机的连接如图如图3 1所示,图3-1按键图具体的功能设计如表3-1所示:表3-1 按键功能按键键名功能说明1-9键数字键输入密码s1开锁键开始输入密码s2闭锁键开锁后,闭锁s3重置密他键重新设定密码清除清除键清除位输入确认确认键操作确认s44.2 密码存储电路由52单片机掉电后会丢失数据存储器里的数据,因此必须外加掉电存 储电路,由 at24c02芯片来实现掉电保护为串行时钟输入线,与单

40、片机 p3.0相连。图3 2掉电保护电路图32所示的at24c02的1、2、3脚是三条地 址线,用于确定芯片的硬件地址,此次电路将它们都 接地。第4脚和8脚分别为电源、地线。第5脚sda 为申行数据输入/输出,数据通过这条双向12c总线申 行传输,本电路sdaw单片机p3.1相连。第6脚sclat24c02芯片的管脚图如图 3-2所示:4.3 复位电路复位操作完成单片机片内电路的初始化,使单片机从一种确定的状态开始运行。当8xx51单片机的复位引脚rst出现5ms以上的高电平时单片机就完成了复s1r110k位操作。如果rst寺续为高电平,单片机就处于循环复位状态,而无法执行程序 因此要求复位后

41、能脱离复位状态。sw 复位电路根据应用的要求,复位操作通常有 两种基本形式:上电复位、开关复位。 上电复位要求接通电源后,自动实现复 位操作。本设计使用常见的上电且开关 复位。电路图如图3-3所示:图3- 3复位电路4.4 显示电路开锁时,按下键盘上的开锁按键后,利显示部分由液晶显示器1602用键盘上的数字键 0-9输入密码,没按下一个数字键后在显示器上显示一个 “*”,输入多少位就显示多少个“ *”。当密码输入完成时,按下确认键,根据输 入密码的正确与否,lcd上显示对应的状态。如果密码输入成功,还可进行密码 重置,对应的提示信息在lcd上也会显示。通过lcd显示屏,可以清楚地判断出 密码锁

42、所处的状态。电路图如图3 4所示:图34复位电路4.5 报警显示电路报警部分由有源蜂鸣器及外围电路组成, 单片机加电后不发声,当有键按下 时,“叮”声,每按一下,发声一次。密码输入正确时,不发声直接输出开锁信 号。当密码错误次数达到三次时,单片机p2.3 口高低电平震荡,蜂鸣器发出警报声,电路其他部分锁死。警报到达一定时间后,自动回到闭锁状态。电路中三 极管npn处在开关状态,受p2.3 口控制,当p2.3为低电平时,蜂鸣器无电源, 当p2.3为高电平时,三极管导通,蜂鸣器受 5v供电。对应电路图如图3 5所示:眸.艮6 .“q2lsi/-l-xspeaker声音提示电路图35警报电路4.6

43、状态显示及继电器控制电路状态显示及继电器控制电路,主要用于显示密码锁的开锁闭锁状态。本设计中利用两个led灯显示,由p3.4 口控制的绿色led表示密码锁开锁状态,由p3.5 口控制的红色led表示密码锁闭锁状态。同时,利用 p3.3 口控制继电器的 通断,实现弱点控制强电。p3.3 口与p3.4 口相同,表示同一含义,这样设计的 主要原因是由于在电路中p3.4 口外接led,其电压无法使5v继电器工作。对应电路图如图3 6所示:图3 6状态显示及继电器控制电路状态显示及继电器控制电路第五章软件设计5.1软件设计方案主要完成,开始时液晶显示初始状态。当有开锁请求时,按下 s1,进入密 码输入阶

44、段。输入密码输入过程中可以进行退格,输入完成后按下确认键, 系统 会将所输入与系统密码进行比对。若输入密码正确则显示“*open*”开锁,输出开锁信号,然后可以选择上锁或者修改密码。按下 s2选择上锁,锁 重新回到闭锁状态,开锁信号灭,lcd回到初始化状态。选择修改密码则可以对系统进行修改密码操作。在修改密码前要输入正确旧 的密码。正确输入旧密码之后,会有提示输入两次新密码,若两次密码一致,则 修改成功。期间操作出现失误,如两次新密码输入不相同,或者密码位数不到8位时,系统会返回锁开前即选择重新设密码前的状态。如果密码输入错误,错误警告灯亮,lcd显示错误,并显示输入错误限制 次数。一段时间后

45、,进入闭锁状态。若连续操作错误超过 3次,一定时间内系统 会锁定键盘,并报警用以防止恶意试探密码。如果在规定次数以内密码输入正确, 则锁开,且错误次数清空,不会影响到下一次的开锁。软件采用模块化设计,在程序中以一个主函数,多个子函数的方式编写,主 要子函数见后续介绍5.2软件设计总流程图开始初始化显示* 密码输入n是否被按下lc 口必不错误坏鸣器响电路锁定上口提示错误”误次数是白运到三次丽认nedfawr4aele提示开锁 lcd显示正嗨s2卜.锁sionlg口提加两次l输入不同lcex2示两次输入不同老密码输a新招的输入n密码是由达到班。二次密码输入n:码两工输图51密码锁的总流程图5.3具

46、体功能软件实施5.3.1 键盘扫描键盘设计应用编程式扫描方式,利用cpu完成其它工作的空余时间来调 用键盘扫描子程序,响应键盘输入的要求。在执行键功能时,cpu不再响应键输入要求,直到cpu开始重新扫描键盘为止。扫描程序包括:1 .判别有无按键按下;2 .扫描键盘,取得闭合键的行、列值;3 .判断闭合键是否释放,如未释放继续等待;4 .将闭合键号保存,同时转去执行该闭合键的功能。键盘扫描程序如下:uchar get_key().uchar row_code;uchar col_code;p1=0xf0;if(p1!=0xf0) delayms(200);if(p1!=0xf0) delayms

47、(2);row_code=0xfe;while(row_code!=0x7f).p1=row_code;if(p1!=row_code).col_code=(p1&0xf0)|0x0f;beep();return( (col_code)|(row_code); row_code=(row_code1)0x01); 一一 return(0x00);按键消抖设计采用的是机械触点式按键。机械式按键在按下和释放时,由于机械弹性作用的影响,通常伴随有 一定时间的触点机械抖动,然后起触点才稳定下来。抖动时间的长短与开关的机械特性有关,一般为510 ms。在触点抖动期间检解测按键的通断状态,可能导致判断错误

48、。既 按键一次按下或释放被错误的认为是多次操 作,这个是不允许出现的,为了克服按键触点机械抖动所擀5-3硼榔物原型须 米取去抖动措施,由于按键多几考虑软件去抖。在检测到有按键按下时,执行一个 10ms左右(具体时间应视所使用的按键 进行调整)的延时,然后确认该按键是否保持闭合状态的电平,若是,则确认该 键处于闭合状态;同样,在检测到该键释放后用同样方法确认, 从而可消除抖动 的影响。5.3.2液晶显小使用1602的的一般流程基本是:a:初始化初始化里面一般有设置显示行、清屏、设置光标的开关、光标的闪烁、设置 起始地址、设定显示屏或光标移动方向指令。b:写命令、写数据写命令是按照那个时序图写的,

49、时序图给低就写低,延时就延时,或写高就 写图。基本操作时序:读状态输入:rs=l, rw=h,写指令 输入:rs=l, rw=l, 无读数据输入:rs=h, rw=h,写数据 输入:rs=h, rw=l, 无c:送显示e=h输出:db0db7=状态字e二下降沿脉冲,db0db7=指令码 输出:e=h输出:db0db7二数据e二下降沿脉冲,db0db7=数据 输出:根据lcd1602 datasheet编写以下lcd显示相关控制及显示程序: void write_lcd_command(uchar cmd)/* 送指令 一 一rs = 0;rw = 0;en = 0;p0 = cmd;delay

50、mms(1);en = 1;delaymms(1);en = 0;void write_lcd_data(uchar dat)/* 送数据 一 一rs = 1;rw = 0;en = 0;p0 = dat;delaymms(1);en = 1;delaymms(1);en = 0;void initialize_lcd()/* 初始化.write_lcd_command(0x38);write_lcd_command(0x0c);write_lcd_command(0x06);write_lcd_command(0x01); 一 一void lcm_setxy(uchar x,uchar y)

51、/* 选择显示位置.if(y=1) write_lcd_command(x|0x80);if(y=2) write_lcd_command(x|0xc0);一 一void lcm_write_string(uchar *string)/* 输入显示内容 一 一uchar i=0;while(stringi!=0)write_lcd_data(stringi);i+;5.3.3密码保存本次设计密码保存使用的是 eprom 24c02进行密码保存。24c02通过sda和scl两根口线可以实现与单片机的i2c通信。主要工作情况:以启动信号start来掌管总线,以停止信号stop来释放总线;每次通讯以

52、start开始,以stop结束;启动信号start后紧接着发送一个地址字节,其中7位为被控器件的地址码,一位为读/写控制位r/w,r. /w位为0表示由主控向被控器件写数据,r/w为1表示由主控向被控器件读数据;当被控器件检测到收到的地址与自己的地址相同时, 在第9个时钟期间反馈应答信号;写通讯过程:1 .主控在检测到总线空闲的状况下,首先发送一个 start信号掌管总线;2 .发送一个地址字节(包括7位地址码和一位 r/w);3 .当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信 号(ack);4 .主控收到ack后开始发送第一个数据字节;5 .被控器收到数据字节后发送一个 a

53、ck表示继续传送数据,发送 nack 表示传送数据结束;6 .主控发送完全部数据后,发送一个停止位stop,结束整个通讯并且释放 总线;读通讯过程:1 .主控在检测到总线空闲的状况下,首先发送一个 start信号掌管总线;2 .发送一个地址字节(包括7位地址码和一位r/w);3 .当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信 号(ack);4 .主控收到ack后释放数据总线,开始接收第一个数据字节;5 .主控收到数据后发送 ack表示继续传送数据,发送 nack表示传送数 据结束;6 .主控发送完全部数据后,发送一个停止位stop,结束整个通讯并且释放 总线;本次设计过程中,

54、参考 24c02的数据手册,基于其基本的读写过程,编写 了能够实现本次设计要求的程序。如密码读取,密码存入等,由于程序过多,具 体程序见附录程序中24c02相关程序。5.3.4密码修改用户能根据自己的需要修改密码,按下选择键用户进行密码的修改。 密码输入成功之后,锁开,根据lcd!示选择回到锁定状态或者重新设置密码。如果选择s3,即重置密码,则进入密码修改程序。首先输入旧密码一次,如果正确便 进行密码的修改再输入新的密码两次,两次的密码进行比较,如果两次密码相同 密码修改成功,不同就会从新输入新的密码,再进行比较,相同之后提示密码设置成功。具体的流程图见总流程图,程序见附录passwordchg()f程序。第六章仿真与调试6.1 硬件调试1 .液晶显示模块的硬件调试利用proteus画好相应的硬件流程图,注意液晶显示器lcd1602的各个弓唧, 尤其与单片机的接口,在硬件调试的测试软件中要对它的控制引脚进行定义。他图6- 1硬件显示调试图实际电路中,注意lcd160纵据口、控制口与单片机的交互,注意 背光源正 极和负极的连接以及背光调节旋钮的正确安装。此次制作中,画出pcbfi后,

温馨提示

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

评论

0/150

提交评论