指纹 密码锁设计-毕业论文_第1页
指纹 密码锁设计-毕业论文_第2页
指纹 密码锁设计-毕业论文_第3页
指纹 密码锁设计-毕业论文_第4页
指纹 密码锁设计-毕业论文_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业设计说明 题目 指纹 密码锁设计 专业名称机电一体化技术学生姓名xxxxx学 号0202120108指导教师韩全力毕业时间2015年6月河南工业职业技术学院 电子密码锁的设计设计论文毕业 任务书一、题目:电子密码锁的设计二、指导思想和目的要求: 应对人们当今对安全性要求的提高,避免机械锁带来的麻烦。实现电子锁控制,方便人们使用,降低危险系数,增加人们的安全感。三、主要技术指标: 日历时钟DS1302工作电压2.5V5.5V 温度DS18B20电压范围:3.0V5.5V、温度范围:-55+125 精度:正负0.5。四、进度和要求: 准备阶段:2014年10月前,确认题目,准备与题目相关的资料

2、制定设计方案阶段:2014年11月前,根据题目列提纲准备写论文,在这其中翻阅与之相关的资料,逐渐融汇贯通,形成自己的理解设计阶段:提交论文接受老师指导,根据老师的建议对其进行修改以便最终完成答辩总结提高阶段:在老师指导和帮助下,通过自己的努力完成这次设计,在设计过程中虽然自己遇到了困难,但最后自己还是完成了设计,而自己也在这次设计中学到了知识,提高了自己的能力。五、主要参考书及参考资料:MCS51 单片机原理及应用教程、单片机外围电路设计 单片机原理机应用、单片机应用技术教程、单片机应用程序设计技术 单片机原理及应用、C51基础与应用实例、51单片机C语言应用程序设计实力精讲、单片机C语言案例

3、教程 8051单片机C语言程序设计与实力解析学生:王天明 指导教师:王记昌 系主任:2014年11月10日目 录摘要I第1章 绪 论11.1 电子密码锁简介11.2 电子密码锁的发展趋势11.3本设计所实现的功能2第2章 方案比较与论证32.1 方案一:采用数字电路控制32.2 方案二:以单片机为核心的控制方案3第3章 系统模块电路设计53.1 系统总框图53.2 系统的模块电路设计63.2.1单片机最小系统模块63.2.2 时钟电路模块73.2.3键盘模块93.2.4显示模块113.2.5电源模块123.2.6 温度检测电路设计133.2.7开锁电路与报警电路设计15第4章 系统的软件设计1

4、6 4.1软件设计电路16 4.2 系统主程序图16第5章 总 结22致 谢23参考文献24附录25摘要随着人民生活水平的提高,如何实现家庭防盗这一问题也变得尤其突出,传统的机械锁由于其构造简单,安全性低,无法满足人们的需求。随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器,所以具有防盗报警功能的电子密码锁控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码锁控制的密码量少,安全性能差的缺点。通过单片机编写密码程序,并用74LS47和3-8译码器74LS138驱动的数码管来显示密码。数码管可以时时显示当前输入的四位数字。当输入密码正确时,对应的指示灯亮

5、;当密码不正确时,另一个对应的指示灯亮并且发出声音警报。 关键词:密码锁,单片机,报警第1章 绪 论1.1 电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下: 1)保密性好,编码量多,远远大于机械锁。随机开锁成功率几乎为零。 2)密码可变,用户可以随时改变密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。 3)误码输入保护,当输入密码多次错误时,

6、报警系统自动启动。 4)无活动零件,不会磨损,寿命长。 5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁。 6)电子密码锁操作简单易行,一学即会。1.2 电子密码锁的发展趋势在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。目前门锁主要用机械锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性能即大打折扣。针对这些锁具给人类带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增大其安全性,用密码代替要是的密码锁应用而生。它的出现为

7、人们的生活带来了很大方便,有很广阔的市场前景。由于电子器件所限,以前开发的电子密码锁,其种类不全,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后来多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引脚的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的近一步发展,电子密码锁也很出现了很多种类,功能日益强大,使用更加方便,安全保密性更强,有以前的单密码发展到现在的,密码加感应元件,实现了真正的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展以及人们对保密性需求的提高出现了越来越多的电子密码锁。出于安全

8、、方便等方面的需要许多电子密码锁已相继问世。但这类产品的特点是针对特定的有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗所获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,这样对盗贼而言是“道高一尺、魔高一丈”。组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。可以看出组合使用电子信息是电子密码锁以后发展的趋势。1.3本设计所实现的功能本次设计实现基于单片机的电子密码锁设计,其

