基于51单片机电子密码锁的设计1

更新时间:2024-07-08 07:53:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

淮 阴 工 学 院

课程设计说明书

作 者: 学 院: 专 业: 题 目:

指导教师: 金鹰 胡荣林

学 号:

计算机与软件工程学院

物联网 单片机密码锁

2016 年 6 月

课程设计中文摘要

在这个信息和科技高速发展的时代,人们的生活水平越来越高,随之应运而生的人们的安全意识也越来越强,然而传统的机械锁由于设计和工艺简单,操作和携带不便,已经不能满足人们对于安全保证和生活便利的需求,于是电子密码锁本着它自身的保密性高、操作简单、灵活好用等特性逐渐进入人们的视野,并已被广大群众接纳和使用。 此次设计是以AT89C51单片机实现密码锁监控装置的检测和控制核心,实现密码信息的设定、加密、更改和错误输入发出警报等功能。分为键盘输入(此处采用4×4矩阵键盘),显示输出(此处用LED显示屏),密码比对,实现开锁或警报的过程。该设计根据51单片机之间的串行通信原理,便于对密码信息的随机加密和保护。软件设计则是采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。测试结果表明,该系统已达到本设计的各项功能的所有要求。 关键词:单片机,密码锁,4*4矩阵键,显示屏

目录

1 绪论 ......................................................................................................... 1 1.1 引言................................................................................................ 1 1.2 电子密码锁的背景 ....................................................................... 1 1.3 键盘式电子密码锁的特点 ........................................................... 2 2.1系统总设计结构图 ........................................................................ 3 2.2 开锁机构的设计 ........................................................................... 3 3.2.1键盘电路及连线图 ............................................................... 7 3.2.3 开锁和报警电路及连线图(由LED灯和扬声器电路代替) ................................................................................................. 8 3.3 整体电路图的绘制 ....................................................................... 8 4.2 系统软件设计总流程图 ............................................................. 10 5 程序调 ................................................................................................... 11 5.1 程序调试需要用到的软件和工具 ............................................. 11 5.2 调试过程 ..................................................................................... 11 总结 ........................................................................................................... 12 结束语 ....................................................................................................... 13 参考文献 ................................................................................................... 14 附录 ........................................................................................................... 15

密码锁

1 绪论

1.1 引言

第 1 页 共 24 页

在这个信息和科技高速发展的时代,人们的生活水平越来越高,随之应运而

生的人们的安全意识也越来越强,然而传统的机械锁由于设计和工艺简单,操作和携带不便,已经不能满足人们对于安全保证和生活便利的需求,于是电子密码锁本着它自身的保密性高、操作简单、灵活好用等特性逐渐进入人们的视野,并已被广大群众接纳和使用。

锁是用以关住某个确定的空间或范围或某种器物的,必须以钥匙或密码打开的器件。锁,从古至今,发展到现在已有近千年的历史了,人们对它的结构、原理也随着时间的增加研究的近乎透彻,因此,开锁的方法和工具早已不仅仅局限于配套的钥匙,种类也层出不穷。现代社会中,由于各种矛盾冲突十分剧烈,人们的思想道德观念,价值观念,文化修养水平等参差不齐,人们的思想境界良莠不齐,善良、正直的人们能够自觉规范自已的行为,不是自己的东西不会眷恋,没有钥匙就不会乱闯乱动。但是,生活中同样还存在着一些道德观念较差的人,总有着不劳而获的“梦想”,他们在受到诱惑的时候,往往会想方设法利用各种手段撬门开锁,使广大居民防不胜防。

之所以出现这种情况,除了人们的道德观外,还有一个很重要的原因,就是传统锁具都存在致命的弱点,例如,锁芯采用常见的铜、铝、锌等材料,抵抗不了强力破坏;再者,锁具制作工艺,技术落后,无法阻止先进技术手段的开启。 目前,市场上的锁具各种各样,形状千变万化,然而都是大同小异,技术原理简单,实际使用上却都不具备真正安全的防盗功能。面对这一残酷的现状,锁具也进入了必须革新的时代。

1.2 电子密码锁的背景

在人们的日常生活中,锁被广泛使用,人们常用锁来锁一些贵重物品乃至自己的家门,目的就是为了提高安全性。常见的锁有普通机械锁、机械密码锁、电磁卡锁、指纹(虹膜)锁等。而普通的机械锁极容易被强行破坏,安全系数不高;机械密码锁虽然安全系数高但造价相对较高,目前在保险柜上应用较多;电磁卡

密码锁

第 2 页 共 24 页

锁由于磁卡信息极易受外界干扰而失磁导致无法开锁,而指纹(虹膜)锁虽然安全性很好,但会因手指划伤虹膜充血等收到限制。通过分析我们不难发现传统密码锁或多或少存在一些不足从而降低了其保密的安全性,因此研究一种新型的密码锁是具有有很高的现实需求性。随着电子科技的发展,将电子芯片跟传统机械锁结合起来设计成一种新型的密码锁而电子密码锁作为一种新型的锁已经成功,即电子密码锁。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁。电子密码锁与传统密码锁想比较,拥有海量的密齿,通常从10000到10000000不等,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。

从是否方便的角度看,电子密码锁省去了传统机械锁的钥匙,电磁卡锁的磁卡,使用者只要记得其密码,便可以开启,从而大大提高了其适用性。因此电子密码锁的具有较高的研究价值。

1.3 键盘式电子密码锁的特点

电子锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。大大提高了主人物资的安全性,安全可以代替老式机械锁。目前使用的密码锁种类繁多,各具特色。从目前的技术水平和市场认可程度看,使用最为广泛的电子密码锁是键盘是电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。 在输入密码的过程中,为了限制试探密码的企图,通常输入错误码若干次或若干时间内输入不正确,即“封锁”键盘,不再接受输入操作。总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁仍然在自己的基础上发展,不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段。

2 系统设计

密码锁

2.1系统总设计结构图

第 3 页 共 24 页

数码管显示 密码输入设备 单片机AT89C51 开锁机构

图 2.1系统总设计结构图

本设计由主控芯片51单片机,键盘,LED显示屏和开锁电路组成。单片负责控制整个系统的执行过程。

2.2 开锁机构的设计

通过单片机送给开锁执行机构(本设计用LED灯和扬声器代替继电器打开电磁阀的开锁执行机构)实现开锁或警报的表示过程。

AT89C51单片机 开锁驱动电路 开锁/警报 图 2.2密码锁开锁结构示意图

当用户输入的密码正确而且是在规定的时间及次数输入之内,单片机便输出开锁信号送到开锁驱动电路,达到开门的目的

2.2.1 主控芯片(AT89C51单片机)的简介

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh

密码锁

第 4 页 共 24 页

Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。

主要特性:

·与MCS-51 兼容

·4K字节可编程闪烁存储器 ·寿命:1000写/擦循环 ·数据保留时间:10年 ·全静态工作:0Hz-24MHz ·三级程序存储器锁定 ·128×8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路 管脚说明:

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,

密码锁

第 5 页 共 24 页

输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

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。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN

密码锁

信号将不出现。

第 6 页 共 24 页

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。

图 2.3 AT89C51芯片图

3 系统硬件设计

3.1 键盘设计

本实验采用4×4行列式矩阵键盘,用数字键输入密码,ENTER键确认;如果密码输入错误,用DEL键清除;密码输入完毕并且确认后,如果需要重新输入,先按Esc退出,然后重新输入;若用户想要自行更改密码,需要先正确输入密码并确认后,按ALT进行修改,再按ENTER进行确认,密码更改完毕。

3.2 系统电路设计

本系统电路主芯片AT89C51(内含晶振和复位电路),外接上拉电阻,数码

密码锁

管显示器,扬声器、LED灯和外接电阻组成开锁电路。 3.2.1键盘电路及连线图

第 7 页 共 24 页

每一条行线和列线交叉处通过一个按键来连接,利用这种行列式矩阵结构

只需要N条行线和M条列线就可组成N*M个按键。

在这种行列式矩阵键盘非键盘编码的单片机中,键盘处理程序先执行等待按键并有无键盘按下的程序段。确认有键盘按下后,下一步执行识别哪一个键按下。 对照4*4键盘,首先识别键盘中有无键盘按下,然后判断键盘中哪一个键被按下,使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后检查行输入状态来实现。如果全为1,则所按下键不在此列,如果不全为1则按下的键必在此列。而且是与零电平线相交的交点上的键。理想的按键信号是一个标准脉冲,但键的按下和释放都需要一个过程来实现,在这一过程中是处于高低电平之间一种不稳定状态,称为抖动。抖动时间的长短,频率的高低与按键机械特征有关,一般在5到10ms之间。这就有可能造成CPU对一次按键过程进行多次处理。为了避免这种情况应采取措施消除抖动。消抖常见有两种方法,硬件消抖:如用滤波器,双稳态电路等。另一种用软件来实现,即当发现有键按下时,间隔10ms以上时间,才能进行下一次查询,这样就让过了抖动过程,键的释放进行同样处理。本设计为减少电路复杂程度,减少成本。采用软件消抖的方法。

