51单片机红外解码资料+源代码docx.docx

上传人:b****5 文档编号:6469969 上传时间:2023-01-06 格式:DOCX 页数:9 大小:72.32KB
下载 相关 举报
51单片机红外解码资料+源代码docx.docx_第1页
第1页 / 共9页
51单片机红外解码资料+源代码docx.docx_第2页
第2页 / 共9页
51单片机红外解码资料+源代码docx.docx_第3页
第3页 / 共9页
51单片机红外解码资料+源代码docx.docx_第4页
第4页 / 共9页
51单片机红外解码资料+源代码docx.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

51单片机红外解码资料+源代码docx.docx

《51单片机红外解码资料+源代码docx.docx》由会员分享,可在线阅读,更多相关《51单片机红外解码资料+源代码docx.docx(9页珍藏版)》请在冰豆网上搜索。

51单片机红外解码资料+源代码docx.docx

51单片机红外解码资料+源代码docx

51单片机红外解码(NEC)

1,遥控发射及其编码

红外遥控编码具有以下特征:

(1),采用脉宽调制串行码,以脉宽为0.565ms,间隔0,56ms.周期为1.125ms的组合表示二进制的“0”。

(2)

—脉宽为0.565ms,间隔1.685ms,周期为2.25nis的组合农示二进制的“1”。

iS控爾的S”和4<1"

红外发射电路如图:

左边是•个222的无极性电容,然后接地。

发送38K方波,就是载波

innn^z

in叩〃

innnzz

inn

1

V_►

9ms

4.5ms

■用户编硏

■曲位・

用户編码

键数据码

°引导码”

rI8«36m”

S

27ms

WS8.Sm$至76.5ms

■■、nn•4匚e•

上述“0”和“1”组成32位二进制代码,包括两次8位用户码,

8位数据码,和8位数据反码以及最后的同部位。

-体化红外接收管原理图

一体化红外接收头在检测到38K红外遥控载波信号时输出低电平,在未检测到39K的红外遥控载波信号时输出高电平。

发射器发射的的信号为

in

innn,z

innn„

innn”

1

9ms

-O-

4.5nis

p低她一

■用户编码

用户编码

键弦据码

键数弟玛反玛

°引导码”

"I8«36m”

S

27ms

58.5ms§76.5ms

接收器接收到的信号为

即9ms低电平后4.5ms高电平作为起始码,之后接受到两次8位客户码,一次八位数据码,和一•次八位数据反码。

遥控器〃按键按卜•之后周期件的发出同一种32位二进制编码周期约为108ms,纽码持续时间随本身的“0”“1”个数不同

而不同。

人约在45~63ms之间,当一个键按下36ms,振荡器使芯片激活,将发射一•组108ms的编码脉冲这108ms编码脉冲由一个起始码(9ms),一个结束码(4.5nis),低八位地址码(9〜18ms),高八位地址码(9〜18ms),八位数据码(9〜18ms),和这八位数据码反码(9〜18ms),如果按下超过108ms仍未松开,接卜-来发射的代码(连发代码)将仅有起始码(9ms)和结束码(2.5ms)组成。

解码的关键是如何识别零和一:

“0”和“1”都是以0.56ms低电平开始的,不同的是高电平宽度不同,“0”为0.56ms“1”为1.168ms,所以必须根据高电平宽度来区别“0”和T。

如果从0.56ms低电平过后,开始延时,0.56ms后,若读到的电平为低,说明该位为零,反之则为」,可靠其间,延时必须比0.56ms长一些,又不能超过1.12ms,否则如果该位为零,读到的已是下一位高电平,因此取(1.12+0.56)/2=0.84ms最为可靠,一般取0.84ms左右均可。

根据码的格式,应该等待9ms起始码和4.5111S结束码完成后才能读码。

备注:

定时器/计数器控制寄存器TCON

位序

D7

D6

D5

D4

D3

D2

D1

DO

位符

TF1

TR1

TF0

IR0

IE1

m

IE0