9、主要具有如下功能: 1)密码通过键盘输入,若密码正确,则将锁打开。 2)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误超过3次,蜂鸣器报警并且锁定键盘。电子密码锁的设计主要有三部分组成:4*4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有LED提示灯,报警蜂鸣器等。密码锁的设计关键问题是实现密码的输入、清除、更改、开锁等功能: 1)密码输入功能:按下一个数字键,一个“一”就显示在最右边的数码管上,同时将先前输入的所有“一”向左移动一位。 2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。 3)开锁功能:当按下开锁键,系统将输入

10、与密码进行检查核对,如果正确锁打开,否则不打开。 主要的设计实施过程:首先,选用单片机,以及选购其他电子元器件。第二步,设计硬件电路原理图,并设计布线图。第三步,使用Keil uVision3软件编写单片机的C语言程序、仿真、软件调试。第四步,使用PROTEUS软件进行模拟软、硬件调试。最后,联合软、硬件调试电路板,完成本次毕业设计。第2章 方案比较与论证2.1 方案一:采用数字电路控制。 其原理方框图如图21所示。图21 数字密码锁电路方案 采用数字密码锁电路的好处就是设计简单。用以74L112双JK触发器构造的数字逻辑电路作为密码锁的控制核心,共设了9个用户输入键,其中只有6个是有效地密码

11、按键,其它的都是干扰按键,若按下干扰按键,键盘输入电路自动清零,原先输入的密码无效,需要从新输入:如电路联系报警三次,电路将锁定键盘10秒,防止他人的非法操作。 电路有两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。 密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。 2.2 方案二:以单片机为核心的控制方案。 首先单片机可以进行灵活的编程设计:首先在编写程序的过程中可以根据自己的设计要求编写适合自己的设计的程序后,可以通过下载的方式把自己根据设计所编写的程序下载到单片机中,

12、在后续的使用过程中如果想更换程序,可以先把以前输入的程序擦出再把自己重新编写的程序下载到其中即可,这样可以为在用户节省费用的同时增加其安全性。其次单片机上有丰富灵活的I/O端口,这些端口可以外接一些元器件,来增加其功能已实现其他机械锁所无法完成的工作,如可以添加加温度显示、时间显示甚至添加遥控控制功能这些都可以通过在I/O端口所添加各种元器件来完成,而这些功能在其他锁中需要外加其它相应的专门的部件才可以完成但对于以单片机为核心的密码锁来说其更容易实现。最后控制的准确性,相对而言对于所有锁而言精确性是最重要的,因为这是保证安全性的前提,如果精确性不够高,那么其安全性很难得到相应的保障,单片机的精

13、确性相对来说还很好。以单片机为核心的控制方案不但能实现基本的密码锁功能,而且可以增加一些附加功能。 通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大程度上扩展功能,而且还可以方便的对系统进行升级所以我们采用或一种方案。第3章 系统模块电路设计3.1 系统总框图 对于整个设计而言,是以单片机为中心,一切的附加设计都是围绕着单片机进行的。其系统框图如图31所示:图31 系统框图在图31中所有附加元器件均以单片机为中。首先当密码输入单片机后,需要通过显示电路显示出来,而且需要对所输入的密码进行检测,故单片机外必须要加一个密码检测电路,而且密码检测电路需要将检测的结

14、果反馈给单片机,让单片机进行下一步的动作。当密码正确后需要调动开锁电路对密码锁进行打开,同时开锁电路要把开锁的结果反馈给单片机,告诉单片机锁已经打开;当密码检测电路判断密码输入错误,同时把结果反馈给单片机,单片机会把错误信息反馈到显示电路中,让用户从新输入密码,同时记录密码输入错误次数。当密码检测电路3次检测到密码错误后,得到反馈信息的单片机会直接调用报警电路,报警电路接到调用后会发出蜂鸣声进行报警并会把结果反馈给单片机,单片机得到反馈信息后,会调用数据锁存电路,对键盘进行10秒锁存处理,同时把信息反馈给单片机,这是单片机内的最小时钟电路进行计时,当10秒锁存时间到了后,单片机会把此信息再次发

15、给数据锁存电路中,当锁存电路接到信息后会解除对键盘的锁存。另外,在单片机增加时钟电路是方便用户对时间的把握,在用户锁门或开门的同时可以方便的查看时间;而增加温度传感器则是为了对应不同的环境对密码锁精度的影响,在不同的环境下,密码锁的精度会随之发生变化。3.2 系统的模块电路设计 3.2.1单片机最小系统模块首先需要选择单片机,虽然现在市场上单片机的种类和型号很多,但要根据本次设计要求来对其进行选择由于此次设计对象是广大普通用户,过首先要考虑经济性,在满足要求的同时应该首先考虑经济性。本次设计需要用到的单片机需要外接矩阵电路和显示电路等故在选择时要考虑其引脚个数以及其功能。本次设计所用引脚数在3

