#include<reg52.h>
#include"./uart/uart.h"
sbit IR_IN = P3^2;
unsigned int irtime;
bit irok = 0,irpro_ok=0;
bit startflag = 0;
unsigned char buf[33];
unsigned char irdata[33];
unsigned char bitnum = 0;
void int0_init()
{
IT0 = 1; //设置外部中断的触发方式
EA = 1;
EX0 = 1;
}
void timer0_init()
{
EA = 1;
TMOD |= 0x02;
TH0 = 0;
ET0 = 1;
TR0 = 1;
}
void timer0_isr() interrupt 1
{
irtime++;//0.256ms 引导码 13.5/0.256 = 52 1.12/0.256 = 4 0.56+1.685/0.256 = 8
}
void Ircordpro()
{
unsigned char i;
for(i = 0;i < 32; i++)
{
if(irdata[i+1] <= 6 +'0')
{
buf[i] = 0 + '0';
}
else
{
buf[i] = 1 + '0';
}
}
buf[32] = '\0';
irpro_ok=1;
}
void main()
{
timer0_init();
int0_init();
uart_init();
while(1)
{
if(irok == 1)
{
Ircordpro();
irok = 0;
}
if(irpro_ok == 1)
{
uart_send_string(buf);
uart_send_byte('\n');
irpro_ok = 0;
}
}
}
void int0_isr() interrupt 0
{
if(startflag)
{
if(irtime>=40&&irtime<=60)
{
bitnum = 0;
}
irdata[bitnum] = irtime + '0';
bitnum++;
irtime = 0;
if(bitnum == 33)
{
irok = 1;
irdata[33] = '\0';
bitnum = 0;
startflag = 0;
}
}
else
{
irtime = 0;
startflag = 1;
}
}
#include"./uart/uart.h"
sbit IR_IN = P3^2;
unsigned int irtime;
bit irok = 0,irpro_ok=0;
bit startflag = 0;
unsigned char buf[33];
unsigned char irdata[33];
unsigned char bitnum = 0;
void int0_init()
{
IT0 = 1; //设置外部中断的触发方式
EA = 1;
EX0 = 1;
}
void timer0_init()
{
EA = 1;
TMOD |= 0x02;
TH0 = 0;
ET0 = 1;
TR0 = 1;
}
void timer0_isr() interrupt 1
{
irtime++;//0.256ms 引导码 13.5/0.256 = 52 1.12/0.256 = 4 0.56+1.685/0.256 = 8
}
void Ircordpro()
{
unsigned char i;
for(i = 0;i < 32; i++)
{
if(irdata[i+1] <= 6 +'0')
{
buf[i] = 0 + '0';
}
else
{
buf[i] = 1 + '0';
}
}
buf[32] = '\0';
irpro_ok=1;
}
void main()
{
timer0_init();
int0_init();
uart_init();
while(1)
{
if(irok == 1)
{
Ircordpro();
irok = 0;
}
if(irpro_ok == 1)
{
uart_send_string(buf);
uart_send_byte('\n');
irpro_ok = 0;
}
}
}
void int0_isr() interrupt 0
{
if(startflag)
{
if(irtime>=40&&irtime<=60)
{
bitnum = 0;
}
irdata[bitnum] = irtime + '0';
bitnum++;
irtime = 0;
if(bitnum == 33)
{
irok = 1;
irdata[33] = '\0';
bitnum = 0;
startflag = 0;
}
}
else
{
irtime = 0;
startflag = 1;
}
}
272

被折叠的 条评论
为什么被折叠?



