Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

23/02/2013 #1

Avatar de Meta

Desplazamiento de bit
Hola:

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.
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.
23/02/2013 #2
Moderador

Avatar de D@rkbytes

Saludos Meta.
Mira este programa, posiblemente es lo que quieres hacer.
Incluye simulación por si deseas ver como funciona.
23/02/2013 #3

Avatar de Meta

Buenísimo. Lo que no se para que pusiste retardo. ¿Antirrebotes del pulsador?
23/02/2013 #4
Moderador

Avatar de D@rkbytes

Meta dijo: Ver Mensaje
Buenísimo. Lo que no se para que pusiste retardo. ¿Antirrebotes del pulsador?
Si, como mencionaste usar un pulsador en RA0, fue solamente por ese motivo.

;*************************25/Feb/2013*************************

Adjunto el programa modificado, ahora con antirrebote por software.

Saludos.
Archivos Adjuntos
Tipo de Archivo: zip ShiftBits II.zip (15,7 KB (Kilobytes), 0 visitas)
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.