標題: [求助] 8051 發(fā)射RC5遙控器源碼! [打印本頁]

作者: kaka_deng    時間: 2013-1-30 13:42
標題: [求助] 8051 發(fā)射RC5遙控器源碼!

樓主,[求助] 8051 發(fā)射RC5遙控器源碼!是否可以共享一個?

 

我自己寫了下面這一段,沒有辦法實現(xiàn)呀!

 

void YKInit()                  //遙控接收初始化
{
    YKDatas[0] = YKDatas[1] = YKDatas[2] = 0;
    YKcount = 0;
    YKtype = 0;
    YKend = 0;
}

void time0() interrupt 1
{
    //第一次進入中斷前, 定時1/4位的時間:445us, 以后則定時一位時間1.778ms
    //即在3/4位時間時, 判斷該位是1還是0
    //實際測試中, 位時間只在1.651ms(+- 1ms), 定時1/4位的時間:413us
    bit in = ~YKIn; //一體化解碼后, 有載頻部分變?yōu)榈碗娖? 即低電平實際為1, 高電平實際為0
    //設(shè)置定時器初值
    //模式1: TH0 = (2^16 - (1651/1.085)) / 2^8 = (65536 - 1651/1.085) / 256 =  250;
    //TL0 = (65536 - 1651/1.085) % 256 = 14
    TH0 = 250;
     TL0 = 14;
   
    YKDatas[YKtype] = YKDatas[YKtype] | in; //將數(shù)據(jù)放入最低位
    YKcount++;
    if(YKcount == 3) //獲取完Start bits 和control bit, 共3位
    {
        YKtype = 1;
    }
    else if(YKcount == 8) //獲取完system bits, 共5位
    {
        YKtype = 2;
    }
    else if(YKcount == 14) //獲取完commond bits, 共6位
    {
        YKtype = 3;
    }
    else if(YKtype == 3) //等待最后1/4位時間結(jié)束, 實際延時1位時間
    {
        YKend = 1;
        YKcount = 0;
        YKtype = 0;
        TR0 = 0; //接收結(jié)束, 停止定時器0
        return;
    }
    else  //將數(shù)據(jù)左移一位, 以便將一下位數(shù)據(jù)并于最低位
    {
        YKDatas[YKtype] = YKDatas[YKtype] << 1;
    }
}


作者: hodenshi    時間: 2013-1-30 13:57
 函數(shù)啊,,,
作者: kaka_deng    時間: 2013-2-4 17:06

什么函數(shù)呀?是否可以共享?






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1