STC12LE5608AD 红外发射

2019-07-15 13:29发布

1: 使用红外遥控,将红外接收头的管脚直连模块A可以正确打印出数据
2: 用STC12LE5608AD  IO口来模拟后直连模块A无反应
sbit IR_IN = P3^3;
#define IR_IN_H  1
#define IR_IN_L  0


void IR_sendData(unsigned char dat_1, unsigned char dat_2)
{
        EA = 0;
        IR_IN = IR_IN_L;
        Delay9ms();
        IR_IN = IR_IN_H;
        Delay4500us();
        IR_sendByte(IRIN_ADDR1);
        IR_sendByte(IRIN_ADDR2);
        IR_sendByte(dat_1);
        IR_sendByte(dat_2);
        IR_IN = IR_IN_H;
        EA = 1;
}
void IR_sendByte(unsigned char tmp)
{
        unsigned char i;
        for(i = 0; i < 8; i++)
        {
                IR_IN = IR_IN_L;
                Delay560us();
                IR_IN = IR_IN_H;
                if(tmp & 1)
                {
                        Delay1680us();
                }
                else
                {
                        Delay560us();
                }
                tmp >>= 1;
        }
}


测试:用示波器测接收头的管脚波形与STC12管脚波形,进行比对,波形一致
不懂为什么,求各种建议,各种想法



补充内容 (2016-7-11 14:53):
现在写一红外接收程序,来测试,发现可以检测道9ms低电平-4.5ms高电平-560us低电平-后面就检测不到了,此红外接收程序可正常接收红外接收头的数据
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。