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