电子密码锁设计毕业论文源程序+论文+pcb设计_第1页
电子密码锁设计毕业论文源程序+论文+pcb设计_第2页
电子密码锁设计毕业论文源程序+论文+pcb设计_第3页
电子密码锁设计毕业论文源程序+论文+pcb设计_第4页
电子密码锁设计毕业论文源程序+论文+pcb设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、学号:20095042023本科毕业设计学 院 物理电子工程学院 专 业 电子信息工程 年 级 2009 级 姓 名 蔡小航 设计题目 用24C04与1602LCD设计电子密码锁 指导教师 马占卿 职称 副教授 2013年5月15日目 录摘 要1Abstract11概述12电子锁设计的意义及本设计特点23系统设计33.1系统总结构设计图33.2 开锁机构设计34主要芯片介绍34.1主控芯片AT89S51单片机的简介34.2 1602液晶显示器44.3 24C04 E2PROM存储器芯片65系统硬件设计75.1矩阵键盘的设计75.2 1602显示电路设计95.3开锁电路95.4报警电路106软件

2、设计107电路图的绘制127.1 Protues中仿真图127.2 Protel中设计原理图127.3 Protel中PCB板图138结论13致谢14参考文献14附录15用24C04与1602LCD设计电子密码锁学生姓名:蔡小航 学号:20095042023 学 院:物理电子工程学院 专业:电子信息工程 指导教师:马占卿 职称:副教授摘 要:本文设计以AT89S51为主控芯片,带有密码输入键盘、存储单元24C04、显示单元1602LCD,通过LED的亮与灭表示电子锁的打开与锁闭。首先介绍了发展电子密码锁的必要性、可行性及市场前景,其次介绍了主要芯片各个引脚的功能及其控制原理。最后详细说明了电子

3、密码锁的设计原理。关键词: AT89S51;电子密码锁;24C04;1602LCDThe Design of Electronic Locks Based on 24C04 and 1602LCDAbstract: This paper is designed by AT89S51 as the main chip, with a password input keyboard, peripheral clock reset circuit, a storage unit 24C04, display unit 1602LCD. The electronic locks unlock and

4、locking is replaced by LED lights on and off. The necessary feasibility and market prospects of the electronic locks is introduced firstly secondly, the paper introduce the function of each pin of the main chip and the control principles. Finally, the paper detailed describe the principles and progr

5、amming process of the electronic lock.Keywords: AT89S51; electronic lock; 24C04; 1602LCD1概述随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,锁是置于可启闭的器物上,用以关住某个确定的空间范围或某种器具的,必须以钥匙或暗码打开扣件。由于传统的机械锁构造的简单,被撬的事件屡见不鲜。锁具发展到现在已有若干年的历史了,人们对它的结构、机理也研究得很透彻,因此,不用钥匙就能打开的方法和工具也层出不穷。盗贼还想方设法利用高科技手段撬门开锁,使广大居民防不胜防。传统锁具都存在致命的弱点:第一、锁芯采用

6、常见的铜、铝、锌等材料,抵抗不了强力破坏;第二、锁具制作工艺、技术落后无法阻止技术手段的开启。目前,市场上很多国内外的锁具,实际上都不具备真正的防盗功能。在惯偷面前,两根钢丝或几件简单的工具就可以把这些锁打开,主要是锁具的技术原理太过简单。随着科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系

7、统是其中的组成部分,因此研究它具有重大的现实意义1。2电子锁设计的意义及本设计特点单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机2。计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开

8、单片机3。以前没有单片机时,这些东西也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,而且成本高,并且由于长期使用,元器件不断老化,控制的精度自然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。电子密码锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用,大大提高了主人物资的安全性。目前使用的密码锁种类繁多,各具特色。本文从经济实用的角度出发,采用AT89S51单机,研制了一款具有防盗自动报警功能的电子密码锁,同时通过

9、LCD1602增强了可读性。该密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有一定的推广价值。系统设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。密码由用户自己设定,在开锁状态下,用户可自行修改密码。具有自动报警功能。一是密码输入错误3次,则报警保证了系统的安全性。系统工作时,用户通过按键输入6位密码,单片机将输入密码与设定密码进行比较。若密码正确,则发出开锁信号,将门打开系统不报警。若密码不正确系统提示重新输入密码,重新输入密码的次数不能超过3次,若3次输入的密码都不正确,则发出报警信号4。3系统设计3.1系统总结构设计图本设计由主控芯片51单片机,24C04断电

