📄 eee.h.txt
字号:
#define ifr_ir_c
#include"io.h"
#include"ifr_ir.h"
#include"key.h"
#include"main.h"
//****************************************************
//function:ir init
//input :无
//output :i,延时i x 100us
//modify :2007-06-21
//*****************************************************
void ifr_init()
{
b_ifr=0;
b_irf=0;
}
//****************************************************
//function:红外的接收函数
//input :无
//output :无
//modify :2007-6-19
//*****************************************************
void ifr_irn()
{
uchar cont;
cont=mj=0;
while(!ifr_ir)mj++;
if((mj<1000)||(mj>2000))return ;
mj =0;
while(ifr_ir)mj++;
if((mj<500)||(mj>1000))return ;
mj =0;
delay(2);
if(ifr_ir)return;
for(i=0;i<4;i++) //4个字节
for(j=0;j<8;j++){ //每个字节8位
cont ++;
while (!ifr_ir); //等待Infr为1; //560us完成
ifr_buf[i] >>= 1;
delay(35);
if(ifr_ir) // 小于560us为位0
delay(18);
if(ifr_ir)
ifr_buf[i] |= 0x80;// 大于900us为位1
while(ifr_ir);
}
if(cont == 32)
{
cont = 0;
if(ifr_buf[0]+ifr_buf[1]==0xff)
led_ray1(5);
b_ifr=1;
}
}
//****************************************************
//function:无线的接收函数
//input :无
//output :无
//modify :2007-8-30
//****************************************************
void ifr_rf()
{
uchar cont;
bit b_rfbit;
cont=jm=0;
TH0=TL0=0;
if(b_rfstart==0)
{
while(rfintpin);
if(TH0<0X01||TH0>0x02){TH0=TL0=0;return;}
TH0=TL0=0;
while(!rfintpin);
if(TH0<0X18||TH0>0x3e){TH0=TL0=0;return;}
else {b_rfstart=1;//BPTR=0;
cont=0;TH0=TL0=0;}
}
led_ray1(4);
for(i=0;i<3;i++) //3个字节
for(j=0;j<8;j++){ //每个字节8位
cont++;
while(rfintpin);
if(TH0< 1)
{if(TL1>70) b_rfbit=0;
else {b_rfstart=0;TH0=TL0=0;return;}}
else if(TH0<3)b_rfbit=0;
else if(TH0<7)b_rfbit=1;
else {b_rfstart=0;TH0=TL0=0;return;}
ifr_buf[i] >>= 1;
if(b_rfbit)
{ifr_buf[i] |= 0x80;}
while(!rfintpin);
TH0=TL0=0;
}
if(cont!=24)return;
cont = 0;
if((ifr_buf[0]==0x55)&&(ifr_buf[1]==0x55))
led_ray1(4);
b_irf=1;
/*
if(b_rfcheck==0)
{
temp[0]=ifr_buf[0];temp[1]=ifr_buf[1];temp[2]=ifr_buf[2];b_rfcheck=1;
}
else
{
if((temp[0]==ifr_buf[0])&&(temp[1]==ifr_buf[1])&&(temp[2]==ifr_buf[2]))
{
led_ray1(ifr_buf[2]);b_irf=1;b_rfstart=0;
}
}
*/
}
/*
//****************************************************
//function:无线的接收函数
//input :无
//output :无
//modify :2007-8-30
//****************************************************
void ifr_rf()
{
uchar cont;
cont=jm=0;
if(!cont)return;
while(rfintpin)jm++;
if((jm<60)||(jm>100))return ;
jm=0;
while(!rfintpin)jm++;
if((jm<1600)||(jm>2500))return ;
jm =0;
if(!rfintpin)return;
//led_ray1(3);
//if(!cont)return;
for(i=0;i<3;i++) //3个字节
for(j=0;j<8;j++){ //每个字节8位
cont ++;
delay(35);
delay(30);
ifr_buf[i] >>= 1;
if(rfintpin)
{
ifr_buf[i] |= 0x80;
delay(35);
if(rfintpin)return;
}
while(!rfintpin);
}
if(cont!=24)return;
cont = 0;
if((ifr_buf[0]==0x55)&&(ifr_buf[1]==0x55))
led_ray1(ifr_buf[2]);
b_irf=1;
}
*/ /*
//****************************************************
//function:红外的接收函数
//input :无
//output :无
//modify :2007-6-19
//*****************************************************
void ifr_irn()
{
uchar cont;
cont =0;
if(ifr_ir)return;
TR2=0;
TR0=0;
TF0=0;
TL0=(65536-5000)%256;
TH0=(65536-5000)/256;
TR0=1;
do{
if(TF0)
{break;}
if(ifr_ir)
{return;}
}while(1);
TR0=0;
TF0=0;
TL0=(65536-6000)%256;
TH0=(65536-6000)/256;
TR0=1;
do{
if(TF0)
{return;}
if(ifr_ir)
{break;}
}while(1);
TR0=0;
TF0=0;
TL0=(65536-6000)%256;
TH0=(65536-6000)/256;
TR0=1;
do{
if(TF0)
{return;}
if(!ifr_ir)
{break;}
}while(1);
for(i=0;i<4;i++) //4个字节
for(j=0;j<8;j++)
{
cont ++;
TR0=0;
TF0=0;
TL0=(65536-800)%256;
TH0=(65536-800)/256;
TR0=1;
do{
if(TF0)
{
TF0=0;
return;
}
}while(ifr_ir==0);
TR0=0;
TF0=0;
TL0=(65536-700)%256;
TH0=(65536-700)/256;
TR0=1;
do{
if(TF0)
{
TF0=0;
break;
}
}while(ifr_ir==1);
ifr_buf[i] >>= 1;
if(ifr_ir==1)
{
ifr_buf[i] |= 0x80;
TR0=0;
TF0=0;
TL0=(65536-1100)%256;
TH0=(65536-1100)/256;
TR0=1;
do{
if(TF0)
{return;}
if(!ifr_ir)
{break;}
}while(1);
}
}
if(cont == 32)
{
cont = 0;
if((ifr_buf[0]+ifr_buf[1])==0xff)
led_ray1(5); bbb=1; TR2=1;
b_ifr=1;
}
}
//****************************************************
//function:无线的接收函数
//input :无
//output :无
//modify :2007-8-30
//****************************************************
void ifr_rf()
{
uchar cont;
bit b_rf=0;
cont =0;
if(!cont)return;
TR0=0;
TF0=0;
TL0=(65536-200)%256; //200us
TH0=(65536-200)/256;
TR0=1;
do{
if(rfintpin==0)
return ;
if(TF0)
{
break;
}
}while(1);
TF0=0;
TR0=0;
TL0=(65536-500)%256;
TH0=(65536-500)/256;
TR0=1;
do{
if(rfintpin==0)
break;
if(TF0)
{
TF0=0;
return;
}
}while(1);
TR0=0;
TF0=0;
TL0=(65536-11000)%256; //11ms
TH0=(65536-11000)/256;
TR0=1;
do{
if(rfintpin)
return;
if(TF0)
break;
}while(1);
TR0=0;
TF0=0;
TL0=(65536-6000)%256;
TH0=(65536-6000)/256;
TR0=1;
do{
if(TF0)
{
TR0=0;
TF0=0;
return;
}
}while(rfintpin==0);
for(i=0;i<3;i++) //4个字节
for(j=0;j<8;j++)
{
cont ++;
TR0=0;
TF0=0;
TL0=(65536-800)%256; //进入时为高电平先延时0.8ms再判断是0还是1
TH0=(65536-800)/256;
TR0=1;
while(TF0==0);
ifr_buf[i] >>= 1;
if(rfintpin)
ifr_buf[i] |= 0x80;
TR0=0;
TF0=0;
TL0=(65536-800)%256;
TH0=(65536-800)/256;
TR0=1;
do{
if(TF0==1)
{
TF0=0;
return;
}
}while(rfintpin==1);
TR0=0;
TF0=0;
TL0=(65536-1600)%256;
TH0=(65536-1600)/256;
TR0=1;
do{
if(TF0==1) //时间到 ,没合格信号来
{
TF0=0;
return;
}
}while(rfintpin==0);
}
if(cont==24)
{
b_irf=1;
led_ray1(5);
}
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -