文档库 最新最全的文档下载
当前位置:文档库 › 红外遥控电子密码锁设计

红外遥控电子密码锁设计

红外遥控电子密码锁设计
红外遥控电子密码锁设计

红外遥控电子密码锁设计

红外遥控电子密码锁设计

目录

1绪论 (1)

1.1引言 (1)

1.2红外通信基本原理 (1)

2 设计框图 (3)

2.1发射端 (3)

2.2接收端 (3)

3功能实现 (3)

4法案选择和论证 (4)

4.1红外发射部分 (4)

4.2红外接收部分 (4)

4.3液晶显示部分 (6)

4.4键盘输入部分 (8)

4.5稳压电源部分 (8)

4.6总体设计图 (9)

............................................................................. 4.6.1发射端 ............................................................................. 4.6.2接收端

5软件设计 (10)

5.1键盘扫描部分 (10)

5.2红外发送数据部分 (11)

5.3红外接收部分 (12)

5.4验证密码 (14)

5.5修改密码 (19)

6系统调试 (22)

6.1调试仪器 (22)

6.2整体调试 (22)

6.3硬件单元调试 (22)

6.3.1编码键盘的调试 (22)

6.3.2发送端部分的调试 (22)

6.4软件调试 (23)

7 结论 (23)

致谢 (24)

参考文献 (25)

附录 (28)

1 绪论

1.1 引言

锁是置于可启闭的器物上,用以关住某个确定的空间范围或某种器具的,必须以钥匙或暗码打开的扣件。锁具发展到现在已有一百多年的历史了,人们对它的结构、机理也研究得很透彻,因此,不用钥匙就能打开的方法和工具也层出不穷。现代人类文明社会里,由于社会中各种矛盾冲突十分剧烈,人们的思想道德观念,价值观念,文化修养水平等差异,群众中良莠不齐,善良的人们能够自觉规范自已的行为,“非礼不为”,虽无钥匙亦不会乱闯。然而,那些毫无道德观念的盗贼却想方设法利用高科技手段撬门开锁,使广大居民防不胜防。

为什么会出现这种情况呢?因为传统锁具都存在致命的弱点:

第一、锁芯采用常见的铜、铝、锌等材料,抵抗不了强力破坏;

第二、锁具制作工艺,技术落后,无法阻止技术手段的开启。

目前,市场上很多国内外的锁具,实际上都不具备真正的防盗功能。在惯偷面前,两根钢丝或几件简单的工具就可以把这些锁打开,有的惯偷甚至公开扬言:“没有我打不开的锁。”其实,不是他们多高明,而是一般锁具技术原理太过简单。面对这一残酷的现状,新时代提出了锁具必须革命的迫切的要求。

随着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。(如指纹、眼底视网膜等)来控制锁的开启。从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。

本设计就是其中的一种,红外遥控电子密码锁。本设计是利用红外传输为途径,方便远距离开锁,不用像传统锁那样一定要将钥匙插进锁里才能开启;该设计具有使用方便、操作简单、价格低廉等特点,特别适用于那些正常人体不宜接近的特殊场合,比如高辐射区、高传染区等。

1.2 红外通信基本原理

红外遥控是单工的红外通信方式,本设计的红外遥控采用以通信方式为基础的红外遥控,而且本设计也使用了红外通信技术,故着重分析红外通信的基本原理

红外通信是利用红外技术实现两点间的近距离保密通信和信息转发。它一般由红外发射和接收系统两部分组成。发射系统对一个红外辐射源进行调制后发射红外信号,而接收系统用光学装置和红外探测器进行接收,就构成红外通信系统。

红外线是波长在750nm至1mm之间的电磁波,它的频率高于微波而低于可见光,是一种人的眼睛看不到的光线。红外通信一般采用红外波段内的近红外线,波长在0.75um至25um之间。红外数据协会(IrDA)成立后,为了保证不同厂商的红外产品能够获得最佳的通信效果,红外通信协议将红外数据通信所采用的光波波长的范围限定在850至900nm之内。

红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号(载波信号),通过红外发射管发射红外信号。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。脉时调制(PPM)是红外数据协会(IrDA)和国际电子电工委员会(IEEE)都推荐的调制方式,本设计采用脉时调制方法,即用两个脉冲串之间的时间间隔来表示二进制信息,数据比特的传送仿照不带奇偶校验的RS232通信,首先产生一个同步头,然后接着8位数据比特,如图1-1所示。

图1-1

载波信号的频率 f=38KHz,载波周期T=26.32us,本设计使用单片机软件产生载波,取T=26us,脉冲宽度t1=10T=260us。

2 设计框图

2.1发射端

图2-1

2.2接收端

图2-2

3 功能实现

●在发射端部分按下按键,编码键盘扫描得到相应数据,并发送到接收端,有

效距离为>5M。

●当接收端处于待机状态时候,发射端按下start/restart按键,则进入密码验

证部分,发送端输入密码。若输入的密码符合预设的密码,则液晶显示相应提示,并且LED以300ms的频率闪烁3秒,蜂鸣器鸣叫3秒。若密码错误,则液晶显示相应提示。