16、0个左右,故选择40个引脚的单片机即可。而且由于此次设计其应该是可以反复长时间使用的,故其应为低能耗的。进过对功能性和性价比的综合对比,我决定选择AT89C51型单片机来完成此次设计。AT89C51是一种低能耗,高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适用于常规编程器。在单芯片上,拥有灵巧的8位CPU和系统可编程Flash,使得AT89C51为众多嵌入式控制应用系统提供高灵活性,超有效的解决方案。AT89C51是一种带2K字节闪烁可变成可

17、擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦出100次。该器件采用ATMEL高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL和AT89C51是一种高效微控制器,AT89C51单片机为很多嵌入式控制提供一种灵活性高切价廉的方案。图32 AT89C51管脚图 3.2.2 时钟电路模块 在选择完单片机后需要选择时钟电路,虽然现在市场上的种类和型号很多,但需要根据此次设计来选择相对应的时钟电路,由于该设计需要显示年月日,所以最少应该具有闰年补偿功能。而且,本产品要长时间使用故能耗不能太高,最好可以找到低能

18、耗的时钟电路,在使用过程中可能会停电,故需要修用一款可以携带备用电源的,及时停电时时钟电路也可以正常工作。经过对比我决定选用DS1302时钟芯片。专门时钟芯片DS1302,该芯片性能简介如下:DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背

19、电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。 (1)引脚功能及结构 图33示出DS1302的引脚排列,其中VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电。当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。当VCC2小于VCC1时,VCC1给DS1302供电。X1和X2是振荡源,外接32.768KHZ的晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传输。RST输入有两个功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器:其次,RST始终提供

20、终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST只为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC>2.5V之前,RST必须保持低电平。只有在SCLK为底低电平时,才能将RST只为高电平。I/O为串行数据输入输出段(双向),后面有详细说明。SCLK始终是输入端。图33 DS1302的管脚图 (2)DS1302的控制字节DS1302的控制字如图34所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存

21、取RAM数据,位5至为1只是操作单元的地址,最低有效位(0),如为0,表示进行写操作(输入),为1表示进行操作(输出)。图34 DS1302的控制字节 (3)数据输入输出(I/O) 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同时,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7. (4)DS1302的寄存器 DS1302有12个寄存器,其中有7个寄存器于日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及控制字表见图35.图35 日历、时间寄存器及其控制字 此外,DC1

22、302还有年份寄存器、控制寄存器、充电寄存器、始终寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写出充电寄存器外的所有寄存器能容。DS1302与RAM相关的寄存器分为两类:一类是单个的RAM单元,共31个,每个单元组态为一个8位字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制为FEH(写)、FFH(读)。 综上所述DS1302与单片机连接如图36所示:图36 DS1302与单片机连接图 3.2.3键盘模块 使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口

23、时所占用的I/O线的数目,在按键比较多的时候,通常采用这样的方法。其原理如图37所示:图37 矩阵键盘 每条水平(行线)与垂直(列线)的交叉处不相同,而是通过一个按键来连通,利用这种行列矩阵结构只需N条行线和M条列线,即可组成具有N*M个按键的键盘。 在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。 当确认有按键按下后,下一步就要哪一个按键按下。对键的识别通常有两种方式:一种是常用的逐行扫描法;另一种是速度较快的线反转法。 对照图:37所示的4*4键盘,说明线反转个工作原理。 首先辨别键盘中无按键按下,有单片机I/O口向键盘送全扫描字,然后

24、读入行线状态来判断。方法是:向列线输出全扫描字00H,把全部列线置为低电平,然后将行线的电平状态读入累加器A。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1.判断哪个键被按下:将P1.0P1.3都置低,检测P1.4P1.7是否有低的,若有,则证明有按键按下,记下低的端口。然后,将P1.4P1.7置低,检测P1.0P1.3是否有低的端口,如有,则证明端口与上次的一个为地的端口。 当4*4键盘确定后,需要确定每个键的功能,如表31所示:表31按键功能分配图3.2.4显示模块 电子密码锁系统中,需要显示的信息较少,因此采用七段LED数码显示管作为显示器。数据传输采用串行方式,有单片

