可改写的红外遥控密码锁.docx

上传人:b****8 文档编号:9201761 上传时间:2023-05-17 格式:DOCX 页数:21 大小:227.40KB
下载 相关 举报
可改写的红外遥控密码锁.docx_第1页
第1页 / 共21页
可改写的红外遥控密码锁.docx_第2页
第2页 / 共21页
可改写的红外遥控密码锁.docx_第3页
第3页 / 共21页
可改写的红外遥控密码锁.docx_第4页
第4页 / 共21页
可改写的红外遥控密码锁.docx_第5页
第5页 / 共21页
可改写的红外遥控密码锁.docx_第6页
第6页 / 共21页
可改写的红外遥控密码锁.docx_第7页
第7页 / 共21页
可改写的红外遥控密码锁.docx_第8页
第8页 / 共21页
可改写的红外遥控密码锁.docx_第9页
第9页 / 共21页
可改写的红外遥控密码锁.docx_第10页
第10页 / 共21页
可改写的红外遥控密码锁.docx_第11页
第11页 / 共21页
可改写的红外遥控密码锁.docx_第12页
第12页 / 共21页
可改写的红外遥控密码锁.docx_第13页
第13页 / 共21页
可改写的红外遥控密码锁.docx_第14页
第14页 / 共21页
可改写的红外遥控密码锁.docx_第15页
第15页 / 共21页
可改写的红外遥控密码锁.docx_第16页
第16页 / 共21页
可改写的红外遥控密码锁.docx_第17页
第17页 / 共21页
可改写的红外遥控密码锁.docx_第18页
第18页 / 共21页
可改写的红外遥控密码锁.docx_第19页
第19页 / 共21页
可改写的红外遥控密码锁.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

可改写的红外遥控密码锁.docx

《可改写的红外遥控密码锁.docx》由会员分享,可在线阅读,更多相关《可改写的红外遥控密码锁.docx(21页珍藏版)》请在冰点文库上搜索。

可改写的红外遥控密码锁.docx

可改写的红外遥控密码锁

可改写的红外遥控密码锁

目录

摘要………………………………………………………………………………………1

1.引言……………………………………………………………………………………1

2.系统结构及原理………………………………………………………………………1

2.1系统框图………………………………………………………………………………1

2.2基本工作原理………………………………………………………………………1

2.3红外解码原理图……………………………………………………………………2

2.4红外编码按键图……………………………………………………………………2

2.5遥控发射器及其编码…………………………………………………………………3

2.6解码注意要点………………………………………………………………………4

2.7接收器及解码………………………………………………………………………4

3.EEPROM存贮器AT24C02的读写……………………………………………………5

3.1I

C原图………………………………………………………………………………5

3.2I

C总线点……………………………………………………………………………5

3.3I

C总线工作理………………………………………………………………………5

3.3.1管脚说明…………………………………………………………………………5

3.3.2总线的构成及信号类型…………………………………………………………6

3.4总线基本操作………………………………………………………………………6

3.4.1总线的时序顺序…………………………………………………………………6

3.4.2控制字节…………………………………………………………………………7

3.4.3写操作……………………………………………………………………………7

3.4.4读操作……………………………………………………………………………8

4.程序流程图……………………………………………………………………………9

5.小结……………………………………………………………………………………9

6.参考文献……………………………………………………………………………10

附录

解码子程序………………………………………………………………………………10

 

可改写的红外密码锁

摘要

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

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

关键词:

单片机红外密码AT24C02

Abstract:

ThesystemusesSCMAT89S51asthedesignofthecorecomponents,Usinginfra-redremotecontroltheoryandmicrocontrollerserialfired,receiving,andotherfunctionsdesignedtohaveaunlocktheremoteelectronicpasswordlock.LaunchedbyremotecontrolsignalBytheCPUdecode,andtheoriginaldatatocompare,completelycorrect,thesignalsenttounlock.Unlockthepasswordafterrewrite.Pressthebuttonafteramendingenteranewpassworddata.Passworddatastoredinmemorychipsinthe24C02.Everytimethedatamustbecomparedtoextractdatafromtheinside.Thesystemalsohasabuttontolock,Unlockafterpressthisbuttontolock.

keywords:

SCMInfraredpasswordAT24C02

1.引言

目前大部分的锁采用的都是机械式的,其最大的缺点是利用简单工具就能很容易地把锁打开。

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

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

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

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

2.系统结构及原理

2.1系统框图

图1

2.2基本工作原理

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

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

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

本系统设置了8位密码,每按下一位密码后将有一个发光二极管被点亮。

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

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

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

系统还设置了重新上所键,在解锁之后按下此键,系统重新上锁。

2.3红外解码原理图

图1

2.4红外编码按键图

本次所用的是普通的遥控编码器这种遥控器的编码方式符合上面的描述规律,而且价格低廉,有32个按键,按键外形比较统一,如果用于批量开发,可以把遥控器上贴膜换成你需要的字符,这为开发产品提供了便利。

这是按照红外遥控器按键的实际位置给出的32个按键的键值(16进制)。

如图2所示:

图2

2.5遥控发射器及其编码

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

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

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

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

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

然后再通过红外发

射二极管产生红外线向空间发射,如图3所示.

图3

LC7461产生的遥控编码是连续的42位二进制码组,其中前26位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。

后16位为8位的操作码和8位的操作反码用于核对数据是否接收准确,如图4所示。

图4

当遥控器上任意一个按键按下超过36ms时,LC7461芯片的振荡器使芯片激活,将发

射一个特定的同步码头,对于接收端而言就是一个9ms的低电平,和一个4.5ms的高电平,这个同步码头可以使程序知道从这个同步码头以后可以开始接收数据。

具体发射的时序,以及“0”和“1”的定义如下图5、6所示,注意这里是指编码之后发射,而在接收程序里面,0和1的定义是相反的。

图5

图6

2.6解码注意要点

解码的关键是如何识别“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左右均可。

根据码的格式,应该等待9ms的起始码和4.5ms的结束码完成后才能读码。

2.7接收器及解码

一体化红外线接收器是一种集红外线接收和放大于一体,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。

接收器对外只有3个引脚:

Out、GND、Vcc与单片机接口非常方便,如图7所示。

图7

①GND连接系统的地线(0V);

②Vcc连接系统的电源正极(+5V);

③脉冲信号输出接,直接接单片机的IO口。

3.EEPROM存贮器AT24C02的读写

3.1I

C原理图

图8

3.2I

C总线特点

I

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

I

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

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

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

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

I

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

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

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

3.3I

C总线工作原理

3.3.1管脚说明

图9

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

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

SDA为串行数据输入/输出,数据通过行时钟输入线。

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

第7脚需要接地。

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

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

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

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

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

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

AT24C02既可用于带I

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

3.3.2总线的构成及信号类型

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为高),以便接收器输出应答位。

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

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

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

3.4总线基本操作

3.4.1总线的时序顺序

I

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

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

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

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

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

如图10、11所示。

图10I

C总线数据传送信号时

图11串行总线上的数据传送顺序

3.4.2控制字节

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

如图12所示。

图12控制字节配

3.4.3写操作

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

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

图13字节写

图14页面写

3.4.4读操作

读操作有三种基本操作:

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

图15是当前地址读,图16

是随机读,图17给出的是顺序读的时序图。

应当注意的是:

最后一个读操作的第9个时钟周期不是“不关心”。

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

 

图15当前地址读

图16随机读

图17顺序读

 

4.程序流程图

5.小结

通过本次对可改写的红外遥控密码锁的设计与调试,学会了红外遥控编码和解码的基本原理。

在调试过程中,对于红外解码程序所需要的延时时间要非常精确,所以在进入解码时,我们选择外部中断,还有延时子程序要符合编码原则,计算要严格按照要求,否则就无法进入正确的解码。

此次用到的寄存器比较多,要合理分配好,有些是不能重复使用的就不可以重复使用,因为这样有可能会出现乱码,整个程序分配的地址单元也要考虑还,有些子程序不能放得太远,会导致无法跳回,有时候理论上是可以的,当实际用起来是不能实现,子程序的嵌套也不能太多,很容易进入死循环,在本次的调试中,就遇到了因为密码存储子程序放的过远,编译都是可以的,但进行烧录时有时候就是不行,而且如果没有合理的安排各个子程序的位置,烧录的时候出错率很高,有些跳转太远的话,在编译的时候会给提示无法跳转,就要进行修改。

每编写一个程序都要不断的仿真和调试过程,不可能一下子就可以的,特别是要跟前面的程序合并时,所以要有耐心和保持清醒的头脑。

虽然这次的课设有达到了预期的要求,但还有很多需要改进的地方,比如在显示模块,遥控模块都需要改进,在今后的

时间,我会继续努力去完善。

本次的课设让我更进一步了解和学习了单片机系统的开发,对我即将步入社会有了一个新的开始。

 

6.参考文献

[1]张迎新等.单片机原理及应用.电子工业出版社.2006.

[2]李朝青等.无线发送/接收IC芯片及其数据通信技术选编

(1).北京航空航天大学出版.

  1999.

[3]彭 为等.单片机典型系统设计实例精讲.电子工业出版社.2006.

[4]楼然苗等.李光飞.51系列单片机设计实例[M].北京:

北京航空航天大学出版社,2003.

附录一红外编码子程序

ORG0000H

AJMPMAIN转入主程序

ORG0003H外部中断P3.2脚INT0入口地址

AJMPINT转入外部中断服务子程序(解码程序)

*****以下为主程序进行CPU中断方式设置******

MAIN:

SETBEA打开CPU总中断请求

