当前位置:首页 > 基于单片机的红外遥控密码锁 - 图文
3.1.1 红外发送系统原理
红外遥控信号是一连串的二进制脉冲码。为了使其在无线传输过程中免受其他红外信号的干扰,通常都是先将其调制在特定的载波频率上,然后再经红外发光二极管发射出去,红外线接收装置则会滤除其它杂波只接收该特定频率的信号并将其还原成二进制脉冲码。在本红外遥控系统中,红外信号的载波频率为38KHz。
通常,红外遥控系统中所采用的编码方式有两种:通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)。本系统是采用PPM方法,即用两个脉冲之间的时间间隔来表示二进制信息。
为了确保发送端和接收端之间数据传输的准确无误,红外线信号还要按照特定的传输协议来进行信号传输。常用的红外线信号传输协议有NEC协议、RC-5协议、RC-6协议、Sharp协议等。
3.1.2 NEC编码格式介绍
本系统使用的型号为HZ-FT007的20键车载MP3红外遥控器和创维RC-585型DVD遥控器请参看附录C中的实物图,它们主要芯片都是NEC编码格式的红外遥控芯片。NEC编码广泛应用于电视机,DVD,PC电脑,音响等,是比较常用的一种红外编码格式。
下面以NEC编码标准的红外编码芯片uPD6122G作为例子介绍。NEC遥控编码是连续的32位二进制码组,其中的前十六位是用户码,后16位为8位的数据码及其反码。在每次编码之前还会发送9ms高电平和4.5ms低电平组成的引导码(或称起始码)。而且第二段的用户码也可以在遥控应用电路中被设置为第一段用户码的反码。它的帧结构如图4所示。
图4 uPD6122G编码格式
NEC编码标准是以用不同脉冲的时间间隔来区分‘0’和‘1’的,uPD6122G以脉宽为0.56ms、间隔0.565ms、周期为1.125ms的组合表示二进制的‘0’;以脉宽为0.56ms、间隔1.69ms,周期为2.25ms的组合表示二进制的‘1’。其波形如图5所示。
3
图5 uPD6122G‘0’和‘1’波形图
使用455KHz晶振时各代码所占的时间如图6所示:
图6 使用455KHz晶振时各代码所占的时间
uPD6122G按键输出有两种方式:一种是每次按键都输出完整的一帧数据;另一种是按下按键不松开时,发送完整的一帧数据后再发送重复码,直到按键被松开。其波形如图7所示。
图7 重复码的波形图
3.2 接收解码模块 3.2.1 接收解码原理
接收解码的关键是如何识别‘0’和‘1’,本系统使用的是一体化红外接收头进行红外信号接收,在没有信号的时候其输出端是高电平,而有信号的时候是低电平,所以其
4
输出信号电平正好和遥控发射端相反。从上面的讨论可以发现在遥控发射端‘0’和‘1’均以0.56ms的高电平开始,不同的是低电平的宽度,‘0’为0.565ms,‘1’为1.69ms,所以必须根据低电平的宽度区别‘0’和‘1’。本系统用中断的方式实现从接收头到MCU的信号传输。如图9所示,红外接收头的输出端连接到单片机的INT0脚。接收头输出端有低电平信号输出时引起单片机的中断。单片机响应中断并进行信号的接收解码。解码后的信号就变成相应的遥控器按键代码,从而可以成为密码锁的密码。
MCU INT0 接收头 SM0038
图9 中断接收示意图
3.2.2 接收解码模块的硬件电路
接收解码电路由一体化红外接收头SM0038和单片机STC89C51RC组成。 STC系列单片机具有在系统中直接可编程特性,其好处是:省去购买通用编程器,单片机在用户系统上即可下载/烧录用户程序,而无须将单片机从已生产好的产品上拆下,再用通用编程器将程序代码烧录进单片机内部。有些程序尚未定型的产品可以一边生产,一边完善,加快了产品进入市场的速度,减小了新产品由于软件缺陷带来的风险。由于可以在用户的目标系统上将程序直接下载进单片机看运行结果对错,故无须仿真器,因此选择使用这款单片机。
一体化红外接收头SM0038是集信号放大、滤波、检波、整形于一体的红外接收器,电路内置PIN二极管和前置放大器,采用可以红外滤波的环氧树脂材料封装,可靠性高,不易受环境影响并可以防止非控制信号的输出脉冲出现。它的内部电路如图10所示。
5
图10 SM0038内部结构图
SM0038内置带通滤波器、积分器、和自动增益控制电路以抑制各种干扰和噪音。数据信号和干扰信号的主要区别在于载波频率、脉冲波长和工作周期上。所以数据信号应该满足以下的要求。而本系统选用的SM0038在这三方面和NEC编码格式是相配的。
● 载波信号的频率尽量接近带通滤波器的中心频率(38KHz)。 ● 脉冲长度在300us以上。 ● 数据的编码类型相兼容。 3.4 液晶显示模块
系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行×16个字符,具有8位数据总线D0-D7,和RS、R/W、E三个控制端口,工作电压为5V,并且带有字符对比度调节和背光设置。LCD1602与单片机的连接电路图参考附录A。 其管脚功能简介如下:
VL:LCD对比度调节端,电压调节范围为0-5V。接正电源时对比度最弱,接地电源时对比度最高,可以用一个10K的电位器来调整对比度;
RS:数据或者指令选择端。处理器写入指令时,RS为低电平,写入数据时,RS为高电平;
R/W:读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据; E:LCD模块使能信号控制端。写数据时,需要下降沿触发模块; D0-D7:8位数据总线,三态双向;
BLA: LED背光正极。需要背光时,BLA串接一个限流电阻接VCC; BLK: LED背光负极。
6
共分享92篇相关文档