Hola a todos,
Estoy probando la conexión al pic16f877 con un código que hace eco en el micro y devuelve el carácter que introduzco al hiperterminal de windows. El código es el que escribo a continuación (no es propio, es cogido de alguna web que a su vez lo han cogido de un libro)
El esquemático esta adjunto a este post, así como el cable que estoy usando para la comunicación con el PC
El problema es que no he conseguido respuesta en la ventana del hiperterminal, es decir, no me deja introducir ningún carácter. Y estoy totalmente perdido, no se si puede ser problema del esquemático, del cable, o del código..... si me ayudáis a descartar cosas os estaré agradecido
Estoy probando la conexión al pic16f877 con un código que hace eco en el micro y devuelve el carácter que introduzco al hiperterminal de windows. El código es el que escribo a continuación (no es propio, es cogido de alguna web que a su vez lo han cogido de un libro)
Código:
;******************************************************************************
processor 16f877
include <p16f877.inc>
__CONFIG 0x3F71
; ------------------------------Código modificado por aztk-------------------------------------
; inicio
org 0x00
goto inicio
org 0x04
goto INTER
; Se transmite via Serie el dato que esta en el registro W
TX_DATO bcf PIR1,TXIF ; Restaura el flag del transmisor
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
; Tratamiento de interrupción
INTER btfss PIR1,RCIF ; ¿Interrupción por recepción?
goto VOLVER ; No, falsa interrupción
bcf PIR1,RCIF ; Si, reponer flag
movf RCREG,W ; Lectura del dato recibido
movwf PORTB ; Visualización del dato
call TX_DATO ; Transmisión del dato como eco
VOLVER retfie
; Comienzo del programa principal
inicio clrf PORTB ; Limpiar salidas
clrf PORTC
bsf STATUS,RP0 ; Bank01
bcf STATUS,RP1
clrf TRISB ; PORTB como salida
movlw b'10111111' ; RC7/RX entrada,
movwf TRISC ; RC6/TX salida
movlw b'00100100' ; Configuración USART
movwf TXSTA ; y activación de transmisión
movlw .25 ; 9600 baudios
movwf SPBRG
bsf PIE1,RCIE ; Habilita interrupción en recepción
bcf STATUS,RP0 ; Bank00
movlw b'10010000' ; Configuración del USART para recepción continua
movwf RCSTA ; Puesta en ON
movlw b'11000000' ; Habilitación de las
movwf INTCON ; interrupciones en general
BUCLE nop
goto BUCLE
end
El esquemático esta adjunto a este post, así como el cable que estoy usando para la comunicación con el PC
El problema es que no he conseguido respuesta en la ventana del hiperterminal, es decir, no me deja introducir ningún carácter. Y estoy totalmente perdido, no se si puede ser problema del esquemático, del cable, o del código..... si me ayudáis a descartar cosas os estaré agradecido