文档库 最新最全的文档下载
当前位置:文档库 › NEC协议的红外遥控程序(任意IO口)

NEC协议的红外遥控程序(任意IO口)

/**************************************************************************** NEC_INF_S.h

用于NEC协议的遥控器与51单片机结合的驱动程序,可用任意IO口,不占用中断资源。用户码8位,分布于2-17个脉冲;按键码8位,分布于18-33个脉冲。

皆为前8原码,后8反码,并且接收数据时低位在前,高位在后。

主控器为51单片机,晶振频率为11.0592MHz。

注意:由于未用中断,所以信号的接收是靠查询方式的,可能会漏掉若干次红外信号。

*****************************************************************************/ #include

#define uchar unsigned char

#define uint unsigned int

#define N 5000//用于在while()中循环时超时跳出的数的上限,可小刀

sbit nec_dat=P3^3;//任意IO口,用到哪个自己改哪个

uchar nec_id[2]={0};//遥控器的编码号,第一个为原码,第二个为反码

uchar nec_data[2]={0};//遥控器的命令号,第一个为原码,第二个为反码

uchar nec_status=0;//遥控器的按键状态信息。0:无按键;1:一次按键;2:连续按键

uchar nec_actflag=0;//用于带到主函数里的按键响应标志。0:不动作;1:动作

#ifndef NEC_INF_S_h

#define NEC_INF_S_h

void nec_init();//初始化函数,注意一定要拉高,拉低就错误了

void nec_delay();//延时0.8ms左右,要求要非常精确,这是正确读数的关键

void nec_pulsedat();//读第2到第32个脉冲,第一个脉冲已判定

void nec_getdat();//扫描式读遥控器的数据,可能有时会扫描不到

#endif

void nec_init()//初始化函数,注意一定要拉高,拉低就错误了

{

nec_dat=1;

}

void nec_delay()//延时0.8ms左右,要求要非常精确,这是正确读数的关键

{

uchar i;

for(i=0;i<245;i++);

}

/*void nec_act()//按键响应程序,根据自己需要写

{

nec_getdat();//先扫描一遍红外信号

if(nec_actflag==1)//如果是正确的红外信号才处理,否则跳过

{

if(nec_data[0]==~nec_data[1])//验证所接收数据是否正确

{

switch(nec_data[0])//自己写所需要的程序段

{

case 69:/*点亮二极管,让蜂鸣器发声,什么都行,写在这里*/ break;

case 70: /*以下都一样,对应的遥控器按键见图1-1*/ break;

case 71: break;

case 68:break;

case 64:break;

case 67:break;

case 7:break;

case 21:break;

case 9:break;

case 22:break;

case 25:break;

case 13:break;

case 12:break;

case 24:break;

case 94:break;

case 8:break;

case 28:break;

case 90:break;

case 66:break;

case 82:break;

case 74:break;

}

}

nec_actflag=0;

}

}*/

void nec_pulsedat()//读第2到第32个脉冲,第一个脉冲已判定

