红外遥控器软件解码原理和程序

红外遥控器软件解码原理和程序
红外遥控器软件解码原理和程序

红外遥控应用领域非常广泛,给消费者带来了很大的便利,但由于红外通讯协议的庞杂,也给使用者造成了一定的麻烦,同样也给设备集成商造成了不变,不同种控制设备的遥控器均不相同,据统计全世界红外遥控码类型已经超过一万种,中国国内应用的红外码型已经超过600种,其中有很多都是生产厂家为避免与其他设备串码而自定义的,这样对于红外学习来说造成了很大的难度。

红外遥控学习的方法有很多,大体上归纳为两种,一拷贝波形,二分析波形,拷贝波形的优点是能学习所有波形,缺点是学习过程中波形畸变也完全复制了,另红外码有多种载波,拷贝波形如加载波一起拷贝显然数据量非常大,因而通行拷贝波形不会拷贝载波,这就导致了可能波形拷贝对了,但载波不对,依然不能控制设备;分析波形的优点是取得波形片段后无论波形如何畸变均能按标准波形发出红外码,缺点是需要建立一个庞大的标准码库,这个工作只能通过不断的积累来完成。

本红外学习模块折中了以上两种方式,对于普遍使用的码型采用波形分析的方法,对于不常用的码型采用拷贝波形的方式,并且对于所有的红外码均采用了特征纠偏的方法,经大量实验证明,这种学习方法比较优秀,可以学习电视、DVD、机顶盒、空调、CD、投影机等设备的红外控制信号,同时可以不断更新标准码库,如果已将本红外学习模块应用到产品上,依然可以通过标准串口更新标准码库。

本红外学习模块如果大量应用在产品上,为避免每个模块都要学习,可以先学习一个模块,测试成功后通过标准串口将学习好的红外数据传输到其他未学习的模块上,为批量产品提供了便利。

本红外学习模块提供了两种电气接口供使用者选择,SPI或TTL电平的串口,通过一个功能选择接口即可选择合适的接口,同时提供给用户三个额外的I/O口,用户可使用命令来控制或读取这三个I/O口,如使用SPI接口则用户可得到一个额外的标准串口,这对于使用多个串口的用户提供了便利,其中SPI接口和串口均为硬件接口,并非通过I/O口模拟的,因而用户可以放心使用,其中SPI接口提供了无SPI功能的MCU与之通讯的模拟程序,方便用户移植,串口则提供了从110~512000bps的波特率,用户可通过寄存器设置(使用SPI做为控制接口时)

本红外学习模块提供给用户一个状态复位控制引脚,在本模块上电前将此引脚接地则可以恢复到出厂前的设置,但已学习好的数据不会擦除。

本红外学习模块可提供外壳封装版本,可以为客户提供OEM版,为大客户提供单芯片版。关于本模块的使用和应用上的任何问题,请来电或邮件咨询,升级信息及改版信息请见网站通告。

QQ:

EMAIL:

手机:

红外遥控器软件解码原理和程序

#include "at89x52.h"

#define NULL 0x00//数据无效

#define RESET 0X01//程序复位

#define REQUEST 0X02//请求信号

#define ACK 0x03//应答信号,在接收数据后发送ACK信号表示数据接收正确,

也位请求信号的应答信号

#define NACK 0x04//应答信号,表示接收数据错误

#define BUSY 0x05//忙信号,表示正在忙

#define FREE 0x06//空闲信号,表示处于空闲状态

#define READ_IR 0x0b//读取红外

#define STORE_IR 0x0c//保存数据

#define READ_KEY 0x0d//读取键值

#define RECEIVE 0Xf400//接收缓冲开始地址

#define SEND 0xfa00//发送缓冲开始地址

#define IR 0x50//红外接收缓冲开始地址

#define HEAD 0xaa//数据帧头

#define TAIL 0x55//数据帧尾

#define SDA P1_7

#define SCL P1_6

unsigned char xdata *buf1; //接受数据缓冲

unsigned int buf1_length; //接收到的数据实际长度

