Hola diego_castano00, prueba con esta rutina:
Codigo:
LIST P=16F870
INCLUDE <P16F870.INC>
;................................................................................................
#DEFINE OUT_RS PORTA,2
#DEFINE OUT_E PORTA,0
CONTADOR1 EQU .35
CONTADOR2 EQU .36
CODIGO EQU .37
;................................................................................................
org .0
goto INICIO
;................................................................................................
INI
movwf PORTB
bcf OUT_RS
bsf OUT_E
call RUTINA1
call RUTINA1
call RUTINA1
call RUTINA1
call RUTINA1
bcf OUT_E
return
;................................................................................................
INST
movwf PORTB
bcf OUT_RS
bsf OUT_E
call RUTINA1
call RUTINA1
bcf OUT_E
return
;................................................................................................
DATO
movwf PORTB
bsf OUT_RS
bsf OUT_E
call RUTINA
bcf OUT_E
call RUTINA
bcf OUT_RS
bcf OUT_E
return
;................................................................................................
RUTINA
movlw .10
movwf CONTADOR1
QWE
nop
decfsz CONTADOR1,F
goto QWE
return
;................................................................................................
RUTINA1 ;RUTINA DE DEMORA DE 1ms
movlw .248
movwf CONTADOR1
RET1
nop
decfsz CONTADOR1,F
goto RET1
return
;................................................................................................
INICIO
clrf PORTA
clrf PORTB
clrf PORTC
bsf STATUS,RP0
bcf STATUS,RP1
movlw B"00000110"
movwf ADCON1
movlw B"11111000"
movwf TRISA
movlw B"00000000"
movwf TRISB
movlw B"11110111"
movwf TRISC
bcf STATUS,RP0
bcf STATUS,RP1
bcf OUT_RS
movlw .15
movwf CONTADOR2
HJK
call RUTINA1
decfsz CONTADOR2,F
goto HJK
movlw B"00110000"
call INI
call INI
call INI
movlw B"00111000"
call INI
movlw B"00000001"
call INST
movlw B"00001100"
call INST
movlw B"00000110"
call INST
movlw B"00000001"
call INST
movlw H"80"
call INST
movlw H"48"
call DATO
movlw H"4F"
call DATO
movlw H"4C"
call DATO
movlw H"41"
call DATO
movlw H"C0"
call INST
movlw H"48"
call DATO
movlw H"4F"
call DATO
movlw H"4C"
call DATO
movlw H"41"
call DATO
FGH
nop
goto FGH
Por supuesto adapta el .asm para el 877 ya que este es para el 870.
El puerto B en este código es el usado para la salida de datos y bus de 8 bits
RA0 = E
RA2 = RS
La línea de RW no es usada.
Debería colocar HOLA al principio de ambas filas.
Luego de que ande como debe puedes reducir la cantidad de líneas de código.
Un saludo
Atte. CARLOS