中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > PIC單片機紅外遙控編碼與解碼的問題分享

        PIC單片機紅外遙控編碼與解碼的問題分享

        作者: 時間:2011-05-28 來源:網絡 收藏

        假如用中斷的話也可用時間查詢的方法,只是接收口改用帶中斷的口線;RB4--RB7,CCP1,CCP2,都可以。建議不要用RB0(他當按鍵輸入最好用);

        本文引用地址:http://www.antipu.com.cn/article/172729.htm

        還有就是時的容陷和誤碼處理(有一種寫法是在移位時利用進位標制C同時移位;我個人認為不太好,因為只要差一位沒接收到,整個接收到的都是誤碼且浪費時間)

        2 再談發(fā)送

        原理是接收的逆過程

        例程如下(用來發(fā)6221;分頻比為256)

        ;///////////////////////////////////////////////////////////////////////////////////////////////
        READDIGT:
        MOVF SENDLOOP,0
        ADDWF PC,1
        GOTO SENDC4
        GOTO SENDC3
        GOTO SENDC2
        GOTO SENDC1
        GOTO SENDC0
        ;///////////////////////////////////
        SENDC0:
        MOVF C4COUNT,0;;讀要發(fā)的數(shù)據(jù)(假設要發(fā)5個字)
        RETURN
        SENDC1:
        MOVF C3COUNT,0
        RETURN
        SENDC2:
        MOVF C2COUNT,0
        RETURN
        SENDC3:
        MOVF C1COUNT,0
        RETURN
        SENDC4:
        MOVF C0COUNT,0
        RETURN
        ;///////////////////////////////////
        SENDBIT:
        CLRF TIME
        BCF PORTB,1
        SENDBIT1:
        CLRWDT
        MOVLW .35
        SUBWF TIME,0
        BTFSS STATUS,2
        GOTO SENDBIT1
        CLRF TIME
        BSF PORTB,1
        SENDBIT2:
        CLRWDT
        MOVLW .18
        SUBWF TIME,0
        BTFSS STATUS,2
        GOTO SENDBIT2
        CLRF SENDLOOP ;碼頭數(shù)據(jù)發(fā)送

        //////////////////////////////////////////////
        SENDBIT3:
        CLRWDT
        BCF INTCON,7
        CALL READDIGT
        MOVWF SENDCOUNT
        BSF INTCON,7
        CALL SENDDIGT
        INCF SENDLOOP,1
        MOVLW .5
        SUBWF SENDLOOP,0
        BTFSS STATUS,2
        GOTO SENDBIT3
        CLRF TIME
        BCF PORTB,1
        SENDDIGT5:
        CLRWDT
        MOVLW .2;;加發(fā)一個結束位
        SUBWF TIME,0
        BTFSS STATUS,2
        GOTO SENDDIGT5
        BSF PORTB,1
        BSF STARTBIT
        RETURN
        ;/////////////////////////////////////////////////////////////////////////////////////////
        SENDDIGT:;;實現(xiàn)0和1的發(fā)送
        MOVLW .8
        MOVWF LOOPSENDCOUNT
        SENDDIGTGO:
        BTFSS SENDCOUNT,7
        GOTO ZERSEND
        CLRF TIME
        SENDDIGT1:
        CLRWDT
        BCF PORTB,1
        MOVLW .2
        SUBWF TIME,0
        BTFSS STATUS,2
        GOTO SENDDIGT1
        CLRF TIME
        SENDDIGT2:
        CLRWDT
        BSF PORTB,1
        MOVLW .6
        SUBWF TIME,0
        BTFSS STATUS,2
        GOTO SENDDIGT2
        GOTO SENDOVER
        ZERSEND:
        CLRF TIME
        SENDDIGT3:
        CLRWDT
        BCF PORTB,1
        MOVLW .2
        SUBWF TIME,0
        BTFSS STATUS,2
        GOTO SENDDIGT3
        CLRF TIME
        SENDDIGT4:
        CLRWDT
        BSF PORTB,1
        MOVLW .2
        SUBWF TIME,0
        BTFSS STATUS,2
        GOTO SENDDIGT4
        SENDOVER:
        RLF SENDCOUNT,1
        DECFSZ LOOPSENDCOUNT
        GOTO SENDDIGTGO
        RETURN

        相應的C代碼如下:(C5口是發(fā)送口)

        #include
        #include
        #include
        unsigned char dispcount[5];//要發(fā)送的碼值
        unsigned char i,k,data,rfbit,zbit,rfgobit;



        評論


        相關推薦

        技術專區(qū)

        關閉