unsigned char xdata *buf2; //发送数据缓冲

unsigned int buf2_length; //要发送的数据实际长度

bit buf1_flag; //接收标志,1表示接受到一个数据帧,0表示没有接受到数据帧或数据帧为空

bit buf2_flag; //发送标志,1表示需要发送或没发送完毕,0表示没有要发送的数据或发送完毕

unsigned char state1,state2; //用来标志接收字符的状态,state1用来表示接

收状态,state2用来表示发送状态

unsigned char data *ir;

union{

unsigned char a[2];

unsigned int b;

unsigned char data *p1[2];

unsigned int data *p2[2];

unsigned char xdata *p3; //红外缓冲的指针

unsigned int xdata *p4;

}p;

//union{ //

// unsigned char a[2]; //

// unsigned int b;

// unsigned char data *p1[2];

// unsigned int data *p2[2];

// unsigned char xdata *p3;

// unsigned int xdata *p4; //地址指针

红外遥控原理

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

红外遥控解码实验报告

嵌入式系统试验报告 1.红外遥控解码实验 1.1 实验目的

了解红外遥控编码并用单片机捕捉信号及解码 熟悉LCD1602的驱动 1.2 实验设备 T1838一体化红外接收头 DT9122D芯片制作 89S51 1.3 实验内容 红外一体化接收头接收到红外遥控发射器所发射的信号,并将此信号进行整形和反相送入单片机端口。经过软件译码,将译码结果(按键代码)昂数码管显示。 1.4 实验预习要求 遥控编码知识 ME850单片机开发实验仪集成有一路一体化红外接收头,并配有红外发射器,能够做红外接收与解码实验 了解简单的单片机的开发的环境 要有一定的C语言基础 1.5 实验原理 所谓解码就是能用单片机把以不同宽度的脉冲区别开来,一种比较好思路就是计算两次下降沿间隔时间,当单片机外部中断1口有下降沿时中断一次,并启动定时器,定时器定50us,当下次下降沿到来时我们计算定时器中断的次数,这样我们就能很好的区分不同宽度的脉冲了。

1.6 实验步骤 将JP21的8个短接子全部用短接帽短接,使DG0-DG7与P2端口接通 将JP22的9个短接子全部用短睫毛短接,使A-DP与P0端口接通,VCC向数码管模块供电 将JP10的短接子用短接帽短接,使红外接头U16的数据线与P3.2端口接通。 将JP24的短接子用短接帽短接,禁止LCD1602显示功能,否则数码管将不能正常显示。 第一次使用遥控器要去下电池盖下的隔离胶片。 1.7 实验电路原理分析 ME850选用T1838一体化红外接收头,接受来自红外遥控器的红外遥控信号。T1838集成红外接收二极管、放大、解调、整形等电路在同一封装上。T1838负责红外遥控信号的解调,将调制在38KHZ上的红外脉冲信号解调并倒相输入到单片机的P3.2引脚,由单片机进行高电平与低电平宽度的测量 T1838的输出端通过JP10与AT89S52的P3.2连接,既可以受用中断的方式也可以使用查询方式来编程 1.8 实验参考程序分析 #include #define uint unsigned int #define uchar unsigned char sbit ir=P3^3;//红外端口

红外遥控原理(红外开发)

红外遥控器的原理 一. 关于遥控器 遥控器其核心元器件就是编码芯片,将需要实现的操作指令例如选台、快进等事先编码,设备接收后解码再控制有关部件执行相应的动作。显然,接收电路及CPU也是与遥控器的编码一起配套设计的。编码是通过载波输出的,即所有的脉冲信号均调制在载波上,载波频率通常为38K。载波是电信号去驱动红外发光二极管,将电信号变成光信号发射出去,这就是红外光,波长范围在840nm到960nm之间。在接收端,需要反过来通过光电二极管将红外线光信号转成电信号,经放大、整形、解调等步骤,最后还原成原来的脉冲编码信号,完成遥控指令的传递,这是一个十分复杂的过程。 红外线发射管通常的发射角度为30-45度之间,角度大距离就短,反之亦然。遥控器在光轴上的遥控距离可以大于8.5米,与光轴成30度(水平方向)或15度(垂直方向)上大于6.5米,在一些具体的应用中会充分考虑应用目标,在距离角度之间需要找到某种平衡。 对于遥控器涉及到如下几个主要问题: 1. 遥控器发出的编码信号驱动红外线发射管,必须发出波长范围在940nm左右的的红外光线,因为红外线接收器的接收二极管主要对这部分红外光信号敏感,如果波长范围不在此列,显然无法达到控制之目的。不过,几乎所有的红外家电遥控器都遵循这一标准。正因为有这一物理基础,多合一遥控器才有可能做成。 2. 遥控器发出一串编码信号只需要持续数十ms的时间,大多数是十多ms或一百多ms重复一次,一串编码也就包括十位左右到数十位二进制编码,换言之,每一位二进制编码的持续时间或者说位长不过2ms左右,频率只有500kz这个量级,要发射更远的距离必需通过载波,将这些信号调制到数十khz,用得最多的是38khz,大多数普通遥控器的载波频率是所用的陶瓷振荡器的振荡频率的1/12,最常用的陶瓷振荡器是455khz规格,故最常用的载波也就是455khz/12=37.9khz,简称38k载波。此外还有480khz(40k)、440khz(37k)、432khz (36k)等规格,也有200k左右的载波,用于高速编码。红外线接收器是一体化的组件,为了更有针对性地接收所需要的编码,就设计成以载波为中心频率的带通滤波器,只容许指定载波的信号通过。显然这是多合一遥控器应该满足的第二个物理条件。不过,家用电器多用38k,很多红外线接收器也能很好地接收频率相近的40k或36k的遥控编码。 3. 一个设备受控,除了满足上面提到的两个基本物理条件外,最重要的变化多种多样的当然应该是遥控器发出一串二进制编码信号了,这也是不同的遥控器不能相互通用的主要原因。由于市场上出现成百上千的编码方式并存,并没有一个统一的国际标准,只有各芯片厂商事实上的标准,这也是模拟并替换各种原厂遥控器最大的难点。随着技术的不断发展,很多公司开发家电设备的遥控子系统时还不采用通用的编码芯片,而是用通用的单片机随心所欲地自编一些编码,这就使通用遥控的问题更加复杂化了。 4. 采用同样的编码芯片,也不意味着可以通用,因为还有客户码。客户码设计的最初本意就是为了不同的设备可以相互区分互不干扰。最初芯片厂商会从全局考虑给不同的家电厂商安排不同的客户码以规范市场,例如录像机和电视机就用不同的设备码,给甲厂分配的设备码和乙厂分配的设备码就区分在不同的范围内。

红外遥控器的基本原理

红外遥控器的基本原理 ?红外线的特点人的眼睛能看到的可见光,若按波长排列,依次(从长到短)为红、橙、黄、绿、青、蓝、紫,红光的波长范围为0.62μm~0.7μm,比红光波长还长的光叫红外线。红外线遥控器就是利用波长0.76μm~1.5μm 之间的近红外线来传送控制信号的。 红外线的特点是不干扰其他电器设备工作,也不会影响周边环境。电路调试简单,若对发射信号进行编码,可实现多路红外遥控功能。 红外线发射和接收 人们见到的红外遥控系统分为发射和接收两部分。发射部分的发射元件为红外发光二极管,它发出的是红外线而不是可见光。 常用的红外发光二极管发出的红外线波长为 940nm 左右,外形与普通φ5mm 发光二极管相同,只是颜色不同。一般有透明、黑色和深蓝等三种。判断红外发光二极管的好坏与判断普通二极管一样的方法。单只红外发光二极管的发射功率约100mW。红外发光二极管的发光效率需用专用仪器测定,而业余条件下,只能凭经验用拉距法进行粗略判定。 接收电路的红外接收管是一种光敏二极管,使用时要给红外接收二极管加反向偏压,它才能正常工作而获得高的灵敏度。红外接收二极管一般有圆形和方形两种。由于红外发光二极管的发射功率较小,红外接收二极管收到的信号较弱,所以接收端就要增加高增益放大电路。然而现在不论是业余制作或正式的产品,大都采用成品的一体化接收头。红外线一体化接收头是集红外接收、放大、滤波和比较器输出等的模块,性能稳定、可靠。所以,有了一体化接收头,人们不再制作接收放大电路,这样红外接收电路不仅简单而且可靠性大大提高。

