<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > PIC16F887紅外解碼程序

PIC16F887紅外解碼程序

作者: 時(shí)間:2012-08-24 來(lái)源:網(wǎng)絡(luò ) 收藏
//----------------------------------------------------------------// 程序//1us,#include htc.h>                // header file with compiler macros, for// example __CONFIG// the processor header file, with register // and bit definitions (pic16f887.h) is// automatically included#define uchar unsigned char#define uint unsigned int// __CONFIG sets the  Configuration Words.  See bottom of the header// file pic16f887.h for fuse option constants.__CONFIG(INTCLK  WDTDIS  PWRTDIS  
MCLRDIS  UNPROTECT  DUNPROTECT  BORDIS  IESODIS  FCMDIS  LVPDIS);__CONFIG(BORV40); // 2nd config word////// /////////////////////////////////////////////////uint shuju[3]={0};   //存放數據uint temp="0";     //臨時(shí)變量uchar i,j;     //數組及移位計數用uchar biaozhi="0";   //起始碼標志位uchar flag="1";    //有鍵按下,打開(kāi)定時(shí)器void init_io(void)   //初始化函數{TRISC = 0xFF;   //置CCP1口為輸入態(tài)TRISD = 0x00;   //置D口為輸出態(tài)CCP1CON=0x04;   //CCP1模塊工作于捕捉方式CCP1IE=1;    //開(kāi)中斷CCP1IF=0;    //清捕捉標志位PEIE=1;     //開(kāi)外部中斷T1CON=0;    //配置定時(shí)器T1不分頻,使用內部時(shí)鐘,且先禁止T1ei();                   // enable global interruptsTMR1H=0;    //計數值清0TMR1L=0;PORTD=0;    //輸出清0}main(){init_io();     //初始化函數while(1);     //等待CCP1模塊中斷產(chǎn)生}void interrupt interrupt_service(void)  //中斷{if (CCP1IE  CCP1IF)     //判斷是否為CCP1模塊中斷,當在一個(gè)系統中時(shí)會(huì )用{if(flag==1)          {TMR1H=0;TMR1L=0;TMR1ON=1;      //開(kāi)定時(shí)器flag=0;}else{TMR1ON=0;       //先停定時(shí)器temp=TMR1L+TMR1H*256;   //取數據并判斷TMR1H=0;      //清0計數值TMR1L=0;TMR1ON=1;      //開(kāi)定時(shí)器等待下一個(gè)脈沖到來(lái)if(temp>12600temp14600biaozhi==0)     //起始碼{biaozhi=1;          //當檢測到起始碼時(shí),下次直接進(jìn)行入數據判斷i=0;j=0;}else         //數據判斷區{if((temp  3200)(temp > 1200)) //時(shí)間在2.2ms左右的為數碼0{shuju[i]=shuju[i]1;j++;}elseif((temp  5000)(temp > 3000)) //時(shí)間在4ms左右的為為數碼1{shuju[i]=(shuju[i]1)+1;j++;}elsebiaozhi=0;      //否則為終止碼,清0起始碼標志位,準備下一次按鍵的接收}if(j==16i2)      //數組遞加,當第一個(gè)數組接收滿(mǎn)后,開(kāi)始對下一個(gè)數組進(jìn)行接收{i++;j=0;}else{if(j==16i==2)     //當接收滿(mǎn)后(共48位),對數據輸出{if(shuju[0]==0xeb14)  //為對應的某一按鍵值PORTD=0x10;     //相應端口輸出if(shuju[0]==0xee11)  //另一鍵值PORTD=0xa0;     //輸出biaozhi=0;     //接收完成,復位相應標志位flag=1;i=0;j=0;}}}    TMR1IF = 0;             // clear Timer0 interrupt flagCCP1IF=0;        //每次必須對CCP1IF位軟件清0}}

注:本程序使用的是TOYO空調的遙控器,起始碼為13.6ms,0碼為2.2ms,1碼為4ms,停止碼為9ms.共48位數據,單片機的為1us,這個(gè)程序還沒(méi)有加校驗.

紅外遙控器相關(guān)文章:紅外遙控器原理


關(guān)鍵詞: PIC16F887 紅外解碼 指令周期

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>