{

uchar i=0;

uint num=0;

for(i=1;i<32;i++)

{

num=0;while((nec_dat==0)&&(num

nec_delay();

{

if((i>=1)&&(i<=7))nec_id[0]=nec_id[0]|(0x01<

if((i>=8)&&(i<=15))nec_id[1]=nec_id[1]|(0x01<<(i-8));

if((i>=16)&&(i<=23))nec_data[0]=nec_data[0]|(0x01<<(i-16));

if((i>=24)&&(i<=31))nec_data[1]=nec_data[1]|(0x01<<(i-24));

num=0;while((nec_dat==1)&&(num

}

else

{

if((i>=1)&&(i<=7))nec_id[0]=nec_id[0]&(~(0x01<

if((i>=8)&&(i<=15))nec_id[1]=nec_id[1]&(~(0x01<

if((i>=16)&&(i<=23))nec_data[0]=nec_data[0]&(~(0x01<

if((i>=24)&&(i<=31))nec_data[1]=nec_data[1]&(~(0x01<

}

}

}

void nec_getdat()//扫描式读遥控器的数据,可能有时会扫描不到

{

uint num=0;

if(nec_dat==1){num=0;while((nec_dat==1)&&(num

nec_delay();

if(nec_dat==0)

{

nec_delay();

if(nec_dat==0)

{

nec_delay();

if(nec_dat==0)

{

nec_delay();

if(nec_dat==0)

{

nec_status=1;

num=0;while((nec_dat==0)&&(num

num=0;while((nec_dat==1)&&(num

}

}

}

}

if(nec_status==1)

{

num=0;while((nec_dat==0)&&(num

if(nec_dat==1)

{

nec_delay();nec_delay();nec_delay();

if(nec_dat==1)nec_status=2;

else

{

nec_id[0]=0x01;

nec_pulsedat();

}

}

else

{

nec_id[0]=0x00;

nec_pulsedat();

}

nec_actflag=1;//一次按键的响应程序

}

if(nec_status==2)

{

//持续按键的响应程序

}

nec_status=0;//必须归零,非常重要

}

图1-1 红外遥控器按键对应的接收码图1-2 本程序使用的遥控器

注意:本程序适用于NEC协议的红外遥控器,但是每一款遥控器的按键码可能不同,需要自己找到自己手头上遥控器的按键码资料来对程序进行改动。本程序没有占用单片机的中断资源,但是直接导致的问题就是单片机不一定能接收到每次遥控器发来的信号,即其相应的灵敏度大打折扣了,不过对于一般小程序来说妨碍不大,建议在较大的程序中或者遥控部分非常重要的程序中使用带中断的红外驱动。记得把nec_act();这个函数放在主函数中的大循环中,要不断查询才能接收到红外信号的。

史上最全的红外遥控器编码协议

目录 1)MIT-C8D8 (40k) 2) MIT-C8D8(33K) 3)SC50560-001,003P 4)M50462 5)M50119P-01 6)M50119L 7)RECS80 8)M3004 9)LC7464M 10)LC7461-C13 11)IRT1250C5D6-01 12)Gemini-C6-A 13)Gemini-C6 14) Gemini-C17(31.36K)-1 15)KONKA KK-Y261 16)PD6121G-F 17)DATA-6BIT 18)Custum-6BIT 19)M9148-1 20)SC3010 RC-5 21) M50560-1(40K) 22) SC50560-B1 23)C50560-002P 24)M50119P-01 25)M50119P-1 26)M50119P 27)IRT1250C5D6-02 28)HTS-C5D6P 29)Gemini-C17 30)Gemini-C17 -2 31)data6bit-a 32)data6bit-c 33)X-Sat 34)Philips RECS-80 35)Philips RC-MM 36)Philips RC-6 37)Philips RC-5 38)Sony SIRC 39)Sharp 40)Nokia NRC17 41)NEC 42)JVC 43)ITT

44)SAA3010 RC-5(36K)45)SAA3010 RC-5(38K)46)NEC2-E2 47) NEC-E3 48) RC-5x 49) NEC1-X2 50) _pid:$0060 51) UPD1986C 52) UPD1986C-A 53) UPD1986C-C 54) MV500-01 55) MV500-02 56) Zenith S10

基于51单片机的红外遥控器设计

天津职业大学 二○一五~二○一六学年第1学期 电子信息工程学院 通信系统综合实训报告书 课程名称:通信系统综合实训 班级:通信技术(5)班 学号:1304045640 1304045641 1304045646姓名:韩美红季圆圆陈真真指导教师:崔雁松 2015年11月17日