10、存储电路、单片机时钟电路,LCD1602显示电路、键盘和开锁电路组成。单片机控制整个系统的执行过程,如图1所示。开锁控制电路 89S51单片机24C04掉电存储LCD1602显示电路矩阵键盘控制指示电路输入错误锁定键盘延时报警控制电路图1单片机控制整个系统的执行过程3.2 开锁机构设计密码锁工作时通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。本设计通过P2.7接一个发光二极管代替电磁阀。当用户输入密码正确而且是在规定的次数输入之内,单片机便输出开门信号送到开锁驱动电路,然后驱动电磁锁达到开门目的。如图2所示。密码正确AT89S51开锁驱动电路电磁阀图2开锁机构4主要芯片介

11、绍4.1主控芯片AT89S51单片机的简介AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)低电压、高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用Atmel高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,Atmel的AT89S51是一种高效微控制器5。芯片如图3所示。图3 AT89S51芯片4.2 1602液晶显示器1602液晶也叫1602字

12、符型液晶,它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它由若干个5*7或者5*11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。1602LCD是指显示的内容为16*2,即可以显示两行,每行16个字符液晶模块6。4.2.1管脚功能1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4

13、脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。第6脚:E端为使能端,高电平时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极7。4.2.2 LCD1602的指令格式(1)清屏指令功能:<1> 清除液晶显示器,即将DDRAM的内容全部填入“空白”的ASCII码20H; <2> 光标归位,即将光标撤回液晶显示屏的左上方;<3> 将地址计数器(AC)的值设为0。(2)光标归位指令功能:<1&g

14、t; 把光标撤回到显示器的左上方;<2> 把地址计数器(AC)的值设置为0;<3> 保持DDRAM的内容不变。(3)进入模式设置指令功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况如下所示:位名设置I/D=0写入新数据后光标左移,I/D=1写入新数据后光标右移。SH=0写入新数据后显示屏不移动,SH=1且I/D=0写入新数据后显示屏整体右移1个字符8。(4)显示开关控制指令功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。参数设定的情况如下:位名设置D=0显示功能关,D=1显示功能开,C=0无光标,C=1有光标,B=0

15、光标闪烁,B=1光标不闪烁。(5)设定显示屏或光标移动方向指令功能:使光标移位或使整个显示屏幕移位。参数设定的情况如下:S/C R/L设定情况00光标左移1格,且AC值减1。01光标右移1格,且AC值加1。10显示器上字符全部左移一格,但光标不动 。11显示器上字符全部右移一格,但光标不动9。(6)功能设定指令功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下:位名设置 DL=0数据总线为4位,DL=1数据总线为8位,N=0显示1行,N=1显示2行,F=0显示5*7点阵/每字符 ,F=1显示5*10点阵/每字符。(7)设定CGRAM地址指令功能:设定下一个要存入数据的CGRAM的地址

16、。(8)设定DDRAM地址指令功能:设定下一个要存入数据的CGRAM的地址。(9)读取忙信号或AC地址指令功能:<1> 读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;当BF=0时,液晶显示器可以接收单片机送来的数据或指令;<2> 读取地址计数器(AC)的内容。(10)数据写入DDRAM或CGRAM指令功能:<1> 将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;<2> 将使用者自己设计的图形存入CGRAM。(11)从CGRAM或DDRAM读出数据的指令功能:读取DDRAM或CGRAM中的内容10。

17、4.3 24C04 E2PROM存储器芯片本设计中为了在系统掉电时能够保存系统的设置密码,使用了具有IC总线接口的E2PROM的24C04芯片保存密码锁的密码。仿真器件符号如图4所示。图4 24C04仿真元件图4.3.1 SCL串行时钟 AT24C04串行时钟输入管脚用于产生器件所有数据发送或接受的时钟,这是一个输入管脚。SDA串行数据/地址24C04双向串行数据/地址管脚用于器件所有数据的发送或接受,SDA是一个开漏输出或集电极开路输出进行线11。4.3.2 A1, A2器件地址输入端 这些输入脚用于多个级联时设置器件地址,当这些脚悬空默认值为0。当使用 24C04时最大可级联8个器件,如果

18、只有一个24C04总线寻址,这两个地址输入脚(A1, A2)可悬空或链接到VSS,如果只有一个24C04总线寻址这两个地址输入脚(A1, A2)必须连接到VSS。4.3.3 WP写保护 如果WP连接到VCC,所有的内容都被写保护只能读。当WP管脚连接到VSS或悬空容许器件进行正常的读/写操作12。5系统硬件设计5.1矩阵键盘的设计使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图5所示。图5 矩阵键盘每一条行线与列线的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线

19、,即可组成具有N*M个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图5所示的4*4键盘,说明线反转个工作原理13。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下使通过将列线逐列

20、置低电平后,检查行输入状态来实现的。方法是依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。若有按键被按下时,就将该按键译码出来,本设计采用双重循环做计数编号,当某一按键按下时,其按键编号便是计数编号。(1)有关按键编号,扫描信号及读取按键数据返回码整理如表1所示:表1 按键编号编号按键数据输入码P1.7 P1.6 P1.5 P1.4扫描输出信号P1.3 P1.2 P1.1 P1.0所侦测的按键01 1 1 01 1 1 0K0 键11 1 0 11 1 1 0K1 键21 0 1 11 1

21、1 0K2 键30 1 1 11 1 1 0K3 键41 1 1 01 1 0 1K4 键51 1 0 11 1 0 1K5 键61 0 1 11 1 0 1K6 键70 1 1 11 1 0 1K7 键81 1 1 01 0 1 1K8 键91 1 0 11 0 1 1K9 键101 0 1 11 0 1 1K10 键110 1 1 11 0 1 1K11 键(2)具体的按键功能设计如表2所示:表2 按键功能设计按键键名功能说明19键数字键输入密码A 键开锁键开锁B键上锁键上锁C 键输入新密码键重新输入密码D键保存新密码键保存密码E键重新输入键重新输入密码F键清除键清除一位密码5.2 160

22、2显示电路设计通过1602显示密码锁的操作工程增加了密码锁的可视化。密码锁的输入输出,以及保存密码、修改密码操作工程的显示,密码锁开锁后显示如图6所示。图6 1602LCD显示电路5.3开锁电路在本次设计中,由于专业知识以及制作工艺的限制,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示锁死。电路图如7所示。当P2.0口输出低电平时,二极管发光,表示开锁。图7 开锁电路5.4报警电路报警模块由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。蜂鸣器电路如图8所示。当89S51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,89S51输出为高电平时,蜂鸣

23、器不发声。报警电路如图8所示。图8报警电路6软件设计电子密码锁工作的主要过程是LCD1602提示开始输入密码,通过键盘输入密码,同时1602显示密码输入情况,按下开锁键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3次时,系统报警。密码的设定,在此程序中密码是固定40H45H中,初始密码设置为“654321”共6位密码。如果密码输入非人为因素的错误可以按下消除键消除最近一次输入的一位密码,使用户操作更加方便。如果用户在按下开锁键之前输入密码错误较多可以按下重新输入,电子密码锁又回到开始输入界面用户可以重新输入密码。当用户输入密码正确时可以在开锁的状态下修改密码,密码修改后保持在

24、24C04存储芯片中,然后按下上锁键。为了防止用户忘记密码我们有为用户设置了一个万能密码这个密码,用户当忘记密码时候可以通过这个密码打开锁具14。由于采用两种按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中数字键输入的六位密码与24C04中保存的密码相同时按下开锁键单片机驱动发光二极管显示同时在1602上显示开锁提示。如果密码不同时系统提示再次输入密码,三次密码输入错误,单片机驱动报警电路。报警电路也可以用GPRS模块设计可以直接将报警信息发给手机终端,有很强的实用价值15。设计流程如图9所示。系统唤醒上电系统等待密码输入密码输入完毕输入错 误未满3次是密码比较

25、开门输入正确密码错误输入错误满3次报警主人是否要修改密码否系统返回输入新密码密码保存后系统返回开始图9 程序流程图7电路图的绘制7.1 Protues中仿真图,如图10所示。图10 设计仿真图7.2 Protel中设计原理图,如图11所示。图11 设计原理图7.3 Protel中PCB板图,如图12所示。图12 PCB板图8结论实践是检验真理的唯一标准,当然也是检验学习成果的标准。在经过一段时间的学习之后,我们需要了解自己的所学应该如何应用在实践中,因为任何知识都源于实践,归于实践,所以要将所学的知识在实践中来检验。在做毕业设计期间,在老师的指导下,通过自身的不断努力,无论是思想上,学习上,都

26、取得了长足的发展和巨大的收获。现将工作总结如下:思想上,学会了用科学的精神去解决问题。很多事情看起来是很简单的问题,但实际做起来去会发现有许多问题!运用科学的方法逐一排查并解决问题,这是我这次实训给我带来的思想上的改变。学习上,使自己在大学所以的知识在这次得到实践,学到一些书本上无法学到的经验,对电子元件有了进一步的认识。电子锁是信息化时代发展的产物,我相信随着科技的不断发展,将来的电子锁一定更加完美,更加人性化,更加便宜,更加安全。致谢在本次论文设计过程中,马老师对该论文从选题、构思到最后定稿的各个环节给予细心指引与教导,使我得以最终完成毕业论文设计,在此表示衷心的感谢。此外在学习中,老师严

27、谨的治学态度、丰富渊博的知识、敏锐的学术思维、精益求精的工作态度以及侮人不倦的师者风范是我终生学习的楷模。另外在完成毕业设计的过程中,还得到众多同学的关心支持和帮助。在此,谨向老师同学致以衷心的感谢!参考文献:1 张毅钢新编MCS-51单片机应用设计M.哈尔滨:哈尔滨工业大学出版社,2003:50-58.2 Richard R.Spencer,Mo-hammed S.G Hausa.Introduction to Electronic Circuit DesignM Publishing House of Pearson Education,2003:12-313 Willian kleiz.

28、 Digital Electronics. A Practical Approach J. Prentice Hall Inc.1996,324(09):12-14.4 李全利,仲伟峰,徐军单片机原理及应用M北京:清华大学出版社,2006:36-38. 5 周国运单片机原理及应用(C语言版)M北京:中国水利水电出版社,2009:6-76 王贤勇,赵传申单片机原理及接口技术应用教程M北京:清华大学出版社,20010:2127 李朝青单片机原理及及接口技术(简明修订版)M北京:北京航空航天大学出版社,1998:113-1148 何小艇电子系统设计M杭州:浙江大学出版社,1998:254-2579

29、丁明亮,唐前辉51单片机应用设计与仿真基于Keil C与ProteusM北京:北京航空航天大学出版社,2009:125-12610 范志忠实用数字电子技术M西安:电子工业出版社,2003:120-152.11 Victpr P .Nelson. H . Troy Nagle. Bill D. etc. Digital Logic Circuit Analysis & Design J. Prentice Hall Inc. 1996,689(1):25-28.12Samsung Electronics User,s Manual S3C2410X 32-Bit RISC Micropr

30、ocessor J .2003:26-30.13 Buchberger B,Collins G EComputer Algebra Symbolic and Algebraic ComputationMNew York:Springer Versa,1998:58-76.14 杨路明C语言程序设计教程M北京:北京邮电大学出版社,2005:47-4815 谭浩强C程序设计M北京:清华大学出版社,1991:23-30.附录Uvision4开发平台下的程序代码:#include<reg51.h>#include<string.h>#include<intrins.h&g

31、t;#define uchar unsigned char#define uint unsigned int#define LCDIO P0#define delay4us() _nop_();_nop_();_nop_();_nop_();uchar buffer6=0; sbit sda=P33;sbit sck=P32;sbit beep=P37;bit flag=0,aa;uchar DSY_BUFFER16=" "uchar DSY_BUFFER116=" "uchar Userpassword6=0;sbit rs=P20; sbit rw=

32、P21;sbit lcden=P22;sbit led=P27;uchar code table2="654321"uchar code table="Your Password."void delayms(uint z)uint x,y;for(x=z;x>0;x-) for(y=110;y>0;y-);void delay()/短延时,两个机器周期,做总线的延时用 ;void laba(uint cd,uint pl)int r;for(r=0;r<pl;r+=cd)beep=!beep;void write_com(uchar c

33、om)rs=0;rw=0;lcden=0;P0=com;delayms(3);lcden=1;delayms(3);lcden=0;void write_date(uchar date)rs=1;rw=0;lcden=0;P0=date;delayms(3);lcden=1;delayms(3);lcden=0;void Display_String(uchar *p,uchar com) uchar i; write_com(com); for(i=0;i<16;i+) write_date(pi);void init_lcd()lcden=0;write_com(0x38);writ

34、e_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80); Display_String(table,0x80);void start()sda=1;_nop_(); sck=1;delayms(4);sda=0; delayms(4);sck=0;_nop_(); void stop()sda=0;_nop_(); sck=1;delayms(4);sda=1;delayms(4);sck=0;_nop_(); void init()/初始化 sda=1; delay(); sck=1; delay();void ack()sda

35、=0;sck=1;delayms(4);sck=0;sda=1;void noack()sda=1;sck=1;delayms(4);sck=0;sda=0;uchar recbyte()uchar i,rw;rw=0x00;sda=1;for(i=0;i<8;i+)sck=1;_nop_();_nop_();_nop_(); _nop_();_nop_(); rw=rw<<1;rw|=sda;delayms(4);sck=0;delayms(4); sck=0; delayms(4); return rw;uchar sendbyte(uchar wd) uchar i;

36、bit ack0; for(i=0;i<8;i+)sda=(bit)(wd&0x80);_nop_();_nop_();sck=1;delayms(4);sck=0;wd<<=1; delayms(4); sda=1; sck=1; delayms(4); ack0=!sda; sck=0; delayms(4); return ack0;uchar Recstring(uchar slave,uchar subaddr,uchar *buffer,uchar n) uchar i; start(); if(!sendbyte(slave) return 0; if(

37、!sendbyte(subaddr) return 0; start(); if(!sendbyte(slave+1) return 0; for(i=0;i<n-1;i+) bufferi=recbyte(); ack(); buffern-1=recbyte(); noack(); stop(); return 1;uchar Sendstring(uchar slave,uchar subaddr,uchar *buffer,uchar n) uchar i; start(); if(!sendbyte(slave) return 0; if(!sendbyte(subaddr)

38、return 0; for(i=0;i<n;i+) if(!sendbyte(bufferi) return 0; stop(); return 1;void clear_password() uchar i; for(i=0;i<6;i+) Userpasswordi=' ' for(i=0;i<16;i+) DSY_BUFFERi=' ' uchar Keys_Scan() uchar temp,keynum=0; P1=0x0F; temp=P10x0F; if(temp!=0x0F) delayms(10);P1=0x0F;temp=P

39、10x0F;if(temp!=0x0F) switch(temp) case 8:keynum=0;break; case 4:keynum=1;break; case 2:keynum=2;break; case 1:keynum=3;break; break; P1=0xF0; delayms(5); temp=P1>>40x0F; switch(temp) case 8:keynum+=0;break; case 4:keynum+=4;break; case 2:keynum+=8;break; case 1:keynum+=12;break; break; while(P

40、1!=0xF0); return keynum;void main() uchar temp,i=0,j=0,k=0,n; uchar IS_valid_user; beep=0; init(); init_lcd(); delayms(5); aa=Sendstring(0xa0,1,table2,6); delayms(5); aa=Recstring(0xa0,1,buffer,6); delayms(5); P1=0x0f; while(1) if(P1!=0x0f) delayms(10); temp=Keys_Scan(); switch(temp) case 0: case 1:

41、 case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: if (i<=5) /密码限制在6位以内 Userpasswordi=temp; DSY_BUFFERi='*' Display_String(DSY_BUFFER,0xc0); i+; laba(1,3000) ; break; case 10: /按A键开锁for(k=0;k<6;k+) if(bufferk=(Userpasswordk+48)|bufferk=(Userpassword1+48) flag=1; else flag=0; if (flag=1) flag=0; i=0; led=0; /点亮LED clear_password(); Display_String("OPEN OK! ",0xc0); IS_valid_user = 1; j=0; laba(2,20000) ; else j+; led=1; /关闭LED clear_passwor

温馨提示

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

评论

0/150

提交评论