手把手教你红外解码

手把手教你红外解码
手把手教你红外解码

| 首 页 | 热销产品 | 单片机轻松入门 | 下载中心 | 技术文章 | Protel专区 | 电子制作 | 购物指南 | 淘宝 您现在位于:电子驿站 → 单片机轻松入门

手把手手把手教教你学单片机

手把手手把手教教你红外遥控解控解码实验码实验

单片机轻松入门教学 ------- 『电子驿站』原创,转载请注明出处!

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

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

【红外遥控系控系统统】

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

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

【遥控发射器及其射器及其编码编码编码】】

遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以本NEC的uPD6121G组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同

码具有以下特征:

图1a

图1b

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

1.685ms、周期为

2.25ms的组合表示二进制的“1”,其波形如图2所示。

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

发射二极管产生红外线向空间发射,如图3所示,连发波形如图4所示。

UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同 当遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二

“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。

当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms)(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms

键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成

代码格式格式((以接收代以接收代码为码为码为准准,接收代接收代码码与发射代射代码码反向反向) )

① 位定位定义义

② 单发单发代代码格式

格式

③ 连发连发代代码格式

格式

注:代码宽码宽度算法度算法度算法::

1616位地址位地址位地址码码的最短的最短宽宽度:1.121.12××16=18ms 1616=18ms 16位地址位地址位地址码码的最的最长宽长宽长宽度度:2.24ms 2.24ms××16=36ms

已知已知88位数据代据代码码及其及其88位反代位反代码码的宽度和不度和不变变:(:(1.12ms+2.24ms 1.12ms+2.24ms 1.12ms+2.24ms))×8=27ms

∴ 3232位代位代位代码码的宽度为(18ms+27ms 18ms+27ms))~(~(36ms+27ms) 36ms+27ms)

1. 解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过

果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均

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

【红外遥控解控解码实验码实验码实验硬件硬件硬件】】

一体化红外线接收器是一种集红外线接收和放大整形于一体,不需要任何外接元件,就能完成从红外线接收到输出兼容的所有工作,而体积又很小巧,它适合于各种红外线遥控和红外线数据传输,广泛用于电视机、卫星接收机、VCD、调等家用电器中接收红外信号,图5是一体化接收头的引脚排列图,图6是本站产品配套的采用屏蔽线焊接的一体化红外接蔽线焊接,抗干扰能力强,接收更可靠。没有购买实验板配套的一体化红外接收头的网友可以根据图2所示接收头引脚排列

一个。

