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