日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

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

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

          作者: 時間:2011-05-28 來源:網(wǎng)絡(luò) 收藏

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

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

          還有就是時的容陷和誤碼處理(有一種寫法是在移位時利用進(jìn)位標(biāo)制C同時移位;我個人認(rèn)為不太好,因?yàn)橹灰钜晃粵]接收到,整個接收到的都是誤碼且浪費(fèi)時間)

          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ù)(假設(shè)要發(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ā)一個結(jié)束位
          SUBWF TIME,0
          BTFSS STATUS,2
          GOTO SENDDIGT5
          BSF PORTB,1
          BSF STARTBIT
          RETURN
          ;/////////////////////////////////////////////////////////////////////////////////////////
          SENDDIGT:;;實(shí)現(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

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

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



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