图5:一体化红外接收头 图6:本站产品配套一体化红外接收头(已经用屏

下面就是我们将要进行红外遥控解码实验所要用到的硬件设备:S51增强型实验板、ISP编程器、AT89S51实验芯片、

红外线遥控器。

(引脚排列图) 线焊接好,抗干扰能力强,插入实验板即可使用

图7:S51增强型单片机实验板及防插反红外遥控接口

图8:豪华型多功能红外遥控器 + 高灵敏度一体化红外接收头(23元)

【红外遥控解控解码实验码实验码实验】】

我们经过对前面的遥控编解码知识的学习,对红外遥控有了基本的了解,下面我们马上进行解码实验。本红外遥控解能是:程序对遥控器发射的遥控码进行解码,解码成功时蜂鸣器发出"嘀嘀"的解码成功提示音,如果按键"0~9"就将按键值在实验板上的5位数码管上显示出按键值,同时将按键的十六进制值用P1口的8位发示出来;如果按压的不是数字键"0~9",就直接从P1口输出键值;下面是遥控解码汇编源程序

实验时将先连接好硬件设备,将配套的一体化红外遥控接收头插入实验板上的"红外遥控"接口内,在Keil单片机集成图9:32键豪华型红外遥控器原理图

图1010::ISP编程器烧写实验单片机芯片AT89S51

建工程,通过Keil将源程序编译得到HEX格式目标文件yk.hex,最后使用ISP编程器将目标文件烧写到AT89S51单片机中,实验板上运行,拿出配套的红外遥控器进行解码测试,看看实验结果是否和程序相同。。。

>>>点此下载HEX格式目标文件 yk.hex>>>

>>> 点此下载遥控解码源程序和Keil工程文件 >>>

ORG 0000H

MAIN: MOV SP,#60H

MOV P0,#0FFH

MOV P1,#0FFH

MOV P2,#0FFH

MOV P3,#0FFH

JNB P3.2,$ ;等待遥控信号出现

MOV R6,#10

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

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

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

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

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

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

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

MOV R2,#4

PP: MOV R3,#8

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

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

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

JNC UUU ;如果为0就跳转到UUU

JB P3.2,$ ;如果为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 ;接收完16位地址码和8位数据码和8位数据反码,存放在1AH/1BH/1CH/1DH的

;以下对代码是否正确和定义进行识别

MOV A,1AH ;比较高8位地址码

XRL A,#00000000B ;判断1AH的值是否等于00000000,相等的话A为0

JNZ MAIN ;如果不相等说明解码失败退出解码程序

MOV A,1BH ;比较低8位地址

XRL A,#11111111B ;再判断高8位地址是否正确

JNZ MAIN ;如果不相等说明解码失败退出解码程序

MOV A,1CH ;比较数据码和数据反码是否正确?

CPL A

XRL A,1DH ;将1CH的值取反后和1DH比较 不同则无效丢弃,核对数据是否准确

JNZ MAIN ;如果不相等说明解码失败退出解码程序

LCALL SOUND ;解码成功,声音提示

MOV A,1AH

CPL A

MOV P1,A ;遥控码十六进制值通过P1口LED显示出来

;-------- 下面为0~9键码判断并在实验板的5位数码管中显示键值 --------

JZPD: MOV A,1AH

IRD0: CJNE A,#00H,IRD1 ;按键"0"判断显示

MOV P0,#0C0H

MOV P2,#11100000B

AJMP MAIN

IRD1: CJNE A,#01H,IRD2 ;按键"1"判断显示

MOV P0,#0F9H

MOV P2,#11100000B

AJMP MAIN

IRD2: CJNE A,#02H,IRD3 ;按键"2"判断显示

MOV P0,#0A4H

MOV P2,#11100000B

AJMP MAIN

IRD3: CJNE A,#03H,IRD4 ;按键"3"判断显示

MOV P0,#0B0H

MOV P2,#11100000B

AJMP MAIN

IRD4: CJNE A,#04H,IRD5 ;按键"4"判断显示

MOV P0,#99H

MOV P2,#11100000B

AJMP MAIN

IRD5: CJNE A,#05H,IRD6 ;按键"5"判断显示

MOV P0,#92H

MOV P2,#11100000B

AJMP MAIN

IRD6: CJNE A,#06H,IRD7 ;按键"6"判断显示

MOV P0,#82H

MOV P2,#11100000B

AJMP MAIN

IRD7: CJNE A,#07H,IRD8 ;按键"7"判断显示

MOV P0,#0F8H

MOV P2,#11100000B

AJMP MAIN

IRD8: CJNE A,#08H,IRD9 ;按键"8"判断显示

MOV P0,#80H

MOV P2,#11100000B

AJMP MAIN

IRD9: CJNE A,#09H,IRDOR ;按键"9"判断显示

MOV P0,#90H

MOV P2,#11100000B

AJMP MAIN

IRDOR: MOV P2,#0FFH ;关闭数码管使能。"0~9"以外的非数字功能按键键值不采用数码管显示,直接从

AJMP MAIN

YS1: MOV R4,#19 ;延时子程序1

D1: MOV R5,#18

DJNZ R5,$

DJNZ R4,D1

RET

YS2: MOV R4,#10 ;延时子程序2

D2: MOV R5,#216

DJNZ R5,$

DJNZ R4,D2

RET

SOUND: MOV R7,#228 ;音效延时子程序

SDL1: CPL P3.7

MOV R6,#0FFH

SDL0: DJNZ R6,SDL0

DJNZ R7,SDL1

RET

把上面程序写入89S51单片机中,通电后,按压遥控器上的0~9按键,则实验板上的数码管上就显示出对应的按键值

功后发出声音指示。。。

首 页 | 网站产品 | 单片机轻松入门 | 下载中心 | 技术文章 | 购物指南 | 淘宝网店 | 关于本站

本站部分软件资料来源于网络,如有涉及版权问题,请及时联系站长删除

451338254 476485321

『电子驿站』版权所有 Copyright (C) 2005-2007 https://www.360docs.net/doc/b118721569.html, All Rights Reserved

基于51单片机的红外遥控器解码设计论文

第1章红外解码系统分析 第1节设计要求 整个控制系统的设计要求:被控设备的控制实时反应,从接收信号到信号处理及对设备控制反映时间应小于1s;整个系统的抗干扰能力强,防止误动作;整个系统的安装、操作简单,维护方便;成本低。 红外载波、编码电路设计要求:单片机定时器精确产生38KHz红外载波;根据控制系统要求能对红外控制指令信号精确编码并迅速发送。 红外解码电路设计要求:精确接收红外信号,并对所接收信号进行解码、放大、整形、解调等处理,最后输出TTL电平信号;对非红外光及边缘红外光抗干扰能力强。 设备扩展模块设计要求:直流控制交流;抗干扰能力强;反应迅速不产生误动作;能承受大电流冲击。 第2节总体设计方案 2.1 方案论证 驱动和开关 方案一:采用晶闸管直接驱动。 其优点是体积小,电路简单,外围元件少。但控制电流小,大电流晶闸管成本高,并且隔离性能差。 方案二:采用三极管驱动继电器。 其体积大,外围元件多。优点是控制电流大,隔离性能好。 根据实际情况,拟采用方案二。 2.2 总体设计框图 经过上述方案的分析选择,得出系统硬件由以下几部分组成:电视红外遥控器,51单片机最小系统,接收放大于一体集成红外接收头,1602液晶显示驱动电路。 整体设计思路为:根据扫描到不同的按键值转至相对应的ROM表读取数据。确认设备及菜单选择键后AT89S2将从ROM读取出来的值,按照数据处理要求从P2.5输出控制脉冲和T0产生的38KHz的载波(周期是26.3μs)进行调制,经NPN三极管对信号放大驱动红外发光管将控制信号发送出去。红外数据接收则是采用HS0038一体化红外接收头,内部集成红外接收、数据采集、解码的功能,只要在接收端INT0检测头信号低电平的到来,就可完成对整个串行的信号进行分析得出当前控制指令的功能。然后根据所得的指令去操作相应的用电器件工作,如图1-1所示。

红外遥控信号的解码

红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 1 红外遥控系统 通用红外遥控系统由发射和接收两大部分组成。应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 图1 红外线遥控系统框图 2 遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理(一般家庭用的DVD、V CD、音响都使用这种编码方式)。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。

图2 遥控码的“0”和“1” (注:所有波形为接收端的与发射相反) 上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3所示。 图3 遥控信号编码波形图 UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。 图4 遥控连发信号波形 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个引导码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据

手把手教你玩刺客凤舞天骄

?把?教你玩刺客凤舞天骄 看了很多朋友写了关于刺客的?章,我也来说?句! 选择刺客我只推荐两种:??刺和??刺! 我觉得刺客刺客当中,?系和?系的技能是?可挑剔的!?系的两个眩晕,?系的落?贯穿整个连招,??呵成! 刺客在战???我认为是全能的,虽然没有战????防,没有法师的?攻,但是我们既可远程亦可近攻!很多玩了?天刺客的朋友都说练级如何如何难,P K如何如何菜.这?我强调?点刺客45级才成形!不论多么艰难请你坚持坚持再坚持,眼光总在风?后! 偶先说说??刺吧,P K?战有点难对付,毕竟克我!胜率60-70%!65+的??战别和他硬来,他?再多,我们克他,游击?下就搞定了!?战和?战还没输过!打?法,别让他近?,如果副?的,被?技能绑定就马上跑开,对攻的话不怕他,他攻击没我们?!打?法,注意他的?球,最好?静?避开!其他法师?等级的没见过! ?于??刺嘛,个?感觉就?等级的??战难打点,好象有种杀不死他的感觉!始终??刺到60以后攻击跟不上了!但是??刺打他又相对简单! 刺客P K刺客,看谁的M I S S多,破招多,前期?刺可能会?直被?刺克,但60以后也不好说,刺客讲的就是操作! 下?我谈谈刺客的练法!4个字:越级杀怪!从新?村出来到?论你玩到什么时候,都是这样!我都是杀?我?7,8级的怪.有地?卡的时候?10多级也杀,M I S S不多经验又?,舒服!(单练)有朋友组当然更好,毕竟游戏讲的是团队合作!55级以前?直都有任务装备,别为了追求视觉效果盲??搞装备,不划算!55以后如果你声望?就穿声望装,不然就收集套装绿材!(最好花1/3的时间在收集材料上,做好?套装备?你多练10级效果都好)条件允许的最好做绿套!我有个朋友穿上55级的?系绿套,会?20%+,再加上他是?刺,攻击可怖啊!59级杀75以下的职业轻松哦! 这?我不会和?家说刺客该去什么什么地?练级最快,如果你?天12个?时都在练级的话,那么你练什么职业都快!有的朋友喜欢泡市场,有的喜欢跑任务,有的喜欢聊天,有的喜欢P K.如果你是其中之?的话就别抱怨??等级低!?较下两种刺客:?刺后期渐渐赶上?刺,?刺60以后攻击可能有点跟不上,但这两种职业我都?常喜欢,?于练哪种看个?喜好了!建议没玩过刺客又想玩刺客的朋友,坚持,坚持,再坚持. 逗游?——中国2亿游戏?户?致选择的”?站式“游戏服务平台

基于单片机的红外解码.温度及液晶显示

中国矿业大学徐海学院 技能考核培训 姓名:顾嘉诚学号: 22110818 专业:信息11-2班 题目:基于单片机的红外解码.温度及液晶显示专题:红外解码 指导教师:宥鹏老师翟晓东老师 设计地点:电工电子实验室 时间: 2014 年 4 月

通信系统综合设计训练任务书 学生姓名顾嘉诚专业年级信息11-2班学号22110818 设计日期:2014年4 月5日至2014 年4 月10 日 同组成员:姜怀修,刘剑桥,顾嘉诚,彭传锁,何子豪,王业飞 设计题目: 基于单片机的红外无线控制 设计专题题目: 红外解码 设计主要内容和要求: 1.主要内容: 2. 单片机内部结构 红外遥控解码 C语言程序设 Ds18b20的使用 Lcd1602的使用 2. 功能扩展要求 环境温度液晶显示 指导教师签字:

目录 正文 (5) 1.概述 (5) 1.1功能描述 (5) 1.2单片机资源 (5) 2.1管脚图 (5) 3.1. 使用资源 (5) 2.原理篇 (6) 2.1红外发送及接收 (6) 2.1.1红外接收概述 (6) 2.1.2硬件及原理图 (7) 2.1.3红外中断接收部分程序 (8) 2.2温度原理 (9) 2.2.1 DS18B20 的主要特性 (9) 2.2.2原理图与硬件 (10) 2.2.3 DS18B20时序和程序 (10) 2.3 QC1602A (12) 2.3.1 1602外部结构及管脚说明 (12) 2.3.2 写命令/数据时序与部分程序 (13) 3.效果图 (15) 4.软件篇 (15) 4.1程序框图 (15) 4.1.1 Main函数 (15) 4.1.2 中断 (16) 4.1.3 60ms定时中断 (16) 4.2 完整程序 (16) 4.2.1 Project.c文件 (16) 4.2.2 onewire.c 文件 (23) 5.参考文献 (26)

最简单详细的红外解码程序

#include //包含头文件名 sbit IRIN=P3^2; //定义红外接收头的外部接口,即外部中断0 sbit BEEP=P1^5; //定义蜂鸣器接口,我的在P1^5 unsigned char IRCOM[7]; //定义数组,用来存储红外接收到的数据 void delay(unsigned char x) { //延时子程序unsigned char i; //延时约x*0.14ms while(x--) //不同遥控器应设置不同的参数

{for(i=0;i<13;i++){}} //参数的选择咱们先不管,先看这个 } void beep() { unsigned char i; //蜂鸣器发声子程序 for(i=0;i<100;i++) { delay(4); //这个得看你的蜂鸣器内部是否有振荡源 BEEP=~BEEP; } //如果没有振荡源就应该输入脉冲信号 BEEP=1; }

void IR_IN() interrupt 0 using 0 //外部中断0程序 { unsigned char j,k,n=0; //先定义变量,记住n=0 EX0=0; //禁止中断,以免再次进入中断 delay(15); //延时0.14ms*15=2.1ms if(IRIN==1) //如果在这期间有高电平说明 { //信号不是来自遥控的,返回主程序 EX0=1; return; } while(!IRIN){delay(1);} //死循环,等待9ms前导低电平信号的结束for(j=0;j<4;j++) //一共有4组数据

红外遥控原理及解码程序

红外遥控系统原理及单片机 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 1 红外遥控系统 通用红外遥控系统由发射和接收两大部分组成。应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 图1 红外线遥控系统框图 2 遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC 的uPD6121G组成发射电路为例说明编码原理(一般家庭用的DVD、VCD、音响都使用这种编码方式)。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周

期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。 图2 遥控码的“0”和“1” (注:所有波形为接收端的与发射相反)上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3示。 图3 遥控信号编码波形图 UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。

51单片机红外解码程序

51单片机红外解码程序 1、红外遥控系统 通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。 发射部分包括键盘矩阵、编码调制、LED红外发送器; 接收部分包括光、电转换放大器、解调、解码电路。 下面,我们将使用下面两种设备: 另外,使用51单片机进行解码。 2、原理图

从原理图看出,IR的data脚与51的PD2(P3.2)相连。 2、红外发射原理 要对红外遥控器所发的信号进行解码,必须先理解这些信号。 a) 波形 首先来看看,当我们按下遥控器时,红外发射器是发送了一个什么样的信号波形,如下图: 由上图所示,当一个键按下超过22ms,振荡器使芯片激活,将发射一组108ms 的编码脉冲(由位置1所示)。如果键按下超过108ms仍未松开,接下来发射的 代码(连发代码由位置3所示)将仅由起始码(9ms)和结束码(2.5ms)组成。 下面把位置1的波形放大:

