天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234
設計開發

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

開發工具

提供開發工具、應用測試 完善的開發代碼案例庫分享

技術支持

從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創造無限潛能!

新聞中心

提供最新的單片機資訊,行業消息以及公司新聞動態

基于PIC單片機的紅外線遙控接收方案

更新時間: 2019-03-23
閱讀量:1749

十年專注單片機方案開發的方案公司英銳恩,分享基于PIC單片機的紅外線遙控接收方案。英銳恩現提供服務產品涉及主控芯片:8位單片機、16位單片機、32位單片機及各類運算放大器等。

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

我知道遙控碼的連發情況,但我已經設置了32位接收碼的計數器,應該不會有問題的

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

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

;====================================
REMOTE_RECEIVER
CLRF 20H ;設定遙控接收正確與否標志位。若20H的第0位為1,

BTFSC PORTA,0 ;遙控接收無效。
GOTO BACK ;判斷9MS低電平和4.5MS高電平。
;----5ms delay----------------
MOVLW 06H ;防止抖動,延時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 ;遙控接收,等待高電平出現,約9-5ms
GOTO LOOP0

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

MOVLW D'180' ;延時0.9ms,測試高電平的脈寬。
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進行間接尋址。
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位地址碼不對,返回
MOVF ADD8H,0
XORLW 0FFH
BTFSS STATUS,Z
GOTO BACK
MOVF DAT8,0 ;8位數據碼不對,返回
XORLW 00H
BTFSS STATUS,Z
GOTO BACK
MOVF DAT8F,0 ;8位數據反碼不對,返回
XORLW 0FFH
BTFSS STATUS,Z
GOTO BACK
GOTO REM_OK ;代碼接收正確
BACK BSF 20H,0
REM_OK RETURN

回復 先清32位數據再接收.
然后每接收完8位后,RAM要清0

如;**************RAM移位***************************
j1 incf jsp1 ;8位計數寄存器
incf jsp2 ;32位數,計存器.
btfss jsp1,3 ;是否有8位
goto js
clrf jsp1
movf sj,0 ;移8位數到W
movwf ** ;W到DATA
incf f ;RAM地址加1
clrf sj ;注意這里!!!!!!!!!!!!!!!
;*****************************
btfss jsp2,5 ;檢測是否接收完32位.

goto js ;否,再檢測.
這是6122和6121 IC的接收程序.

(文源網絡,侵刪)

联系我们: 温宿县| 康保县| 珠海市| 洞口县| 同心县| 宜川县| 岗巴县| 余庆县| 贞丰县| 黔江区| 潮安县| 如皋市| 西乌| 宁河县| 奇台县| 井冈山市| 鹰潭市| 于都县| 玉门市| 隆安县| 南和县| 习水县| 理塘县| 青海省| 达孜县| 康定县| 开原市| 兴城市| 大同县| 深圳市| 北碚区| 泰来县| 彩票| 沂源县| 河西区| 临清市| 福建省| 漠河县| 陵水| 太和县| 翼城县|