25、机串行数据口P3.0发送,在经过74HC164串行移位器吧串行数据转换成8位并行数据,用以驱动七段LED数码管。由于74HC164芯片中,没有数据锁存器,串行数据每到达一位,都会直接送到七段显示管中,造成所有数据都会经过其短线是数码管的每一个LED灯,是数据显示不稳定。因此在74HC164串行移位寄存器和七段数码显示管之间,加入数据锁存器(74273芯片),以稳定数码显示管的数据显示。在按下开启键后,显示器处于开启状态,同理只有按下关闭键后显示器处于关闭状态,当需要对密码锁进行开锁时,按下键盘上的开锁键后利用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个“”,输入六个数有六个

26、“”出现。当密码输入完成时,按下确认键。如果正确的话,LED显示“111111”,单片机其中P2.0出现低电平,使三极管T2导通,电磁铁吸合,电子密码锁被打开,如果密码错误,LED显示“000000”,单片机P2.0输出的是高电平,电子密码锁不能被打开。在LED屏上时间出错时,可通过“#”键修改时间设定。图38 显示电路 3.2.5电源模块为了防止停电情况的发生,本电路后备了UPS电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。电源电路图如图10所示。图39 供电电路 220V市电通过变压器降压成12V的交流电,在经过整流桥蒸馏,7805稳压到5V送往电子

27、切换电路,由于本电路功耗较少,所以选用10W的小型变压器。有R8,R9,R7及IC14构成电压比较器,正常情况下,V+<V-IC14输出高电平,继电器的常闭触点和市电相连;当市电断开,V+>V-IC14输出高电平,有T3,T4构成的达林顿管使继电器J开启,将其常开触点把蓄电池和电路相连,实现市电和蓄电池供电的切换,保证电子密码锁的正常工作(视电池容量而定持续时间)。其电路图如下图310所示:图 310 停电检测及电子开关切换电路6V充电电源T1,T2构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中D1亮为正在充电,D2为工作指示。有R4,R5,T1构成电压检测电路,蓄电池

28、电压低,则T1,T2导通,实现对其充电;充满后,T1,T2截止,停止充电,同时D1熄灭,电路中C4的作用是滤除干扰信号。其电路图如图311所示6V蓄电池电源A2图311 蓄电池自动充电电路 3.2.6 温度检测电路设计温度检测电路的设计中,首先需要寻找一个适合本次设计的温度传感器。对于温度传感器的选择,需要考虑整个温度检测电路的工作环境的温度,而温度传感器的工作范围必须在可以适应温度检测电路的工作环境的温度就,而且其最好可能实现较少接口即可与单片机的引脚进行连接,这样可以节省单片机的引脚,以便单片机添加其他附加功能,最好在受不同温度影响的情况下其精度变化不大或精度受影响较小,对工作电压的要求不

29、太高,最重要一点就是具有负压功能。综上所述,选取采用一线总线式温度传感器DS18B20,该传感器性能如下: 1)适应电压范围更宽,电压范围:3.0V5.5V,在寄生电源方式下可由数据线供电 2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯 3)DS18B20支持多组点网功能,多个DS18B20可以并联在唯一的三线位上,实现组网多点测温 4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内 5)温度范围-55+125摄氏度,在-10+85摄氏度时精度为正负0.5摄氏度 6)可编程的分辨

30、率为912位,对应的可分辨温度分别为0.5摄氏度、0.25摄氏度、0.125摄氏度和0.0625摄氏度,可实现高精度测温 7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快 8)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC效验码,具有极强的抗干扰纠错能力 9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 DC18B20与单片机接口电路图:图 312 DC18B20与单片机接口电路图 3.2.7开锁电路与报警电路设计(1) 开锁电路在本次设计中,基于节省材料的原则,暂时用发光

31、二极管代替电子锁,发光管亮,表示开锁;发光管灭,表示没有开锁。电路图如所示。当P2.0口输出低电平时,二极管发光,表示开锁。图313 开锁电路(2)报警电路报警模块有蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时需要100mA驱动电流。当AT89C51的P2.1口输出低电平时,蜂鸣器产生蜂音,AT89C51输出高点平时,蜂鸣器不发声。图314 报警电路第4章 系统的软件设计4.1软件设计电路电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入状况,接下来确认密码的判断,做出开锁或报警处理。当密码连续输入错误3次时,系统报警。其中还有温度

32、和时间显示。1)多功能电子密码锁的基本要求:2)通过键盘修改、输入密码。3)连续3次输入密码错误后键盘锁定10秒,并给出提示。4)具有日期时间设置(小时和分钟)、显示,环境温度显示功能。5)220V供电下,设计系统所需电源,并考虑断电后原始数据的保存。 4.2 系统主程序图当电路安装完成后,对密码锁进行初始化初始化。初始化时是把单片机内保留的原始密码恢复成最初值,接下来如果不调用调用显示器就直接结束,调用显示器超过三次还没输对则直接报警如果输对则启动定时系统,如果输入密码为数不足则返回继续输入,直到位数足够位置,当密码位数够时输入少时则自动清除,自动清除超过3次则自动报警,不超时对比密码,如果