一、任务要求 利用C51单片机设计开发一套红外线收发、显示系统。 具体要求: ●编写相关程序(汇编、C语言均可); ●用Proteus绘制电路图并仿真实现基本功能; ●制作出实物 二、需求分析(系统的应用场景、环境条件、参数等) 现在各种红外线技术已经源源不断进入我们的生活中,在很多场合发挥着作用。 机场、宾馆、商场等的自动门,会在人进出时自动地开启和关闭。原来,在自动门的一侧有一个红外线光源,发射的红外线照射到另一侧的光电管上,红外线是人体察觉不到的。当人走到大门口,身体挡住红外线,电管接收不到红外线了。根据设计好的指令,触发相应开关,就把门打开了。等人进去后,光电管又可以接到红外线,恢复原来的线路,门又会自动关闭。因此这种光电管被称为“电眼”,在许多自动控制设备中大显身手。 在家庭中,许多电子设备如彩色电视、空调、冰箱和音响等,都使用了各种“红外线遥控器”。利用它我们可以非常方便的转换电视频道或设定空调的温度档次。 三、概要设计(系统结构框图/系统工作说明流程图) 红外线收发、显示系统硬件由以下几部分组成:红外遥控器,51单片机最小系统,接收放大器一体集成红外接收头,LED灯显示电路。 红外线接收是把遥控器发送的数据(已调信号)转换成一定格式的控制指令脉冲(调制信号、基带信号),是完成红外线的接收、放大、解调,还原成发射格式(高、低电位刚好相反)的脉冲信号。这些工作通常由一体化的接收头来完成,输出TTL兼容电平。最后通过解码把脉冲信号转换成数据,从而实现数据的传输。 红外遥控系统电路框图

基于单片机的红外遥控系统设计

课程设计 基于单片机的红外遥控系统设计 学院:计算机与通信工程学院 专业:通信工程 班级:通信11-3班 姓名: 学号:

天津理工大学 摘要 本设计采用51单片机作为遥控发射接收芯片,HS003B作为红外一体化接收发射管,在此基础上设计了一个简易的智能红外遥控系统。系统包括接收和发射两大部分,发射部分有16个按键,接收部分含有8盏彩色LED灯、一片二位数码管和蜂鸣器系统。发射部分通过键盘扫描判断哪个键被按下,经过单片机编码程序进行编码,控制红外发射电路发送信号。接收部分解码信号,实现相应的输出。本设计方案结合红外遥控设计简单、作方便、成本低廉等特点。 关键字:红外遥控信号调制编码解码

天津理工大学 目录 摘要................................................................................................................................................... I I 1.绪论 (1) 1.1课题目的和意义 (1) 1.2红外线简介 (1) 1.3红外遥控系统简介 (1) 2 课题方案和设计思路 (2) 2.1总体方案 (2) 2.2红外发射器设计 (3) 2.2.1红外发射器原理 (3) 2.2.2红外编码 (3) 2.3红外接收端设计 (4) 3硬件结构设计与介绍 (5) 3.1AT89C51系列单片机功能特点 (5) 3.1.1主要特性 (5) 3.1.2管脚说明 (5) 3.1.3基本电路 (7) 3.2红外发射电路 (8) 3.3红外接收电路设计 (9) 3.3.1红外接收模块 (9) 3.3.2数码管 (9) 3.3.3彩灯系统 (10) 3.3.4蜂鸣器系统 (11) 3.3.5红外接收端电路图 (12) 4 软件设计 (12) 4.1定时/计数器功能简介 (12) 4.2遥控码的发射 (13) 4.3红外接收 (14) 5.课程设计总结和心得 (15) 参考文献 (16) 附录 (17) 附录1P ROTEUS仿真图 (17) 附录2发射程序 (17) 附录3接收程序 (20)

单片机红外遥控原理

红外遥控原理 人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为0.62~0.76um;紫光的波长范围为0.38~0.46。比紫光的波长还要短的光叫紫外线,比红光的波长还要长的光叫红外线。红外线遥控技术就是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的。常用的红外遥控系统一般分发射和接收两个部分。发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通5发光二极管相同,只是颜色不同。红外发光二极管一般有黑色、深蓝、透明三种颜色。判断红外发光二极管好坏的办法与判断普通二极管一样:用万用表电阻挡量一下红外发光二极管的正、反向电阻即可。红外发光二极管的发光效率要用专门的仪器才能精确测定,而业余条件下只能用拉距法来粗略判定。接收部分的红外接收管是一种光敏二极管。 在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红外接收二极管一般有圆形和方形两种。由于红外发光二极管的发射功率都较小,所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。 前些年常用μPC1373H、CX20106A等红外接收专用放大电路。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正、电源负和数据输出(VO或OUT)。红外接收

红外遥控协议

