radiofrecuencia pic16f877a

bueno es mi primer duda que me surge desde hace mucho tiempo quiero comunicar dos pic mediante radiofrecuencia usando la comunicacion serial en el transmisor tengo el siguiente codigo al simularlo no termina la transmision necesito ayuda para que me digan si algo esta mal, en la parte de la sintaxis,en la configuracion de los puertos o en el programa o si no puede simularse en el mplab

Código:
        LIST P=16F877A
        INCLUDE<P16F877A.INC>
;BITS DE CONFIGURACION
__CONFIG _LVP_OFF& _XT_OSC& _WDT_OFF& _PWRTE_ON& _CP_OFF& _BODEN_OFF& _DEBUG_OFF    
ERRORLEVEL    0,    -302 

org 0x00
nop
nop
bsf STATUS,RP0 ;Ir banco 1
bcf STATUS,RP1
clrf TRISA ;PORTA salida
movlw b'00000001'
movwf TRISB ;bit 0 como entrada
clrf TRISC ;PORTC salida
clrf TRISD ;PORTD salida
clrf TRISE
bcf TRISC,6 ;RC6/TX salida, pin de transmisión
bsf TRISC,7 ;RC7/Rx entrada, pin de recepción
movlw d'25' ;2400 baud rate Xtal=4Mhz
movwf SPBRG
bcf TXSTA,BRGH ;Selección de baja velocidad
bcf TXSTA,SYNC ;Modo asíncrono
bcf STATUS,RP0 ;Ir banco 0
bcf STATUS,RP1
bsf RCSTA,SPEN ;habilita el puerto serie
bsf STATUS,RP0 ;Ir banco 1
bcf STATUS,RP1
bcf TXSTA,TX9 ;8 bits de datos a transmitir
bsf TXSTA,TXEN ;Activa la transmisión serial, TXIF = 1
bcf STATUS,RP0 ;Ir banco 0
bcf STATUS,RP1

movlw b'01010101'
movwf 0x20
boton
btfss PORTB,0
goto boton
call TX_DATO
goto boton

TX_DATO        bcf    PIR1,TXIF    ; Restaura el flag del transmisor
        movf 0x20,W
        movwf    TXREG        ; Mueve el byte a transmitir al registro de transmision
        bsf    STATUS,RP0    ; Bank01
        bcf    STATUS,RP1
TX_DAT_W  btfss   TXSTA,TRMT     ; ¿Byte transmitido? 
          goto    TX_DAT_W       ; No, esperar 
          bcf     STATUS,RP0     ; Si, vuelta a Bank00 
          return 
end
 
Última edición por un moderador:
Atrás
Arriba