天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234
設計開發

專注差異化嵌入式產品解決方案 給智能產品定制注入靈魂給予生命

開發工具

提供開發工具、應用測試 完善的開發代碼案例庫分享

技術支持

從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產品競爭力

新聞中心

提供最新的單片機資訊,行業消息以及公司新聞動態

PIC單片機的無線、紅外解碼程序

更新時間: 2019-03-26
閱讀量:2100

void Decoder() {unsigned char SignalW,CodeTotal; SignalW=0; do { //9+66=75us delay(20);//delay 66us SignalW++; if(SignalW>120) return; // 如果引導碼長度超出范圍則退出程序 }while(IRin);//判斷引導碼是否正確 if(SignalW<60) return;//若引導碼長度太短同樣退出程序 CodeTotal=12; //一共解碼12次,因為510412bitdo{ //delay 11+21=32us SignalW=0; do{ delay(5);//delay 21us SignalW++; 

if(SignalW>makuan) return; //如果低電平時間超過1bit的長度則認為是干擾 }while(!IRin); if(SignalW<6) return;//如果寬度低于6*32=192us,則認為是干擾 SignalW=SignalW-fenjie;//寬度大于800US時為1,否則為0 asm("RLF _CodeBuff,F"); asm("RLF _CodeBuff+1,F");//將解得的碼移入存儲器 //CODE_TOTAL++; asm("CLRWDT"); SignalW=0; //對高電平進行監視 do{ delay(5); SignalW++; if(SignalW>makuan) break; //請注意,因為最后一位是高電平。所以此出用break//如果該為return的話則解碼錯誤 }while(IRin); CodeTotal--; }while(CodeTotal); //12bit全部解完后進行處理 

if((IRData[0]==CodeBuff[0])&&(IRData[1]==CodeBuff[1])) if(bFirstIR) //判斷是否連續2次解得同一碼 { Timer=0; bFirstIR=0; if(bHaveKey) return; asm("RLF _IRData,f"); asm("RLF _IRData+1,f"); asm("RRF _IRData,f"); IRData[0]&=0x7f; IRData[1]&=0x1b; if(IRData[1]==IRAddress) { if(IRData[0]==Key1) PortBuff^=Key1; if(IRData[0]==Key2) PortBuff^=Key2; if(IRData[0]==Key3) PortBuff^=Key3; if(IRData[0]==Key4) PortBuff^=Key4; if(IRData[0]==Key5) PortBuff^=Key5; if(IRData[0]==Key6) PortBuff=0; bHaveKey=1; } return; } bFirstIR=1; //否則保存當前的碼值 IRData[0]=CodeBuff[0]; IRData[1]=CodeBuff[1]; }



联系我们: 都昌县| 彭水| 册亨县| 溧水县| 泗水县| 萍乡市| 措美县| 昆山市| 大石桥市| 青铜峡市| 呼和浩特市| 黔东| 桦南县| SHOW| 温州市| 鱼台县| 西盟| 太保市| 绵竹市| 东安县| 万宁市| 华亭县| 天台县| 信宜市| 称多县| 大城县| 木兰县| 远安县| 边坝县| 乳源| 门头沟区| 卓尼县| 砚山县| 沛县| 乳山市| 栾川县| 临桂县| 巴彦县| 岳西县| 茂名市| 柳江县|