由位置1的波形得知,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(用户编码)(9ms~18ms),高8位地址码(用户编码)(9ms~18ms),8位数据码(键值数据码)(9ms~18ms)和这8位数据的反码(键值数据码反码)(9ms~18ms)组成。 b) 编码格式 遥控器发射的信号由一串0和1的二进制代码组成.不同的芯片对0和1的编码有所不同。通常有曼彻斯特编码和脉冲宽度编码。XS-091遥控板的0和1采用PWM方法编码,即脉冲宽度调制。下图为一个发射波形对应的编码方法: 放大0和1的波形如下图: 这种编码具有以下特征:以脉宽为0.565ms、间隔0.56ms、周期为1.125ms 的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”。 3、红外接收原理 a) 波形 红外接收头将38K载波信号过虑,接收到的波形刚好与发射波形相反:

红外解码程序详解

//此程序为网上下载后修改,要弄懂的话,可以去看看HT6221的时序图。当然也欢迎在这里留言。 ///C51的红外解码程序,可以根据需要自己修改: //11.0592Mhz #include //根据自己的接线来改 sbit IRIN = P3^2; //红外接收器数据线 sbit led = P3^7; //指示灯 //////////////////////////////////////////// //定义数组IRCOM,分别装解码后得到的数据 //IRCOM[0] 低8位地址码 //IRCOM[1] 高8位地址码 //IRCOM[2] 8位数据码 //IRCOM[3] 8位数据码的反码 ///////////////////////////////////////////// #define uchar unsigned char #define uint unsigned int uchar IRCOM[4]=0; bit flag=0; /********************/ void delay014ms(unsigned char x); //x*0.14MS void IR_init(void); void delay014ms(unsigned char x) //x*0.14MS STC10F04延时约0.15MS { unsigned char i; while(x--) { for (i = 0; i<125; i++) //13 {;} } } /////////////// //初始化 //////////// void IR_init(void) { EA=1; EX0=1; //允许总中断中断,使能 INT0 外部中断 IT0=1; //触发方式为脉冲负边沿触发 IRIN=1; //I/O口初始化

从细节手把手教你如何快速、高效推本

从细节手把手教你如何快速、高效推本不管你是屌丝还是土豪,注意一些细节问题总是好的。推本的成功与否往往取决于一些细节性的突破,因为你卡本了并不代表你的团队战力不够,可能是你的战术有一定的问题。 小仓这里给大家总结了几点细节,希望能对玩家和堂友有所帮助。如果你觉得好,请持续关注任玩堂&百度攻略全民英雄专区: 任玩堂出品《全民英雄》攻略APP正式上线 废话不多说了,直接进入今天的快速、高效推本正题。 1、领导力 在游戏初期,最让玩家苦恼的要数领导力了,抽了一堆蓝卡紫卡,却因为领导力不够的问题而无法上阵卡牌参战副本。然而领导力却潜移默化左右着战局,因为他直接影响了玩家出战卡牌的数量。 关于领导力,玩家需要知道的重点是野怪卡的领导力是6。为何需要了解野怪的领导力,关键在于游戏中基友参战的设定机制。如果你的剩余领导力超过6点,请不要浪费,果断带个野怪换上基友的强力卡牌,而不是苦苦等到领导力达到16、22点再去上阵已有的蓝卡、紫卡。要知道多一张参战卡牌就多一份赢得希望。 2、技能 玩家都非常关心英雄技能的取舍问题,原因之一是技能书来之不易,原因之二是对技能的效果不了解。到底哪些技能对推本有用,哪些没用,小仓觉得只要你了解了战斗模式和技能释放的机制就清楚了。 每场战斗下方都有个读条版,卡牌英雄根据其速度属性的高低在读条版上从左到右循环移动

