文档库 最新最全的文档下载
当前位置:文档库 › 红外遥控控制程序(已知编码)

红外遥控控制程序(已知编码)

红外遥控控制程序(已知编码)
红外遥控控制程序(已知编码)

本程序适用于已经知道遥控器每个按键编码的场合(如果不知道手上的遥控器按键编码是什么可以使用我编写的红外遥控按键编码学习程序进行检测,能够测出未知红外遥控器的按键编码),在知道编码后可以根据实际安排自行定义按键功能,从而编写出红外遥控控制程序。本程序适用于NEC协议,其他协议尚未尝试,以后有机会的话去试试。在使用的过程中如果遇到问题可以随时和我交流,我的百度文库是:liuzs09

#include

/**********宏定义*********/

#define LCD_RW P1_1 //定义LCD引脚,控制口

#define LCD_RS P1_2

#define LCD_E P1_0

#define LCD_Data P2 //数据传送口

///#define Busy 0x80 //用于检测LCD状态字中的Busy标识

#define HWport P3_2

unsigned char HW_addrH,HW_addrL,flag=1,HW_uData,HW_Data;

/**************函数声明*************/

void LCDInit(void);

void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);

void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);

void Delay5Ms(void);

void WriteDataLCD(unsigned char WDLCD);

void WriteCommandLCD(unsigned char WCLCD,BuysC);

void ReadStatusLCD(void);

void delay1s(void)

{

unsigned char h,i,j,k;

for(h=5;h>0;h--)

for(i=4;i>0;i--)

for(j=116;j>0;j--)

for(k=214;k>0;k--);

}

//5ms延时

void Delay5Ms(void)

{

unsigned int TempCyc = 5552;

while(TempCyc--);

}

//读状态,检测忙

void ReadStatusLCD(void)

{

LCD_Data = 0xFF;

LCD_RS=0;

LCD_RW=1;

LCD_E=0;

LCD_E=0;

LCD_E=1;

while (LCD_Data & 0x80); //检测忙信号

// return(LCD_Data);

}

//写数据

void WriteDataLCD(unsigned char WDLCD)

{

ReadStatusLCD(); //检测忙

LCD_Data=WDLCD;

LCD_RS=1;

LCD_RW=0;

LCD_E=0; //若晶振速度太高可以在这后加小的延时

LCD_E=0; //延时

LCD_E=1;

}

//写指令

void WriteCommandLCD(unsigned char WCLCD,BuysC) //BuysC为0时忽略忙检测{

if (BuysC)

ReadStatusLCD(); //根据需要检测忙

LCD_Data = WCLCD;

LCD_RS=0;

LCD_RW=0;

LCD_E=0;

LCD_E=0;

LCD_E=1;

}

void LCDInit(void) //LCD初始化

{

LCD_Data=0;

WriteCommandLCD(0x38,0); //三次显示模式设置,不检测忙信号

Delay5Ms();

WriteCommandLCD(0x38,0);

Delay5Ms();

WriteCommandLCD(0x38,0);

Delay5Ms();

WriteCommandLCD(0x38,1); //显示模式设置,开始要求每次检测忙信号

WriteCommandLCD(0x08,1); //关闭显示

WriteCommandLCD(0x01,1); //显示清屏

WriteCommandLCD(0x06,1); // 显示光标移动设置

WriteCommandLCD(0x0F,1); // 显示开及光标设置

Delay5Ms();

}

//按指定位置显示一个字符

void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)

{

Y&=0x1;

X&=0xF; //限制X不能大于15,Y不能大于1

if (Y) X|=0x40; //当要显示第二行时地址码+0x40;

X|=0x80; //算出指令码

WriteCommandLCD(X, 1); //发命令字

WriteDataLCD(DData); //发数据

}

//按指定位置显示一串字符

void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData) {

unsigned char ListLength;

ListLength = 0;

Y &= 0x1;

X &= 0xF; //限制X不能大于15,Y不能大于1

while (DData[ListLength]>0x19) //若到达字串尾则退出

{

if (X <= 0xF) //X坐标应小于0xF

{

DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符

ListLength++;

X++;

}

}

}