红外遥控器的基本原理 红外线的特点人的眼睛能看到的可见光,若按波长排列,依次(从长到短)为红、橙、黄、绿、青、蓝、紫,红光的波长范围为0.62μm~0.7μm,比红光波长还长的光叫红外线。红外线遥控器就是利用波长0.76μm~1.5μm之间的近红外线来传送控制信号的。 红外线的特点是不干扰其他电器设备工作,也不会影响周边环境。电路调试简单,若对发射信号进行编码,可实现多路红外遥控功能。 红外线发射和接收 人们见到的红外遥控系统分为发射和接收两部分。发射部分的发射元件为红外发光二极管,它发出的是红外线而不是可见光。 常用的红外发光二极管发出的红外线波长为940nm 左右,外形与普通φ5mm 发光二极管相同,只是颜色不同。一般有透明、黑色和深蓝等三种。判断红外发光二极管的好坏与判断普通二极管一样的方法。单只红外发光二极管的发射功率约100mW。红外发光二极管的发光效率需用专用仪器测定,而业余条件下,只能凭经验用拉距法进行粗略判定。 接收电路的红外接收管是一种光敏二极管,使用时要给红外接收二极管加反向偏压,它才能正常工作而获得高的灵敏度。红外接收二极管一般有圆形和方形两种。由于红外发光二极管的发射功率较小,红外接收二极管收到的信号较弱,所以接收端就要增加高增益放大电路。然而现在不论是业余制作或正式的产品,大都采用成品的一体化接收头。红外线一体化接收头是集红外接收、放大、滤波和比较器输出等的模块,性能稳定、可靠。所以,有了一体化接收头,人们不再制作接收放大电路,这样红外接收电路不仅简单而且可靠性大大提高。红外遥控器的协议 鉴于家用电器的品种多样化和用户的使用特点,生产厂家对红外遥控器进行了严格的规范编码,这些编码各不相同,从而形成不同的编码方式,统一称为红外遥控器编码传输协议。了解这些编码协议的原理,不仅对学习和应用红外遥控器是必备的知识,同时也对学习射频(一般大于300MHz)无线遥控器的工作原理有很大的帮助。 到目前为止,笔者从外刊收集到的红外遥控协议已多达十种,如:RC5、SIRCS、Sony、RECS80、Denon、NEC、Motorola、Japanese、SAMSWNG 和Daewoo 等。我国家用电器的红外遥控器的生产厂家,其编码方式多数是按上述的各种协议进行编码的,而用得较多的有NEC协议。 红外遥控器的结构特征 红外遥控发射器由键盘矩阵、遥控专用集成电路、激励器和红外发光二极管组成。遥控专用集成电路(采用AT89S52 单片机)是发射系统的核心部分,其内部由振荡电路、定时电路、扫描信号发生器、键输入编码器、指令译码器、用户码转换器、数码调制电路及缓冲放大器等组成。它能产生键位扫描脉冲信号,并能译出按键的键码,再经遥控指令编码器得到某键位的遥控指令(遥控编码脉冲),由38KHZ 的载波进行脉冲幅度调制,载有遥控指令的调制信号激励红外二极管发出红外遥控信号。 在红外接收器中,光电转换器件(一般是光电二极管或光电三极管,我们这里用的是PIN 光电二极管)将接收到的红外光指令信号转换成相应的电信号。此时的信号非常微弱而且干扰特别大,为了实现对信号准确的检测和转换,除了高性能的红外光电转换器件,还应合理地选择并设计性能良好的电路形式。最常用的光电转换器件是光电二极管,当光电二极管PN 结的光敏面受到光照射后,PN 结的半导体材料吸收光能,并将光能转换为电能。当光电二极管上加有反向电压时,二极管中的反向电流将随入射光照强度的变化而变化,光的辐照强度越大,其反向电流越大。也就是说,光电二级管的反向电流随入射的光脉冲作同频率