红外遥控器的协议 ?鉴于家用电器的品种多样化和用户的使用特点,生产厂家对红外遥控器进行了严格的规范编码,这些编码各不相同,从而形成不同的编码方式,统一称为红外遥控器编码传输协议。了解这些编码协议的原理,不仅对学习和应用红外遥控器是必备的知识,同时也对学习射频(一般大于300MHz)无线遥控器的工作原理有很大的帮助。 到目前为止,笔者从外刊收集到的红外遥控协议已多达十种,如: RC5、SIRCS、 S ON y、 RECS80、Denon、NEC、Motorola、Japanese、SAMSWNG 和 Daewoo 等。我国家用电器的红外遥控器的生产厂家,其编码方式多数是按上述的各种协议进行编码的,而用得较多的有 NEC协议。 红外遥控器的结构特征 ?红外遥控发射器由键盘矩阵、遥控专用集成电路、激励器和红外发光二极管组成。遥控专用集成电路(采用 AT89S52 单片机)是发射系统的核心部分,其内部由振荡电路、定时电路、扫描信号发生器、键输入编码器、指令译码器、用户码转换器、数码调制电路及缓冲放大器等组成。它能产生键位扫描脉冲信号,并能译出按键的键码,再经遥控指令编码器得到某键位的遥控指令(遥控编码脉冲),由 38KHZ 的载波进行脉冲幅度调制,载有遥控指令的调制信号激励红外二极管发出红外遥控信号。 在红外接收器中,光电转换器件(一般是光电二极管或光电三极管,我们这里用的是 PIN 光电二极管)将接收到的红外光指令信号转换成相应的电信号。此时的信号非常微弱而且干扰特别大,为了实现对信号准确的检测和转换,除了高性能的红外光电转换器件,还应合理地选择并设计性能良好的电路形式。最常用的

红外遥控信号的解码

红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 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位数据

万能学习型红外遥控器制作(毕业设计)

学号 密级 ××大学本科毕业论文 万能学习型红外遥控器设计 院(系)名称:×××× 专业名称:×××× 学生姓名:×××× 指导教师:×××× 二○○九年五月

BACHELOR'S DEGREE THESIS OF ×××× UNIVERSITY Design of Universal IR Learning Remote Controller College :×××× Subject :×××× Name :×××× Directed by :×××× May 2009

摘 要 随着家用电器种类的增加和无线遥控产品的普及,红外遥控器的使用频率越来越高,针对国内红外遥控学习技术成熟,但产品化程度低的特点,本文自主设计一种具有红外学习和触屏显示功能的红外遥控器,借此促进红外遥控学习技术在国内市场的产品化推广。 在红外解码方面,传统方法采用单片机中断或者查询方式采集红外信号,环境不理想情况下可能需要多次解码,本文借助电脑辅助记录全波形,通过相关软件优化波形,解码一次即可成功;在红外发射方面,本文通过实验发现红外发射距离受载波占空比和红外二极管贯通电流影响,通过调试将38KHz载波红外信号发射距离提高到10米;在红外接收方面,进行了红外干扰测试;在触屏校验方面,通过实验获取触屏数据,利用matlab参数估计lsqcurvefit函数求得校正参数,解决了触屏漂移问题;在彩屏显示方面,将遥控器所有按键简化为方向键和确认键,虚拟数码管显示按键位置,避免了单片机片上资源紧张的问题,此外,彩屏仅支持16位R5G6B5格式数据,一张176*220图片占用72. 6KB空间,造成极大浪费,本文借此讨论了适合本系统的图片压缩技术,给出了一种具体的图片压缩格式。 按照由简单到复杂的顺序,本文先后制作了遥控接收解码装置、遥控编码发射装置、万能学习型红外遥控器,以SAA3010遥控器作为典型代表(遵循飞利浦RC-5编码协议),成功的实现了红外编解码、发射接收、按键触屏双输入、彩屏显示等基本功能,最终制作的万能学习型遥控器在功能上可以完全代替SAA3010遥控器。 关键词:红外学习;红外解码;单片机控制;声卡采样;触屏校验