33、密码正确则开门,然后整个动作结束。#include<reg52.h>sbit led-lamp=P3.7;Unsigned char 在计算机中使用补码存储 display-count17=0x3f,0x06,0x5b,0x4f,0x66,0xbd,0x7d,0x07,0x7f,0x6f,0x77,0x7f,0x39,0x3f,0x7b,0x71,0x3f;Unsigned char display bit8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;Unsigned char hang; 4*4矩阵键盘控制数码管Unsigned char l

34、ie;Unsigned char key number;Unsigned char password number4=0x05,0x06,0x07,0x08;/unsigned char display number;Unsigned char add bit=0;Unsigned char shumaguang number8;Unsigned int led count;Unsigned char stop flag;Unsigned char scanf flag=0;Unsigned char ret password bit;Unsigned char password ret fl

35、ag;Void delay(unsigned int count)/延时子函数 Unsigned int k; While(count-) For(k=0;k<125;k+);Void timr0 init() /定时中断初始化子程序 TMOD = 0X01; TH0=0XD8; TL0=0XF0; TF0=0; ET0=1; EA=1;Void INT timer0() interrupt1 /定时中断服务函数 TH0=0XD8 TL0=0XF0; Led lamp=0; Led count+; If(led count>199) Led count = 0; Led lamp

36、= 1; TR0=0; 修改密码:按下*号键启动此程序,首先输入修改后的密码,存入后再次输入一次密码,对比两次密码是否一样。如果两次密码不同,则从新输入;如果两次修改的密码相同则调用LED数码管,随后显示调用表示修改成功,然后按%退出,则修改密码工作完成。以前的旧密码不能再使用。这样既不用换锁又可以增强安全性。Void password ret() /密码从设子函数 / unsigned char password ret flag; / if(key number=0x0f) / / Password ret flag=1; While(password ret flag) Password

37、 ret display(); If(P2&0xf0)!=0xf0) Ret password bit+; If(ret password bit>6) Ret password bit=0; Password ret flag=0; Delay(100); Switch(ret password bit) Case 1:password ret flag=1;break; Case 2:password number0=key number;break; Case 3:password number1=key number;break; Case 4:password numb

38、er2=key number;break; Case 5:password number3=key number;break; Case 6:password ret flag=0;break; Default:break; / / Void main() /主函数 Timr0 init(); While(1) Led lamp=0; Display(0x08); Scankey(); If(key number=0x0f) Password ret flay=1; While(password ret flag) Scankey(); Password ret(); Password ret

39、 display(); If(key number=0x0e) Scanf flag=1; While(scanf flag) Scankey(); KEY funcation(); Password display(); If(key number=0x10) Key password compare(); 图43报警流程图当输入密码后系统需要对输入的密码与设定的密码进行比较,本设计采用一位一位数字对比的方式,如果第一位数字错误清除显示同时记下错误位数,接着对比下一位直到六位密码全部对比完成。如果对比过程中出现记录错误次数超过3次则报警,同时锁定键盘10秒钟,如果正确则争取开锁同时键盘上的L

40、ED灯清零,不会留下密码。Void key password compare() /密码是否正确子程序 Unsigned char kou for; If(password number0=shumaguang number0) If(password number1=shumaguang number1) If(password number2=shumaguang number2) If(password number3=shumaguang number3) If(password number4=shumaguang number4) If(password number=shumag

41、uang number5) TR0=1; Scanf flag=0; Stop flag=0; For(kou for=0;kou for<4;kou for+) Shumaguang numberkou for=0; Void display(unsigned char display strat init) /初始化显示子函数 Unsigned char shaomiao for; Unsigned char bit for; For(shaomiao for=0;shaomiao for<0;shaomiao for+) P0=display countdisplay str

42、at init; For(bit for=0;bit for<0;bit for+) P1 =display bitbit for; Delay(1); 第5章 总 结在没有做毕业设计前觉得毕业设计只是对所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后工作、学习中都应该不断的学习,努力提高自己知识和综合素质。不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于完成了有种如释重负的感觉。此外还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两码事,所以我认为只有到真正会用的时候才是正的学会了。程序的设计思想的精巧的重要性,是不管怎样说都不为过的,好的设计可以让大家很快的明白你的思想,而且很方便的来实现它。良好的编程习

温馨提示

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

评论

0/150

提交评论