中文字幕无码不卡一区二区三区_少妇被又大又粗又爽毛片久久黑人_91精品国产在热久久无毒不卡_久久久久久亚洲综合网站

技術(shù)熱線(xiàn): 4007-888-234

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

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

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

技術(shù)支持

基于PIC單片機(jī)的紅外線(xiàn)遙控接收方案

更新時(shí)間: 2019-03-23

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

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

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

我判斷0(1.125ms)和1(2.25ms) 由于我用的是C57,只能通過(guò)查詢(xún)方式來(lái)確定.通過(guò)高電平的時(shí)間(以下程序中延時(shí)0.9MS)不同來(lái)決定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 ;遙控接收無(wú)效。
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 ;遙控接收無(wú)效。
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的接收程序.

(文源網(wǎng)絡(luò),侵刪)

404
返回首頁(yè) |  返回上一頁(yè)
阿坝| 嘉义县| 扶绥县| 夏津县| 达尔| 竹北市| 临夏县| 健康| 三江| 安达市| 游戏| 彰武县| 宿州市| 监利县| 寿阳县| 渑池县| 固始县| 社旗县| 黑山县| 乌鲁木齐县| 衡阳市| 中宁县| 昔阳县| 新和县| 白银市| 格尔木市| 山东省| 河津市| 吉林省| 辉县市| 邯郸市| 勐海县| 岗巴县| 米林县| 连城县| 赣榆县| 密云县| 竹溪县| 抚松县| 东城区| 肇州县|