图 3.1 键盘电路

本实验采用共阴极数码管,即将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,

当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。 3.2.2 数码管显示电路及连线图

密码锁

第 8 页 共 24 页

图3.3 数码管显示电路

为了增加单片机的驱动,数码管链接上拉电阻,然后再接AT89C51的P3口,输入任何密码时都以显示“8”表示输入的位数(如图表示输入3位密码)。 3.2.3 开锁和报警电路及连线图(由LED灯和扬声器电路代替)

AT89C51单片机的P1.0口连接LED灯和一个外接电阻,P1.7口连接提示和警报的扬声器(如图所示,LED灯亮表示密码正确,并且同时扬声器发出“叮咚”提示音)。

图 3.4 开锁电路

3.3 整体电路图的绘制

用Prteus软件绘制完整的电路图。

(1) 密码正确并且确认之后的整体电路及显示情况,如图3.5。

密码锁

图3.5 密码正确系统电路及显示图

第 9 页 共 24 页

(2) 密码错误后的整体电路及显示情况,如图3.6。

图 3.6 密码错误系统电路及显示图

4 软件设计

4.1 系统软件设计思路

任何应用系统的正常工作和使用,除去需要完整的硬件设备外,还需要一套与之相对应的、设计合理的软件相配合。随着电子信息的发展,微机应用早已普遍,许多原来的硬件工作都可以通过软件编程来代替,从而使一些复杂的硬件电路简单化。

电子密码锁工作的主要过程是通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,做出开锁或报警处理。当输入密码输入错误时,系统报警。初始设定密码之后,如果按下密码的位数超过设置的密码位数时,若只超过一位,数码管以最后一位显示不全给出提示,若继续输入,系统扬声器报警。(本设计中初始密码为12345五位,当按下的密码为6位时,还,未按下Enter确认,数码管就会以不全七段码显示给出警报,若继续按下,系统就会发出“滴滴滴”的警报声)。按键按其功能分为两种,其中一种为功能键另一种为数字键。输入密码后,直到所有密码输入完毕按下确认功能键之后,才完成密码输入过程。进入密码的判断比较处理状态并给出相应的处理过程。

密码锁

4.2 系统软件设计总流程图

开始 系统唤醒上电 第 10 页 共 24 页

输入密码 密码输入完毕 密码比较 密码错误 锁定键盘3s 密码正确 灯闪并发出警报 否 3s是否到 是 开锁 密码修改 图 4.1系统软件设计总流程图

密码锁

第 11 页 共 24 页

5 程序调 把写好的C语言程序载入软件调试工具,检查软件是否有设法错误,再根据软件提示对本程序进行修改,直到没有错误再生成单片机能运行的机器码,再用Prteus工具把机器码导入单片机进行实际的程序调试,根据实际情况再对程序的不足加以修改,直到满足设计要求。

5.1 程序调试需要用到的软件和工具

调试改程序用到Keil软件和Prteus工具。

5.2 调试过程

打开KEIL C51主程序,新建工程,新建文本框写入程序,保存,检查是否有语法错误,经反复检查无误后汇编,生成51单片机可执行的HEX文件。然后用Prteus工具软件把HEX文件写入单片机

密码锁

总结

第 12 页 共 24 页

经过这次课程设计的整个过程,我们深刻的体会到了实践是检验和巩固我们学习成果最有力的标准。在一段理论学习之后,我们需要我们需要把自己的理论框架应用于实践,因为任何知识都来源于实践,又归于实践,只有通过实践我们才能更好地掌握所学到的知识。

在这次课程设计期间,我们每一个人通过这个过程的努力都有了不小的发展和收获。在学习中,我们不再只是盲目的用笔练习、用脑记忆,而是用实际操作来验证和体验所学到的东西。同样的,在精神上,我们学会了勇往直前,不因挫折而后退,面对问题学会了自己去寻找解决方法,而不是搁置不理或者一味求助于人。

通过实践,我们不仅巩固了课本知识,而且也获得了一些书本上无法教给我们的经验,对软硬件的设计和组合都有了前所未有的新的认识。

密码锁

结束语

第 13 页 共 24 页

