Comunicaciones con rs-485 con el pic16f87x

Buenas tardes,

Estoy realizando un proyecto de comunicaciones con RS-485 con PIC16F873 donde la comunicación son 2 displays, uno de ellos es el que estoy programando con assembler, donde mi display tiene que recibir los datos del otro display, y visualizarlos. El tipo de protocolo utilizado es RTU, 9600 baudios, 5 bytes de la trama y si bit de paridad. Mi problema es al momento de emular el sistema, cuando entro en la interrupción por recepción, no detecta el registro PIR1,RCIF, por lo que, por lo visto según el emulador, nunca llega a entrar en la interrupción para poder visualizar los datos. Este registro se activa ó desactiva a nivel de hardware..

Cuál puede ser mi fallo? como recibiría los datos mediante el protocolo RTU? como compruebo la dirección? más abajo dejaré una parte del código. Espero que por favor me puedan ayudar. Gracias, un saludo,


RECEP

BTFSS PIE1,RCIE
GOTO Exit
BCF STATUS,RP0
BTFSS PIR1,RCIF

GOTO Fin_RECEP ;finalizar comprobación de interrupción por recepción

BTFSC RCSTA,OERR ;Testea el bit de RCSTA, OERR
;OERR: bit de error por desbordamiento
GOTO SAL_Overrun ;Sale de la interrupción

BTFSS RCSTA,FERR ;Testea el bit FERR de RCSTA
;FERR: Bit de error enmarcado

GOTO RECEP_Overrun ;Subrutina chequeo de desbordamiento por software.
;Recepción de datos

MOVF RCREG,W

GOTO Exit ;Recuperar el estado inicial del PIC (Subrutina)y sale de la
;interrupción

RECEP_Overrun ;Recepción de datos

.
.
.
SAL_Overrun ;Sale de la interrupción
.
.
.

EXIT

retfie

;Comienza el programa

;Configuración de registros
BSF STATUS,RP0
MOVLW K_ADCON1 ;Ninguna entrada analógica
MOVWF ADCON1

MOVLW K_OPTION_REG ;PRescaler asig (1/64)
;RB0/INT, pull-up desactivado
MOVWF OPTION_REG ;Pull-up desactivado, TMR0 con PRE 2

BCF STATUS,RP0

MOVLW RECARGA_TMR0 ;D'100'
MOVWF TMR0

MOVLW Baud_Rate_Constant ;(D'25')
MOVWF SPBRG ;Vel de comunic a 9600 baudios
BSF TXSTA,BRGH ;Altas velocidades

BCF TXSTA,SYNC
BSF TXSTA,TX9
BSF TXSTA,TXEN

BCF STATUS,RP0
BCF RCSTA,ADDEN
BCF RCSTA,RX9
BCF RCSTA,CREN
BSF RCSTA,SPEN

CLRF PIR1
CLRF PIR2

BSF STATUS,RP0
CLRF PIE1
CLRF PIE2
BCF STATUS,RP0

CLRF INTCON
BSF INTCON,T0IE
BSF INTCON,PEIE
BSF INTCON,GIE

;Habilito flag de interrup por recepción
MOVF RCREG,W
MOVF RCREG,W

BSF STATUS,RP0
BSF PIE1,RCIE

.
.
.
CODIGO

.
.
.

FIN


Nose si esté bien así... por lo menos esta parte...
 
Atrás
Arriba