Hola:
Puedo hacer un desplazamiento por el puerto B con este código.
Lo que me falta ahora es con un pulsador en el PORTA, el que sea que se desplace solo 4 bits del PORTB llamado RB4, RB5, RB6 y RB7. Cuando llegue al último bits RB7, vuelva a desplazarse directamente al RB4.
Un ejemplo, si introducimos un pulso (no interruptor) en el RA0, se daplaza el bits a la derecha que es la instrucción rrf.
Cuando llegue al paso 5), el bit 1 del RB7 del paso 4) vuelve al RB4 del paso 5).
Es todo lo que quiro hacer.
Puedo hacer un desplazamiento por el puerto B con este código.
Código:
; ZONA DE DATOS *********************************************************************
LIST P=16F84A ; Procesador utilizado.
INCLUDE <P16F84A.INC> ; Definición de algunos operandos utilizados.
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
; ZONA DE CÓDIGOS ********************************************************************
ORG 0 ; El programa comienza en la dirección 0.
Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.
clrf TRISB ; Las líneas del Puerto B se configuran como salida.
movlw b'00011111' ; Las 5 líneas del Puerto A se configuran como entrada.
movwf TRISA
bcf STATUS,RP0 ; Acceso al Banco 0.
Principal
bcf STATUS,C ; Este "0" es el que entrará por la izquierda.
rrf PORTA,W ; Rota los bits una posición a la derecha y lo
movwf PORTB ; lleva al Puerto B para que se visualice.
goto Principal ; Se crea un bucle cerrado e infinito.
END ; Fin del programa.
Un ejemplo, si introducimos un pulso (no interruptor) en el RA0, se daplaza el bits a la derecha que es la instrucción rrf.
Cuando llegue al paso 5), el bit 1 del RB7 del paso 4) vuelve al RB4 del paso 5).
Es todo lo que quiro hacer.