Muchas gracias por responder

, te comento que logre mostrar la "H" con PSI y tal como tu lo mencionaste, ahora estoy tratando de hacer el desplazamiento "desfaze", entiendo muy bien la idea pero lo logro hacerlo en asembler por favor me podrias orientar mejor en esta parte

.
Nota: comparto lo que hice.

, ahh utilize dos tablas para las columnas y otro para los datos.
list p=16f877a
include <p16f877a.inc>
;================================================= ====
; constant definitions
#define CS 0x02 ; PORTA,2
;================================================= ====
dato2 EQU 0x26 ;DATO PARA EL DESPLAZAMIENTO
dato1 EQU 0x27 ;DATO PARA EL DESPLAZAMIENTO
cblock 0x20
count1
count2
valor
endc
ORG 0x00
bcf STATUS,5 ;ACCESO AL BANCO 0
bcf STATUS,6 ;ACCESO AL BANCO 0
CLRF TRISB ;PUERTO B COMO SALIDA
CLRF TRISA ;PUERTO A COMO SALIDA
;CLRF TRISD ;PUERTO A COMO SALIDA
;MOVLW b'00000001'
;MOVWF dato2
movlw 0x20 ;
movwf SSPCON ;PARA EL SPI
bsf STATUS,5 ;ACCESO AL BANCO 1
bcf STATUS,6 ;ACCESO AL BANCO 1
MOVLW b'11000000'
MOVWF SSPSTAT
;clrf SSPSTAT ;PARA EL SPI
movlw b'00010000' ;C3(CLOCK COMO SALIDA),C4(COMO ENTRADA) Y C5(SALIDA DE DATOS)
movwf PORTC ;
CLRF PORTB ;LIMPIO EL PUERTO B
CLRF PORTA ;LIMPIO EL PUERTO A
;CLRF PORTD ;LIMPIO EL PUERTO A
bcf STATUS,5 ;ACCESO AL BANCO 0
bcf STATUS,6 ;ACCESO AL BANCO 0
CLRF dato2 ;LIMPIO EL DATO_2
CLRF dato1 ;LIMPIO EL DATO_1
MOVLW b'00000000'
MOVWF dato2
MOVLW b'00000000'
MOVWF valor
;MOVWF count2
MAIN bcf PORTA,CS ;ENABLE CHIP SELECT OUTPUT LOW
;movf valor,dato2
MOVF dato2,0 ;
CALL TABLA ;VOY A TABLA Y CARGO LOS DATOS
movwf SSPBUF ;MUEVO LOS DATOS A EL BUF
Char2
bsf STATUS,RP0
btfss SSPSTAT,BF ; datas transfer complete?
goto Char2
incf dato2,1
bcf STATUS,RP0 ;change bank
INCF dato2,1 ;INCREMENTO DATO_2 PARA LA TABLA
MOVF dato1,0 ;
CALL TABLA_2 ;VOY A TABLA_2 PARA ENCERDER LAS COLUNMAS
MOVWF PORTB ;MUEVO LAS COLUMNAS AL PUERTO B
call DELAY ;ESPERO UN MOMENTITO
CLRF PORTB ;LIMPIO EL PUERTO B
INCF dato1,1 ;INCREMENTO DATO_1 PARA LA TABLA_2
bsf PORTA,CS ; DISBLE CHIP SELECT
;btfsc PORTA,CS
;incf valor,1
;incf valor,1
goto MAIN
DELAY ;SUBRUTINA DELAY (ESPERO UN MOMENTITO)
loop1 decfsz count1,1
goto loop1
;decfsz count2,1
;goto loop1
return
;**************INICIO TABLA*****************
TABLA ADDWF PCL,1
RETLW b'11111111' ;PRIMERA COLUMNA LETRA H
RETLW b'11111111' ;SEGUNDA COLUMNA LETRA H
RETLW b'00000000' ;TERCERA COLUMNA LETRA H
RETLW b'00000000' ;CUARTA COLUMNA LETRA H
RETLW b'11100111' ;QUINTA COLUMNA LETRA H
RETLW b'11100111' ;SEXTA COLUMNA LETRA H
RETLW b'00000000' ;SEPTIMA COLUMNA LETRA H
RETLW b'00000000' ;OCTAVA COLUMNA LETRA H
;*************FIN TABLA********************
;**************INICIO TABLA_2*****************
TABLA_2 ADDWF PCL,1
RETLW b'00000001' ;ENCIENDO LA PRIMERA COLUMNA
RETLW b'00000010' ;ENCIENDO LA SEGUNDA COLUMNA
RETLW b'00000100' ;ENCIENDO LA TERCERA COLUMNA
RETLW b'00001000' ;ENCIENDO LA CUARTA COLUMNA
RETLW b'00010000' ;ENCIENDO LA QUINTA COLUMNA
RETLW b'00100000' ;ENCIENDO LA SEXTA COLUMNA
RETLW b'01000000' ;ENCIENDO LA SEPTIMA COLUMNA
RETLW b'10000000' ;ENCIENDO LA OCTAVA COLUMNA
;*************FIN TABLA_2********************
END