。其中最左边为旗帜,如图中的1所示;中间是水晶球,如图中的2所示;右边为宝剑,如图中的3所示。这三个点中,影响技能释放的点只有后面两个,其中水晶球这个点可能触发道具、辅助类主动技能和诅咒类主动技能,每回合可能触发一次;宝剑这个点可能触发攻击性主动技能,包括AOE、单体攻击、晕眩技能等。 简单地说,英雄的主动技能分为两类:非伤害类【治疗守卫】【沉默】、伤害类【凤凰冲击】【火焰气息】,由于这两类技能触发读条板上的点是不同的,所以对于技能的释放互相没有 影响,唯独有影响的就是英雄的魔法值是否足够的问题。 回到重点,什么技能适合推本?很简单,带集火的AOE技能、带晕眩的AOE控制技能、带减伤的辅助技能、带增益攻击速度BUFF的辅助技能,这四种技能是推本的王牌,最快的速度清理小怪才能最大限度保证团队的生存,也才能保证3星通本获得扫荡的能力。 举几个例子: 这是龙骑的技能,其中三技能是被动技能,提高气血上限,与其他两个技能没有冲突,不过加强了T的生存资本。对于想主要培养龙骑的玩家来说可以选择学习这个技能。但是第一、第二个技能都属于伤害类技能,他们会在读条版最右边的宝剑点被触发,如果没有学习2技能,那么龙骑在战斗的时候要么就普攻、那么就放AOE对怪物造成大量伤害,反之如果学习了2技能,导致的结果有两个:1、当龙骑在读条版上移动到宝剑点的时候,多了一个随机技能选择,这意味着第一个AOE技能释放的概率由原来的二分之一下降到了三分之一;2、龙骑属于力量英雄,如果释放了第二个技能,有可能就没有机会释放AOE技能。再看第二个技能的效果,晕眩一个前排单位,这种技能在推本的时候是基本没用的,没有伤害不说,还浪费一个回合,所以综上所述,龙骑不适合学第二个技能。以此类推的还有小小、火女之类的,第二个技能尽量不要去学习,有时候放出来是团灭的信号。 这是凤凰的技能,三个技能均为主动技能。其中1、3两个技能为AOE伤害技能,2技能为治疗类技能。其实凤凰三个技能都非常好用,一个全体打击、一个全体回复、一个单侧打击都有着不俗的伤害和效果,推本可以说技能放出来了配合其他AOE对小怪来说是毁灭性打击,但凤凰最大的问题在于它是力量型英雄,魔法少是硬伤,而它的技能特点都是耗魔很多,所以需要谨慎学习。如果你的凤凰的魔法值只能够放一次技能,建议还是不要学习,不然有时候会得不偿失、

红外遥控解码原理

红外线遥控器解码原理 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 1 红外遥控系统 通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 2 遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。 上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3所示。

UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G 最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码 (9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。 代码格式(以接收代码为准,接收代码与发射代码反向) ①位定义 ②单发代码格式 ③连发代码格式 注:代码宽度算法: 16位地址码的最短宽度:1.12×16=18ms 16位地址码的最长宽度: 2.24ms×16=36ms 易知8位数据代码及其8位反代码的宽度和不变:(1.12ms+2.24ms)×8=27ms ∴32位代码的宽度为(18ms+27ms)~(36ms+27ms)

手把手教你如何打领带(附图)

手把手教你如何打领带(附图) 一、领带打结方法大全 冬天到了很多人都会穿西装打领带吧!但是男士之中会有真正打领带打得好看的呢?我想因该不多吧!今天看到了一位朋友介绍的如何打完美领结的贴子,我把它贴出来,让大家能学习学习。 1.亚伯特王子结 适用于浪漫扣领及尖领系列衬衫 搭配浪漫质料柔软的细款领带 正确打法是在宽边先预留较长的空间 并在绕第二圈时尽量贴合在一起 即可完成此一完美结型:图1 2.四手结(单结) 是所有领结中最容易上手的 适用于各种款式的浪漫系列衬衫及领带图2

3.浪漫结 浪漫是一种完美的结型 故适合用于各种浪漫系列的领口及衬衫 完成后将领结下方之宽边压以绉折可缩小其结型 窄边亦可将它往左右移动使其小部份出现于宽边领带旁图3 4.温莎结 此种结形因其宽度较一般结形宽 故十分适合使用在意大利式领口(八字领) 的浪漫系列衬衫上 最适合与浪漫细致的丝质领带相互搭配图4

5.简式结(马车夫结) 适用于质料较厚的领带 最适合打在标准式及扣式领口之衬衫将其宽边以180度由上往下翻转 并将折叠处隐藏于后方 待完成后可再调整其领带长度 是最常见的一种结形图5 6.十字结(半温莎结) 此款结型十分优雅及罕见 其打法亦较复杂 使用细款领带较容易上手

最适合搭配在浪漫的尖领及标准式领口系列衬衫图6 二、女生领巾丝巾的打法 1.巴黎结 利用重复对折将方巾折出领带型,绕在颈上打个活结. 将上端遮盖住结眼,并将丝巾调整至适当位置. 如下图7形所示 2.领带结 *将领巾对折再对折成领带型. *较长的 a 端绕过较短的 b 端,穿过领巾内侧向上拉出.*穿过结眼由下拉出,并调整成领带型. *搭配衬衫,简单的中性美感. *搭配洋装,优雅出色. 如下图8所示

红外解码思路

红外解码 一,程序设计思路 第一步:首先要了解编码规则,既引导码,用户码和数据码的脉冲长度。 第二步:利用PCA计数器,设定初始值,得到溢出周期为固定的溢出中断,这样可以利用在溢出中断中计数来测量脉冲长度。 第三部:计算脉冲长度,进行数据解码,得到实际数据。

二,信号采集 第一:初始化PCA(计数器初值,外部触发中断,计数器溢出中断,工作始终选择) 第二:采集数据,由于红外编码为下降沿起始,所以使用下降沿外部触发中断,然后对PCA 计数器进行赋初值,这样可以保证在下降沿来临时,计数器刚好开始计数,这样溢出的次数更接近于脉冲宽度(在第二个下降沿来临时,可能计数器不溢出,这样的话就造成了脉冲宽度丢失。 第三:利用在溢出中断里的编制为进行解码,具体代码如下: sbit P_IR_RX = P1^1; //定义红外接收输入端口 bit B_IR_Sync; //已收到同步标志,接收到引导码的标志 unsigned char IR_BitCnt; //编码位数 unsigned char IR_UserH; //用户码(地址)高字节 unsigned char IR_UserL; //用户码(地址)低字节 unsigned char IR_data; //数据原码 unsigned char IR_DataShit; //数据反码 unsigned char Pulsecount; bit B_IrUserErr; //用户码错误标记 bit B_IR_Press; //遥控按下标记 unsigned char IR_code; //红外键码 extern unsigned char IR_SampleCnt; extern bit Up_Down_Flag_Enable; extern bit Down_INTIR;

红外线遥控系统原理及软件解码实例

红外线遥控系统原理及软件解码实例 简介:红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功 关键字:红外 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 1、红外遥控系统 通用红外遥控系统由发射和接收两大部分组成。应用编解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED 红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 图1 红外线遥控系统框图 2 、遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理(一般家庭用的DVD、VCD、音响都使用这种编码方式)。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125 ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25 ms的组合表示二进制的“1”,其波形如图2所示。 图2 遥控码的“0”和“1” (注:所有波形为接收端的与发射相反)

上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3所示。 图3 遥控信号编码波形图 UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。U PD6121G最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108 ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。 图4 遥控连发信号波形 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个引导码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8 位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发码)将仅由起始码(9ms)和结束码(2.25ms)组成。 图5 引导码图6连发码 3 、遥控信号接收 接收电路可以使用一种集红外线接收和放大于一体的一体化红外线接收器,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。 接收器对外只有3个引脚:Out、GND、Vcc与单片机接口非常方便,如图7所示。

30秒学会 手把手教你如何打印证件照片

30秒学会手把手教你如何打印证件照片 ★?如何打印证件照片? 【打印必备设备】 测试用机:佳能PIXMA腾彩iP4680喷墨打印机 打印纸:4*6(10*15cm)英寸普通光面照片纸 必备软件:Photoshop7.0图形图像处理软件(或高于7.0版本) ????步骤一:我们先用制作一张1寸照片的过程为例来讲解,打开Photoshop软件,在新建栏里新建一个4*6英寸或10*15厘米的文档,注意宽和高后面的单位要选择英寸或是厘米,而且要把分辨率设为300,如图所示。 新建一个4*6英寸的文档,分辨率为300 ????步骤二:新建完成文档之后,打开已经拍摄好的原始照片图片,这个时候照片的格式是随意的,根据拍摄时的设定而定,但是经过我们下面的步骤之后,就会统一变成证件所要求的格式。 打开原始的照片文档 ????步骤三:打开原始文档之后,在Photoshop里的工具栏里选择裁剪工具,点击之后在宽度和高度分别输入2.5cm和3.5cm,并且在分辨率栏里输入300像素/英寸。如下图所示。 在工具栏里选择裁切工具 对原始照片的头像进行裁剪 ???????????????????? 步骤四:裁剪之后,直接双击黑色箭头,然后将图片拖入到第一步里新建完成的4*6英寸的文档中,然后可以按住Alt键用鼠标拖动图片进行复制,在4*6英寸的文档中进行排版,如下图所示。排版完成之后,可以选择保存成JPEG的格式,关于图片的质量我们推荐选择“最佳”模式。 在6寸文档上对1寸照片进行排版 保存为JPEG格式,品质设为最佳即可 在打印设置时务必选择4*6英寸的纸张大小 ????最后一步就是将照片打印出来了,这里需要提醒的是,在打印设置中对纸张大小一定要选择相应的尺寸,如上图所示,我们选择的是与之对应的4*6英寸(10*15cm)。 ????写在最后:整个过程我们用的是1寸照片为例做到讲解,如果您需要制作一张2寸照片的话,其实很简单,只需在第三个步骤中把2.5cm和3.5cm的数值改为3.5*4.9cm即可,至于其他大小的照片具体宽高数值,大家可以在网上进行查询,会有很详细的表格供参考。关于在6寸相纸上制作证件照片的过程就是这么简单,看一看相信不到一分钟您也可以学会。转发一下各种证件照、数码相片尺寸对照表 小常识:通常表示照片规格会用“寸”来表示,和显示器之类的产品用对角线长度表示尺寸

红外线遥控器解码程序

资料整理自互联网,版权归原作者! 欢迎访问 https://www.360docs.net/doc/b118721569.html, 新势力单片机,嵌入式
专业技术论坛:https://www.360docs.net/doc/b118721569.html,
红外线遥控器解码程序
Wang1jin 收藏. 交流论坛: https://www.360docs.net/doc/b118721569.html,/ 推荐网站: https://www.360docs.net/doc/b118721569.html, 个人博客: https://www.360docs.net/doc/b118721569.html,
红外线遥控是目前使用最广泛的一种通信和遥控手段.由于红外线遥控装置具有体积小,功耗低,功能强,成本低等特点,因 而,继彩电,录像机之后,在录音机,音响设备,空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控.工业设备中, 在高压,辐射,有毒气体,粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰.
1 红外遥控系统
通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图 1 所示.发射部分 包括键盘矩阵,编码调制,LED 红外发送器;接收部分包括光,电转换放大器,解调,解码电路.
2 遥控发射器及其编码
遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明, 现以日本 NEC 的 uPD6121G 组成发射电路为例说明编码原理.当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码 也不同.这种遥控码具有以下特征:
采用脉宽调制的串行码,以脉宽为 0.565ms,间隔 0.56ms,周期为 1.125ms 的组合表示二进制的"0";以脉宽为 0.565ms, 间隔 1.685ms,周期为 2.25ms 的组合表示二进制的"1",其波形如图 2 所示.
个人博客:https://www.360docs.net/doc/b118721569.html,
电子综合站点:https://www.360docs.net/doc/b118721569.html,

红外接收解码汇编

;遥控器控制显示123456789数据保持 ;*************************************************************************** ;* gehuiwy@https://www.360docs.net/doc/b118721569.html, Create by :葛辉* ;*************************************************************************** REC_DATA EQU 20H ;数码管段选的数据存放在片内RAM 20H单元 REC_DATA1 EQU 21H ;数码管段选的数据存放在片内RAM 21H单元 ORG 0000H SJMP MAIN ORG 0003H ;外部中断0引脚链接红外接收头输出 LJMP INT0_SERVICE ORG 0030H MAIN: MOV IE,#10000001B ;外部中断使能,全局中断使能 MOV REC_DATA,#00000000B ;数码管灭 MOV REC_DATA,#7EH ;数码管亮 MOV REC_DATA1,#7EH ;数码管亮 MOV P1,#11111110B ;选中左边的数码管 MOV P3,#0FFH LOOP: LCALL DISPLAY ;MOV REC_DATA,#0FFH ;数码管亮 ;MOV P2,REC_DATA ;段选送P2,P2链接数码管驱动244的输入 SJMP LOOP ;循环显示 INT0_SERVICE: ;中断0服务程序 SETB P1.0 SETB P1.1 MOV R4,#8 ;8毫秒为高电平错误 SBA: MOV R5,#250 SBB: JB P3.2,SXB1 DJNZ R5,SBB DJNZ R4,SBA MOV R4,#2 JMP SBC SXB1: MOV R5,#5 SXB2: ;去掉20US的尖峰干扰信号 JNB P3.2,SBB DJNZ R5,SXB2

红外解码程序详解

红外遥控解码程序设计 ——————基于uPD6121红外编码制式 红外传感系统是目前应用最为广泛的遥控系统,一个红外遥控系统可分为发射和接收两部分组成,发射端称之为红外遥控器,一般由矩阵键盘,红外编码调制芯片和红外发射管组成;接收端用一体化红外接收头即可,这个东东内置光电放大器和解调部分,信号接收之后一般很微弱须放大后才可解码,为有效发射出去得先托付在载波上所以需经历调制、解调的过程,其实对于发射部分主要工作在于编码,而对于编码方式只有几种主流方式,而目前国内大部分均为uPD6121编码方式(日本NEC公司搞出来的。。),所以我们只须弄清楚这种编码的时序,即可写出万能的红外解码程序,只要是基于这种编码方式的遥控器(家里的电视、空调、电扇遥控器)都可以用该程序来解码(这点也充分证明了C语言的高移植性啊。。) 这种编码的格式其实很简单,开头是一个引导码,人家芯片在编码时将其设计成9ms的高电平和4.5ms的低电平,也就是说你必须跳过这段引导码之后才会接收到数据,第一个问题来了:为什么要加这段引导码?因为红外传感是非常容易受到干扰的,如果直接传送数据很可能并非发送端的信号,很可能来自其他辐射,后面设计程序时会遇到这个问题。所以我们在写程序时在引导码时可以加入检测代码,如果是引导码则继续接收,否则跳出。第二个问题就是:接收数据时我们用外部中断接收,这是考虑到CPU 的执行效率,如果你在主函数里接收数据,就好比CPU一直在问:你接收到数据没? 你接收到没?..很明显不靠谱,和串口通信一样,接收数据用中断这是经验,有利于单片机的执行效率。第三个要注意的就是红外接收端和编码发送的数据是反向的!这点很重要,我看很多资料没有写明这点,让很多童鞋疑惑不解,也就是说引导码编码时确实是9ms高电平和4.5ms 的低电平,但是到了接收端是9ms的低电平和4.5ms的高电平,所以我们在解码时就得注意引导码高电平出现的顺序。对于编码格式,引导码后接了4个字节的数据,前两个字节为用户码和用户反码,简单点说就是器件地址;后两字节为操作码和操作反码,就是我们真正需要的数据。图为发送端编码格式,注意接收到的已反向!

红外解码C语言程序

#include #define uchar unsigned char #define uint unsigned int sbit SM0038 = P3^3; sbit LED = P1^0; uchar data IRcode[4]; //定义一个4字节的数组用来存储代码 uchar CodeTemp,charsend,i,j,k; //编码字节缓存变量 /**********************************2us延时******************************/ void delay(uint k) { while(k --); } /**********************************************************/ void delay0_14MS(unsigned char x) //x*0.14MS { unsigned char i; while(x--) { for (i = 0; i<13; i++) {} } } /******************************外部中断1初始化**************************/ void Outside_Init(void) { EX1= 1;//开外部中断1 IT1 = 1;//负边沿触发 EA = 1; //开总中断 } /******************************中断处理**************************************/ void Outside_Int(void) interrupt 2 using 0 { uchar N = 0; EX1 = 0; delay(500);//延时1ms if(SM0038 == 1) { EX1 =1; return; } //确认IR信号出现 while(!SM0038); //跳过9ms低电平

红外编码和解码原理

一、编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如下图所示。 上述“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)和结束

C红外解码程序

C红外解码程序Prepared on 21 November 2021

2007-01-3011:02:21 #include? #include? sfr?p0=0x80; sfr?p3=0xb0; sbit?p32=p3^2; unsignedchardm,i,j,k; unsignedchardataa[4];//定义4个数组,用来存储代码void?ds0_9ms(void) { unsignedcharj,k; for(j=18;j>0;j--) for(k=20;k>0;k--) } void?ds1ms(void) { unsignedchari,j; for(i=2;i>0;i--) for(j=230;j>0;j--) } void?ds4_5ms(void) { unsignedchari,j; for(i=10;i>0;i--) for(j=225;j>0;j--) } void?ds2s(void) {

unsignedchari,j,k; for(i=200;i>0;i--) for(j=200;j>0;j--) for(k=10;k>0;k--) } void?main() { IT0=1; EX0=1; EA=1; dm=0; ds2s(); p0=0; while(1); } voidt0(void)interrupt0using2//外部中断0的函数{ EA=0; for(k=0;k<10;k++) { ds0_9ms(); if(p32==1){k=10;break;} elseif(k==9) { while(p32==0); ds4_5ms(); for(i=0;i<4;i++) { for(j=1;j<=8;j++) {

相关文档
最新文档