void HW_ctrl(void) //相应按键功能分配,此处使用显示屏{ //虚拟按键的动作,可以根据需要进switch (HW_Data) //自行修改编码和按键动作

{

case 69: DisplayOneChar(0,0,'1'); break; //按键1,编码u

case 70: DisplayOneChar(0,0,'2'); break; //按键2,编码v

case 71: DisplayOneChar(0,0,'3'); break; //按键3,编码w

case 68: DisplayOneChar(0,0,'4'); break; //按键4,编码t

case 64: DisplayOneChar(0,0,'5'); break; //按键5,编码p

case 67: DisplayOneChar(0,0,'6'); break; //按键6,编码s

case 7: DisplayOneChar(0,0,'7'); break; //按键7,编码7

case 21: DisplayOneChar(0,0,'8'); break; //按键8,编码E

case 9: DisplayOneChar(0,0,'9'); break; //按键9,编码9

case 22: DisplayOneChar(0,0,'a'); break; //按键10,编码F

case 25: DisplayOneChar(0,0,'b'); break; //按键11,编码I

case 13: DisplayOneChar(0,0,'c'); break; //按键12,编码=

case 12: DisplayOneChar(0,0,'d'); break; //按键13,编码<

case 24: DisplayOneChar(0,0,'e'); break; //按键14,编码H

case 94: DisplayOneChar(0,0,'f'); break; //按键15,编码01011110

case 8: DisplayOneChar(0,0,'g'); break; //按键16,编码8

case 28: DisplayOneChar(0,0,'h'); break; //按键17,编码L

case 90: DisplayOneChar(0,0,'i'); break; //按键18,编码01011010

case 66: DisplayOneChar(0,0,'j'); break; //按键19,编码r

case 82: DisplayOneChar(0,0,'k'); break; //按键20,编码01010010

case 74: DisplayOneChar(0,0,'l'); break; //按键21,编码z

default: break;

}

}

//读取一个字节

unsigned char Readchar_HW(void)

{

unsigned char i,temp;

unsigned int TimeH,TimeL;

for(i=8;i>0;i--)

{

temp=temp>>1; //temp中的各数据位右移一位,因为先读出的是高位数据

TH0=0; //定时器清0

TL0=0; //定时器清0

TR0=1; //开启定时器T0

while(HWport==0); //如果是低电平就等待,低电平计时

TR0=0; //关闭定时器T0

TimeL=TH0*256+TL0; //保存低电平宽度

TH0=0; //定时器清0

TL0=0; //定时器清0

TR0=1; //开启定时器T0

while(HWport==1) ; //如果是高电平就等待

TR0=0; //关闭定时器T0

TimeH=TH0*256+TL0; //保存高电平宽度

if((TimeL<250)||(TimeL>800))

{

flag=0; //如果低电平长度不在合理范围,则认为出错,停止解码

break;

}

if((TimeH>400)&&(TimeH<700)) //如果高电平时间在560微秒左右,即计数560/1.085=560次

temp=temp&0x7f; //(560-100=460, 560+100=660),则该位是0

if((TimeH>1300)&&(TimeH<1900)) //如果高电平时间在1680微秒左右,即计数1680/1=1680次

temp=temp|0x80; //(1680-250=1430,1550+250=1930),则该位是1

}

return temp;

}

//读取所有数据

void Read_HW(void)

{

// unsigned char b[7];

HW_addrH=Readchar_HW();

if(flag)

// DisplayOneChar(6,1,flag+0x30);

HW_addrL=Readchar_HW();

if(flag)

//DisplayOneChar(7,1,flag+0x30);

HW_Data=Readchar_HW();

if(flag)

HW_uData=Readchar_HW();

if((HW_Data==~HW_uData)&flag)

{

flag=1;

}

else

{

flag=0;

}

//DisplayOneChar(9,1,flag+0x30);

// HW_uData=~HW_uData;

//DisplayOneChar(6,0,HW_uData+0x30); //DisplayOneChar(4,0,HW_Data+0x30); // DisplayOneChar(8,0,HW_addrH+0x30); //DisplayOneChar(10,0,HW_addrL+0x30);

}

//红外接收中断

void Int0_hongwai(void) interrupt 0

