目录第一章绪论1.1摘要……………………………………………………………………………31.2引言……………………………………………………………………………31.3AT89C51单片机概述…………………………………………………………41.4AT89C51引脚图………………………………………………………………4第二章系统的设计2.1系统结构及原理………………………………………………………………52.2密码锁基本工作原理…………………………………………………………52.3红外遥控系统…………………………………………………………………52.4遥控发射器及其编码…………………………………………………………62.5TOSP1738接收器……………………………………………………………9第三章EEPROMC存贮器AT24C02的读写3.1I2C原理图……………………………………………………………………103.2I2C总线特点…………………………………………………………………103.3I2C总线工作原理……………………………………………………………113.3.1管脚说明……………………………………………………………………113.3.2总线的构成及信号类型……………………………………………………113.4总线基本操作…………………………………………………………………123.4.1总线的时序顺序……………………………………………………………123.4.2控制字节……………………………………………………………………133.4.3写操作………………………………………………………………………133.4.4读操作………………………………………………………………………133.5红外遥控密码锁原理图………………………………………………………14第四章程序设计4.1程序流程图……………………………………………………………………154.2红外遥控密码锁程序…………………………………………………………16结论…………………………………………………………………………………22参考文献……………………………………………………………………………23致谢…………………………………………………………………………………24红外遥控防盗密码锁-2-第一章绪论1.1摘要本系统采用单片机AT89C51作为本设计的核心元件,利用红外线遥控原理和单片机串行发射、接收等功能而设计的一款由遥控开锁的电子密码锁。通过遥控器发射信号,由CPU进行解码,与原有的数据进行比对,完全正确后,发出解锁信号,解锁之后进行密码改写,按下修改键之后输入新的密码数据,密码数据存放在24C02存储芯片中,每次进行数据比对都必须从里面提取数据。关键词:单片机红外密码AT24C021.2引言在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。针对这种情况,本文设计了一种红外遥控密码锁,它具有安全可靠、成本低廉、连接方便、简单易用、结构紧凑等特点。红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有红外遥控防盗密码锁-3-毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。1.3AT89C51功能概述AT89C51提供以下标准功能:4k字节Flash闪速储存,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作指导下一个硬件复位。1.4AT89C51引脚图图1第二章系统的设计2.1系统结构及原理红外遥控防盗密码锁-4-图2系统结构及原理图2.2密码锁基本工作原理本系统由两部分组成,红外发射部分和红外接收部分,红外发射部分是采用普通的遥控发射器,接收部分由红外遥控一体接收头、发光二极管显示、报警器等组成。当红外遥控发射器有按键按下时,内部的编码电路将其转换为相对应的信号,从红外发射管发出,红外遥控一体接收头接收到信号后,将信号转换成相对应的脉冲信号。红外一体接收的信号接到解码单片机P3.2管脚,进行解码,通过按键扫描,将所按下按键对应的数据存储到规定的单元中。本系统设置了8位密码。当输入8位密码后,输入的8为密码所对应的数据将与原先存放在EEPROM存贮器AT24C02内部的数据进行逐一的比较,当8位密码都正确以后CPU才会发解码信号,本次设计为了方便,解码信号为点亮一个发光二极管,密码错误时发出报警信号。本系统还设有一个密码改写键,当输入的密码完全正确发出解码信号后,才能进入密码改写,按下密码改写键,输入新的8位密码,新密码所对应的数据将取代原有密码的数据。当输入新密码后能够进行解锁。2.3红外遥控系统通用红外遥控系统由发射和接收两大部分组成,遥控器应用编码专用集成电路芯片来进行控制操作,红外遥控发送/接收示意图如图3所示。发射部分包括矩阵键盘、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。红外遥控防盗密码锁-5-图3红外遥控发送/接收示意图2.4遥控发射器及其编码遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G(图4)组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。图4uPD6121G引脚图键盘与Upd6121G芯片的连接如图5键盘编码调制LED发射红外编码码光/电放大调解解码红外编码接收红外遥控防盗密码锁-6-图5这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图6所示。图6上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图7所示。红外遥控防盗密码锁-7-UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图8为发射波形图。当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。代码格式(以接收代码为准,接收代码与发射代码反向)1.位定义2.单发代码格式3.连发代码格式红外遥控防盗密码锁-8-代码宽度算法:16位地址码的最短宽度:1.12×16=18ms16位地址码的最长宽度:2.24ms×16=36ms易知8位数据代码及其8位反代码的宽度和不变:(1.12ms+2.24ms)×8=27ms所以32位代码的宽度为(18ms+27ms)~(36ms+27ms)1.解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。2.根据码的格式,应该等待9ms的起始码和4.5ms的结果码完成后才能读码。2.5TSOP1738接收器为了电路的简单实用,本实验选用一种集红外线接收和放大一体的一体化红外接收器TOSP1738,只要接上电源就能完成从红外接收到输出与TTL电平信号兼容的所有工作,而且适用性强,能满足各种红外遥控以及红外线数据传输的要求。如图9所示,接收器对外只有3个引脚:GND、VS、OUT,与单片机连接十分简单方便。其中1脚为GUD,接地(0V);2脚为VS接系统电源(+5V);3脚为OUT脉冲信号输出接口,直接接单片机的P3.2引脚。红外遥控防盗密码锁-9-图9TOSP1738实物图TOSP1738原理图第三章EEPROM存贮器AT24C02的读写3.1I2C原理图图103.2I2C总线特点I2C(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线最主要的优点是其简单性和有效性。由于接口直接接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率红外遥控防盗密码锁-10-支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。3.3I2C总线工作原理3.3.1管脚说明图11图中AO、A1、A2是三条地址线,用于确定芯片的硬件地址。Vcc和Vss分别为正、负电源。SDA为串行数据输入/输出,SCL为控制数输入的时钟。SDA和SCL需要和正电源间各接一个1Ok的电阻上拉。第7脚需要接地。这条双向IC总线串行传送。SCL为串行时钟线,AT24C02从地址的前四位是固定的“1O1O”。它的低3位为A0、A1、A2,且是可编程的。在电路中3位地址输入引脚必须接Vc