51单片机 红外通信 while (!Ir_Pin && (TH0&0x80)==0)怎么理解?

51单片机 红外通信 while (!Ir_Pin && (TH0&0x80)==0)怎么理解?,第1张

定时器T0应该工作在模式1,16位定时器,戚裂也就是说,

while (!Ir_Pin &&(TH0&0x80)==0)有两种情况会跳出循高冲闭环:

1.在指定时间内Ir变高,这个指定时间指在TH0,TL0 <0x7FFF次定时内。

2.当已经经历了TH0,TL0 >0x8000次定时后,Ir仍然为低,也跳出循环。

所以说这个程序在已知Ir低电平经历的时间满足<TH0,TL0 (0x7FFF)时,可以获取低电判肢平的时间。T = TH0 * 256 + TL0

大气对红外线辐射的吸收,主要是由大气中的水蒸汽团早、二氧化碳和高层大气中的臭氧分子造成的。这些大气分子的强烈吸收使大气对红外线辐射的大部分区域是不透明的,只有在某些特定的波长区,红外线辐射才能透过。这些特定的波长区称为红外线辐射的“大气窗口”,它们几乎都集中在25μm以下的近红外和中红外区域,即1.15~1.35,1.45~1.8,1.9~2.5,3.05~4.1,4.5~5.5,7.9~13.2、17~28μm。另外,在波长为300、600μm附近区域,大气也呈现出某些透过特性。

散射是大气对红外线辐射的另一种重要作用。散射有两种不同的类型,即瑞利散射和弥散射。瑞利散射是由大气分子引起的,它对红外线辐射的影响并不特别重要,对于波长大于lμm的辐射的影响常可被忽略。弥散射是由大气中的悬浮粒子如雨、雪、雾、云、灰尘和烟的微粒造成的,这对红外线传输过程中的衰减有重要作用。

红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。发送端将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射红外信号。接收端将接收到的光脉转换成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)乱或培两种方法。

简而言之,红外通信的实质就是对二进制数字信号进行调制与解调,以便利用红外信道进行传输;红外通信接口就是针对红外信道的调制解调器。

红外线通信可用于沿海岛屿间的辅助通信,室内通信,近距离遥控,飞机内广播和航天飞机内宇航员间的通信等。

特点

红外线具有容量大,保密性强,抗电磁干扰性能好,设备结构简单、体积小、重量轻、价格低;但在大气信道中传输时易受气候影响的特点。红外线波长范围为0.70μm~lmm,其中300μm~lmm区域的波也称为亚毫米波。大气对红外线辐射传输的影响主要是吸收和散射。

红外线通信系统

红外线通信系统一般由红外线发射系统和接收系统组成。对于客机内的红外线通信系统,采用低功率的近红外线(波长为0.72~1.5μm)传送信号,对人体健康尤其对人的眼睛无任何伤害作用,也不会干扰飞机与陆地之间的无线电通信。其工作过程是:音频信号先被转换成数字信号,再调制在红外线上,通过特制的红外线发射器,使载有音频信号的红外线充满机舱内的每一个角落。每个座位上备有的一副“耳机”,实际上是一只红外线接收机,它能将红外线信号变为电信号,再进而还原成声音;用电池工作,不需要任何外哗唯部连线。旅客只要载上这副“耳机”,开启电源,拨动相应的选择开关,就可收听到各种不同的节目。

技术标准

红外线通讯技术包含下列规格:IrPHY、IrLAP、IrLMP、IrCOMM、TinyTP、IrOBEX、IrLAN以及IrSimple。

IrDA1.0标准简称SIR(SerialInfrared,串行红外协议),它是基于HP-SIR开发出来的一种异步的、半双工的红外通信方式,它以系统的异步通信收发器(UniversalAsynchronousReceiver/Transmitter,UART))依托,通过对串行数据脉冲的波形压缩和对所接收的光信号电脉冲的波形扩展这一编解码过程(3/16EnDec)实现红外数据传输。SIR的最高数据速率只有115.2kbps。在1996年,发布了IrDA1.1协议,简称FIR(FastInfrared,快速红外协议),采用4PPM(PulsePositionModulation,脉冲相位调制)编译码机制,最高数据传输速率可达到4Mbps,同时在低速时保留1.0标准的规定。之后,IrDA又推出了最高通信速率在16Mbps的VFIR(VeryFastInfrared)技术,并将其作为补充纳入IrDA1.1标准之中。

IrDA标准都包括三个基本的规范和协议:红外物理层连接规范IrPHY(InfraredPhysicalLayerLinkSpecification)、红外连接访问协议IrLAP(InfraredLinkAccessProtoco1)和红外连接管理协议IrLMP(InfraredLinkManagementProtoco1)。IrPHY规范制订了红外通信硬件设计上的目标和要求;IrLAP和IrLMP为两个软件层,负责对连接进行设置、管理和维护。在IrLAP和IrLMP基础上,针对一些特定的红外通信应用领域,IrDA还陆续发布了一些更高级别的红外协议,如TinyTP、IrOBEX、IrCOMM、IrLAN、IrTran-P和IrBus等等。

IrPHY:是指红外线通信的最低层,物理层。其中重要的规格如下:

距离(标准:1米,低功率传输至低功率:0.2米,标准至低功率:0.3米)

角度(最小圆锥状+-15°)

速度(2.4千位元/秒至16百万位元/秒)

调变(基频带,无载波)

红外线过滤视窗

红外线通信收发器借由一束圆锥状光束范围内的红外线脉波传输,其圆锥状光束自中心算起最小有15度的范围。