{

unsigned int TimeH,TimeL;

EX0=0;

TH0=0; //定时器清0

TL0=0;

TR0=1;

while(HWport==0);

TR0=0;

TimeL=TH0*256+TL0;

TH0=0; //定时器清0

TL0=0;

TR0=1;

while (HWport==1);

TR0=0;

TimeH=TH0*256+TL0;

TH0=0;

TL0=0;

if((TimeL>8500)&&(TimeL<9500)&&(TimeH>3600)&&(TimeH<4800))

{

// DisplayOneChar(7,0,'h');

Read_HW();

if(flag)

{

if((HW_addrH==0)&&(HW_addrL==255)) //用户码识别

{

HW_ctrl();

}

else

{

WriteCommandLCD(0x01,1); //显示清屏

DisplayOneChar(0,1,'m');

}

// DisplayOneChar(0,0,HW_addrH+0x30);

//DisplayOneChar(2,0,HW_addrL+0x30);

}

else

{

delay1s();

DisplayListChar(0,0,"jieshoushibai");

flag=1;

delay1s();

WriteCommandLCD(0x01,1); //显示清屏

}

}

EX0=1;

}

//主函数

void main()

{

TMOD=0x01; //T0工作模式为1

IT0=1; //INT0外中断的下降沿触发ET0=1; //开定时器0

EX0=1; //开INT0

EA=1;

LCDInit();

TR0=0; //关闭T0

TH0=0; //初始化T0

TL0=0;

DisplayListChar(0,1,"hongwai");

while (1);

}

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

目录 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

红外遥控器电路(接收电路)

电子技术基础课程设计任务书2014-2015学年第一学期第18周-19周

目录 1、总体方案的设计与选择........................... 错误!未定义书签。 1.1、选题及要求 (1) 1.2、原理与方案 (1) 1.2.1、红外线与红外接收二极管 (1) 1.2.2、红外接收电路 (1) 1.2.3、电源电路 (3) 1.2.4、红外接收总电路 (3) 1.2.5、元器件的选择 (4) 1.2.3方案确定 (4) 2、总电路图,印刷图及相关说明 (5) 2.1、原理图 (5) 2.2、清单图 (5) 2.3、PCB (6) 2.4、PCB三维图 (6) 2.5、PCB板3D显示图 (7) 3、计算机仿真及相关说明 (9) 3.1、仿真电路图 (9) 3.2、仿真过程 (9) 4、电路制作与调试 (11) 4.1、元件确定 (11) 4.2、元件检测 (11) 4.3、仪表仪器 (11) 4.4、电路板制作 (11) 4.5、电路板调试 (13) 4.6、调试常见故障与处理方法 (15) 5、心得体会 (16) 6、参考文献 (17)

引言 随着时代的发展,人民的生活水平不断提高,各种家用电器设备也随之进入千家万户,一些家用电器开关在使用的时候非常麻烦,为了方便大家使用,现在社会上也设计出了各种各样的控制开关,其中包括红外遥控开关,红外遥控是目前家用电器中用的较多的遥控方式。 红外遥控有以下特点: 1、抗干扰能力强。由于其无法穿透墙壁,故不同房间的家用电器可以使用通用的遥控器而不会产生相互的干扰; 2、电路调试简单,操作简单; 3、成本低,符合大众消费观念。 由于其抗干扰能力强,操作简单等诸多有点,红外遥控已经广泛应用于彩色电视机、DVD、空调、组合音响等各种家用电器上。 基于红外遥控发射与接收原理,我们小组设计了一款简易红外遥控电路,通过这个设计,不仅可以明白红外遥控的工作原理,还能在之后自己DIY红外遥控开关。相信通过这个设计也能让其他人对红外遥控开关的工作原理有进一步的了解。

红外遥控信号的解码

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

单片机红外电视遥控器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为发射波形图。

红外遥控课程设计

单片机与接口技术课程设计 题目: 基于单片机红外线遥控控制 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 单片机最小系统图

红外线遥控器解码程序

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

红外遥控编码原理及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); }

红外遥控器信号接收和显示的设计1

电子电路综合设计总结报告 题目:红外遥控器信号接收和显示的设计 摘要: 随着电子技术的发展,红外遥控器越来越多的使用到电器设备中,但各种型号遥控器的大量使用带来的遥控器大批量多品种的生产,使得检测成为难题,因此智能的红外遥控器检测装置成为一种迫切的需要。在该红外遥控器信号的接收和显示电路以单片机和一体化红外接收器为核心技术,具体由单片机最小系统、单片机和PC机间的通信模块、红外接收模块、数码管显示模块和流水灯模块组成。在本系统的设计中,利用红外接收器接收遥控器发出的控制信号,并通过软件编程将接收信号存储、处理、比较,并将数据处理送至数码管显示模块。总之,通过对电路的设计和实际调试,可以实现红外遥控器信号的接收和显示功能。根据比较接收信号的不同,在数码管显示电路及流水灯电路上显示相应的按键数字或闪烁变化功能,并可实现单片机及PC机之间的通信功能,使得控制信号能在PC机上显示。

关键词:单片机红外接收器HS0038 解码串口调试

设计任务 结合单片机最小电路和红外线接收接口电路共同设计一个基于单片机的红外遥控信号接收和转发系统,用普通电视机遥控器控制该系统,使用数码管显示信号的接收结果。 1、实现单片机最小系统的设计。 2、当遥控器按下数字键时,在数码管上显示其键值。如按下数字键1,则在数码管上显示 号码01。 3、当遥控器按下音量△及音量▽时,用两位数码的周围段实现顺时针或者逆时针旋转的流 水灯功能。(为使得音量的增减清晰显示,试验中在单片机的P1口外接一排流水灯,具体功能的实现见方案的可行性论证) * 运用串口调试助手,在遥控器有按键按下时,将其键值显示在PC机上。 * 当遥控器按下频道△及频道▽时,在数码管上显示加1或减1后的数值。 一、系统方案比较和论证 1、方案比较和选择 为了实现系统整体功能,红外解码部分是核心,红外解码是指将遥控发射器所产生的红外遥控编码脉冲所对应的键值翻译出来的过程。下面将系统方案做一论证,通常有硬件解码和软件解码两种方案。 方案一:此方案中,使用专用遥控器作为控制信号发出装置,当按下遥控器的按键后,一体化红外接收装置接收到遥控器发出的设置控制信号,然后将信号送到专用的解码芯片中进行解码,解码后将信号送到单片机,由单片机查表判断这个信号是按键数值信号或控制音量、频道等信号,当确认是何种信号后,启动子程序,然后进行查询。每次红外接收头接收到红外信号传到解码器中,解码器解码完毕后送到单片机,单片机再通过查表确定这些数值并进行相应功能的控制。设计原理图如图1所示。 图1、方案一设计原理图 方案二:此方案中,采用普通的家用遥控器作为控制信号发出装置,当按下遥控器的按键后,一体化红外接收装置接收到遥控器发出的红外线控制信号,然后把这个信号转换成电信号,传到单片机中,利用单片机对这个信号进行解码,解码完成后查表确定是按键数值信号或控制音量、频道等信号,启动子程序,进行相应的显示数字等功能。然后查询,重复上述流程。设计原理图如图2所示。

红外遥控编解码全攻略

-DYDIY- 红外遥控编解码全攻略 作者:杜洋 2005-9-26 红外遥控器的解码并对电器进行遥控一直是广大单片机爱好者的一个心愿。自己动手实现红外遥控电器也是大家单片机学习提高的一个重要的实验。现在网上关于红外线遥控器的解码的资料和文章很多,可是我在半年前学习红外遥控的解码时可是费了不少的力气。因为网上大部分资料和源程序都是针对某一种的红外遥控进行说明,只有买了和文章中一样的遥控器才可以继续实验。而且网上很少有遥控器的编码资料(用单片机模拟红外遥控器),经过了半年的学习与实践现在终于对红外遥控信号的编解码有了一个微薄的认识,在止写成文章希望对初学红外遥控的朋友有一定的帮助,更渴望有深入了解这方面的高手批评指正,谈谈自己的理解与看法,我就算是抛砖引玉了。呵呵! 红外遥控器的解码: 大部分的红外遥控的解码资料都是采用串口或是利用一个专用的单片机解码电路取码,前者的制作麻烦而且还要有专用的软件支持。后者则必须单独做一块解码板,而且一般只对某一种或一类的红外遥控器有效。而我有一种方法,只用一条不需要电路板的接线,用声卡测出红外遥控的波型。经过了长时间的使用效果很好,而且不仅对各种红外遥控的解码,还可以对无线通信或各种低波特率的编码进行分析,相当一个高级的试波器。 红外遥控器声卡波形解码一法: 采用我的解码方法需要以下的条件: 1,一台有MIC输入的声卡的电脑。 2,一条制作好的红外转换线(自己制作,以下有介绍) 3,安装高级音频编辑软件COOL EDIT PRO 2.0(各大下载网均有破解版下载) 红外遥控协议说明: 一般的,红外遥控的编码由前导码、地址码和数据码组成。而且有比较精准的时序要求。遥控码的发射由38KHZ或40KHZ的载波信号,由信号的时间长度来表示二进制数据。遥控的协议表示方法很多,下面是几种典型的例子:1, 1 E-mail:dydiy@https://www.wendangku.net/doc/cf12776789.html,

