色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

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

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

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

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

          2 再談發(fā)送

          原理是接收的逆過(guò)程

          例程如下(用來(lái)發(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個(gè)字)
          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ā)一個(gè)結(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;



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