您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机PIC做的红外线遥控接收程序 正文
PIC做的红外线遥控接收程序

PIC做的红外线遥控接收程序

点击数:7687 次   录入时间:03-04 11:49:09   整理:http://www.55dianzi.com   PIC单片机
;*************0数据处理*****************************
         bcf      sj,c            ;数据是"0"
         rrf      sj,1            ;0数据右移到SJ寄存器
         goto     j1
;**************1数据处理.*************************
s1       bsf      sj,c
         rrf      sj,1
ddp      btfsc    portb,0
         goto     ddp
;**************RAM移位***************************
j1       incf     jsp1     ;8位计数寄存器
         incf     jsp2      ;32位数,计存器.
         btfss    jsp1,3   ;是否有8位
         goto     js
         clrf     jsp1
         MOVf     sj,0     ;移8位数到W
         MOVwf    indf     ;W到DATA
         incf     fsr      ;RAM地址加1
         clrf     sj
;*****************************
         btfss    jsp2,5     ;检测是否接收完32位.
         goto     js         ;否,再检测.
         MOVlw    B’10001111’ ;送IC高8位码
         xorwf    data1,0    ;相减(Z:1=结果为0;0=结果不为0)
         btfss    status,2    ;结果为0则下一步.
         goto   zdhh        ;相减结果不为0中断返回
          MOVlw    B’101010101’  ;低8位IC码检测
          xorwf    data2,0
         btfss    status,2
          goto    zdhh
         ;comf     data4,0   ;数据反码检测.暂不用.
         ;subwf    data3,0
         ;btfss    status,2
         ;goto      zdhh
         MOVf     data3,0    ;送数码到C口
         MOVwf    portc
          goto     zdhh           ;接收完32位则中断返回
;****************zdhh中断返回程序*********************
zdhh    
         MOVf     pclath_temp,0
         MOVwf    pclath
         swapf    status_temp,0  ;交换STATUS与W内容,将体选还原.
         MOVwf    status         ;将W内容送STATUS寄存器
         swapf    w_temp,1       ;交换w_temp
         swapf    w_temp,0       ;交换w_temp与w内容,将w_temp内?        
         bcf      intcon,1
         retfie                  ;中断返回,

;****************8ms*********************************
delay8   bcf     intcon,5
         bcf     intcon,2
         MOVlw   D’15’
         MOVwf   tmr0
loop1    btfss   intcon,2
         goto    loop1
           return
;****************5ms*********************************
delay5   bcf    intcon,5
         bcf    intcon,2
         MOVlw  D’120’
         MOVwf  tmr0
loop2    btfss  intcon,2
         goto    loop2
           return
;****************1.3ms*******************************
delay1   bcf    intcon,5 
         bcf    intcon,2
         MOVlw  D’240’
         MOVwf  tmr0
loop3    btfss  intcon,2
         goto    loop3
         return
;*************
          end

错码的可能有两种
一个是字头对不好
一个是数据传输有错误 特别是时序错误
后面的可以用软件校验
字头不好确认 最好可以在软件规定上连续多发几个 然后用移位方法判断有多次连续相同子头出现 对齐字头 比如连续出现20个1 0转换后 表示准备发送数据 然后等待1 0 传输结束后 跟着有一个字头 如11110000 这样 后面就可以接数据了

上一页  [1] [2] [3]  下一页


本文关键字:程序  红外线  PIC单片机单片机-工控设备 - PIC单片机

《PIC做的红外线遥控接收程序》相关文章>>>