红外遥控编码格式

红外遥控编码 红外遥控编码常用的格式有两种:NEC和RC5 NEC格式的特征: 1:使用38 kHz载波频率 2:引导码间隔是9 ms + 4.5 ms 3:使用16位客户代码 4:使用8位数据代码和8位取反的数据代码 下面的波形是从红外接收头上得到的波形:(调制信号转变成高低电平了) 不过需要将波形反转一下才方便分析:

NEC 协议通过脉冲串之间的时间间隔来实现信号的调制(英文简写PPM)。逻辑“0”是由0.56ms的38KHZ载波和0.560ms的无载波间隔组成;逻辑“1”是由0.56ms的38KHZ载 波和1.68ms的无载波间隔组成;结束位是0.56ms的38K载波。 遥控器的识别码是Address=0xDD20;键值是Command=0x0E;

注意波形先是发低位地址再发高位地址。所以0000,0100,1011,1011反转过来就是1101,1101,0010,000十六进制的DD20; 键值波形如下:

也是要将0111,0000反转成0000,1110得到十六进制的0E;另外注意8位的键值代码是取反后再发一次的,如图0111,0000 取反后为1000,1111。 最后一位是一个逻辑“1”。 RC5编码相对简单一些: 下面的遥控器地址是1A,键值是0D的波形 同样由于取自红外接收头的波形需要反相一下波形以便于分析:

反相后的波形: 根据编码规则:

得到一组数字:110,11010,001101 根据编码定义 第一位是起始位S 通常是逻辑1 第二位是场位F通常为逻辑1,在RC5扩展模式下它将最后6位命令代码扩充到7位代码(高位MSB),这样可以从64个键值扩充到128个键值。 第三位是控制位C 它在每按下了一个键后翻转,这样就可以区分一个键到底是一直按着没松手还是松手后重复按。 如图所示是同一按键重复按两次所得波形,只有第三位是相反的逻辑,其它的位逻辑都一样。

红外遥控接收程序

#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;

红外遥控的发射和接收

红外遥控的发射和接收Donna 发表于2006-5-12 10:08:00 光谱位于红色光之外,波长为0.76~1.5μm,比红色光的波长还长,这样的光被称为红外线。 红外遥控是利用红外线进行传递信息的一种控制系统,红外遥控具有抗干扰,电路简单,编码 及解码容易,功耗小,成本低的优点,目前几乎所有的视频和音频设备都支持这种控制方式。 一、红外遥控系统结构 红外遥控系统主要分为调制、发射和接收三部分,如图1 所示: 图1 红外遥控系统 1.调制 红外遥控发射数据时采用调制的方式,即把数据和一定频率的载波进行“与”操作,这样可以提高发射效率和降低电源 功耗。 调制载波频率一般在30khz到60khz之间,大多数使用的是38kHz,占空比1/3的方波,如图2所示,这是由发射端所使用的 455kHz晶振决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷12≈37.9 kHz≈38kHz。 图2 载波波形 1.发射系统 目前有很多种芯片可以实现红外发射,可以根据选择发出不同种类的编码。由于发射系统一般用电池供电,这就要求芯片 的功耗要很低,芯片大多都设计成可以处于休眠状态,当有按键按下时才工作,这样可以降低功耗芯片所用的晶振应该有 足够的耐物理撞击能力,不能选用普通的石英晶体,一般是选用陶瓷共鸣器,陶瓷共鸣器准确性没有石英晶体高,但通常 一点误差可以忽略不计。

