本keil c51程序適用uPC1621/uPC1622及兼容的紅外遙控器芯片,占用外部中斷0和定時(shí)器1,以中斷方式解碼,節(jié)省系統(tǒng)資源,以查詢方式檢測(cè)遙控信號(hào)是否有效.
解碼思路:
紅外線經(jīng)一體化接受頭解碼放到后送到單片機(jī)的外部中斷0,單片機(jī)設(shè)置外部中斷下降沿觸發(fā),T0和T1為16位定時(shí)器,T0在系統(tǒng)啟動(dòng)后定時(shí)5ms.T1在外部中斷0啟動(dòng)后開始定時(shí),初值為0,每次在INT0中斷后先讀T1計(jì)數(shù)值,并重設(shè)初值為0,而且判斷T1的計(jì)數(shù)值,
- //Fosc=11.0592MHz
- // states for and variables IR data processing ;
- typedef enum{
- IR_idle,
- IR_waitstart,
- IR_getaddr,
- IR_getaddrinv,
- IR_getdata,
- IR_getdatainv
- }_IRstate;
- _IRstate IRstate = IR_idle;
- unsigned char IRaddr=0xff;
- unsigned char _IRaddr=0xff;
- unsigned char IRdata=0xff;
- unsigned char _IRdata=0xff;