ITO

位地

8FH

8EH

8DH

8CH

8BH

8AH

89H

88H

源代码如K:

#include

#defineucharunsignedchar

#defiiieuintunsignedintsbitdula=P2A6;

sbitwela=P2A7;

uchariilime;〃红外时间

ucharstallflag;〃启动接收

ucharirdata[33];

ucharbitnmn;

ucharineceiveok;〃红外接收完毕

ucharircode[4];

uchariiprosok;

uchardisp[8];

ucharcodesmg_du[]={

0x3F7*0*/

0x067*1*/

Ox5B,/*2*/

0x4F7*3*/

0x66,/*4*/

0x6D,/*5*/

0x7D,/*6*/

0x07,/*7*/

0x7F/*8♦/

0x6F,/*9*/

0x77,/*A*/

0x7C,/*b*/

0x39,/*C*/

0x5E,/*d*/

0x79,/*E♦/

0x71,/*F*/

};

ucharcodesmg_we[]={

Oxfe,

Oxfid,

Oxfb,

0xf7,

Oxef,

Oxdf,

Oxbf0x7f,

};

voiddelay(uintz)

{

uintij;

fbr(i=z;i>O;i~)

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

}

voidtimerOinit(void)//定时器0初始化

{

TMOD=0X02;〃方式2

TH0=0X00;〃高第八位清零

TL0=0X00:

EA=1;〃打开全局中断允许位(中断允许寄存器IE)

ETO=1;〃打开定时器0中断允许位(中断允许寄存器

IE)

TRO=1;〃寄存器TCON,置一启动定时器0

}

voidintOiiiit(void)〃夕卜部中断0初始化

ITO=1;〃置一,跳变沿触犯方式,引脚INTO上,下降沿的

负跳变有效

EXO=1;〃外部中断0中断允许位

EA=1;〃全局中断允许位

}

voidirwork(void)

{

disp[0]=ircode[0]/16;

disp[l]=ircode[0]%l6;

disp[2]=ircode[1]/16;

disp[3]=ircode[l]%16;disp[4]=ircode[2]/16;

disp[5]=ircode[2]%16;

disp⑹=ircode[3]/l6;

disp[7]=ircode[3]%16;

}

voiddisplay(void)

{

uchari;

fdr(i=O;i<&i++)

dula=l;

PO=smg_du[disp[i]];

dula=O;

PO=OxfT:

wela=1;

PO=smg_we[i];

wela=0;

delay(l);

P0=0xfT;

delay(l);

}

}

voidiipros(void)//1.125nis/0.2777=4.39=4.05个irtime(数据

零)

{//2.25ins/0.2777=8.10个irtime(数据一)取

中间值6

ucliark,i,j;

ucharvalue;

k=l;〃跳过引导码

fbr(j=0;j<4;j-H-)

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

value=value»l;//7次if(irdata[k]>6)//8次{

value=value|0x80;

}

k-HF;

}ircode[j]=vahie;

}

irpTOSok=1;

〃从这里开始

〃定时器0初始化

〃外部中断0初始化

〃人循环

}

voidmain()

{

tiinerOinitO;intOiiiit();while(l)

iffineceiveok)

iipros();

ineceiveok=0;

}

if(iiprosok)

{

irwoik();

iiprosok=0;

}

display();

}

}

voidtiinerO()intemipt1〃d时器0,初值口动重装的8位怎时器{〃最大计数值256,2的8次方

irtiiiie++;//256//每加计数256次,计数次时间为0.001085069ms

}〃每加一,计数256次,共需0.2777ms

voidinto()intemipt0〃夕卜部中断0(INTO)

{

if(startflag)if(iitime>32)〃说明收到的是引导码13.5ms(引导码)

70.2777=48.7个inime

bitnum=0;

}

irdata[bitnum]=ii1ime;

iilime=0;

bimum++;

if(bitnum=33)

{

bitnum=0;ineceiveok=l;

}

}

else

{

stailflag=l;

irtime=0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1