毕业设计(论文)-基于单片机的电子密码锁设计 (2).doc_第1页
毕业设计(论文)-基于单片机的电子密码锁设计 (2).doc_第2页
毕业设计(论文)-基于单片机的电子密码锁设计 (2).doc_第3页
毕业设计(论文)-基于单片机的电子密码锁设计 (2).doc_第4页
毕业设计(论文)-基于单片机的电子密码锁设计 (2).doc_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

2012 年4月摘 要随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,安全性能低,无法满足人们的需要。本文从经济实用的角度出发,采用美国atmel公司的单片机at89s51与低功耗cmos型e2prom at24c02作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警、开锁等电路,用汇编语言编写主控芯片的控制程序,设计了一款可以多次更改密码具有报警功能的电子密码锁。该密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,符合住宅、办公室用锁要求,具有推广价值。关键词: at89c51,电子密码锁,单片机,防盗,报警56abstractwith intelligent electronics and miniaturization to the constant development of electronic products has become a single-chip development and the development of the controller of choice. with the improvement of living standards, how to achieve security of the family also become prominent in particular, the traditional mechanical lock because of its simple structure, low security, unable to meet the needs of the people. this article from the economical and practical point of view, the use of the united states atmel corporation at89c51 with low-power single-chip cmos-based chip e2prom at24c02 as control units and data memory, combined with the external keyboard input, display, alarm, unlock, such as circuits, with preparation of master chip assembly language of the control procedures, design can be repeated a warning to change your password with key lock function. the locks have a reasonable design, simple, low cost, practical features such as security, in line with the residential, office lock request with the promotion of the value.keywords: at89c51,electronic locks,single-chip,anti-theft,alarm目 录摘 要iabstractii引 言1第一章 总体设计方案21.1 系统结构21.2 系统组成21.3 设计方案选择3第二章 硬件系统设计42.1 单片机at89c51简介42.2 设计原理52.3 电路总体构成52.4电源部分72.4.1直流稳压电源电路72.4.2密码锁电源电路72.5 键盘输入82.6密码存储部分102.6.1 at24c02102.6.2密码存储电路102.7复位部分112.7.1 复位电路的介绍112.7.2复位电路122.8晶振部分132.8.1晶体振荡器介绍132.8.2晶振电路132.9显示部分142.9.1 lcd1602显示器142.9.2显示电路152.10报警部分162.11 开锁部分17第三章 软件系统设计183.1主程序模块183.2 键盘扫描模块193.3 密码修改模块193.4 密码比较判断模块213.5自动报警模块22第四章 总结与体会23参考文献24附录 电子密码锁程序清单25引 言随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。而锁自古以来就是把守门户的铁将军,人们对它要求甚高,即要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。另外,如:宾馆、办公大楼、仓库、保险柜等由于人员的变动,开锁的钥匙也不再是只有一人拥有。购得新居的家庭,由于装修施工等入住时也要把原有的锁胆更换,况且钥匙随身携带也诸多不便。随着单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引人了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性。目前西方发达国家已经大量地应用智能门禁系统。可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断的努力使电子密码锁能够在我国得到广泛应用,这也是一个国家生活水平提高的表现。电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁,特点如下:1. 保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。2. 密码可变。 用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3. 误码输入保护。当输入密码多次错误时,报警系统自动启动。4. 电子密码锁操作简单易行,一学即会。本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。第一章 总体设计方案一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如rom、ram、i/o、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、a/d、d/a转换器等,要设计合适的接口电路。 1.1 系统结构 本系统是用以at89c51为核心的单片机控制,主要是由单片机系统、矩阵键盘、lcd显示和报警系统组成。利用单片机灵活的编程设计和丰富的io端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。1.2 系统组成本系统由单片机系统、矩阵键盘、lcd显示、密码存储、复位电路、晶振电路、开锁部分和报警系统组成。系统能完成开锁、超时报警、修改用户密码基本的密码锁的功能。矩阵键盘主要判断键盘上有无键按下、去抖动影响、逐列扫描键盘以确定被按键的位置号即行列号、形成键值并将键值存入指定的数据缓冲区中、判断闭合的键是否释放等功能。密码修改部分要求密码要输入两次,程序将两次输入的密码比较一致时,即用此密码代替原先的密码,如果两次输入的密码不一致,则重复操作。这样就避免了修改密码的随机性。自动报警部分是三次输入的密码不一致就会发生报警信息,这样能有效的避免一些不法分子的行为,保护自身的利益。显示部分主要是采用lcd显示,是一种数字显示技术。与传统的阴极射线管(crt)相比,lcd占用空间小,低功耗,低辐射,无闪烁,降低视觉疲劳。不足:与同大小的crt相比,价格更加昂贵。1.3 设计方案选择方案一:采用数字电路控制用以74ls112双jk触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。故不采用。方案二:采用以单片机为核心的控制方案由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、i/o口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机at89s51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的i/o端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接at24c02芯片用于密码的存储,外接lcd1602显示器用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键09输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。通过比较以上两种方案,单片机方案有较大的活动空间,控制灵活准确性好且保密性强不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案作为此次设计的方案。第二章 硬件系统设计2.1 单片机at89c51简介at89c51是一种带4k字节闪烁可编程可擦除只读存储器(fperomflash programmable and erasable read only memory)的低电压,高性能cmos8位微处理器,俗称单片机。at89c2051是一种带2k字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,at89c2051是它的一种精简版本。at89c单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图2.1 at89c51引脚图2.2 设计原理电源电路及ups矩阵键盘控制 89c51 单片机复位电路延时报警控制电路密码存储电路开锁控制电路晶振电路显示电路图2.2 总体设计框图本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、lcd显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、eeprom读写程序和延时程序等组成。其原理框图如图2.2所示。2.3 电路总体构成由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。基于以上因素本设计选用单片机at89s51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的i/o端口,及其控制的准确性,实现基本的密码锁功能。在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4*4矩阵键盘,显示部分选择字符型液晶显示lcd1602,密码存储部分选用at24c02芯片来完成,密码输入正确则开锁成功,密码三次输入错误就会报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。其原理图如图2.3所示:图2.3 设计总体电路图2.4电源部分2.4.1直流稳压电源电路在电子电路中,通常都需要电压稳定的直流电源供电。直流电源部分为系统各部分提供稳定、可靠的直流电源。它由变压,整流,滤波,稳压四个部分组成。1、电源变压器。由于各种电子设备要求直流稳压电源提供不同幅值的直流电压,而市电提供的交流电压一般为220v(或380v),因此需要利用变压器先将市电的电压变换成所需要的交流电压,再将变换后的交流电压整流、滤波和稳压,最后获得所需要的直流电压。2、整流电路。整流电路是利用具有单向导电性的整流器件(如整流二极管、晶闸管),将大小、方向变化的正弦交流电变换成单向脉动的直流电。这种单向脉动直流电压含有很大的纹波成分,一般不能实用。3、滤波电路。滤波电路的主要任务是将整流后的单向脉动直流电压中的纹波成分尽可能滤除掉,使其变成平滑的直流电。滤波电路通常由电容、电感等储能元件组成。4、稳压电路。它能在电网电压和负载电流的变化时,保持输出直流电压的稳定。它是直流稳压电源的重要组成部分,决定着直流电源的重要性能指标2.4.2密码锁电源电路图2.4 电源输入电路原理图密码锁主控制部分电源需要用5v直流电源供电,其电路如图2.4所示,把频率为50hz、有效值为220v的单相交流电压转换为幅值稳定的5v直流电压。其主要原理是把单相交流电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压平滑。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。本电路使用集成稳压芯片7805解决了电源稳压问题。2.5 键盘输入矩阵式键盘的结构与工作原理:在键盘中按键数量较多时,为了减少i/o口的占用,通常将按键排列成矩阵形式,如图2.5所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如p1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。图2.5 键盘输入原理图矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的i/o口作为输出端,而列线所接的i/o口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。具体的识别及编程方法如下所述。矩阵式键盘的按键识别方法:确定矩阵式键盘上何键被按下介绍一种“行扫描法”。行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如图2.5所示键盘,介绍过程如下。判断键盘中有无键按下将全部行线y0-y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。下面给出一个具体的例子:如图2.5所示。89c51单片机的p1口用作键盘i/o口,键盘的列线接到p1口的低4位,键盘的行线接到p1口的高4位。列线p1.0-p1.3分别接有4个上拉电阻到正电源+5v,并把列线p1.0-p1.3设置为输入线,行线p1.4-p.17设置为输出线。4根行线和4根列线形成16个相交点。检测当前是否有键被按下。检测的方法是p1.4-p1.7输出全“0”,读取p1.0-p1.3的状态,若p1.0-p1.3为全“1”,则无键闭合,否则有键闭合。去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断。若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进行扫描。p1.4-p1.7按下述4种组合依次输出:p1.7 1 1 1 0p1.6 1 1 0 1p1.5 1 0 1 1p1.4 0 1 1 1在每组行输出时读取p1.0-p1.3,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值为了保证键每闭合一次cpu仅作一次处理,必须却除键释放时的抖动。2.6密码存储部分2.6.1 at24c02at24c02是美国atmel公司的低功耗cmos型e2prom,内含2568位存储空间,具有工作电压宽(2.55.5 v)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、抗干扰能力强、数据不易丢失、体积小等特点。而且他是采用了i2c总线式进行数据读写的串行器件,占用很少的资源和io线,并且支持在线编程,进行数据实时的存取十分方便。at24c02正是运用了i2c规程,使用主从机双向通信,主机(通常为单片机)和从机(at24c02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过scl引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ack。at24c02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。图2.6(a)at24c02管脚图2.6.2密码存储电路图2.6(b)中at24c02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。在at89c51试验开发板上它们都接地,第8脚和第4脚分别为正、负电源。第5脚sda为串行数据输入/输出,数据通过这条双向i2c总线串行传送,在at89c51试验开发板上和单片机的p3.7连接。第6脚scl为串行时钟输入线,在at89c51试验开发板上和单片机的p3.6连接。sda和scl都需要和正电源间各接一个5.1k的电阻上拉。第7脚需要接地。图2.6(b)密码存储电路原理图at24c02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。2.7复位部分2.7.1 复位电路的介绍复位操作有上电自动复位和按键手动复位两种方式:1、上电自动复位上电自动复位时在加电瞬间电容通过充电来实现的,其电路如图2.7a所示。在通电瞬间,电容c通过电阻r充电,rst端出现正脉冲,用以复位。只要电源vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。关于参数的选定,在振荡稳定后应保证复位高电平持续时间(即正脉冲宽度)大于2个机器周期。当采用的晶体频率为6mhz时,可取c为22f,r为k;当采用晶体为12mhz时,可取c为10f,r为8.2k.如果上述电路复位不仅要使点单片机复位,而且还要使单片机的一些外围芯片也同时复位,那么上述电阻、电容参考值应作少许调整。对于coms型的89c51,由于在rst端内部有一个下拉电阻,故可将外部电阻去掉,而将外界电容减至1f。2、手动复位所谓手动复位,是指通过接通以按钮开关,使单片机进入复位状态。系统上电运行以后,若需要复位,一般是通过手动复位来实现的。通常采用手动复位和上电自动复位组合,其电路如图2.7所示。 图2.7(a )上电复位 图2.7(b )按键电平复位复位电路虽然简单,但其作用非常重要。一个单片机系统能否正常运行,首先要检查是否能复位成功。初步检查可用示波器探头监视rst引脚,按下复位键,观察是否有足够幅度的波形输出(瞬时的),还可以通过改变复位电路阻容值进行实验。2.7.2复位电路此次设计主要采用按键电平复位,单片机复位是使cpu和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后pc0000h,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即rst为高电平期间),p0口为高组态,p1p3口输出高电平;外部程序存储器读选通信号psen无效。地址锁存信号ale也为高电平。根据实际情况选择如图4-6所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容c1上的电压很小,复位下拉电阻r上的电压接近电源电压,即rst为高电平,在电容充电的过程中rst端电压逐渐下降,当rst端的电压小于某一数值后,cpu脱离复位状态,由于电容c1足够大,可以保证rst高电平有效时间大于24个振荡周期,cpu能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容c1通过r5放电。当电容c1放电结束后,rst端的电位由r5与r6分压比决定。由于r53?报警程序nyny返回确认程序再次输新密码两次新密码输入相同?ny图3.3 密码修改流程图3.4 密码比较判断模块初始化按开锁键输入密码确认程序所输入密码正确?y开锁成功开锁程序输入次数加1次数3?报警程序返回nyn该模块的功能是将键盘输入的密码与设定的密码进行比较,如果密码正确则开锁;若不正确,则密码输入次数计数单元计数如达不到3次,返回键盘扫描模块;若计数已达3次,则调用自动报警模块。图3.4 密码判断流程3.5自动报警模块该模块采用软件延时的方法, 改变单片机p2.1引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音,达到现场报警的目的另外,改变p2.1输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。snd:setb p2.1 ;p2.1输出高电平,启动蜂鸣器鸣叫mov r7,#1eh ;延时30msdl:mov r6,#0f9hdl1:djnz r6,dl1;小循坏延时1msdjnz r7,dlclr p2.1 ;p2.1输出低电平,停止蜂鸣器鸣叫ret第四章 总结与体会在大学学习的这段期间内,知识是通过一门门独立的课程传授给我们的。而实际问题能够顺利的得到解决,不但需要多方面的知识,而且还需要对这些知识综合地加以运用。所以此次毕业设计既是学习的过程,也是实践的过程,不仅对所学的知识加以了巩固和延伸。也让我学会慎密、全面的考虑问题,抓住主要矛盾加以解决的思维方法和围绕问题多方设法以求得解决的顽强意志。大学生活使我从一个懵懂无知的少年变成了可以勇敢面对人生的强者,无论是在思想上还是在专业课的学习上,电子电气系的老师和同学们给予了我极大的帮助,在这里我要对老师们无私的关怀和帮助表示衷心的感谢!对帮助过我的同学们表示真挚的感谢! 参考文献1 石文轩,宋薇.基于单片机mcs一51的智能密码锁设计m.武汉工程职业技术学院学报,2004,(01);2 祖龙起,刘仁杰.一种新型可编程密码锁j.大连轻工业学院学报,2002,(01);3 叶启明.单片机制作的新型安全密码锁j.家庭电子,2005,(10);4 郭海英.基于单片机的电子安全密码锁的设计m.现代电子技术,2005,(13);5 李明喜.新型电子密码锁的设计j.机电产品开发与创新,2004,(03);6 董继成.一种新型安全的单片机密码锁j.电子技术,2004,(03);7 祖龙起,刘仁杰,孙乃凌.一种新颖的电子密码锁j.电子世界,2001,(10);8 李明喜.新型电子密码锁的设计j.机电产品开发与创新,2004,(03);9 杨茂涛.一种电子密码锁的实现j.福建电脑,2004,(08);10 瞿贵荣.实用电子密码锁j.家庭电子,2000,(07);11 atmega.atmega8l-8ac,2006,(01);12 wireless world,1998,vol、84,no、1509,p69;13 王千.实用电子电路大全m,电子工业出版社,2001,p101;14 何立民.单片机应用技术选编m,北京:北京航空大学出版社,1998;15 李华.mcs-51系列单片机使用接口技术m,北京航空航天大学出版社,1993;16 彭为.单片机典型系统设计实例精讲m,北京:电子工业出版社,2006;17 潘永雄.新编单片机原理与应用m,西安:西安电子科技大学出版社,2003;18 童诗白,华成英.模拟电子技术基础m,北京:高等教育出版社,2000;19 阎石主.数字电子技术基础m,北京:高等教育出版社,1998;20 李朝青.单片机原理及接口技术 m,北京:北京航空航天大学出版社,2005;21 李瀚荪.电路分析基础m,北京:高等教育出版社1991;22 周润景,袁伟亭,景晓松。prtoeus在mcs-51&arm7系统中的应用百例m,北京:电子工业出版社,2006;附录 电子密码锁程序清单s1ok *;显示缓冲区;led1 equ 6fhbuff equ 6ehtimers1 equ 6dh ;输入回车的次数timers2 equ 6ch ;报警的次数timers equ 6bh ;输入数字的位数;led6 equ 6ah;密码缓冲区ps1 equ 69hps2 equ 68hps3 equ 67hps4 equ 66hps5 equ 65hps6 equ 64h;at24c02读取缓冲区at1 equ 63hat2 equ 62hat3 equ 61hat4 equ 60hat5 equ 5fhat6 equ 5eh;按键标志位f_1 bit 20hf_2 bit 21hf_3 bit 22hf_4 bit 23hbuf_full bit 24h ;密码已经够六位的标志位,为1表示满ch_state bit 25h ;系统更改的状态标志位,为1表示busyflag1 bit 26h ;功能键标志位,为1表示功能按键。f_f1 bit 27hf_f2 bit 28hpsw_f bit 29h ;密码是否正确的标志位;口资源定义spk bit p2.1jdq bit p2.3sda bit p2.4 ;定义串口数据端scl bit p2.5;发光二极管灯l1 bit p1.0l2 bit p1.1l3 bit p1.2;org 0000hajmp mainorg 000bh;ajmp timer0org 001bh;ajmp timer1org 0030hmain:mov sp, #70hmov tmod, #11hmov th0, #3chmov tl0, #0b0hmov th1, #3chmov tl1, #0b0hclr f_1 ;清除标志位clr f_2clr f_3clr f_4clr buf_fullclr ch_stateclr flag1clr f_f1clr f_f2clr psw_fmov buff,#00h ;调用lcall initps ;初始化环境lcall initatlcall xsa ;调用默认显示mov timers1,#00hnopmov ps1, #11h ;初始化密码830620mov ps2, #0ahmov ps3, #02hmov ps4, #13hmov ps5, #0bhmov ps6, #02hstart:nop ;程序开始lcall ch_key ;检查键盘ajmp start ;返回ch_key:lcall ks ;检查有没有按键按下jnz lk1ajmp ch_keylk1:lcall t12msacall ksjnz lk2retlk2:noplcall sbie ;按键识别子程序mov buff, a ;送缓冲区以识别是数字键还是功能键?lcall ch_kf ;判断按键功能。jb flag1 ,key_fun ;标志为1,则为功能键;*数字按键输入并且存放到缓冲区内等待比较*g:nop ;设一标志,辨别输入是否满;setb tr0inc timers ;输入数字的位数mov a, timersclr csubb a, #01hjnz ps_2mov ps1, buff ;依照顺序存放密码ajmp nextps_2:mov a, timerssubb a, #02hclr cjnz ps_3mov ps2, buffajmp nextps_3:mov a, timersclr csubb a, #03hjnz ps_4mov ps3, buffajmp nextps_4:mov a, timersclr csubb a, #04jnz ps_5mov ps4, buffajmp nextps_5:mov a, timersclr csubb a, #05jnz ps_6mov ps5, buffajmp nextps_6:mov a, timersclr csubb a, #06hjnz ch_keymov ps6, buffnext:lcall xscmov r7, timers ;比较输入的次数。cjne r7, #06h ,fullfull:jc next9setb buf_fullmov timers,#06hclr l3nopclr p2.1lcall t100msdsetb p2.1nopajmp ch_keynext9:clr p2.1 ;密码输入一位,鸣叫一声。clr l3lcall t100msd ;延时100mssetb l3setb p2.1ajmp ch_key;*功能按键比较并且跳转*key_fun:clr flag1clr cmov a, buffsubb a, #03h ;按键cl跳转jnz en_cajmp clen_c:clr cmov a, buff ;按键en跳转subb a, #00hjnz f1_cajmp enf1_c:clr cmov a, buffsubb a, #1bhjnz f2_cajmp fu1f2_c:clr cmov a, buffsubb a, #1ahjnz f3_cajmp fu2f3_c:clr cmov a, buffsubb a, #19hjnz f4_cajmp fu3f4_c:clr cmov a, buffsubb a, #18hjz fu4exit8:nopljmp ch_key; *开门子程序 *cl:nopsetb l3mov buff, #00h ;消密码缓冲mov timers,#00hlcall initps ;消除at缓冲,加调电存储后一定要加上lcall xsclcall bplcall bplcall t100msdlcall bpclr flag1ajmp ch_keyfu4:noplcall bplcall t100msdlcall bplcall t100msdlcall bplcall t100msdlcall bplcall t100msdlcall bpclr flag1ajmp ch_keyfu3:noplcall bplcall t100msdlcall bplcall killxs ;关闭显示clr fla

温馨提示

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

评论

0/150

提交评论