单片机红外电视遥控器C51程序代码单片机程序

单片机红外电视遥控器C51程序代码单片机程序 //************************************************************** //名称:单片机红外电视遥控器C51程序代码() /*-------------------------------------------------------------- 描述: 一般红外电视遥控器的输出都是用编码后串行数据对38~40kHz的方波进行 脉冲幅度调制而产生的.当发射器按键按下后,即有遥控码发出,所按的键 不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”。上述“0”和“1”组成的32位二进制码经38kHz 的载频进行二次调制,然后再通过红外发射二极管产生红外线向空间发射。 一般电视遥控器的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位 为8位的操作码和8位的操作反码,用于核对数据是否接收准确。 根据红外编码的格式,发送数据前需要先发送9ms的起始码和4.5ms的结果码。接收方一般使用TL0038一体化红外线接收器进行接收解码,当TL0038接收到38kHz红外信号时,输出端输出低电平,否则为高电平。 所以红外遥控器发送红外信号时,参考上面遥控串行数据编码波形图,在低 电平处发送38kHz红外信号,高电平处则不发送红外信号。 ----------------------------------------------------------------*/ //编辑: //日期: //**************************************************************** #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long #include //包括一个51标准内核的头文件 static bit OP; //红外发射管的亮灭 static unsigned int count; //延时计数器 static unsigned int endcount; //终止延时计数 static unsigned char flag; //红外发送标志 char iraddr1; //十六位地址的第一个字节 char iraddr2; //十六位地址的第二个字节 void SendIRdata(char p_irdata); void delay(); //************************************************************** void main(void) {

红外遥控原理及解码程序

红外遥控系统原理及单片机 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 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为发射波形图。

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

中国矿业大学徐海学院 技能考核培训 姓名:顾嘉诚学号: 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)

38khz红外发射与接收解析

38khz红外发射与接收 38khz红外发射与接收 红外线遥控器在家用人的眼睛能看到的可见光,若按波长排列,依次(从长到短)为红,橙,黄,绿,青,蓝,紫,如图1所示. 由图可见,红光的波长范围为0.62μm~0.76μm,比红光波长还长的光叫红外线.红外线遥控器就是利用波长0.76μm~1.5μm之间的近红外线来传送控制信号的. 红外线的特点是不干扰其他电器设备工作,也不会影响周边环境. 人们见到的红外遥控系统分为发射和接收两部分.发射部分的发射元件为红外发光二极管,它发出的是红外线而不是可见光,如图2所示. 常用的红外发光二极管发出的红外线波长为940nm左右,外形与普通φ5mm发光二极管相同,只是颜色不同.一般有透明,黑色和深蓝色等三种.判断红外发光二极管的好坏与判断普通二极管一样的方法.单只红外发光二极管的发射功率约100mW.红外发光二极管的发光效率需用专用仪器测定,而业余条件下,只能凭经验用拉距法进行粗略判定. 接收电路的红外接收管是一种光敏二极管,使用时要给红外接收二极管加反向偏压,它才能正常工作而获得高的灵敏度.红外接收二极管一般有圆形和方形两种.由于红外发光二极管的发射功率较小,红外接收二极管收到的信号较弱,所以接收端就要增加高增益放大电路.然而现在不论是业余制作或正式的产品,大都采用成品的一体化接收头,如图3所示.红外线一体化接收头是集红外接收,放大,滤波和比较器输出等的模块,性能稳定,可靠.所以,有了一体化接收头,人们不再制作接收放大电路,这样红外接收电路不仅简单而且可靠性大大提高. 图3是常用两种红外接收头的外形,均有三只引脚,即红外接收头的主要参数如下: 工作电压:4.8~5.3V 工作电流:1.7~2.7mA 接收频率:38kHz 峰值波长:980nm 静态输出:高电平 输出低电平:≤0.4V 输出高电平:接近工作电压 3.红外线遥控发射电路 红外线遥控发射电路框图如图4所示. 框图4是目前所有红外遥控器发射电路的功能组成,其中的编码器即调制信号,按遥控器用途的编码方式可以很简单,也可以很复杂.例如用于电视机,VCD,DVD 和组合音响的遥控发射的编码器,因其控制功能多达50种以上,此时的编码器均采用专用的红外线编码协议进行严格的编程,然而对控制功能少的红外遥控器,其编码器是简单而灵活.前者编码器是由生产厂家的专业人员按红外遥控协议进行编码,而后者适用于一般图4中编码器的编码信号对38kHz的载波信号进行调制,再经红外发射管D向空间发送信号供遥控接收端一体化接收头接收,解调输出,再作处理.

