您当前的位置:五五电子网电子知识单片机-工控设备STC单片机(STC单片机解码HT6121/6122遥控器 正文
STC单片机解码HT6121/6122遥控器

STC单片机解码HT6121/6122遥控器

点击数:7809 次   录入时间:03-04 12:03:21   整理:http://www.55dianzi.com   STC单片机(
                    if(~IR_DataShit == IR_data)        //判断数据正反码
                    {
                        if((IR_UserH == (User_code / 256)) &&
                            IR_UserL == (User_code % 256))
                                B_IrUserErr = 0;    //User code is righe
                        else    B_IrUserErr = 1;    //user code is wrong
                            
                        IR_code      = IR_data;
                        B_IR_Press   = 1;            //数据有效
                    }
                }
                else if((IR_BitCnt & 7)== 0)        //one byte receive
                {
                    IR_UserL = IR_UserH;            //Save the User code high byte
                    IR_UserH = IR_data;                //Save the User code low byte
                    IR_data  = IR_DataShit;            //Save the IR data byte
                }
            }
        }
    }
}


/**************** Timer初始化函数 ******************************/
void InitTimer(void)
{
    TMOD = 0;        //for STC15Fxxx系列    Timer0 as 16bit reload timer.
    TH0 = Timer0_Reload / 256;
    TL0 = Timer0_Reload % 256;
    ET0 = 1;
    TR0 = 1;

    EA  = 1;
}


/********************** Timer0中断函数************************/
void timer0 (void) interrupt 1
{
    IR_RX_HT6121();
}


/********************** 模拟串口相关函数************************/

void    BitTime(void)    //位时间函数
{
    uint i;
    i = ((MAIN_Fosc / 100) * 104) / 140000 - 1;        //根据主时钟来计算位时间
    while(--i);
}

//模拟串口发送
void    Tx1Send(uchar dat)        //9600,N,8,1        发送一个字节
{
    uchar    i;
    EA = 0;
    P_TXD1 = 0;
    BitTime();
    for(i=0; i<8; i++)
    {
        if(dat & 1)        P_TXD1 = 1;
        else            P_TXD1 = 0;
        dat >>= 1;
        BitTime();
    }
    P_TXD1 = 1;
    EA = 1;
    BitTime();
    BitTime();
}

void PrintString(unsigned char code *puts)        //发送一串字符串
{
    for (; *puts != 0;    puts++)  Tx1Send(*puts);     //遇到停止符0结束
}


上一页  [1] [2] [3] 


本文关键字:单片机  遥控器  STC单片机(单片机-工控设备 - STC单片机(