Escolar Documentos
Profissional Documentos
Cultura Documentos
Microcontrolador PIC16F84A.
Objetivo:
Swapf f,d
Rlf f,d
Rrf f,d
La instrucción swapf f,d intercambia los 4 bits de mayor peso por los cuatros de menor peso y viceversa
del dato contenido en el registro usado. Ejemplo:
swapf 0ch,1
Si tuviéramos en el registro 0ch el dato 0fh, al aplicar la instrucción el contenido se transformaría en f0h y
lo guardaríamos en 0ch por ser d= 1.
La instrucción rlf f,d desplaza el contenido del registro usado hacia la izquierda, introduciendo por
el lugar del bit de menor peso el valor del acarreo. El acarreo es a su vez cargado con el contenido del bit
de más peso del dato contenido en el registro usado.
El contenido es almacenado en el registro si d= 1 y si no será guardado en el acumulador w por ser d= 0.
Ejemplo:
rlf 0ch,1
Si el valor contenido en el registro 0ch es 01h y el acarreo es cero, al desplazarse hacia la izquierda el
contenido será 02h. El valor 02h se guardará en 0ch por ser d= 1.
La instrucción rrf f, d desplaza el contenido del registro usado hacia la derecha introduciendo el
valor del acarreo por el bit de más peso y cargándose el acarreo con el valor del bit de menor peso del
registro. El valor del dato se guardará en el registro si d= 1 o en el acumulador w, si d= 0.
Ejemplo:
rrf 0ch,1
Si el contenido del registro 0ch fuese 00h y el acarreo valiese 1, el contenido del registro sería 80h,
y se guardaría en 0ch.
Esquema eléctrico:
Programa:
;--------------------------------------------------------
;PROGRAMA LED.ASM
;--------------------------------------------------------
list p=16f84A
include "p16F84A.inc"
org 00h
reset
goto inicio
org 10h
inicio
;-------------------------------------------
;--------------------------------------------
;-----------------------------------
;PROGRAMA PRINCIPAL
;-----------------------------------
programa
call sg1
call sg1
; y lo deposito en el mismo ya
; que d= 1.
call sg1
call sg1
call sg1
call sg1
; ma principal.
;-------------------------------------------------------------
;PROGRAMA DE ROTACION.
;-------------------------------------------------------------
rotacion
; ( bit 0 = C = acarreo ).
der
; 11h ya que d= 1.
; da derecha.
; ( bit 0 = C = acarreo ).
izq
; do en el mismo ya d= 1.
; mada izquierda.
; que d= 0.
call sg1
izquierda
; que d= 0.
call sg1
;RETARDOS
;----------------------------------------
sg1
movlw 0ffh
movwf 0ch
movwf 0dh
movlw 01h
movwf 0eh
salto1
decfsz 0ch,1
goto salto1
decfsz 0dh,1
goto salto1
decfsz 0eh,1
goto salto1
return
end