红外遥控编码原理及C程序,51单片机红外遥控

红外遥控解解码程序 #include #include #define uchar unsigned char #define uint unsigned int sbit lcden=P1^0; sbit rs=P1^2; sbit ir=P3^2; sbit led=P1^3; sbit led2=P3^7; unsigned int LowTime,HighTime,x; unsigned char a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u; unsigned char flag;//中断进入标志位 uchar z[4]; uchar code table[]={"husidonghahahah"}; uchar code table1[]={"User Code:"}; void delay(uint x) { uint i,j; for(i=x;i>0;i--) //i=xms即延时约xms毫秒for(j=100;j>0;j--); } void write_com(uchar com) {//写液晶命令函数 rs=0; lcden=0; P2=com; delay(3); lcden=1; delay(3); lcden=0; } void write_date(uchar date) {//写液晶数据函数 rs=1; lcden=0; P2=date; delay(3); lcden=1;

delay(3); lcden=0; } void init_anjian() //初始化按键 { a=0;b=0;c=0;d=0; e=0;f=0;g=0;h=0; i=0;j=0;k=0;l=0; m=0;n=0;o=0;p=0; q=0;r=0;s=0;t=0; u=0; } void init_1602() {//初始化函数 uchar num; lcden=0; rs=0; write_com(0x38);//1602液晶初始化 write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(num=0;num<14;num++)//写入液晶固定部分显示{ write_date(table[num]); delay(3); } write_com(0x80+0x40); for(num=0;num<9;num++) { write_date(table1[num]); delay(3); } } void write_dianya(uchar add,char date) {//1602液晶刷新时分秒函数4为时,7为分,10为秒char shi,ge; shi=date%100/10; ge=date%10; write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge); }

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

#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组数据

红外遥控器的原理

红外遥控器的原理 红外遥控器的硬件电路 红外遥控发射器由键盘矩阵、遥控专用集成电路、激励器和红外发光二极管组成。遥控专用集成电路(通常是四位单片机)是发射系统的核心部分,其内部由振荡电路、定时电路、扫描信号发生器、键输入编码、指令译码器、用户码转换器、数码调制电路以及缓冲放大器等组成。它能产生键位扫描脉冲信号,并能译出按键的键码,再经遥控指令编码器得到某键位的遥控指令(遥控编码脉冲),由38KHZ的载波进行脉冲幅度调制,载有遥控指令的调制信号激励红外二极管发出红外遥控信号。 红外遥控器发射硬件图 当按下某个键时,发送电路就产生对应的编码,经过调制后,在输出端产生串行编码的脉冲。这些脉冲经过驱动电路后由红外二极管发射出去。当接收端接收到光信号后,先经过光放大器再经过专用解码芯片将其还原(解调)为串行编码脉冲,然后由接收电路按照编码解码的协议转换为相应的控制电平,最后由执行电路驱动开关等完成要求的操作。 遥控器里面是一个键盘编码器,每个按键对应一个编码,在把编码调制到一个高频信号上,其目的是为了降低发射的功率损耗;再把调制好的信号送给红外发光管把信号发送出去。接收过程恰好与此相反,首先由红外接收管收到微弱的信