●当接收端处于待机状态时候,发射端按下changepassword按键,则进入密

码修改部分。在此可以修改预设的密码。

4 方案选择和论证

4.1红外发射部分

方案一:专用芯片解决方案。

专用红外编码芯片种类很多,如日本三菱公司的M50426AP、PT2262、BL9148、ZD6631等,此类芯片一般集载波振荡、编码、发射于一体,具有很强的抗干扰能力,外围电路简单,使用很方便,而且价格也很低。通用的遥控器上大多使用此类专用芯片。

但是,专用芯片也有致命的弱点:专用芯片的应用灵活性很差,其内部编码已经固定,无法修改内部数据,不适用于经常需要改动传送数据的场合;专用芯片几乎都是面向指令型的编码遥控方式,传输效率较低;大多数的专用芯片的内部编码及技术数据已经公诸于世,会产生安全漏洞。

方案二:微处理器单独解决方案。

该方案使用微处理器的I/O口直接产生38KHz已调波,驱动红外发光二极管,发射红外数据。38KHz方波由CPU的定时器产生或由软件编程产生。

红外编码工作由软件完成,因此,红外编码方案可以任意设计,外部只需配接非常简单的硬件电路,大大降低了了电路的复杂性,有利于降低成本,减小遥控器的体积。

由于使用软件编码方案,占用了CPU的一定的时间,CPU处理速度受到一定的影响,但是,对于遥控器这一类功能比较单一的系统来说,处理任务比较少,根本影响不了CPU的处理效率,仅仅是增加了软件编程的负担。

经比较,方案二既可满足题目要求,电路又非常简单,硬件成本又很低,仅仅是增加了软件的编程负担,使得红外编码非常灵活,所以采用该方案。

图4-1

4.2红外接受部分

方案一:分立元件解决方案,电路如图4-2所示。

图中RD1为红外接收管;R3、R4,VT1构成反相放大器;VT2、R5、C2构成滤波器,滤掉38KHz的高频载波;R6、R7、VT3构成整形电路,

将滤波后的波形处理为较好的方波;C1、C3为耦合电容;R2为限流电阻,当接收到较强的信号是保护VT1。

该方案最大的优点是供电电压比较低,可用两节电池3V电压供电。

但是,由于电路使用分立元件构成,其稳定性和抗干扰能力不高,影响红外数据传输的准确性。

图4-2

方案二:集成电路解决方案,电路如图4-3所示。

该方案使用一体化红外接收器,集红外接收和

放大于一体,不需任何外接元件,就能完成从红外

接收到输出与TTL电平兼容的所有工作,而体积和

普通的塑封三极管大小一样。

MK0038芯片介绍:

MK0038的管脚分布如图4-4所示,2脚、3脚分

图4-3

别为地电源和地,1脚是解调信号输出,其电平与TTL兼容。MK0038系列特性如下:

频率范围:32.75KHz、36.7 KHz、38 KHz、40 KHz

电源电压范围:4.7V~5.3V

工作电流:3 mA

最大遥控距离:>8 m

工作温度:-10~+60 ℃

MK0038是黑色环氧聚光透镜,滤除了可见光的干扰。

内含红外线PIN接收管、选频放大器和解调器。

当红外线发射器发出的信号经空间传送到MK0038时,它内

部的PIN红外

图4-4

线接收管将红外线转换为电信号,该信号经选频放大、解调后由1脚输出与TTL电平兼容的电信号,该信号可以直接送入微处理器进行处理。

MK0038的输出波形如图4-5所示。当接收到频带内的红外信号时,MK0038接收器会输出低电平,否则数据高电平,从而“将时断时续”的红外信号解调成原来的连续方波信号。

图4-5

MK0038的优点是稳定性好,抗干扰能力很强,外围电路非常简洁,成本又不高,适用于各种红外遥控和红外数据传输,是替代其它红外接收放大器的理想元件。唯一的缺点是电源供电需5V左右,无法用就两节电池供电。

经比较,方案二既可满足题目要求,电路又非常简单,硬件成本又很低,通过软件编程,使得红外编码非常灵活,所以采用该方案。

4.3液晶显示部分

1602LCD显示介绍:现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。1602型LCD可以显示2行16个字符,有8位数据总线DB0-DB7和RS,R/W,E三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。

接口信号说明

1602型LCD的接口信号说明如表4-1所示。

表4-1 1602型LCD的接口信号说明

编号符号引脚说明编号符号引脚说明

1 Vss 电源地9 DB

2 Data I/O

主要技术参数

1602型LCD的主要技术参数如表4-2所示。

表4-2 1602型LCD的主要技术参数

基本操作程序

读状态:输入:RS=L,RW=L,E=H 输出:DB0-DB7=状态字

读数据:输入:RS=H,RW=H,E=H 输出:无

写指令:输入:RS=L,RW=L,DB0-DB7=指令码,E=高脉冲

输出:DB0-DB7=数据

写数据:输入:RS=H,RW=L,DB0-DB7=数据, E=高脉冲输出:无

完成的功能及其接线图

