|
我現(xiàn)在正在做一個格力空調(diào)發(fā)射程序,但是遇到一個難點,,就是格力的紅外編碼是起始碼+35位+連接碼+32位,我自己寫的程序發(fā)射到自己的單片機串口通信顯示只顯示了前面一部分,連接碼后都沒有顯示,感覺是連接碼出現(xiàn)問題,求各位大佬指點一波!
下面是發(fā)射代碼
endcount = 223; //設(shè)定中斷次數(shù),發(fā)送引導(dǎo)碼9ms 38K紅外光
flag = 1; //紅外發(fā)送標(biāo)志=1
count = 0; //中斷計數(shù)=0
TR0 = 1; //啟動定時器0
while(count < endcount);
TR0 = 0; //關(guān)閉定時器0
endcount = 117; //設(shè)定中斷次數(shù),發(fā)送引導(dǎo)碼4.5ms低電平
flag = 0; //紅外發(fā)送標(biāo)志
count = 0; //中斷計數(shù)
TR0 = 1; //啟動定時器0
while(count < endcount);
TR0 = 0; //關(guān)閉定時器0
ircode = array[0]; //發(fā)送前1-8位
send_8bit();
ircode = array[1]; //發(fā)送前9-16位
send_8bit();
ircode = array[2]; //發(fā)送前17-24位
send_8bit();
ircode = array[3]; //發(fā)送前25-32位
send_8bit();
ircode = array[4];
//發(fā)送前33-35位
send_3bit();
/*endcount = low; //發(fā)送0.56ms 38k紅外波
flag = 0; //紅外發(fā)送標(biāo)志=1
count = 0; //中斷計數(shù)=0
TR0 = 1; //啟動定時器0
while(count<endcount);
TR0 = 0; //關(guān)閉定時器0 */
ir=0;
delay610us();*/
ir = 1; //紅外發(fā)射管控制腳低
delay20ms() ;
//延時20ms低電平
// ir=0;
ircode = array[5]; //發(fā)送后1-8位
send_8bit();
ircode = array[6]; //發(fā)送后9-16位
send_8bit();
ircode = array[7]; //發(fā)送后17-24位
send_8bit();
ircode = array[8]; //發(fā)送后25-32位
send_8bit();
|
|