紅外解碼程序主要工作為等待紅外線信號出現,并跳過引導信號,開始收集連續32位的表面數據,存入內存的連續空間。位信號解碼的原則是:以判斷各個位的波寬信號來決定高低信號。位解碼原理如下:
解碼為0:低電平的寬度0.56ms+高電平的寬度0.56ms。
解碼為1:低電平的寬度1.68ms+高電平的寬度0.56ms。
程序中必須設計一精確的0.1ms延時時間作為基礎時間,以計數實際的波形寬度,若讀值為5表示波形寬度為0.5ms,若讀值為16表示波形寬度為1.6ms,以此類推。高電平的寬度1.12ms為固定,因此可以直接判斷低電平的寬度的計數值5或時16,來確定編碼為0或是1。程序中可以減法指令SUBB來完成判斷,指令“SUBB A,R2”中若R2為計數值,A寄存器設為8,就可如下:
當“8-R2”有產生借位,借位標志C=1,表示編碼為1。
當“8-R2”無產生借位,借位標志C=0,表示編碼為0。
將借位標志C經過右移指令“RRC A”轉入A寄存器中,再經由R0寄存器間接尋址存入內存中。
標簽:
紅外解碼
程序
信號
等待
上傳時間:
2016-11-09
上傳用戶:miaochun888