红外遥控原理及解码程序

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

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

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

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) {

NEC协议的红外遥控器驱动程序

创作编号:BG7531400019813488897SX 创作者:别如克* 是不是觉得红外遥控+51单片机是绝妙组合?但是在编程时才发现超级纠结?其实也没那么纠结,自己摸索摸索,总能找出办法来的。 本程序占用了51单片机的定时器0以及中断1两个资源,为的是使单片机能接收到每一个红外脉冲信号,一个都不能少。如果舍不得用这两个资源,还有另一种查询的办法,就是不一定每个信号都能收到,可自己琢磨一下。

需要全套NEC协议红外遥控器资料的,到网上找,到处都有,而且很全。 另外,对着资料写程序如果实在写不出,可以找个示波器,把波形录下来好好研究研究。毕竟有些时候资料会过时,只要里面有一点东西变化了,程序就完全不一样了。这种弯路,尽量少走。 本程序只是头文件,具体到应用上还要各位自己动脑筋了,希望对大家有所帮助。共同学习,共同进步! /****************************************************************** INF_NEC.h 用于NEC协议的遥控器,主控器为51单片机。用户码8位,分布于2-17个脉冲;按键码8位,分布于18-33个脉冲。皆为前8原码,后8反码。 注意:本驱动占用51单片机的外部中断1以及定时器0两个资源,编程时注意 不要再乱动这两个资源。 *******************************************************************/ #include #define uchar unsigned char #define uint unsigned int uchar nec_flag=0;//nec_flag:遥控码的标志位。0:无信号;1、2:信号采集;3、可用信号 uchar nec_num=0;//nec_num:红外码的序号 uint nec_time=0;//nec_time:定时器的计时次数nec_time*250us uchar nec_cod[2]={0,1};//遥控器的编号,编号0为原码,编号1为反码 uchar nec_dat[2]={0,1};//遥控器的数据,数据0为原码,数据1为反码 #ifndef __INF_NEC__ #define __INF_NEC__ extern void nec_init(); extern void nec_act(); #endif void nec_init() //外中断1及定时器0的初始化函数 { TMOD=(TMOD&0xf0)|0x02; //定时器0模式2,8位自动重装 TH0=0x19; TL0=0x19; //11.0592MHz晶振,计数230次,大概时间250us ET0=1;TR0=0; //定时器0使能,先关着 IT1=1;EX1=1; //外部中断1使能,用来接收红外信号

红外遥控控制系统设计

河南科技学院机电学院单片机课程设计报告 题目:红外遥控控制系统设计 专业班级:电气工程及其自动化103 姓名:张明军 时间:2012.12.15 ~2012.12.28 指导教师:田丰庆邵锋张素君完成日期:2012年12月28 日

红外遥控控制课程设计任务书 1.设计目的与要求 设计出一个用于红外遥控控制的控制器。准确地理解有关要求,独立完 成系统设计,要求所设计的电路具有以下功能: (1)有效遥控距离大于10米。 (2)遥控控制的路数在5路以上。 (3)采用数码管显示当前工作的控制电路。 (4)通过遥控器可以任意设置用户密码(1-16位长度),只有合法用户才能有修改电路控制的功能,同时系统掉电后能自动记忆和存储密码在系统中。 (5)密码的输入时间超过12秒或者连续3次输入失败,声音报警同时锁定系统,不让再次输入密码。此时只有使用管理员密码方能对系统解锁。 2.设计内容 (1)画出电路原理图,正确使用逻辑关系; (2)确定元器件及元件参数; (3)进行电路模拟仿真; (4)SCH文件生成与打印输出; 3.编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。 4.答辩 在规定时间内,完成叙述并回答问题。 论文结构清晰,层次分明,理论严谨

目录 1引言 (1) 2总体设计方案 (2) 2.1 设计思路 (2) 2.2设计方框图 (3) 3设计原理分析 (4) 3.1发射电路设计 (4) 3.2接收电路设计 (7) 3.3 软件设计 (9) 4 结束语 (12) 参考文献 (13) 附录一 (14) 附录二 (15)

红外遥控控制系统 摘要:本设计由发射器和接收器两部分组成。指令键、指令信号产生电路、调制电路、驱动电路及红外线发射器组成。当指令键被按下时,指令信号产生电路便产生所需要的控制信号,控制指令信号经调制电路调制后,最终由驱动电路驱动红外线发射器,发出红外线遥控指令信号。 接收器由红外线接收器件、前置放大电路、解调电路、指令信号检出电路、记忆及驱动电路、执行电路组成。当红外接收器件收到发射器的红外指令信号时,它将红外光信号变成电信号并送到前置放大电路进行放大,再经过解调器后,由信号检出电路将指令信号检出,最后由记忆电路和驱动电路驱动执行电路,实现各种操作。 控制信号一般以某些不同的特征来区分,常用的区分指令信号的特征是频率和码组特征,即用不同的频率或者编码的电信号代表不同的指令信号来实现遥控。所以红外遥控系统通常按照产生和区分控制指令信号的方式和特征分类,常分为频分制红外线遥控和码分制红外线遥控。 关键词:4×4矩阵键盘;AT89C51;接收器件;震荡特性 1 引言 红外线遥控是目前使用很广泛的一种通信和遥控技术。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可*而且能有效地隔离电气干扰。 远程遥控技术又称为遥控技术,是指实现对被控目标的遥远控制,在工业控制、航空航天、家电领域应用广泛。红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备广泛采用,并越来越多的应用到计算机系统中。红外线又称红外光波,在电磁波谱中,光波的波长范围为 0.01um~1000um 。根据波长的不同可分为可见光和不可见光,波长为0.38um~0.76um 的光波可为可见光,红外线遥控是利用近红外光传送遥控指令的,波长为0.76um~1.5um 。用近红外作为遥控光源,是因为目前红外发射器件( 红外发光管 ) 与红外接收器件 ( 光敏二极管、三极管及光电池 ) 的发光与受光峰值波长一般为 0.8um~0.94um ,在近红外光波段内,二者的光谱正好重合,可获得较高的传输效率及较高的可靠性。随着远程教育系统的不断发展和日趋完善,利用多媒体作为教学手段各级各类学校都得到了广泛应用。但经常会遇到同时使用多种设备,如: DVD 、 VCD 、录像机、电视机等,由于各种设备都自带遥控器,而且不同的设备所遵循的红外传输规约也不尽相同,操纵这些设备得用多种控器,给使用者带来了诸多不便。基于单片机的控制指令来对多种设备进行远程控制,从而方便快捷的实现远程控制。红外遥控的特点是不影响周边环境的、于10 米)遥控中得到了广泛的应用。