红外线通过红外发光二极管(LED)发射出去,红外发光二极管内部材料和普通发光二极管不同,在其两端施加一定电压时, 它发出的是红外线而不是可见光。 图3a 简单驱动电路图3b 射击输出驱动电路 如图3a和图3b是LED的驱动电路,图3a是最简单电路,选用元件时要注意三极管的开关速度要快,还要考虑到LED的正向 电流和反向漏电流,一般流过LED的最大正向电流为100mA,电流越大,其发射的波形强度越大。 图3a电路有一点缺陷,当电池电压下降时,流过LED的电流会降低,发射波形强度降低,遥控距离就会变小。图3b所示的 射极输出电路可以解决这个问题,两个二极管把三级管基极电压钳位在1.2V左右,因此三级管发射极电压固定在0.6V左右, 发射极电流IE基本不变,根据IE≈IC,所以流过LED的电流也基本不变,这样保证了当电池电压降低时还可以保证一定的遥 控距离。 1.一体化红外接收头 红外信号收发系统的典型电路如图1所示,红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。 内部电路包括红外监测二极管,放大器,限副器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号, 然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流 信号进入带通滤波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和积分电路进入比较器,比较器输出 高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。 一体化红外接收头,如图5所示:

红外遥控器编码规则简要说明

红外遥控器编码规则简要说明 1、遥控器由红外遥控专用芯片PT2248作为编码及发送部分,PT2248最大可用作18路红外遥控系统的编码,其内部己集成了38kHz的红外载波振荡及相应的数字脉码调制电路,只需外接3×6的矩阵式按键、红外发光二极管及其驱动电路等少量元器件便可完成编码发送的功能。发送部分电路图如下图所示: 2、PT2248组成的十八路遥控发送器其编码规则如下: (1)设a为一个时间单位,时间长度是38kHz的16个时钟周期,即 a=1÷38kHz×16=0.421ms 编码是以串行形式发送的,在接收端(38kHz一体化红外接收解调器)接收到如下形式的1位的编码时分别表示“0”和“1”: 1个a的低电平,3个a的高电平表示编码“0” 3个a的低电平,1个a的高电平表示编码“1” 编码以串行形式发送,接收端的一体化红外接收解调器输出波形如下图所示: (2)遥控器的每个按键编码由12位按以上编码规则所代表的“0”、“1”组成,时间长度为48a,当按下遥控器的7到18号单击按键,则以12位为一组(48a)发送两次编码,如下图所示: 60a为自按下按键到发送编码的等待时间,80a是前后两次发送12位48a编码的高电平时间间隔。7到18号单击按键无论发送端按键时间持续多长只发送一次这样形式的两组相同的12位编码。 (3)当按下1到6号连续按键时,编码按如下格式连续发送: (4)具体每个12位的串行编码规则如下: C1、C2、C3为用户可通过在遥控器发射电路中是否接入IN4148二极管决定其为“0” 或“1”,这里取“111”,H、S1、S2为单击连续按键的标志位,相当于列坐标,D1至

红外遥控一体化接收头原理及应用电路

