毕业设计(论文)基于单片机的密码锁的设计.doc

上传人:仙人指路1688 文档编号:3980444 上传时间:2023-03-30 格式:DOC 页数:32 大小:3MB
返回 下载 相关 举报
毕业设计(论文)基于单片机的密码锁的设计.doc_第1页
第1页 / 共32页
毕业设计(论文)基于单片机的密码锁的设计.doc_第2页
第2页 / 共32页
毕业设计(论文)基于单片机的密码锁的设计.doc_第3页
第3页 / 共32页
毕业设计(论文)基于单片机的密码锁的设计.doc_第4页
第4页 / 共32页
毕业设计(论文)基于单片机的密码锁的设计.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机的密码锁的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的密码锁的设计.doc(32页珍藏版)》请在三一办公上搜索。

1、编号200903152009031529 南京航空航天大学金城学院毕业设计题 目基于单片机的密码锁的设计学生姓名学 号2009031529系 部自动化系专 业电气工程与自动化班 级20090315指导教师二一三年六月南京航空航天大学金城学院本科毕业设计(论文)诚信承诺书本人郑重声明:所呈交的毕业设计(论文)(题目: 基于单片机密码锁的设计)是本人在导师的指导下独立进行研究所取得的成果。尽本人所知,除了毕业设计(论文)中特别加以标注引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写的成果作品。作者签名: 2013年5月21日 (学号) 2009031529基于单片机的密码锁的

2、设计摘 要随着人们的生活水平的不断提高,如何保护好家庭财产、个人资料文件等已成为一个尤为突出的问题。由于传统的机械锁结构较为简单,安全系数低,被撬的事件屡见不鲜,而电子密码锁由于保密性高,使用灵活方便,越来越受到人们的欢迎。本设计采用AT89C52单片机作为电子密码锁的控制核心,4*4的矩阵输入电路实现密码的输入,显示电路采用液晶显示屏。本课题设计了密码存储电路,可以存储密码,防止断电时密码的丢失,实现电路的掉电保护。同时,本课题还设计了报警电路,当密码多次输入错误时,会启动蜂鸣器实现报警并锁死键盘。关键词:单片机,密码锁,密码存储Design of Code Lock Based on MC

3、UAbstractWith the continuous improvement of peoples living standards, how to protect the family property and personal data files has become a particularly prominent problem. Due to the traditional mechanical lock structure is relatively simple, low safety factor, picklock becomes a common occurrence

4、.However, electronic locks with high security, flexible and convenient to use, more and more people are welcome.This design uses AT89C52 microcontroller as the core of the control electronic locks. 4 * 4 matrix input circuit to achieve the password input. Display circuit uses the LCD monitor. Design

5、 of this project password storage circuit, you can store the password; the password will not be lost when power is down, to achieve power-down protection function. At the same time, the project also designed the alarm circuit, when the password is entered incorrectly multiple times, it will start th

6、e buzzer for alarm and lock the keyboard.Key Words: Microcontroller; Code lock; Password storage目 录摘 要iAbstractii第一章 绪论11.1 课题背景11.1.1 单片机的发展11.1.2 单片机的特点21.1.3 电子密码锁的发展现状31.2 本次设计所要实现的目标3第二章 系统主体设计和器件的选型52.1 系统设计方案的论证52.1.1 主控部分的选择52.1.2 密码输入方式的选择52.2 系统原理设计图62.3 器件选型72.3.1 主控芯片的选型72.3.2 显示器件的选择8第三

7、章 系统的硬件设计103.1 单片机最小系统设计103.1.1 电源电路103.1.2 时钟电路103.1.3 复位电路113.2 键盘电路113.3 显示电路123.4 密码存储电路133.5 报警电路143.6 开锁电路14第四章 系统的软件设计164.1 系统的总流程图164.2 密码的设定174.3 密码修改184.4 解锁214.5 调试244.5.1 程序调试用到的软件及工具244.5.2 KEIL C51简介244.5.3 调试过程25第五章 总结和展望265.1 总结265.2 展望26参考文献27致谢28附件29第一章 绪 论1.1 课题背景随着人们的生活水平的提高、安全意识

8、的增强,对安全的要求也不断提高。要提高个人财产的安全性,锁是必不可少的。因而锁的安全系数的高低,直接决定了财产安全性的高低。对电子密码锁,既要它操作简单方便一学即会,又要它有很可靠的安全性能,能够为人们的财产安全提供一个可靠的保证。1.1.1 单片机的发展单片机就是在一片半导体硅片上集成了中央处理器单片机就是在一片半导体硅片上集成了中央处理器(CPU)、存储器(RAM、ROM)、并行I/O口、定时器/计数器、中断系统、系统时钟电路及系统总线的微型计算机。单片机根据其基本操作处理的二进制位数主要分为:4位单片机、8位单片机、16位单片机和32位单片机。单片机的发展大致可以分为4个阶段1。第一阶段

9、(1974年-1976年):单片机初级阶段。因制作工艺限制,单片机采用双片形式而且功能比较简单。1974年12月,仙童公司推出了8位的F8单片机,实际上只包括了8位CPU、64B RAM和2个并行口。第二阶段(1976年-1978年):低性能单片机阶段。1976年,Intel公司推出的MCS-48单片机(8位单片机)极大地促进了单片机的变革和发展;1977年,GI公司推出了PIC1650,但这个阶段的单片机仍然处于低性能阶段。第三阶段(1978年-1983年):高性能单片机阶段。1978年,Zilog公司推出了Z8单片机;1980年,Intel公司在MCS-48单片机的基础上推出了MCS-51

10、系列,Mortorola公司推出了6801单片机,这些产品使单片机的性能及应用跃上了一个新的台阶。此后,各公司的8位单片机迅速发展起来。这个阶段推出的单片机普遍带有串行I/O口、多级中断系统、16位定时器/计数器,片内ROM、RAM容量加大,且寻址范围可达64KB,有的片内还带有A/D转换器。由于这类单片机的性能价格高,所以被广泛应用,是目前应用数量最多的单片机。第四阶段(1983年-现在):8位单片机巩固、发展及16位单片机、32位单片机推出阶段。16位单片机的典型产品为Intel公司生产的MCS-96系列单片机。而32位单片机除了具有更高的集成度外,其数据处理速度比16位单片机提高许多,性

11、能比8位、16位单片机更加优越。20世纪90年代是单片机制造业大发展的时期,这个时期的Mortorola、Intel、ATMEL、德州仪器(IT)、三菱、日立、Philips、LG等公司也开发了一大批性能优越的单片机,极大的推动了单片机的应用。近年来,又有不少新型的高集成度单片机产品涌现出来,出现了单片机产品丰富多彩的局面。目前,除了8位单片机得到广泛应用之外,16位单片机、32位单片机也得到广大用户的青睐。1.1.2 单片机的特点单片机的出现是集成电路技术与微型计算机技术高速发展的产物。单片机体积小、价格低、应用方便、因此,单片机的发展和普及给自动化等领域带来了一场重大革命和技术进步。由于单

12、片机本身就是一个微型计算机,因此只要在单片机的外部适当增加一些必要的外围扩展电路,就可以灵活地构成各种应用系统。以单片机为核心构成的应用系统具有以下优点2:功能齐全,应用可靠,抗干扰能力强。简单方便,易于普及。由于单片机技术是一门较为容易掌握的普及技术,广大工程技术人员通过学习就可以很快掌握其应用设计技术。发展迅速,前景广阔。在短短的几十年时间里,单片机就经过了4位机、8位机、16位机、32位机等几大发展阶段,尤其是形式多样、集成度高、功能日臻完善的单片机不断问世,更使得单片机在工业控制及工业自动化领域获得长足的发展和大量的应用。近几年,单片机的内部结构愈加完美,配套的片内外围功能部件越来越完

13、善,为应用系统向更高层次和更大规模的发展奠定了坚实的基础。嵌入容易,用途广泛。单片机的体积小、性能价格比高、应用灵活性强等特点在嵌入式微控制系统中具有十分重要的地位。在单片机出现以前,人们要制作一套测控系统,往往采用大量的模拟电路、数字电路、分立元件,这样,不仅系统体积庞大,而且因为线路复杂,连接点太多,极易出现故障。单片机出现以后,电路的组成和控制方式都发生了很大变化。在单片机应用系统中,这些测控功能的绝大部分都已经由单片机的软件程序实现,其他电子线路则由片内的外围功能部件来替代。1.1.3 电子密码锁的发展现状随着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传

