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