号,经放大后解解调(把高频载波去掉),再进行解码,就可得到遥控器发过来的数据。 红外遥控器的红外编码 遥控系统中传输的数据是一串编码脉冲,也就是一组连续的串行二进制码,只是该脉冲是用调制过的载波表示的。对于一般的遥控系统,此串行码由红外接收头解调后,作为微控制器的遥控输入信号,由其内部CPU完成对遥控指令的解码,设计人员通常利用红外编码解码专用芯片或者单片机研制各种红外遥控系统,对各种电气设备进行遥控。 目前市场上有成百上千的编码方式并存,没有一个统一的国际标准,只是各芯片厂商事实上的标准,在自己的遥控器中使用自己指定的标准。但由于早期的生产遥控芯片的厂家较少,主要集中在欧洲和日本,他们所使用的编码标准成为后续很多厂家遵循或者模仿的标准,也就是说很多厂家生产出自己的遥控器,但只是在脉冲宽度、数据位的个数上有一些变化,在整个码型结构上还是遵循的老厂家的标准。随着单片机技术的发展,很多公司使用通用单片机编码然后通过红外光调制后发射。 下面介绍最常用的NEC标准:采用数字脉宽调制来表示“0”和“1"。 经遥控器发送的是串行数据,通过脉冲的占空比来区别‘0’和‘1’;以脉宽为0.565ms,间隔0.56ms,周期为1.125ms的组合表示二进制‘0’;以脉宽为 0.565ms,间隔为1.685ms,周期为2.25ms的组合表示二进制‘1’。其波形如下图30所示:

红外遥控解码原理

红外线遥控器解码原理 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 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)

红外解码程序详解

//此程序为网上下载后修改,要弄懂的话,可以去看看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口初始化

红外解码程序详解

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

红外遥控实验报告

红外遥控开关 小组成员: 指导教师:

掌握电子电路设计的基本方法; 了解各种红外收发器件; 掌握红外遥控的收发方式; 掌握红外遥控的编码、解码方式; 掌握开关量信号对强电设备的控制方式 设计要求及技术指标: 基本部分: [1]红外遥控器采用现成的家用电器的红外遥控器,遥控距离不小于5米; [2]遥控开关接收端的工作电源为220V交流电; [3]遥控开关使用发光二极管指示有无220V交流电源及遥控开关的开关状 态; [4]遥控开关能够控制台灯、电扇等家用电器,输出功率不超过200W。 发挥部分: [1]自制红外遥控器,包括至少4路遥控按键; [2]遥控开关能够控制至少4路家用电器 设计任务 [1]设计、安装、调试所设计的电路; [2]画出完整电路图,详细说明电路原理,写出设计总结报告 设计思路 红外遥控→红外接收→信号处理→开关驱动及显示

红外遥控器的发射端具有键盘矩阵,每按下一个键,即产生具有不同的编码的数字脉冲,这种代码指令信号调制在38kHZ的载波上,激励红外光二极管产生具有脉冲波串的红外波,通过空间的传送送到受控机内的遥控接收器。在接收过程中红外波信号通过滤波器和光电二极管转换为38kHZ的电信号,此信号经过放大、检波、整形、解调,送到解码器与接口电路,从而完成相应的遥控功能。“红外线遥控器”设计方案 直流稳压电源部分 直流稳压电源的基本结构 设计电路

