本keil c51程序適用uPC1621/uPC1622及兼容的紅外遙控器芯片,占用外部中斷0和定時器1,以中斷方式解碼,節(jié)省系統(tǒng)資源,以查詢方式檢測遙控信號是否有效.
解碼思路:
紅外線經(jīng)一體化接受頭解碼放到后送到單片機的外部中斷0,單片機設置外部中斷下降沿觸發(fā),T0和T1為16位定時器,T0在系統(tǒng)啟動后定時5ms.T1在外部中斷0啟動后開始定時,初值為0,每次在INT0中斷后先讀T1計數(shù)值,并重設初值為0,而且判斷T1的計數(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;





