請問各位前輩,我想在這個紅外遙控程序: 總菜單按鍵(case ox01)下面加幾個子菜單按鍵(也是紅外遙控),switch后面要怎么改? 紅外中斷程序:
void int1()interrupt 2
{ uchar i,j,n=0;
dat[4]=0;
EX1=0; //必須將中斷關閉,否則將無法準確解讀
delay(0xf8,0x30);
if(ultra_red) //延時2ms后判斷是否為高電平,若是,則跳出中斷(紅外發射端發射信號以9ms高電平開始,接收端接受信號與發射信號相反)
{ r=1;
delay(0x15,0xa0);
return;
}
while(!ultra_red) delay(0xff,0x9c);//等待9ms低電平
while(ultra_red) delay(0xff,0x9c); //等待4.5ms高電平
for(i=0;i<4;i++)
for(j=0;j<8;j++)
{ while(!ultra_red) delay(0xff,0x9c); //等待0.56ms的低電平區
while(ultra_red)
{ delay(0xff,0x9c); //每0.1ms,指針n自加1
n++;
}
dat[i]>>=1; //最高位寫入0
if(n>6) dat[i]=dat[i]|0x80; //若n>6,說明高電平持續時間大于0.56ms,則將高位置1
n=0; //指針清零
}
if(dat[2]==~dat[3]) //若數據碼與數據反碼的非相同,說明解碼成功
{ switch(dat[2])
{ case 0x01:
case 0x02:
default:break;
}
}
else dat[4]=0;
r=1;
return;
} |