整流电路虽然已经把交流电转换成直流电, 但是整流出来的电压还不是平稳的直流电电压, 所以在整流电路的后边还要有滤波电路, 来改善整流输出电压的平滑程度, 这个工作由电容器来完成。 电路的核心是集成稳压电路LM317, 它有三个端点, 一个输入端, 一个输出端, 还有一个调节端。调节端接地 在实际的焊接过程中,我们采用芯片7805代替了芯片LM317,由7805的OUT端输出直流的稳定的电压。 三端稳压集成电路7805 功能框图:

红外遥控器的基本原理

红外遥控器的基本原理 红外线的特点人的眼睛能看到的可见光,若按波长排列,依次(从长到短)为红、橙、黄、绿、青、蓝、紫,红光的波长范围为0.62μm~0.7μm,比红光波长还长的光叫红外线。红外线遥控器就是利用波长0.76μm~1.5μm 之间的近红外线来传送控制信号的。 红外线的特点是不干扰其他电器设备工作,也不会影响周边环境。电路调试简单,若对发射信号进行编码,可实现多路红外遥控功能。 红外线发射和接收 人们见到的红外遥控系统分为发射和接收两部分。发射部分的发射元件为红外发光二极管,它发出的是红外线而不是可见光。 常用的红外发光二极管发出的红外线波长为 940nm 左右,外形与普通φ5mm 发光二极管相同,只是颜色不同。一般有透明、黑色和深蓝等三种。判断红外发光二极管的好坏与判断普通二极管一样的方法。单只红外发光二极管的发射功率约100mW。红外发光二极管的发光效率需用专用仪器测定,而业余条件下,只能凭经验用拉距法进行粗略判定。 接收电路的红外接收管是一种光敏二极管,使用时要给红外接收二极管加反向偏压,它才能正常工作而获得高的灵敏度。红外接收二极管一般有圆形和方形两种。由于红外发光二极管的发射功率较小,红外接收二极管收到的信号较弱,所以接收端就要增加高增益放大电路。然而现在不论是业余制作或正式的产品,大都采用成品的一体化接收头。红外线一体化接收头是集红外接收、放大、滤波和比较器输出等的模块,性能稳定、可靠。所以,有了一体化接收头,人们不再制作接收放大电路,这样红外接收电路不仅简单而且可靠性大大提高。

红外遥控器的协议 ?鉴于家用电器的品种多样化和用户的使用特点,生产厂家对红外遥控器进行了严格的规范编码,这些编码各不相同,从而形成不同的编码方式,统一称为红外遥控器编码传输协议。了解这些编码协议的原理,不仅对学习和应用红外遥控器是必备的知识,同时也对学习射频(一般大于300MHz)无线遥控器的工作原理有很大的帮助。 到目前为止,笔者从外刊收集到的红外遥控协议已多达十种,如: RC5、SIRCS、 S ON y、 RECS80、Denon、NEC、Motorola、Japanese、SAMSWNG 和 Daewoo 等。我国家用电器的红外遥控器的生产厂家,其编码方式多数是按上述的各种协议进行编码的,而用得较多的有 NEC协议。 红外遥控器的结构特征 ?红外遥控发射器由键盘矩阵、遥控专用集成电路、激励器和红外发光二极管组成。遥控专用集成电路(采用 AT89S52 单片机)是发射系统的核心部分,其内部由振荡电路、定时电路、扫描信号发生器、键输入编码器、指令译码器、用户码转换器、数码调制电路及缓冲放大器等组成。它能产生键位扫描脉冲信号,并能译出按键的键码,再经遥控指令编码器得到某键位的遥控指令(遥控编码脉冲),由 38KHZ 的载波进行脉冲幅度调制,载有遥控指令的调制信号激励红外二极管发出红外遥控信号。 在红外接收器中,光电转换器件(一般是光电二极管或光电三极管,我们这里用的是 PIN 光电二极管)将接收到的红外光指令信号转换成相应的电信号。此时的信号非常微弱而且干扰特别大,为了实现对信号准确的检测和转换,除了高性能的红外光电转换器件,还应合理地选择并设计性能良好的电路形式。最常用的

相关文档
最新文档