红外遥控一体化接收头原理及应用电路2 一.一体化红外线接收头的原理 二. 红外遥控一体化接收头型号:SH-0038应用电路集 三. 红外遥控一体化接收头型号:RPM-638应用电路集 四.一体化红外线接收头的管脚排列及检测 红外遥控一体化接收头原理图及应用 一体化红外接收头型号:SFH506-38、RPM-638 红外接收电路通常由红外接收二极管与放大电路组成,放大电路通常又由一个集成块及若干电阻电容等元件组成,并且需要封装在一个金属屏蔽盒里,因而电路比较复杂,体积却很小,还不及一个7805体积大! SFH506-38与RPM-638是一种特殊的红外接收电路,它将红外接收管与放大电路集成在一体,体积小(大小与一只中功率三极管相当),密封性好,灵敏度高,并且价格低廉,市场售价只有几元钱。它仅有三条管脚,分别是电源正极、电源负极以及信号输出端,其工作电压在5V左右.只要给它接上电源即是一个完整的红外接收放大器,使用十分方便。 它的主要功能包括放大,选频,解调几大部分,要求输入信号需是已经被调制的信号。经过它的接收放大和解调会在输出端直接输出原始的信号。从而使电路达到最简化!灵敏度和抗干扰性都非常好,可以说是一个接收红外信号的理想装置。 一体化红外接收头,如图5所示外形及管脚:型号区别: 5所示:型号:SH0038 图5 红外接收头 红外接收头的种类很多,引脚定义也不相同,一般都有三个引脚,包括供电脚,接地和信号输 出脚。根据发射端调制 一. 红外遥控一体化接收头型号:SH0038 应用电路集 1. 用红外接收头、CD4069 制作的遥控灯原理图 红外遥控的发射和接收电路图 2. 用红外接收头、CD4011制作的遥控灯原理图 红外遥控接收头内部电路 3. 用红外接收头、CD4541制作的单路遥控原理图 4. 一体化红外接收头遥控开关接收电路 5. 用一体化红外接收头制作的遥控开关电路 一体化红外接收头原理: 没有人时,遥控接收头低电平脉冲信号由C1送入Q1,Q1将信号放大,由D1,C2滤波使Q2b极电压升高,Q2导通,Q3断开,继电器不吸合,K2断开,无12V送入报警器,报警器不报警;当有人进如时,将红外线阻断,接收器收不到遥控器发来的信号,Q1b极为高电平,Q1截止,Q2也截止,Q2C极为高电平,此时Q3导通,继电器吸合,K2闭合将12V送入报警或语音电路,发出报警声,同时R5对C4充电,达到Q4的导通电压时,Q4导通,Q3截止,继电器断开,报警结束,同时K1闭合,将C4放电,报警时间可由R5和C4决定。 6. 用一体化红外接收制作的感应式自动洗手器

51单片机实现红外线编码检测

51单片机实现红外编码检测 通过51 单片机及外围电路实现对接受信号的处理(通过外部中断和计数器)获得信号的01编码,设备显示。 红外传感基础知识: ?红外发光管:红外发光二极管通常使用砷化镓(GaAs)、砷铝化镓(GaAlAs)等材料,采用全透明或浅蓝色、黑色的树脂封装。 产生的光波波长为940nm左右,为红外光 ?红外接收头:左图为一常用的红外接收模块。其内部含有高频的滤波电路,专门用来滤除红外线合成信号的载波信号(38KH),并送出接收到的信号。当红外线合成信号进入红外接收模块,在其输出端便可以得到原先发射器 发出的数字编码,只要经过单片机解码程序进行解码,便可以 得知按下了哪一个按键,而做出相应的控制处理,完成红外遥 控的动作。 ?红外发送协议:引导码+客户码1+客户码2+操作码 +操作反码 ***用户真正须要的只有操作码***

?调制:“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率(因红外接收头能接收的红外线为38KHz 左右),还可达到降低电源功耗的 目的。 主要内容: 通过51 单片机及外围电路实现对接受信号的处理(通过外部中断和计数器)获得信号的01编码,用设备显示,(lcd或数码管);这里管脚的对应P3.2接受红外对管信息,lcd接线:

主程序: #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include sbit IR=P3^2; //红外接口标志 /*------------------------------------------------ 全局变量声明 ------------------------------------------------*/ unsigned char irtime;//红外用全局变量 bit irpro_ok,irok; unsigned char IRcord[4]; unsigned char irdata[33]; /*------------------------------------------------ 函数声明 ------------------------------------------------*/ void Ircordpro(void); /*------------------------------------------------ 定时器0中断处理 ------------------------------------------------*/ void tim0_isr (void) interrupt 1 using 1 { irtime++; //用于计数2个下降沿之间的时间 } /*------------------------------------------------ 外部中断0中断处理 ------------------------------------------------*/ void EX0_ISR (void) interrupt 0 //外部中断0服务函数 { static unsigned char i; //接收红外信号处理 static bit startflag; //是否开始处理标志位 if(startflag) {

