|
|
我現(xiàn)在正在做一個(gè)格力空調(diào)發(fā)射程序,但是遇到一個(gè)難點(diǎn),,就是格力的紅外編碼是起始碼+35位+連接碼+32位,我自己寫(xiě)的程序發(fā)射到自己的單片機(jī)串口通信顯示只顯示了前面一部分,連接碼后都沒(méi)有顯示,感覺(jué)是連接碼出現(xiàn)問(wèn)題,求各位大佬指點(diǎn)一波!
下面是發(fā)射代碼
endcount = 223; //設(shè)定中斷次數(shù),發(fā)送引導(dǎo)碼9ms 38K紅外光
flag = 1; //紅外發(fā)送標(biāo)志=1
count = 0; //中斷計(jì)數(shù)=0
TR0 = 1; //啟動(dòng)定時(shí)器0
while(count < endcount);
TR0 = 0; //關(guān)閉定時(shí)器0
endcount = 117; //設(shè)定中斷次數(shù),發(fā)送引導(dǎo)碼4.5ms低電平
flag = 0; //紅外發(fā)送標(biāo)志
count = 0; //中斷計(jì)數(shù)
TR0 = 1; //啟動(dòng)定時(shí)器0
while(count < endcount);
TR0 = 0; //關(guān)閉定時(shí)器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; //中斷計(jì)數(shù)=0
TR0 = 1; //啟動(dòng)定時(shí)器0
while(count<endcount);
TR0 = 0; //關(guān)閉定時(shí)器0 */
ir=0;
delay610us();*/
ir = 1; //紅外發(fā)射管控制腳低
delay20ms() ;
//延時(shí)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();
|
|