红外线通信物理层规范需要至少在一米外还能辨识的光信号的最小光量。

同时,规范中也定义两通讯装置接近时不会过量的最大光量。

在实用阶段,市场上有些装置没有做到一米的传输距离。

同时也有些装置没有预留非常接近时的容忍值。

红外线通信的典型甜区为距离收发器5厘米至60厘米范围之中,在圆锥状光束的中心点处。

红外线通信的资料通讯作动在半双工模式,这是因为装置在发射时会被自己的接收器接收到,因此全双工变得不可行。

两装置间借由快速切换连接便可模拟全双工。

主要装置端控制着连接的时序,但双边可依照实际情况将传输速度切换至最高。

传输速率落在三大分类:SIR、MIR以及FIR。

SIR的速度范围包含了RS-232的速度定义(9600位元/秒,19.2千位元/秒,38.4千位元/秒,57.6千位元/秒,115.2千位元/秒)

装置最常见的传输速率为9600位元/秒,因此此一传输速率为所有在discovery状态与negotiation状态的速率。

MIR(中速率红外线)不是官方名词,有时用来表示0.576百万位元/秒至1.152百万位元/秒的速率范围。

FIR为IrDA物理层标准陈废的名词,虽然如此这个名词却也常用在表示4百万位元/秒速率。

FIR有时也用来表示所有大于SIR标定速率以上的速率。

然而,MIR与FIR使用不同的编码方式,与不同的封包架构。

因此,这两个非官方用词分别了两种不同的物理层实作方式。

未来有更快的传输速率(目前有VFIR),可支援到16百万位元/秒。

有VFIR的商品可用例如TFDU8108可 *** 作在9.6千位元/秒至16百万位元/秒。

UFIR协定正在发展中。此一协定将可支援100百万位元/秒。

红外线遥控器解码程序

2007-02-07 18:52 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。现在工业设备中,也已经广泛在使用。。。。。

1 红外遥控系统

通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制 *** 作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。

2 遥控发射器及其编码

遥控发射器专用芯片很多,根据编码格式可以分成脉冲宽度调制和脉冲相位调制两大类,这里我们以运用比较广泛,解码比较容易的脉冲宽度调制来加以说明,现以3310组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以搏脊下特征:

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

上述“0”和“1”组成的42位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,

3310产生的遥控编码是连续的42位二进制码组,其中前26位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位为8位的 *** 作码和8位的 *** 作反码用于核对数据是否接收准确。

当遥控器上任意一个按键按下超过36ms时,LC7461芯片的振荡器使芯片激活,将发射一个特定的同步码头,对于接收端而言就是一个9ms的低电平,和一个4.5ms的高电平,这个同步码头可以使程序知道从这个同步码头以后可以开始接收数据。

解码的关键是如何识别“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的结果码完成后才能读码。

接收器及解码

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

下面是一个对51ISP编程实验开发板配套的红外线遥控器的解码程序,它可以把红外遥控器每一个按键的键值读出来,并且通过实验板上P1口的8个基旁渗LED显示出来,在解码成功的同时并且能发出“嘀嘀嘀”的提示音。

ORG 0000H

AJMP MAIN转入主程序

ORG 0003H 外部中断P3.2脚INT0入口地址

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

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

MAIN:SETB EA 打开CPU总中断请求

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

SETB EX0 打开INT0中断请求

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

MOV P2,#11111111B

AJMP $

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

INT: CLR EA 暂时关闭CPU的所有中断请求

MOV R6,#10

SB: ACALL YS1调用882微秒延时子程序

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

DJNZ R6, SB重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序

以上完成对遥控信号的9000微秒的初始低电平信号的识别。

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

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

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

JJJJA:JNB P3.2,$等待地址码第一位的高电平信号

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

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

JNC UUUA如果为0就跳转到UUUA

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

UUUA: DJNZ R7,JJJJA

MOV R1,#1AH 设定1AH为起始RAM区

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

PP: MOV R3,#8每组数据为8位

JJJJ: JNB P3.2,$等待地址码第一位的高电平信号

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

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

JNC UUU如果为0就跳转到UUU

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

UUU: MOV A,@R1将R1中地址的给A

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

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

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

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

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

MOV A,1AH

CPL A对1AH取反后和1BH比较

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

MOV P1,1AH将按键的键值通过P1口的8个LED显示出来!

CLR P2.0蜂鸣器鸣响-嘀嘀嘀-的声音,表示解码成功

LCALL YS2

LCALL YS2

LCALL YS2

SETB P2.0蜂鸣器停止(使用时可以将J2的YINYUE脚用跳线接J4 的XS1脚才可以使用蜂鸣器)可以看原理图

EXIT: SETB EA 允许中断

RETI 退出解码子程序

YS1: MOV R4,#20 延时子程序1,精确延时882微秒

D1: MOV R5,#20

DJNZ R5,$

DJNZ R4,D1

RET

YS2: MOV R4,#10 延时子程序2,精确延时4740微秒

D2: MOV R5,#235

DJNZ R5,$

DJNZ R4,D2

RET

YS3: MOV R4,#2延时程序3,精确延时1000微秒

D3:MOV R5,#248

DJNZ R5,$

DJNZ R4,D3

RET

END

以上程序紧供参考。

0A01

11 12 13 14

15 16 17 18

19 10 1A 1B

0E 02 03 1C

06 04 05 0C

0D 08 09 1D

00 1F 1E 0B

070F

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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12412154.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存