14、统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像来控制锁的开启,从而大大提高了锁的安全性。当今智能电子密码锁的发展已经到了非常高的境界,由于电子元件特别是单片机应用在这几年得到空前发展,无论功能性,稳定性都比较全面,在保密方面已做到人眼识别,指纹识别,人声识别基本上电影上有的现实也有。在国外发展比较早,所以应用也比较广泛,主要在家庭装较贵重地方,银行,保险柜等应用较多,在国内这方面发展也较快,不管自己开发或是引进都有,在重要地方应用也较多,由于价钱比普通弹子锁较贵,早几年应用较少,现在越来越普及到平常化,未来的发展也会越来越被大众采用,由于它的功能、安全

15、是弹子锁无法相比的,发展前境是非常大的3。1.2 本次设计所要实现的目标本次设计使用ATMEL公司的AT89C52 实现基于单片机的电子密码锁的设计,其主要具有如下功能:(1)密码通过键盘输入,若密码正确,则将锁打开。(2)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。电子密码锁的设计主要由三部分组成:44矩阵键盘接口电路、密码锁的控制电路、输出LCD液晶显示电路。另外系统还有LED 提示灯,报警蜂鸣器等。密码锁设计的关键问题是实现密码的输入、取消、更改、开锁等功能:(1)密码输入功能:输入密码时,液晶屏显示“*”。(2)取消当前

16、操作:当按下取消键时,取消现在正在进行的操作,清除当前输入内容,当密码锁打开时,密码锁返回锁定状态。(3)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。主要的设计实施过程:首先,选用ATMEL公司的单片机AT89C52,以及选购其他电子元器件。第二步,设计硬件电路原理图,使用万用板焊接电路。第三步,使用Keil uVision4 软件编写单片机的C语言程序、仿真、软件调试。第四部,使用PROTEUS 软件进行模拟软、硬件调试。最后,联合软、硬件调试电路板,完成本次毕业设计。第二章 系统主体设计和器件的选型2.1 系统设计方案的论证2.1.1 主控部分的选择方

17、案一:采用数字电路控制用以74LS112双JK触发器4构成的数字逻辑电路作为密码锁的核心控制,将密码保存在JK触发器中,将输入数据与密码相比较,判断结果是否符合。采用数字电路设计的方案好处就是设计简单,但控制的准确性和灵活性差,故不采用。方案二:采用以单片机为核心的控制方案选用单片机作为系统的核心部件,实现控制与处理的功能。单片机具有稳定性高、速度快、编程容易等优点。利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD),键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标,因此综合考虑,本系统采用方案二。2.1.2 密码输入方式的选择方案一:指

18、纹输入识别指纹识别技术5主要涉及四个功能:读取指纹图像、提取特征、保存数据和比对。通过指纹读取设备读取到人体指纹的图像,然后要对原始图像进行初步的处理,使之更清晰,再通过指纹辨识软件建立指纹的特征数据。软件从指纹上找到被称为节点(minutiae)的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的唯一性特征。通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。这些数据,通常称为模板。通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果,从而判断输入结果的正确与否。考虑到本方案软硬件太过复杂,而且成本也高,故

19、不采用。方案二:矩阵键盘输入识别由各按键组成的矩阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。通过不断读行线口线,或者中断方式触发键位扫描。当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。当某条列线置低时,某条行线也被拉低,则确单易行,定这两条线的交点处的按钮被按下。每个按键都可通过程序赋予功能,从而完成密码识别。本方案简因此采用此方法。2.2 系统原理设计图图2.1 总体设计图本设计主

20、要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成,如图2.1。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可。2.3 器件选型2.3.1 主控芯片的选型系统主控芯片采用Atmel公司生产的AT89C52单片机6,其主要特点如下:AT89C52是美国Atmel公司生产的低电压,高性能CMOS 8位单片机,片内含8K bytes的可反复擦写的只