红外遥控器设计(方案)(1)

毕业实践环节毕业设计(典型性项目)说明书红外遥控器设计(方案)

毕业论文(设计)原创性声明 本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名:日期: 毕业论文(设计)授权使用说明 本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名:指导教师签名: 日期:日期:

注意事项 1.设计(论文)的内容包括: 1)封面(按教务处制定的标准封面格式制作) 2)原创性声明 3)中文摘要(300字左右)、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入) 6)论文主体部分:引言(或绪论)、正文、结论 7)参考文献 8)致谢 9)附录(对论文支持必要时) 2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。 3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。 4.文字、图表要求: 1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写 2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印 4)图表应绘制于无格子的页面上 5)软件工程类课题应有程序清单,并提供电子文档

c51、c52单片机红外线遥控接收解码c程序(可直接使用)

/ 亲,此程序以经过测试,可直接使用!!!/ #include #define uchar unsigned char #define uint unsigned int void delay(uchar x); sbit IRIN = P3^2; uchar IRCOM[4]; void main() { IE = 0x81; TCON = 0x01; IRIN=1; /* 此处可以根据按键码自由编写程序 /以下为3*7遥控按键码/ /(也可以应用与其他类型遥控,本程序只以3*7遥控为例)/ / 0x45 0x46 0x47 / / 0x44 0x40 0x43 / / 0x07 0x15 0x09 / / 0x16 0x19 0x0d / / 0x0c 0x18 0x5e / / 0x08 0x1c 0x5a / / 0x42 0x52 0x4a / 例如: while(1) {switch(IRCOM[2]) {case 0x45: P2=0x7f; break; case 0x44: P2=0xbf; break; case 0x07: P2=0xdf; break; case 0x16: P2=0xef; break; case 0x0c: P2=0xf7; break; case 0x08: P2=0xfb; break; case 0x42: P2=0xfd; break; case 0x52: P2=0xfe; break; case 0x4a: P2=0xff; break; case 0x5a: P2=0x00; break;} } */ while(1); } //end main /**********************************************************/ void IR_IN(void) interrupt 0 //外部中断服务程序 {unsigned char j,k,N=0; EX0 = 0; delay(15); if (IRIN==1) { EX0 =1;

