久久丫精品无码视频|亚洲成人黄色电影|超碰国产在线观看|亚洲Aⅴ综合免费在线|久久青青草原国产精品|极品美女三级片国产无码a|女人的黄色片子综合AV|日韩成人?毛片

<ruby id="u9qf7"><cite id="u9qf7"></cite></ruby>
      1. <style id="u9qf7"><blockquote id="u9qf7"></blockquote></style>

        技術(shù)熱線: 4007-888-234
        設(shè)計(jì)開發(fā)

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

        開發(fā)工具

        提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫分享

        技術(shù)支持

        從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

        新品推廣

        提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力

        新聞中心

        提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

        PIC單片機(jī)紅外線控制方面的內(nèi)容

        更新時(shí)間: 2019-03-23
        閱讀量:2534

        十年專注單片機(jī)方案開發(fā)的方案公司英銳恩,分享PIC單片機(jī)紅外線控制方面的內(nèi)容。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類運(yùn)算放大器等。

        紅外線控制方面的內(nèi)容

        如何用PIC做紅外線遙控接收? 
        ============================   
        先用20106之類的片子解調(diào)后,你用示波器掛在20106的輸出端就可以查看遙控波形。
        =============================
        NEC遙控接收第一次正常,以后就不行了(附遙控子程序)請(qǐng)指正。
        不才是PIC領(lǐng)域的新手,最近寫了一個(gè)關(guān)于NEC遙控接收解碼的測(cè)試程序,下面是此程序的遙控解碼部分但是它只能第一次正確判斷出接收碼,以后就不行了請(qǐng)高手指點(diǎn)》

        我知道遙控碼的連發(fā)情況,但我已經(jīng)設(shè)置了32位接收碼的計(jì)數(shù)器,應(yīng)該不會(huì)有問題的

        我判斷0(1.125ms)和1(2.25ms) 由于我用的是C57,只能通過查詢方式來確定.通過高電平的時(shí)間(以下程序中延時(shí)0.9MS)不同來決定0或1的。

        ;NEC格式遙控碼的接收與解碼子程序
        ;本程序中采用PORTA  0口接收紅外遙控,地址碼為00H,高位FFH,數(shù)據(jù)碼為00H,反碼為FFH,接收到的依次存放到  25H   ADD8L,   26H   ADD8H,DAT8    27H ,28H      DAT8F寄存器中。
        ;第一次接收到此信號(hào)即關(guān)機(jī).

        ;====================================
        REMOTE_RECEIVER 
                 CLRF 20H              ;設(shè)定遙控接收正確與否標(biāo)志位。若20H的第0位為1,
                 BTFSC     PORTA,0     ;遙控接收無效。
                 GOTO      BACK        ;判斷9MS低電平和4.5MS高電平。
        ;----5ms delay----------------
                 MOVLW     06H         ;防止抖動(dòng),延時(shí)5ms
                 MOVWF     30H
        LOOP4          MOVLW 0FFH
                 MOVWF 31H
        LOOP5    DECFSZ 31H,1
                 GOTO LOOP5
                 DECFSZ 30H,1
                 GOTO LOOP4 

        ;-----------------------------

           BTFSC PORTA,0
                 GOTO BACK              ;遙控接收無效。
        LOOP0    BTFSS PORTA,0        ;遙控接收,等待高電平出現(xiàn),約9-5ms
                 GOTO LOOP0

        ;------------------------------以下是接收代碼的步子
        STEP      MOVLW D'32'         ;設(shè)置32位接收碼的計(jì)數(shù)器.
                  MOVWF BIT32
        STEP1     BTFSC PORTA,0       ;等待4.5ms
                  GOTO STEP1
        STEP2     BTFSS PORTA,0
                  GOTO STEP2              ;測(cè)一個(gè)脈沖,

                  MOVLW D'180'         ;延時(shí)0.9ms,測(cè)試高電平的脈寬。
                  MOVWF 29H
                  BCF STATUS,C
        WAIT      NOP
                  NOP
                  DECFSZ 29H,1
                  GOTO WAIT 
                  BTFSS PORTA,0         ;PA0 TO C
                  GOTO C0
                  GOTO C1
        C0        BCF STATUS,C
                  GOTO STEP3
        C1        BSF STATUS,C

        STEP3     MOVLW D'4'
                  MOVWF 2AH
                  MOVLW 28H        ;28H是DAT8F的地址
                  MOVWF FSR        ;利用FSR進(jìn)行間接尋址。
        STEP4     RLF INDF,1
                  DECF FSR,1
                  DECFSZ 2AH,1
                  GOTO STEP4
                  DECFSZ BIT32,1
                  GOTO STEP1
                  MOVF ADD8L,0
                  XORLW 00H
                  BTFSS STATUS,Z
                  GOTO BACK        ;低8位地址碼不對(duì),返回
                  MOVF ADD8H,0

         XORLW 0FFH
                  BTFSS STATUS,Z
                  GOTO BACK
                     MOVF DAT8,0       ;8位數(shù)據(jù)碼不對(duì),返回
                  XORLW 00H
                    BTFSS STATUS,Z
                    GOTO BACK
                     MOVF DAT8F,0      ;8位數(shù)據(jù)反碼不對(duì),返回
                     XORLW 0FFH
                      BTFSS STATUS,Z
                      GOTO BACK 
                  GOTO REM_OK       ;代碼接收正確
        BACK      BSF 20H,0
        REM_OK    RETURN


         
         
        回復(fù)  先清32位數(shù)據(jù)再接收.
        然后每接收完8位后,RAM要清0

        如;**************RAM移位***************************
        j1       incf     jsp1     ;8位計(jì)數(shù)寄存器
                 incf     jsp2      ;32位數(shù),計(jì)存器.
                 btfss    jsp1,3   ;是否有8位
                 goto     js
                 clrf     jsp1

         movf     sj,0     ;移8位數(shù)到W
                 movwf       **    ;W到DATA
                 incf     f       ;RAM地址加1
                 clrf     sj       ;注意這里!!!!!!!!!!!!!!!
        ;*****************************
                 btfss    jsp2,5     ;檢測(cè)是否接收完32位.
                 goto     js         ;否,再檢測(cè).
        這是6122和6121  IC的接收程序.