经过长达一个礼拜的制作,我终于完成了这次创新实践项目及项目报告。感谢在本次论文设计中给予我帮助的老师和同学。在本次论文设计中,我学习到了很多知识,重新对51系列单片机进行了系统学习,更加详细的了解了51系列单片机的功能,也重新加深了对七段显示管,键盘矩阵等的功能了解及设计技巧。通过本次论文设计,也重新巩固了自己对ISIS、Altium Designer 6、 Protel 99 SE等相关电子设计软件的掌握。当然,在本次设计中,遇到许多困难,充分表明我在以往的学习过程中在这方面知识的欠缺和经验不足。 转眼大学生活已经过去了三年,现在我们也将步入社会开始自己新的生活。通过这段时间做设计,我深深的感到自己在学校所学到的书本上的知识,还远不能满足自己以后的需要。虽然自己将要告别学生生活,但自己在以后的工作中还要更加努力的学习,做到“学习永无止境”。我相信四年的大学学习、生活,将成为我人生中的一笔宝贵的财富。

本次毕业设计的电子密码锁是最基本的设计,具有简单实用性,首先采用了AT89C51单片机作为主控制芯片,以达到使设计整体简洁明了的目的。设计中实用的按键连接电路、显示连接电路、复位电路、起振电路都是51单片机设计中最常采用的设计电路。在本次设计中,相比较51单片机常用的掉电存储电路的设计,我认为掉电存储电路的设计是有一定的创新性的。在本次设计中显示电路仅采用了四位八段数码管进行设计,虽然易于设计且方便实用,但功能远不够满足现实需求,希望今后的设计者能在此基础上增添一些功能,如:可以在设计中设计用户提示。 希望这个问题在以后的设计中得到解决。

密码锁

参考文献

第 14 页 共 24 页

1 徐惠民、安德宁:《单片微型计算机原理接口与应用》第1版,北京邮电大

学出版社,1996

2 夏继强:《单片机实验与实践教程》,北京航空航天大学出版社,2001 3 王毓银.数字电路逻辑设计.高等教育出版社,2005年12月 4 杨将新,李华军,刘到骏等.单片机程序设计及应用(从基础到实践)[J].电子工业出版社,2006

5 周立功.LPC900系列Flash单片机应用技术[J].北京航空航天大学出版社, 2004

6 刘和平.刘跃.单片机原理及应用.重庆.重庆大学出版社,2004

7 张立科.单片机典型外围器件及应用实例.北京.人民邮电出版社,2006 8 陈明荧.89C51单片机课程设计实训教材.北京.清华大学出版社,2004 9 刘瑞新.单片机原理及应用教程.北京.机械工业出版社,2003 10 求是科技.单片机.人民邮电大学出版社,2005

11 李朝青.单片机原理及接口技术.北京.北京航空航天大学出版社,2002 12 饶庆和.89C51单片机实用技术.北京.人民邮电出版社,2003

13 清华大学电子学教研组.闫石.数字电路基础.高等教育出版社,2008

14 李华.MCS-51系列单片机使用接口技术.北京航空航天大学出版社,1993 15 王忠飞.胥芳 MCS-51单片机原理及嵌入式系统应用.西安电大出版社,2007

密码锁

附录

软件程序

第 15 页 共 24 页

#include

#include\#include\#include\sbit led_red=P2^5; sbit led_gre=P2^6; sbit spk=P2^7;

uchar ASC[]={'0','1','2','3','4','5','6','7','8','9'}; uchar one=0,two=1,three=2,four=3; uint t0,t1;

void Init_time0(void) {

TMOD=0x11;

TH0=(65535-50000)/256; TL0=(65535-50000)%6; TH1=(65535-2000)/256; TL1=(65535-2000)%6; EA=1; ET0=1; ET1=1; TR0=0; TR1=0; }

