红外遥控防盗密码锁的设计.docx

上传人:b****5 文档编号:5696156 上传时间:2022-12-31 格式:DOCX 页数:27 大小:366.27KB
下载 相关 举报
红外遥控防盗密码锁的设计.docx_第1页
第1页 / 共27页
红外遥控防盗密码锁的设计.docx_第2页
第2页 / 共27页
红外遥控防盗密码锁的设计.docx_第3页
第3页 / 共27页
红外遥控防盗密码锁的设计.docx_第4页
第4页 / 共27页
红外遥控防盗密码锁的设计.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

红外遥控防盗密码锁的设计.docx

《红外遥控防盗密码锁的设计.docx》由会员分享,可在线阅读,更多相关《红外遥控防盗密码锁的设计.docx(27页珍藏版)》请在冰豆网上搜索。

红外遥控防盗密码锁的设计.docx

红外遥控防盗密码锁的设计

摘要

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生,码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。

本系统采用单片机AT89C51作为本设计的核心元件,利用红外线遥控原理和单片机串行发射、接收等功能而设计的一款由遥控开锁的电子密码锁。

通过遥控器发射信号,由CPU进行解码,与原有的数据进行比对,完全正确后,发出解锁信号,解锁之后进行密码改写,按下修改键之后输入新的密码数据,密码数据存放在24C02存储芯片中,每次进行数据比对都必须从里面提取数据。

关键词:

单片机片外密码AT24C02

Abstract

Withthedevelopmentofscienceandtechnology,people'slifeinsuranceforthesafetydevicesinincreasinglyhighdemand.Inordertomeettherequirementsoftheuseoflocks,increaseitssecurity,thepasswordlockemergeasthetimesrequire,codelockhastheadvantagesofhighsafety,lowcost,lowpowerconsumption,easyoperationetc..Inthefieldofsecurityandprotection,withmechanicalcipheranti-theftalarmfunctionelectroniccombinationlockgraduallyreplacethetraditionalmechanicallock,thelockcodeless,poorsafetyperformance,makethecipherlockbothintechnicalorperformanceisgreatlyimproved.ThesystemusesAT89C51microcontrollerasthecorecomponentofthedesign,theuseofinfra-redremotecontrolprincipleandserialtransmitting,receivingandotherfunctionsandthedesignofaremotecontrolunlockingthelockbytheelectronicpassword.Throughtheremotecontrolsignal,theCPUdecoding,comparedwiththeoriginaldata,completelycorrect,sendsoutunlockingsignals,afterunlockingpasswordrewriting,presstheeditkeyinputpassworddataisnew,thepassworddataisstoredinthe24C02memorychip,eachdatacomparisontoextractdatafromtheinside.

Keywords:

SinglechipmicrocomputerChipCipherAT24C02

第一章绪论

第一节引言

在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生,码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。

随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。

但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。

而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。

加上其成本较高,一定程度上限制了这类产品的普及和推广。

鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。

针对这种情况,本文设计了一种红外遥控密码锁,它具有安全可靠、成本低廉、连接方便、简单易用、结构紧凑等特点。

红外线遥控是目前使用最广泛的一种通信和遥控手段。

由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。

工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。

第二节AT89C51功能概述

AT89C51提供以下标准功能:

4k字节Flash闪速储存,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作指导下一个硬件复位。

第三节AT89C51引脚图

图1.1AT89C51引脚排列图

第二章系统的设计

第一节系统结构及原理

图2.1系统结构图及原理

第二节密码锁基本工作原理

本系统由两部分组成,红外发射部分和红外接收部分,红外发射部分是采用普通的遥控发射器,接收部分由红外遥控一体接收头、发光二极管显示、报警器等组成。

当红外遥控发射器有按键按下时,内部的编码电路将其转换为相对应的信号,从红外发射管发出,红外遥控一体接收头接收到信号后,将信号转换成相对应的脉冲信号。

红外一体接收的信号接到解码单片机P3.2管脚,进行解码,通过按键扫描,将所按下按键对应的数据存储到规定的单元中。

本系统设置了8位密码。

当输入8位密码后,输入的8为密码所对应的数据将与原先存放在EEPROM存贮器AT24C02内部的数据进行逐一的比较,当8位密码都正确以后CPU才会发解码信号,本次设计为了方便,解码信号为点亮一个发光二极管,密码错误时发出报警信号。

本系统还设有一个密码改写键,当输入的密码完全正确发出解码信号后,才能进入密码改写,按下密码改写键,输入新的8位密码,新密码所对应的数据将取代原有密码的数据。

当输入新密码后能够进行解锁。

第三节红外遥控系统

通用红外遥控系统由发射和接收两大部分组成,遥控器应用编码专用集成电路芯片来进行控制操作,红外遥控发送/接收示意图如图2.2所示。

发射部分包括矩阵键盘、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。

图2.2红外接收图

第四节遥控发射器及其编码

遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G(图2.3)组成发射电路为例说明编码原理。