21、读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM)。器件采用Atmel公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。芯片引脚图如图2.2。图2.2 AT89C52单片机引脚图主要性能参数:与MCS51产品指令和引完全兼容、8k字节可重擦写Flash闪速存储器1000次擦写周期、全静态操作:0Hz24MHz、三级加密程序存储器、256*8字节内部RAM、32个可编程I/O口线、3个16位定时/计数器、8个中断源、可编程

22、串行UART通道、低功耗空闲和掉电模式。AT89C52是一种低功耗,高性能CMOS8位单片机,有8K字节的Flash可编程和可擦除只读程序存储器(PEROM)。该设备的制造采用Atmel的高密度非易失性内存技术和行业标准80C51兼容和80C52完全指令集和引出线。片上闪存允许程序存储器进行在系统编程或由传统的非易失性存储器编程相结合的灵活的8位CPU与Flash集成在一个芯片,Atmel公司的AT89C52是一个功能强大的微型计算机为许多嵌入式控制应用提供了高度灵活和成本效益的解决方案。AT89C52提供以下标准功能:8K字节的闪存,256字节的RAM,32个I/O口线,3个16位定时器/计

23、数器,一个6向量2级中断结构,一个全双工的串行口,片内振荡器和时钟电路。同时,AT89C52可下降到0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲模式下,CPU停止工作,允许RAM,定时器/计数器,串口和中断系统继续工作。掉电模式保存RAM的内容,但冻结振荡器,禁用所有其他芯片功能,直到下一个硬件复位。2.3.2 显示器件的选择本次设计的显示模块采用LCD1602液晶显示屏7,用于显示密码锁的各个状态信息,比如密码的输入、密码的修改状态等。现在的字符型液晶模块已经是单片机应用设计中最为常用的信息显示器了。1602液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖

24、珍式仪表和低功耗应用系统中得到越来越广泛的应用。LCD1602的芯片引脚信息见表2.1,主要参数见表2.2。表2.1 LCD1602型LCD的接口信号说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3V0液晶显示偏压信号11D4Data I/O4RS数据/命令选择端(H/L)12D5Data I/O5R/W读写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极表2.2 LCD1602型LCD的主要技术参数显示容量16*2个

25、字符芯片工作电压4.55.5 V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.95*4.35(WXH)mm第三章 系统的硬件设计3.1 单片机最小系统设计单片机最小系统8,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,单片机+晶振电路+复位电路,便组成了一个最小系统.但是一般在设计中,经常会把按键输入、显示输出等加到上述电路中,成为应用系统。3.1.1 电源电路密码锁的主控部分电源需要用3.55.5V直流电源供电。由于考虑本次试验的实用性、方便性,所以本次设计采用外接电池盒的方法。将三节1.5V的电池串连接入电路,为单片机、蜂鸣器等

26、器件供电。3.1.2 时钟电路图3.1 时钟电路单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚XTAL1和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,系统时钟电路结构如图3.1所示,可以根据情况选择6MHz、8MHz或12MHz等频率的石英晶体,补偿电容通常选择20-30pF左右的瓷片电容。3.1.3 复位电路3.2 复位电路单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。上电自动复位通过电容C3充电来实现。手动按键复位是通过按键

27、将电阻R1与VCC接通来实现。电路图如图3.2所示。3.2 键盘电路由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘910,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置。其接法如图3.3所示。图3.3 键盘电路原理图3.3 显示电路LCD1602是16字符*2行的字符型LCD显示器,它由32个字符点阵块组成,每个字符点阵块由57或510个点阵组成,可以显示A

28、SCII码表中的所有可视的字符。它内置了字符产生器ROM(CGROM)、字符产生器RAM(CGRAM)和显示数据RAM(DDRAM)。CGROM中内置了192个常用字符的字模,CGRAM包含8个字节的RAM,可存放用户自定义的字符,DDRAM就是用来寄存待显示的字符代码10。显示电路原理图如图3.4。图3.4 显示电路原理图3.4 密码存储电路图3.5 密码存储电路原理图AT24C02的串行时钟输入断端(SLC)接单片机P3.4(14)管脚,串行数据输入输出端(SDA)接单片机P3.5(15)管脚,其原理图如图3.5。时钟及数据传输:SDA引脚通常被外围器件拉高。SDA引脚的数据应在SCL为低