HR168智能红外遥控器的通讯协议

HR168智能红外遥控器通信协议: HR168空调遥控器与监控主机之间采用RS485连接,波特率9600,校验方式为N/8/1。 第1字节第2字节第3字节第4字节第5字节第6字节 第7字节 说明:长度固定,共7个字节。累加和为第2字节到第6字节的和,高位舍去,是在转义之前处理。 转义字符:7DH为转义字符,转义符后的字节的第6位取反(bit5)。同步字节后的字节如有以下几种情况,需使用转义符:值为7eH或7dH或小于20H。7EH表示为7d5e,7DH表示为7D5D,01H表示为7D21。 主机地址:00H-FFH(0-255) 遥控器地址:00H-0FH(0-15) 命令码定义: F0:取遥控器设置 F1:取遥控器版本 00:设置遥控器 F2::设置遥控器的确认 监控主机在发出命令后2秒还没有收到回应则重发,三次后视为失败。 第4字节:00H,表示设置遥控器 第5字节: 第6字节:保留,设成00H 第7字节:校验和,是第2-6字节的累加和

确认信号(空调遥控器发送到监控主机) 空调遥控器接收到监控主机发来的设置数据包后立即处理,如果数据包正确,立即发回确认信号,否则不发回任何数据,等待接收新的指令和数据。 状态数据包,数据包格式同“状态设置数据包”。 4、取遥控器版本 回应:格式同上 第5字节:主版本号, 第6字节:高四位从版本1,第四位从版本2 如第5、6两字节的数据为0x0532,则代表版本为5.3.2。 发送命令举例: 遥控器地址为15的取遥控器版本 7E 7D 20 7D 20 F1 7D 20 7D 20 F1 遥控器地址为15的取遥控器设置 7E 7D 20 7D 20 F0 7D 20 7D 20 F0 遥控器地址为15的状态设置 7E 7D 20 7D 20 7D 20 88 7D 20 88 遥控器地址为15的取遥控器版本 7E 7D 20 7D 2F F1 7D 20 7D 20 7D 20

红外遥控接收程序

#include "remote.h" UINT IrCode; //高8位为系统码,低八位为数据码 /*************************************************************************** *FUNCTION NAME: DelayIr *CREATE DATE: 2012/6/7 *CREATED BY: XS *FUNCTION: IR采样延时:0.14ms *MODIFY DATE: 2012/6/7 *INPUT: 无 * *RETURN: 无 ***************************************************************************/ void DelayIr(UCHAR timer) { UCHAR i; while(timer--) { for (i = 0; i<13; i++); } } /*************************************************************************** *FUNCTION NAME: RemoteDecode *CREATE DATE: 2012/6/7 *CREATED BY: XS *FUNCTION: IR遥控解码 *MODIFY DATE: 2012/6/7 *INPUT: 无 * *RETURN: 无 ***************************************************************************/ void RemoteDecode(void) { UCHAR i,j,n = 0; UCHAR irDat[4] = {0}; EX0 = 0;

基于单片机的红外遥控系统设计

单片机红外遥控系统设计 随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的遥控系统开始进入了人们的生活。传统的遥控器采用专用的遥控编码及解码集成电路,这种方法虽然制作简单、容易,但由于功能键数及功能受到特定的限制,只实用于某一专用电器产品的应用,应用范围受到限制。而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随便设定等优点。 本设计主要应用了AT89C51单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识,应用红外光的优点,设计了一个红外线遥控系统。本系统包含发射和接收两大部分,利用编码/解码芯片来进行控制操作。发射部分包括键盘矩阵、编码调制、LED 红外线发射器;接收部分包括红外线接收芯片、光电转换器、调解电路。其优点硬件电路 简单,软件功能完善,性价比较高等特点,具有一定的使用和参考价值。 关键词:单片机AT89C51;LED红外线发射器