SETBIT0设定INT0的触发方式为脉冲负边沿触发

SETBEX0打开INT0中断请求

以下对单片机的所有引脚进行初始化,全部设置成高电平

MOVP2,#0c0h

movp1,#00h

AJMP$

*****以下为进入P3.2脚外部中断子程序,也就是解码程序*******

INT:

CLREA暂时关闭CPU的所有中断请求

MOVR6,#10

SB:

ACALLYS1调用882微秒延时子程序

JBP3.2,EXIT延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序

DJNZR6,SB重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序以上完成对遥控信号的9000微秒的初始低电平信号的识别。

JNBP3.2,$等待高电平避开9毫秒低电平引导脉冲

ACALLYS2延时4.74毫秒避开4.5毫秒的结果码

MOVR7,#26忽略前26位系统识别码

JJJJA:

JNBP3.2,$等待地址码第一位的高电平信号

LCALLYS1高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态

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

JNCUUUA如果为0就跳转到UUUA

LCALLYS3检测到高电平1的话延时1毫秒等待脉冲高电平结束

 

UUUA:

DJNZR7,JJJJA

MOVR1,#1AH设定1AH为起始RAM区

MOVR2,#2接收从1AH到1BH的2个内存,用于存放操作码和操作反码

PP:

MOVR3,#8每组数据为8位

JJJJ:

JNBP3.2,$等待地址码第一位的高电平信号

LCALLYS1高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态

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

JNCUUU如果为0就跳转到UUU

LCALLYS3检测到高电平1的话延时1毫秒等待脉冲高电平结束

UUU:

MOVA,@R1将R1中地址的给A

RRCA将C中的值0或1移入A中的最低位

MOV@R1,A将A中的数暂时存放在R1数值的内存中

DJNZR3,JJJJ接收满8位换一个内存

INCR1对R1中的值加1,换下一个RAM

DJNZR2,PP接收完8位数据码和8位数据反码,存放在1AH/1BH中

MOVA,1AH

CPLA对1AH取反后和1BH比较

CJNEA,1BH,EXIT如果不等表示接收数据发生错误,放弃

CALLdisplay

CLRP3.3蜂鸣器鸣响-嘀嘀嘀-的声音,表示解码成功

LCALLYS2

LCALLYS2

LCALLYS2

SETBP3.3蜂鸣器停止

EXIT:

SETBEA允许中断

RETI退出解码子程序

display:

mova,1ah按键扫描

cjnea,#11h,ds1

mov1ch,#1

jmpquit

ds1:

cjnea,#12h,ds2

mov1ch,#2

jmpquit

ds2:

cjnea,#13h,ds3

mov1ch,#3

jmpquit

ds3:

cjnea,#14h,ds4

mov1ch,#4

jmpquit

MOVR1,#1AH设定1AH为起始RAM区

MOVR2,#2接收从1AH到1BH的2个内存,用于存放操作码和操作反码

PP:

MOVR3,#8每组数据为8位

JJJJ:

JNBP3.2,$等待地址码第一位的高电平信号

LCALLYS1高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态

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

JNCUUU如果为0就跳转到UUU

LCALLYS3检测到高电平1的话延时1毫秒等待脉冲高电平结束

UUU:

MOVA,@R1将R1中地址的给A

RRCA将C中的值0或1移入A中的最低位

MOV@R1,A将A中的数暂时存放在R1数值的内存中

DJNZR3,JJJJ接收满8位换一个内存

INCR1对R1中的值加1,换下一个RAM

DJNZR2,PP接收完8位数据码和8位数据反码,存放在1AH/1BH中

MOVA,1AH

CPLA对1AH取反后和1BH比较

CJNEA,1BH,EXIT如果不等表示接收数据发生错误,放弃

CALLdisplay

CLRP3.3蜂鸣器鸣响-嘀嘀嘀-的声音,表示解码成功

LCALLYS2

LCALLYS2

LCALLYS2

SETBP3.3蜂鸣器停止

EXIT:

SETBEA允许中断

RETI退出解码子程序

display:

mova,1ah按键扫描

cjnea,#11h,ds1

mov1ch,#1

jmpquit

ds1:

cjnea,#12h,ds2

mov1ch,#2

jmpquit

ds2:

cjnea,#13h,ds3

mov1ch,#3

jmpquit

ds3:

cjnea,#14h,ds4

mov1ch,#4

jmpquit

ds4:

cjnea,#15h,ds5

mov1ch,#5

jmpquit

ds5:

cjnea,#16h,ds6

mov1ch,#6

jmpquit

ds6:

cjnea,#17h,ds7

mov1ch,#7

jmpquit

ds7:

cjnea,#18h,ds8

mov1ch,#8

jmpquit

ds8:

cjnea,#19h,ds9

mov1ch,#9

jmpquit

ds9:

cjnea,#10h,quit

mov1ch,#0

……

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2