
Buen dia:
estoy realizando un proyecto el cual me debe permitir, administrar el acceso a una entrada. el cual es controlado mandando un dato de la PC por medio al max232 al pic16f84, el unico problema que tengo es, que el codigo que estoy desarrollando no me esta leyendo los datos enviados de la pc, esto es en la linea que dice "call RS232_LeeDato" . en este caso este codigo me estoy basando con el proyecto del libro del mismo pic mencionado de su practica 11.
espero que me puedan ayudar por favor, ya que no encuentro solucion. gracias.
anexo codigo y diagrama :
LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
CBLOCK 0x0C
TeclaPulsada ; Va a guardar el contenido de la tecla pulsada.
MensajeApuntado ; Va a guarda la dirección del mensaje apuntado.
ENDC
TeclaSalida EQU 's'
ORG 0
goto INICIO
;********INICIO********************
INICIO
call RS232_Inicializa
BSF STATUS,RP0
clrf PORTB ; puerto B como salida
bcf STATUS,RP0 ; ponemos a 0 el bit 5 del STATUS, acceso al banco 0.
call Atras
;*********PRINCIPAL********************
principal
call RS232_LeeDato ; Espera a recibir un carácter.
call TesteaTeclado
goto principal
;******MENSAJES******
;Mensajes
; addwf PCL,F
;*******TESTEATECLADO*************
TesteaTeclado
movf TeclaPulsada,W ; Guarda el contenido de la tecla pulsada.
xorlw TeclaSalida ; ¿Es la tecla del movimiento hacia adelante?
btfsc STATUS,Z
goto Adelante
goto principal
;*******MOVIMIENTOS*************
Adelante
movlw b'00001110' ; indica que datos saldran de la puerta B
movwf PORTB
call Retardo_1s
call Retardo_2s
goto principal
;******* PARAR*****
Atras
movlw b'00000000' ; indica que datos saldran de la puerta B
movwf PORTB
;movlw MensajeEntrada
return
;***** FIN *******
Fin
return
INCLUDE <RETARDOS.INC>
INCLUDE <RS232.INC>
;INCLUDE <RS232MEN.INC>
END