红外遥控器的基本原理

红外遥控器的基本原理红外线的特点人的眼睛能看到的可见光,若按波长排列,依次(从长到短)为红、橙、黄、绿、青、蓝、紫,红光的波长范围为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协议。 红外遥控器的结构特征红外遥控发射器由键盘矩阵、遥控专用集成电路、激励器和红外发光二极管组成。遥控专用集成电路(采用A T89S52 单片机)是发射系统的核心部分,其内部由振荡电路、定时电路、扫描信号发生器、键输入编码器、指令译码器、用户码转换器、数码调制电路及缓冲放大器等组成。它能产生键位扫描脉冲信号,并能译出按键的键码,再经遥控指令编码器得到某键位的遥控指令(遥控编码脉冲),由38KHZ 的载波进行脉冲幅度调制,载有遥控指令的调制信号激励红外二极管发出红外遥控信号。 在红外接收器中,光电转换器件(一般是光电二极管或光电三极管,我们这里用的是PIN 光电二极管)将接收到的红外光指令信号转换成相应的电信号。此时的信号非常微弱而且干扰特别大,为了实现对信号准确的检测和转换,除了高性能的红外光电转换器件,还应合理地选择并设计性能良好的电路形式。最常用的光电转换器件是光电二极管,当光电二极管PN 结的光敏面受到光照射后,PN 结的半导体材料吸收光能,并将光能转换为电能。当光电二极管上加有反向电压时,二极管中的反向电流将随入射光照强度的变化而变化,光的辐照强度越大,其反向电流越大。也就是说,光电二级管的反向电流随入射的光脉冲作同频率的变化。 红外遥控器的应用红外遥控器由于受遥控距离、角度等影响,使用效果不是很好,如采用调频或调幅发射接收编码,则可提高遥控距离,并且没有角度影响。红外遥控发射和接收模块可以用在室内红外遥控中,它不影响周边环境、不干扰其它电器设备。由于其无

6122编码格式,红外遥控的编码,载波38KHz

红外、6122编码、38KHz载波一、红外遥控编码简介 一般而言,一个通用的红外遥控系统由发射和接收两大部分组成,如图1 所示: 发射部分主要包括键盘矩阵、编码调制、红外发射管; 接收部分包括光、电信号的转换以及放大、解调、解码电路。 举例来说,通常我们家电遥控器信号的发射,就是将相应按键所对应的控制指令和系统码( 由0 和1 组成的序列),调制在32~56kHz 范围内的载波上(目的为:抗干扰及低功率),然后经放大(接三极管)、驱动红外发射管(透明的头)将信号发射出去。 二、6122编码格式简介 流行的控制方法是应用编/ 解码专用集成电路芯片来实现。 不同公司的遥控芯片,采用的遥控码格式也不一样。本文是NEC(代表芯片WD6122)PWM( 脉冲宽度调制) 标准。 遥控载波的频率为38kHz( 占空比为1:3) ;当某个按键按下时,系统首先发射一个完整的全码,然后经延时再发射一系列简码,直到按键松开即停止发射。简码重复为延时108ms,即两个引导脉冲上升沿之间的间隔都是108ms。如图2所示即为完整的NTC编码。

正常发码:引导码(9ms+4.5ms)+用户编码+用户编码(或者是用户编码的反码)+键数据码+键数据反码+延时: 将正常发码标识出来,从图中可以看出“0”和“1”的表示方法。(不要问为什么是这样,规定!标准!高性能!) 重复码:9ms+2.25ms+延时

三、程序思想 ①低功耗。写程序前要想到,没有用过的,可以新建工程只用sleep命令; ②需要知道用户编码(客户码),每个键对应的编码,这些都是自己或者客户设定的; ③高电平期间:用38KHz的方波表示,低电平期间:用低电平表示。也就是说,高电平不是一直都是高,其实是38KHz的方波,这也是为什么上面②和③图中9ms高电平期间有方格。 (我用的公司自己的精简指令集,就不再上传。需要的话,私信) 四、电路 做为波形的输出端,加三极管,放大。 下图为矩形键盘组成的按键,图中黑色二极管为红外发射管。

相关文档
相关文档 最新文档