?? ir.c
字號:
#include <reg51.h>
sbit LED=P3^0;
sbit Key=P3^7;
//幀數(shù)據(jù)放數(shù)組Data里
unsigned char Data[4]={0x00,0xff,0x1f,0xe0};
void Transmit(int c1,int c2); //發(fā)射子程序
//****************************************
main()
{unsigned char i,j;
while(1)
{while(Key); //沒鍵按下,等待
Transmit(340,565); //發(fā)射引導碼
for(i=0;i<4;i++)
for(j=0;j<8;j++) //發(fā)射幀數(shù)據(jù)
{if((Data[i]>>j)&1)
Transmit(19,205); //'1'碼
else Transmit(19,70); //'0'碼
}
Transmit(19,17);
while(!Key); //等待釋放按鍵
}
}
//****************************************
void Transmit(int c1,int c2) //c1為高電平寬度
{unsigned char i; //c2為低電平寬度
do{LED=1; //產(chǎn)生38kHz載波
for(i=8;i>0;i--); //延時18us
LED=0;
}while(--c1);
LED=1;
while(--c2);
}
程序2
#include<reg51.h>
sbit Rec=P3^1;
unsigned char i,ch;
unsigned int t;
main()
{TMOD=0x01;
TR0=1;
while(1)
{while(Rec); //等待接收信號
t=(TH0<<8)+TL0; //取得脈沖寬度
if(t>200&&t<800); //是'0'碼
else if(t>1100&&t<1800) //'1'碼
{if(i>24)//取出最后一字節(jié)
ch|=1<<(i-25);
}
else //非0、1碼,重新解碼
{ch=0;i=0;}
if(i++==32) P1=ch;
while(!Rec);
TL0=0; //重新計時
TH0=0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -