您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机M50462AP摇控器-PIC解码程序(已测试OK) 正文
M50462AP摇控器-PIC解码程序(已测试OK)

M50462AP摇控器-PIC解码程序(已测试OK)

点击数:7186 次   录入时间:03-04 11:50:11   整理:http://www.55dianzi.com   PIC单片机
            RETFIE           ;
            ORG  0008H
;************************************************
MAIN:
 CALL    RESET_       ;BANK0--BANK1清0

 CLRF STATUS       ;清状态寄存器口
        BSF     STATUS,RP0   ;BANK-1
;------------------------------------------------
        MOVLW   0FH          ;00001111设定:RB口不用上拉,分频器配给WDT
        MOVWF   OPTION_      ;分频比设为1:256
        MOVLW   02H          ;00000010转换结果左对齐,只选3个A/D通道RA0/AN0,RA1,RA3
        MOVWF   ADCON1       ;选择VDD和VSS作参考源
;------------------------------------------------
        MOVLW   00H
        MOVWF   TRISC        ;PORTC所有管脚设为输出
        MOVLW   01H          ;
        MOVWF   TRISB        ;RB0=输入
        MOVLW   0FFH         ;
        MOVWF   TRISA        ;
;------------------------------------------------
        BCF     STATUS,RP0   ;BANK-0
;------------------------------------------------
        MOVLW   01001001B    ;01001001选择:时钟时钟源为FOSC/8,允许ADC工作
        MOVWF   ADCON0       ;通道AN1,暂时不启动转换过程
        BCF     PIR1,  ADIF  ;清除A/D中断标志位
;------------------------------------------------
        MOVLW   00H          ;
        MOVWF   PORTC        ;
        MOVLW   0FFH         ;
        MOVWF   PORTB        ;
;*****************************************************
LOOP:
        NOP                  ;
        NOP                  ;
;*****************************************************
RCV:
        BTFSC      PORTB,RMT
        GOTO       LOOP           ;是干扰退出
        MOVLW      10
        MOVWF      CNT1           ;10*256*10us
        CLRF       CNT2
        CLRF       CNT0
RCV1:
        MOVLW      170            ;低电平大于256-170=86*10US=860US错误
        MOVWF      CNT0
RCV1_HI:
        GOTO       $+1
        NOP
        BTFSC      PORTB,RMT
        INCF       CNT3,1
        BTFSS      PORTB,RMT
        CLRF       CNT3
        BTFSC      CNT3,2          ;高电平大于8*10US=80US则为有效高电平
        GOTO       RCV11
        INCFSZ     CNT0,1
        GOTO       RCV1_HI         ;低电平大于700US则是错误的
        GOTO       LOOP
;*************************************************
RCV11:
        GOTO       $+1             ;每一个循环10US
        NOP
        BTFSS      PORTB,RMT
        INCF       CNT2,1
        BTFSC      PORTB,RMT
        CLRF       CNT2
        BTFSC      CNT2,3          ;低电平大于8*10US=80US则为有效低电平,否则是一些干扰信


        GOTO       RCV4
        DECFSZ     CNT0,1
        GOTO       RCV11
        DECFSZ     CNT1,1
        GOTO       RCV11
        GOTO       LOOP            ;高电平大于10*256*10US=25.6MS则是错误的
;**************************************************
RCV4:
        MOVLW      4
        SUBWF      CNT1,0          ;高电平小于6*256*10US=15.36MS则是错误的
        BTFSC      STATUS,C        ;
        GOTO       LOOP
;-----------------------------------------
        MOVLW      16

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


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