29、时变化;当数据在SCL为高时变化,将视为下文所述的一个起始或停止命令。起始命令:当SCL为高,SDA由高到低的变化被视为起始命令,必须以起始命令作为任何一次读/写操作命令的开始。停止命令:当SCL为高,SDA由低到高的变化被视为停止命令,在一个读操作后,停止命令会使EEPROM进入等待态低功耗模式。应答:所有的地址和数据字节都是以8位为一组串行输入和输出的。每收到一组8位的数据后,EEPROM都会在第9个时钟周期时返回应答信号。每当主控器件接收到一组8位的数据后,应当在第9个时钟周期向EEPROM返回一个应答信号。收到该应答信号后,EEPROM会继续输出下一组8位的数据。若此时没有得到主控器件

30、的应答信号,EEPROM会停止读出数据,直到主控器件返回一个停止命令来结束读周期。等待模式:24C01/02/04/08/1624C01/02/04/08/16特有一个低功耗的等待模式。可以通过以下方法进入该模式:(a)上电,(b)收到停止位并且结束所有的内部操作后。器件复位:在协议中断、下电或系统复位后,器件可通过以下步骤复位:(1)连续输入9个时钟,(2)在每个时钟周期中确保当SCL为高时SDA也为高,(3)建立一个起始条件。3.5 报警电路图3.6 报警电路原理图报警电路采用三极管放大电路接入蜂鸣器,本次设计中,所有的提示音,比如按键音、正确操作提示音、错误操作提示音等都通过此电路来实现

31、。当输入密码正确的时候,蜂鸣器发出两声提示音,当输入密码错误时,蜂鸣器发出三声提示音。当密码累计输入错误三次,键盘锁死,蜂鸣器持续会一直发出声响。电路原理图如图3.6所示。3.6 开锁电路图3.7 开锁电路原理图本次设计中,采用继电器来时实现开锁功能,用发光二极管D2来观察锁的开光状态。原理图如图3.7。采用的继电器型号:HK4100F-DC5V-SHG。驱动原理:1、当AT89C52单片机的P2.0引脚输出低电平时,三极管Q2饱和导通,+5V电源加到继电器线圈两端,继电器吸合,同时状态指示的发光二极管也点亮,继电器的常开触点闭合,相当于开关闭合,即密码锁处于锁住状态。2、当AT89C52单片

32、机的P2.0引脚输出高电平时,三极管Q2截止,继电器线圈两端没有电位差,继电器衔铁释放,同时状态指示的发光二极管也熄灭,继电器的常开触点释放,相当于开关断开,即密码锁打开。第四章 系统的软件设计4.1 系统的总流程图图4.1 系统总体流程设计本次设计系统采用C语言进行编程1112,程序初始设定密码为“123456”,当进入系统后,按提示输入密码,若密码正确,则锁被打开,错误则发出警报;当密码正确,且锁处于打开的状态下,再次输入密码,若正确则可按提示修改密码,重新设定密码需要输入两次,防止误操作。系统的总流程图如图4.1。4.2 密码的设定程序初始密码设定为123456,通过AT24C02芯片来

33、存储密码,实现掉电保护。其初始化程序如下:#include #include#define LCM_Data P0#define uchar unsigned char #define uint unsigned int#define w 6sbit lcd1602_rs=P27;sbit lcd1602_rw=P26;sbit lcd1602_en=P25;sbit Scl=P34;/24C02串行时钟sbit Sda=P35;/24C02串行数据sbit ALAM = P21;/报警sbit KEY = P20;/开锁sbit open_led=P22;/开锁指示灯bit operatio

34、n=0;/操作标志位bit pass=0;/密码正确标志bit ReInputEn=0;/重置输入充许标志bit s3_keydown=0;/3秒按键标志位bit key_disable=0;/锁定键盘标志unsigned char countt0,second;/t0中断计数器,秒计数器void Delay5Ms(void);unsigned char code a=0xFE,0xFD,0xFB,0xF7; /控盘扫描控制表unsigned char code start_line= password: ;unsigned char code name = Coded Management;