当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。

图2.3UPD6121G引脚图

图2.4键盘与Upd6121G芯片的连接

这种遥控码具有以下特征:

采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2.5所示。

图2.5脉宽调制的串行码波形

上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。

然后再通过红外发射二极管产生红外线向空间发射。

UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。

该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。

UPD6121G最多额128种不同组合的编码。

遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。

一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间。

当一个键按下超过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、连发代码格式

代码宽度算法:

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的结果码完成后才能读码。

第五节TSOP1738接收器

为了电路的简单实用,本实验选用一种集红外线接收和放大一体的一体化红外接收器TOSP1738,只要接上电源就能完成从红外接收到输出与TTL电平信号兼容的所有工作,而且适用性强,能满足各种红外遥控以及红外线数据传输的要求。

如图2.6所示接收器对外只有3个引脚:

GND、VS、OUT,与单片机连接十分简单方便。

其中1脚为GUD,接地(0V);2脚为VS接系统电源(+5V);3脚为OUT脉冲信号输出接口,直接接单片机的P3.2引脚。

图2.6TOSP1738实物图图2.7TOSP1738原理图

第三章EEPROM存贮器AT24C02的读写

第一节I

C原理图

图3.1I

C原理图

第二节I

C总线特点

I

C(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。

I

C总线最主要的优点是其简单性和有效性。

由于接口直接接在组件之上,因此I

C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。

总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。

I

C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。

一个主控能够控制信号的传输和时钟频率。

当然,在任何时间点上只能有一个主控。

第三节I

C总线工作原理

一、管脚说明

图3.2AT24C02引脚图

图中AO、A1、A2是三条地址线,用于确定芯片的硬件地址。

Vcc和Vss分别为正、负电源。

SDA为串行数据输入/输出,SCL为控制数输入的时钟。

SDA和SCL需要和正电源间各接一个1Ok的电阻上拉。

第7脚需要接地。

这条双向IC总线串行传送。

SCL为串行时钟线,AT24C02从地址的前四位是固定的“1O1O”。

它的低3位为A0、A1、A2,且是可编程的。

在电路中3位地址输入引脚必须接Vcc或Vss,不能悬空。

FC总线最多可挂8片AT24C02,不需要附加任何硬件电路。

它们很适合应用于一些非高速系统中。

AT24C02既可用于带I

C总线的单片机系统,也可用于不带FC总线的单片机系统。

图3.3AT24C02连线图

二、总线的构成及信号类型

I

C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。

在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。

各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I

C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。

CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。

这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。

I

C总线在传送数据过程中共有三种类型信号,它们分别是:

开始信号、结束信号和应答信号。

开始信号:

SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。

结束信号:

SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。

应答信号:

接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。

CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。

若未收到应答信号,由判断为受控单元出现故障。

I

C总线上传送的每个字节必须为8位,启动和停止之间可传输的数据字节数不受限制。

采用串行传送,首先传送最高位,每传送一个字节后必须跟一个应答位。

主控器产生应答所需的时钟脉冲期间,发送器必须释放数据线(SDA为高),以便接收器输出应答位。

低电平为应答信号,高电平为非应答信号。

非应答信号是当主控器作为接收器时,收到最后一个字节数据后,必须发送一个非应答信号给被控发送器,使被控发送器释放数据线,以便主控器发出停止信号,终止数据传送。

当从器件不能再接收字节时也会出现非应答信号这种情况。

第四节总线基本操作

一、总线的时序顺序

I

C规程运用主/从双向通讯。

器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。

主器件和从器件都可以工作于接收和发送状态。

总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。

SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。

如图3.4所示。

图3.4I

C数据传送信号

二、控制字节

在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。

如图3.5所示。

图3.5控制字节图

三、写操作

写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。

关于字节写和页面写的地址、应答和数据传送的时序参见图3.6和3.7所示。

图3.6字节写图

图3.7页面写

四、读操作

读操作有三种基本操作:

当前地址读、随机读和顺序读。

图3.8是当前地址读,图3.9随机读,图3.10给出的是顺序读的时序图。

应当注意的是:

最后一个读操作的第9个时钟周期不是“不关心”而是为了结束读操作,主机必须在第9个周期间发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。

图3.8当前地址读

图3.9随机读

图3.10顺序读

第五节红外密码锁原理图

图3.11红外密码锁原理图

第四章程序的设计

第一节程序流程图

图4.1解码主程序

第二节红外遥控密码锁程序

红外解码程序:

ORG0000H

LJMPR_MAIN

ORG0003H

LJMPINPUT0

R_MAIN:

MOV30H,#00H

MOV31H,#00H

MOV32H,#00H

MOV33H,#00H

SETBEA;允许外部INT0申请中断

SETBEX0

SETBIT0;下降沿申请中断有效

SJMP$

;中断服务子程序INPUT0

INPUT0:

CLREA

PUSHACC

PUSHPSW

RU:

MOVR4,#9;读9次按键

XU:

LCALLIR;调用解码子程序

MOVA,33H;取按键号

D1:

CJNEA,#01H,D2;键盘扫描

MOV1CH,#01H

LJMPDU;存放按键号

D2:

CJNEA,#02H,D3

MOV1CH,#02H

LJMPDU

D3:

CJNEA,#03H,D4

MOV1CH,#03H

LJMPDU

D4:

CJNEA,#04H,D5

MOV1CH,#4H

LJMPDU

D5:

CJNEA,#05H,D6

MOV1CH,#05H

LJMPDU

D6:

CJNEA,#06H,D7

MOV1CH,#06H

LJMPDU

D7:

CJNEA,#07H,D8

MOV1CH,#07H

LJMPDU

D8:

CJNEA,#08,D9

MOV1CH,#08H

LJMPDU

D9:

CJNEA,#09H,D0

MOV1CH,#09H

LJMPDU

D0:

CJNEA,#00H,DOK

MOV1CH,#00H

LJMPDU

DOK:

CJNEA,#10H,OK1;确认键

BACK0:

MOV30H,#00H;清除遥控值单元,使连按失效

MOV31H,#00H

MOV32H,#00H

MOV33H,#00H

POPPSW

POPACC

SETBEA

RETI

DU:

MOVR1,#50H;把8个按键号放入片内RAM50H-57H

MOVA,1CH

MOV@R1,A

INCR1

DJNZR4,TIAO;判断按键是否按了9次

LJMPOK1

TIAO:

LJMPXU

OK1:

LCALLE2PR;按键号与储存密码对比

MOVA,50H

CJNEA,20H,ALARM

MOVA,51H

CJNEA,21H,ALARM

MOVA,52H

CJNEA,22H,ALARM

MOVA,53H

CJNEA,23H,ALARM

MOVA,54H

CJNEA,24H,ALARM

MOVA,55H

CJNEA,25H,ALARM

MOVA,56H

CJNEA,26H,ALARM

MOVA,57H

CJNEA,27H,ALARM

CLRP0.1;解码成功LED,点亮

ALARM:

CPLP0.2;密码错误报警

LCALLDELAY1

SJMPALARM

DELAY1:

MOVR4,#250

;密码修改

KEY:

JNBP1.0,KEY1;改密码按键

SJMPKEY

KEY1:

MOVR4,#9

XU1:

LCALLIR

MOVA,33H

DD1:

CJNEA,#01H,DD2;键盘扫描

MOV1CH,#01H

LJMPDU2;存放按键号

DD2:

CJNEA,#02H,DD3

MOV1CH,#02H

LJMPDU2

DD3:

CJNEA,#03H,DD4

MOV1CH,#03H

LJMPDU2

DD4:

CJNEA,#04H,DD5

MOV1CH,#4H

LJMPDU2

DD5:

CJNEA,#05H,DD6

MOV1CH,#05H

LJMPDU2

DD6:

CJNEA,#06H,DD7

MOV1CH,#06H

LJMPDU2

DD7:

CJNEA,#07H,DD8

MOV1CH,#07H

LJMPDU2

DD8:

CJNEA,#08,DD9

MOV1CH,#08H

LJMPDU2

DD9:

CJNEA,#09H,DD0

MOV1CH,#09H

LJMPDU2

DD0:

CJNEA,#00H,DDOK

MOV1CH,#00H

LJMPDU2

DDOK:

CJNEA,#10H,OK2;确认键

BACK1:

MOV30H,#00H;清除遥控值单元,使连按失效

MOV31H,#00H

MOV32H,#00H

MOV33H,#00H

POPPSW

POPACC

SETBEA

RETI

DU2:

MOVR1,#50H;把8个按键号放入片内RAM50H-57H

MOVA,1CH

MOV@R1,A

INCR1

DJNZR4,TIAO1;判断按键是否按了9次

LJMPOK2

TIAO1:

LJMPXU1

OK2:

LCALLE2PW;写入新密码

;解码子程序

IR:

MOVR6,#10;9ms引导低电平状态查询次数

IR_T9:

LCALLDELAY882;调用882us延时子程序

JBP3.2,IR_ERROR;若P3.2引脚出现高电平则退出解码程序

DJNZR6,IR_T9;重复10次,在9ms内检测引脚状态

JNBP3.2,$;等待引导脉冲结束

ACALLDELAY2400

JNBP3.2,IR_GOTO;若为低电平,则表示是连发码信号

LCALLDELAY2400;延时4.8ms越过4.5ms读取32位数据码

;读取数字信号

MOVR1,#30H;设30H为读取数据存放起始RAM地址

MOVR2,#4;从30H-33H共4个存放数据单元

IR_32B:

MOVR3,#8;每个单元接收8位二进制数

IR_8B:

JNBP3.2,$;等待识别码第一位的高电平信号出现

LCALLDELAY882;间隔882us判断输出信号的高低电平状态

MOVC,P3.2;将P3.2引脚此时的电平状态0或1存

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

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1