void main(void) {

uchar flag=0,cflag=0; uchar i=0,k=0;

uchar j=0,t=0,shu=1;

uchar num,newpassword[4]; Init_IIC(); //初始化IIC Init_1602(); //初始化1602 Init_time0(); //初始化定时器0 led_red=0; //熄灭绿灯和红灯 led_gre=0; spk=0;

write_add(1,one); delay_ms(5);

write_add(2,two); delay_ms(5);

write_add(3,three);

密码锁

第 16 页 共 24 页

delay_ms(5);

write_add(4,four); delay_ms(5);

displaylistchar(0,0,\ while(1) {

num=KeyPro(); if(num!=0xff) {

if((num!=13)&&(flag==0)) {

displaylistchar(0,0,\

if(num>=0&&num<=9) {

TR0=~TR0; t0=0;

displayonechar(i,1,ASC[num]); newpassword[i++]=num; }

if(num==10) {

TR0=~TR0; //若按键后五秒内没有打开锁,则报警 t0=0; if(i>0) {

i=i-1;

displayonechar(i,1,' '); } }

if(num==11) {

TR0=0; i=0;

displaylistchar(0,1,\ }

if(num==12) {

TR0=0;

if(i==4) {

for(j=0;j<4;j++) {

if(newpassword[j]!=read_add(j+1))

密码锁

第 17 页 共 24 页

break;

}

if(j==i)

{ led_gre=1; led_red=0;

displaylistchar(0,1,\ delay_ms(1000);

i=0; //按键输入数置0

displaylistchar(0,1,\ }

else {

led_gre=0; //亮红灯 led_red=1;

displaylistchar(0,1,\ delay_ms(1000);

i=0; //按键输入数置0

displaylistchar(0,1,\ } }

else { led_gre=0; led_red=1;

displaylistchar(0,1,\ delay_ms(1000); i=0;

displaylistchar(0,1,\ } }

if(i==6) {

TR0=0;

led_gre=0; //亮红灯 led_red=1;

displaylistchar(0,1,\ delay_ms(1000);

i=0; //按键输入数置0

displaylistchar(0,1,\ } }

else

密码锁

第 18 页 共 24 页

{

if(cflag==0) {

i=0; //按键输入数置0

flag=1; //S13键按下,修改密码标志置1 if(t==0) {

displaylistchar(0,0,\ delay_ms(500);

displaylistchar(0,1,\ delay_ms(500);

displaylistchar(0,1,\ }

t++;

if(num>=0&&num<=9) {

TR0=~TR0; t0=0;

displayonechar(k,1,ASC[num]); newpassword[k++]=num; }

if(num==10) //单个密码删除键,和输入密码时一样 {

TR0=~TR0; //若按键后五秒内没有打开锁,则报警 t0=0; if(k>0) {

k=k-1;

displayonechar(i,1,' '); } }

if(num==11) //所以密码清除键,和输入密码时一样 {

TR0=0; k=0; flag=0;

displaylistchar(0,1,\ }

if(num==12) //确认键,和输入密码时一样 {

TR0=0;

密码锁

第 19 页 共 24 页

if(k==4)

{

for(j=0;j<4;j++) {

if(newpassword[j]!=read_add(j+1)) break; }

if(j==k)

{ led_gre=1; led_red=0;

displaylistchar(0,1,\ delay_ms(500);

displaylistchar(0,1,\ displaylistchar(0,1,\ delay_ms(500);

displaylistchar(0,1,\ k=0;

cflag=1; }

else {

led_gre=0; led_red=1;

displaylistchar(0,1,\ delay_ms(1000); k=0; flag=0;

displaylistchar(0,1,\ displaylistchar(0,0,\ displaylistchar(0,0,\ } }

else { led_gre=0; led_red=1;

displaylistchar(0,1,\ delay_ms(1000); k=0; flag=0;

displaylistchar(0,1,\ displaylistchar(0,0,\ displaylistchar(0,0,\ }

密码锁

第 20 页 共 24 页

}

if(k==6) { TR0=0; led_gre=0; led_red=1;

displaylistchar(0,1,\ delay_ms(1000); k=0; flag=0;

displaylistchar(0,1,\ displaylistchar(0,0,\ displaylistchar(0,0,\ } }

else {

if(num>=0&&num<=9) {

write_add(shu,num);

displayonechar(shu-1,1,ASC[num]); shu++; if(shu==5) {

t=0; shu=1; cflag=0; flag=0;

displaylistchar(0,1,\ delay_ms(500);

displaylistchar(0,0,\ displaylistchar(0,1,\ displaylistchar(0,0,\ } }

} }

}

} }

void time0(void) interrupt 1 {

TH0=(65535-50000)/256;

密码锁

TL0=(65535-50000)%6; t0++;

if(t0==100) {

t0=0; TR0=0;

TR1=1; } }

void time1(void) interrupt 3 {

TH1=(65535-2000)/256; TL1=(65535-2000)%6; t1++; spk=~spk; if(t1==5000) {

t1=0; TR1=0; } }

第 21 页 共 24 页

本文来源:https://www.bwwdw.com/article/4xh.html

Top