35、/显示名称unsigned char code Correct = correct ; /输入正确unsigned char code Error = error ; /输入错误unsigned char code codepass= pass ; unsigned char code LockOpen= true ;/OPENunsigned char code SetNew = SetNewWordEnable;unsigned char code Input = input: ;/INPUTunsigned char code ResetOK = ResetPasswordOK ;uns

36、igned char code initword= Init password.;unsigned char code Er_try= error,try again!;unsigned char code again= input again ;unsigned char InputData6;/输入密码暂存区unsigned char TempPassword6;unsigned char N=0;/密码输入位数记数unsigned char ErrorCont;/错误次数计数unsigned char CorrectCont;/正确输入计数unsigned char ReInputCon

37、t; /重新输入计数unsigned char code initpassword6=1,2,3,4,5,6;4.3 密码修改图4.2 密码修改流程图密码修改只有在锁已处于打开的状态才能进行,此时再次输入密码,正确则可进入密码修改程序,修改新密码需要重复输入新密码,防止误操作。密码修改流程如图4.2。密码修改的部分程序如下:void ResetPassword(void)unsigned char i;unsigned char j;if(pass=0)pass=0;DisplayChar();ThreeAlam();else if(ReInputEn=1)if(N=6)ReInputCont

38、+;if(ReInputCont=2)for(i=0;i6;)if(TempPasswordi=InputDatai) /将两次输入的新密码作对比i+;else/DisplayListChar(0,1,Error);write_1602com(er);for(j=0;j16;j+)write_1602dat(Errorj);ThreeAlam();/错误提示pass=0;ReInputEn=0;/关闭重置功能,ReInputCont=0;DisplayChar();break; if(i=6)/DisplayListChar(0,1,ResetOK);write_1602com(er);for

39、(j=0;j16;j+)write_1602dat(ResetOKj);TwoAlam();/操作成功提示 WrToROM(TempPassword,0,6);/将新密码写入24C02存储ReInputEn=0;ReInputCont=0;CorrectCont=0;elseOneAlam();/DisplayListChar(0, 1, again); /显示再次输入一次write_1602com(er);for(j=0;j16;j+)write_1602dat(againj);for(i=0;i6;i+)TempPasswordi=InputDatai;/将第一次输入的数据暂存N=0;/输

40、入数据位数计数器清零 4.4 解锁图4.3 解锁流程密码的输入通过矩阵键盘电路实现,系统解锁流程如图4.3,设有按键检测和返回按键值,其部分程序如下:/=按键检测并返回按键值=unsigned char keynum(void) unsigned char row,col,i; P1=0xf0; if(P1&0xf0)!=0xf0) Delay5Ms(); Delay5Ms(); if(P1&0xf0)!=0xf0) row=P10xf0; /确定行线i=0;P1=ai; /精确定位while(i4) if(P1&0xf0)!=0xf0) col=(P1&0xff); /确定列线 break;

41、 /已定位后提前退出 else i+; P1=ai; else return 0;while(P1&0xf0)!=0xf0);return (row|col); /行线与列线组合后返回 else return 0; /无键按下时返回0键盘中设有确认键“#”,当输入密码完成时,按下确认键,并通过相应标志位执行相应功能。其相应程序如下:void Ensure(void)unsigned char i,j;RdFromROM(CurrentPassword,0,6); /从24C02里读出存储密码 if(N=6) if(ReInputEn=0)/重置密码功能未开启for(i=0;i6;) if(Cu

42、rrentPasswordi=InputDatai)i+;else ErrorCont+;if(ErrorCont=3)/错误输入计数达三次时,报警并锁定键盘write_1602com(er);for(i=0;i16;i+)write_1602dat(Errori);doAlam_KeyUnable();while(1);elseTR0=1;/开启定时key_disable=1;/锁定键盘pass=0;break;if(i=6)CorrectCont+;if(CorrectCont=1)/正确输入计数,当只有一次正确输入时,开锁,/DisplayListChar(0,1,LockOpen);write_1602com(er);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号