目录 目录 (2) 1 绪论 (2) 1.1研究背景 (2) 1.2国内外研究现状 (3) 1.3研究目的与意义 (3) 2系统方案设计论证 (5) 2.1单片机红外遥控发射器设计原理 (5) 2.2单片机红外遥控接收器设计原理 (5) 2.3方案选择和论证 (6) 3红外解码硬件电路设计 (8) 3.1红外解码系统设计 (8) 3.2单片机及其硬件电路设计 (8) 3.3红外发射电路设计 (10) 3.4红外接收电路设计 (11) 3.5本章小结 (13) 4红外解码程序设计 (14) 4.1红外接收电路主程序流程图 (14) 4.2红外接收电路子程序流程图 (14) 4.3本章小结 (15) 5 联机与调试 (16) 结论和展望 (23) 附录A:系统原理图 (24) 附录B:系统PCB图 (25) 附录C:系统仿真图 (26) 附录D:系统源程序 (27) 1 绪论 1.1研究背景 目前市场上采用的一般是遥控编码及解码集成的电路。此方案的特点是制作简单、容

智能红外遥控器的设计-(毕业论文)

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

Abstract In the electronic world, the infrared remote control technology is widely used in our lives. Various appliances on the market have the technology of infrared remote control system with maturity and low cost. However, to avoid different brands and between different types of equipment malfunction, people use different devices in different transport rules or identification number, which makes various types of remote control apply only to their remote objects and easy causes confusing results that the actual use of the remote control are many and complex. The design requirements is to achieve an intelligent learning IR remote control implementations. By studying infrared codec, infrared transmitting and receiving, MCU control, LCD display technology, remote control of other learning and learning sent successfully restored infrared remote control system.Key and core part of the design is that through software decoding it can achieve the self-study function of the infrared signal and be controlled by MCU to make the learned signal in store and forward. Keywords: Infrared remote controller;The 38KHZ carrier;Self-study;Infrared remote receiver;Infrared remote transmitter

红外遥控课程设计

单片机与接口技术课程设计 题目: 基于单片机红外线遥控控制 LED灯显示系统设计与制作班级:电子科学与技术1101 姓名:李婷 学号:110803025 2013年12月11日

目录 第一章设计要求 (3) 第二章硬件系统设计 (3) 2.1基于单片机红外线遥控控制LED灯显示系统框架图 (3) 2.2单片机控制系统及其基本电路 (4) 2. 2.1 单片机最小系统 (4) 2.2.2时钟电路 (5) 2.2.3复位电路 (5) 2.3基于单片机红外遥控控制LED系统的设计原理 (6) 2.3.1单片机红外遥控控制LED显示系统原理 (6) 2.3.2单片机红外遥控控制LED系统码分制原理 (7) 2.4红外遥控发射系统电路设计 (8) 2.4.1指令按键电路 (8) 2.4.2 发射电路 (9) 2.4.3 显示模块 (9) 2.5红外遥控接收系统电路设计 (11) 2.5.1接收电路 (11) 2.5.2 LED灯显示电路 (11) 2.6硬件原理图 (12) 第三章软件系统设计 (12) 3.1 红外线发射电路程序流程图设计 (13) 3.2 红外线接收电路程序流程图设计 (13) 第四章系统测试与分析 (14) 4.1 利用Proteus和keil进行仿真调试 (14) 4.2 仿真图 (16) 第五章总结 (18) 附录1 (18) 附录2 (22) 参考文献 (25)

赣南师范学院 2013 — 2014 学年第_1_学期课程论文行政班级:电子科学与技术1101 学号:110803025 姓名:李婷

图2-1 系统的设计总框图 2.2单片机控制系统及其基本电路 2.2.1单片机最小系统 单片机晶振电路:对于MSC-51一般的晶振频率可以在1.2MHz—12MHz 之间选择,这是电容C可以对应的选择10pF—30pF。当使用89C55时晶振频率可以提高到24MHZ。对于本设计的电容C用30pF,晶振选用11.0592MHz。晶振电路如下图3-1所示,一条引脚接在XTAL1,另一条接在XTAL2。单片机的复位电路:为了防止程序执行过程中失步或运行紊乱,此处采用了上电复位及手动复位电路,电路图如下图2-1所示: 图2-2-1 单片机最小系统图

相关文档