本系统中只有按下键盘上的开启按键后,显示器才处于开启状态。同理只有按下关闭按键后显示器才处于关闭状态。否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话, LCD子显示“RIGHT”,通过LCD显示屏,可以清楚的判断出接收端的状态。

4.4 键盘输入部分

由于本设计所用到的按键数量较多而不适合用独立按键式键盘。因此,采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置。其大体功能(看键盘按键上的标记)及与单片机引脚接法如图4-6所示。

1

4

7

A

2

5

8

B

3

6

9

C

R1

10k

R2

10k

R3

10k

R4

10k

图4-6 键盘输入原理图

4.5稳压电源模块

由于单片机、HS0038等元件都需要5V电压的供电,故无法仅使用2块干电池进行供电,于是便设计了使用稳压电源的稳压模块。使用5V稳压芯片7805,使整个系统的供电为5V电压,确保了电压的稳定。原理图如图4-7:

图4-7

4.6总体设计图

4.6.1发射端:

图4-8 4.6.2接收端:

图4-9

5软件设计

5.1键盘扫描部分键盘扫描部分如图5-1

原本应该是4x4的

矩阵,而在本设计中,

只使用了十二个键盘,

故使用了4X3的键盘

矩阵。

工作原理分析:

行线P2.1~P2.3是输

入线,单片机通过其电平的

高低来判断按键是否被按

下,具体步骤如下所示:

(1):判断键盘上

有无按键按下。其方法是

P2.7~P2.4列电平全输出

为“0”电平,读行线

P2.1~P2.3电平状态,若行

电平全为“1”,则键盘无

按键按下,若不全为“0”,

则有按键按下。

(2):去键抖动的影响。

方法是:在判断有按键按下

之后,软件延时一段时间,

再判断键盘状态,如果仍未

有按键按下状态,则认为有

一个确定的按键被按下,否

则是按键抖动,进行按键抖

动处理。

(3):扫描键盘,得到按

下按键的键号。按照行列式

键盘的工作原理,键值=行

号X4+列号。

图5-1

5.2红外发送数据

本设计的数据发送流程图如图5-2所示。

本设计的协议如下:

先发送两个字符’S’,然后发送从键盘扫描得到的所计算的数字,最后发送之前所有发送数据的累加和sum 。即一帧数据发送完毕。

若键盘得到的数据是数字11,即意味着确认键,则将累加和sum 清零。该步骤是在键盘扫描部分执行。

在发送一帧数据

时,应该先打开产生

38K频率波形的定时

器T0的开始寄存器

TR0。此时38K频率的

载波形成。

在一帧数据发送完毕

之后,应该关闭定时

器T0的开始寄存器

TR0,并拉高P1.0,

使得红外发射管处于

关闭状态。

图5-2

代码体现

Void Send_Password (unsigned

key_value_temple ) {

SBUF='S'; while(!TI); TI=0; SBUF='S';

while(!TI); TI=0;

SBUF=key_value_te mple; while(!TI);

TI=0; SBUF=sum; while(!TI); TI=0; if

(key_value_temple==11) sum=0; WA VE=1; }

5.3红外接收部分

NO

YES

图5-3

数据接收部分的流程图如图5-3所示。

这是本设计中最为复杂的一个部分。因为此处为协议的体现之处。发射端只需要发射数据即可,而接收端则需要判断接收到的数据是否正确并对接收到的数据进行判断。具体执行步骤如下:

首先根据之前自己制定的协议,在得到发送端所发来的数据之前,必须要连续获得’S’的字符。这是因为虽然在接受端使用了HS0038这样具有消除干扰的红外接受原件,只接受38K频率的方波,但是环境中依然存在38K频率方波的干扰,在设计过程中,我发现台灯、日光灯乃至太阳光中都含有该频率波形,所以依然会有所干扰,接受端可能会接受错误数据。而经过制定的协议,基本就可以将环境中的干扰排除掉。若首先接受到的连续两个字符并不是’S’,则返回到循环的初始端。

当接受到连续两个’S’的字符后,发射端则认为即将有正确的数据发送过来。则下一位数据被认作为发送端所扫描键盘得到的键盘值。但这依然可能受到环境中的光所干扰。故在一帧数据的最后设置校验和。该校验和为发送端所发送的所有一轮数据的累加和sum。而在接收端也计算得出所接收到的一轮数据的累加和sum。若接收到的发送端发送过来的sum与接收端所计算出来的sum不相等,则认为接收到错误数据,将其丢弃,重新回到循环的开始,进行一帧数据的接收。

若接收到的数据为’11’,即表示数据输入完成,则在发送端和接收端两端都将累加和sum清零。

代码体现:

void receive_data(void) { for(;;)

{while (!RI);

R I=0;

i f (SBUF=='S');

e lse continue;

while (!RI);

R I=0;

i f (SBUF=='S');

e lse continue;

w hile (!RI);

R I=0;

key_value_temple=SBUF; w hile (!RI);

R I=0;

s um+=key_value_temple;

i f (sum==SBUF) key_value=ke y_value_temp le;

e lse{ sum -=key_value_t emple;continu e ; }

if

(key_value ==11)

sum=0;

break;

}

}

相关文档