Hey como andan ?
tengo un pequeño problemita con la recepcion serial en un PIC16F84, estoy utilizando un programilla en assembler que me encontre en un link en esta pagina pero solamente la transmicion es la que funciona y me preguntaba si tienen algun programa que hayan probado y puedan facilitarme para hacer pruebas y ver en que me estoy equivocando
sin nad mas que decir, ahi los dejo esperando una respuesta por su parte
el programa que estoy utilizando es este:
; Programa:Comunicación asíncrona a PC vía RS232
; Autor

anilo García
; Fecha:Mayo de 1999
; El programa recibe un byte por el pin RX
;para luego enviarlo por el pin TX.
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; Parámetros de comunicación RS232: 9600,N,8,1
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
list p=16f84
#include <p16f84.inc>
;PALABRA DE CONFIGURACIÓN:
__CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC
;===========================================================================
#DEFINE BANK0 BCF STATUS,RP0
#DEFINE BANK1 BSF STATUS,RP0
TRUE EQU 1
FALSE EQU 0
;===========================================================================
;DEFINICION DE BITS:
#DEFINE RX PORTB,0
#DEFINE TX PORTB,1
;===========================================================================
;DEFINICION DE VARIBLES
DATO EQU 0x0C ;Dato a Transmitir o Recibido RS232
RET1 EQU 0x0D ;para retardo de bit RS232
RET2 EQU 0x0E ;para retardo de bit RS232
CONT8 EQU 0x0F ;Contador de bits en rutinas RX y TX
;===========================================================================
ORG 0
GOTO INICIO
;===========================================================================
ORG 4
INTERRUPCION
BTFSS INTCON,INTF ;COMPROBACIÓN DE INTERRUPCION INT
RETFIE
CALL RXDATO
XORLW TRUE
BZ TX_DATO
BCF INTCON,INTF ;BORRA BANDERA INT
RETFIE
TX_DATO
CALL TXDATO
BCF INTCON,INTF ;BORRA BANDERA INT
RETFIE
;***************************************************************************
;********** RUTINAS DE COMUNICACION ASINCRONA *******************
;***************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RXDATO
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BTFSS RX
GOTO RXBYTE
RETLW FALSE
RXBYTE
CALL TIME2
MOVLW 8
MOVWF CONT8
BIT
CALL TIME
RRF DATO,F
BCF DATO,7
BTFSC RX
BSF DATO,7
DECFSZ CONT8,F
GOTO BIT
CALL TIME2
RETLW TRUE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TXDATO
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOVLW 8
MOVWF CONT8
BCF TX
BIT2
CALL TIME
RRF DATO,F
BTFSS STATUS,C
BCF TX
BTFSC STATUS,C
BSF TX
DECON
DECFSZ CONT8,F
GOTO BIT2
CALL TIME
BSF TX
CALL TIME
RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME2 ;RETARDO DE 52 uS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOVLW 1
MOVWF RET1
T1
MOVLW .14
MOVWF RET2
T2
DECFSZ RET2,F
GOTO T2
DECFSZ RET1,F
GOTO T1
NOP
RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME ;RETARDO DE 104 uS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOVLW 1
MOVWF RET1
T3
MOVLW .28
MOVWF RET2
T4
DECFSZ RET2,F
GOTO T4
DECFSZ RET1
GOTO T3
NOP
NOP
RETURN
;***************************************************************************
INICIO
;PROGRAMACION DE LOS PUERTOS
BANK1
BCF TX ;PROGRAMA PIN TX COMO SALIDA
BCF OPTION_REG,INTEDG ;PROGRAMA INT CON FLANCO DE BAJADA
BANK0
;PROGRAMACION DE LA INTERRUPCION INT(RB0)
BSF INTCON,INTE ;HABILITA INTERRUPCIÓN INT
BSF INTCON,GIE ;HABILITA INTERRUPCIONES GLOBALMENTE
;ESPERA LA INTERRUPCION
GOTO $
END