PDF de programación - Las Instrucciones básicas de los Microcontroladores Picmicro

Imágen de pdf Las Instrucciones básicas de los Microcontroladores Picmicro

Las Instrucciones básicas de los Microcontroladores Picmicrográfica de visualizaciones

Publicado el 19 de Julio del 2017
1.573 visualizaciones desde el 19 de Julio del 2017
25,7 KB
12 paginas
Creado hace 21a (01/08/2002)
Las Instrucciones



A continuación vamos a presentar el conjunto de instrucciones básico de

los Microcontroladores Picmicro.


En general la instrucciones de los microcontroladores pueden clasificarse

como:

CISC:
Complex Instruction Set Computer
Juego de Instrucciones Complejo, mas de 80 instrucciones

RISC
Reduced Instruction Set Computer)
Juego de Instrucciones Reducido, unas 35 instrucciones. Los

microcontroladores PICmicro son de este tipo.


SISC
Specific Instruction Set Computer
Juego de Instrucciones Especifico.

Para una mejor presentación las instrucciones se pueden clasificar

según la función que desempeñan en un programa, por ejemplo para:


- Mover
- Cambiar el contenido de los registros
- Controlar el flujo del programa
- Controlar el microcontrolador
- Realizar operaciones lógicas
- Realizar operaciones aritméticas.

Las instrucciones realizan operaciones y movimientos entre el



“acumulador” o “registro de trabajo” y los registros de la memoria RAM del
microcontrolador.



este numero puede escribirse en decimal, hexadecimal o binario

MOVLW
Carga un numero en el acumulador W.
El numero que se va a cargar en al acumulador esta representado por k,

El acumulador esta representado con la letra W (Work)

Instrucciones para mover

k

f

equ 0x6
equ 10

0x25
portb
Contador



f,d



d’255’

0xFF

b’11111111’

; decimal

; hexadecimal
; binario


Ejemplo:

MOVLW
MOVLW
MOVLW


; carga el acumulador con 0x25
; el registro portb contiene 0x25
; el registro Contador contiene 0x25

MOVWF
Mueve una copia del acumulador W al registro f.

Ejemplo:

portb
Contador

MOVLW
MOVWF
MOVWF



confuso. Mueve del registro f al registro f. No pasa nada. El dato se queda en el
mismo lugar. No hay porque preocuparse el formato de la instrucción es así.
Como veremos más adelante, en otras instrucciones, el formato de destino d=1
es mas claro. Se puede decir que en general con esta instrucción d=1 no se
utiliza. Siga adelante, entenderá mejor en un momento.



MOVF
Mueve una copia del registro f al destino d.
El destino puede ser:
Si d=0 el destino es el acumulador.
Mueve una copia del registro f al Acumulador W
Si d=1 el destino es el registro f. En este caso el formato es un poco

Contador,W



MOVF



Instrucciones para Cambiar el contenido de los registros

; mueve una copia del contenido del
; Contador al acumulador

W
f equ 1
Contador

equ 10

CLRF
El contenido del registro f se pone en ceros: 0x00

f

Ejemplo:



equ 0



; el registro portb se pone en 0x00

f,d

portb

equ 0x6

portb

Ejemplo:

CLRF

CLRW
El contenido del acumulador se pone en ceros 0x00

COMF
Complementa el contenido del registro f
Los 1 unos los pone en 0, los 0 los pone en 1.
El resultado de esta operación lo coloca en el destino d.
Si d=0 el resultado lo coloca en el acumulador
Si d=1 el resultado se coloca en el mismo registro f

Ejemplo:

W
f equ 1
Contador

equ 10



equ 0



; Contador contiene b’00001111’
; el acumulador contiene b’11110000’



b’00001111’
Contador
Contador,f

b’00001111’
Contador

Contador,W

MOVLW
MOVWF
COMF

MOVLW
MOVWF
COMF

DECF

Decrementa el registro f
El resultado de esta operación lo coloca en el destino d.
Si d=0 el resultado lo coloca en el acumulador
Si d=1 el resultado se coloca en el mismo registro f

Si el contenido del registro se encuentra en 0xFF y se ejecuta un

; Contador contiene b’00001111’
; Contador contiene b’11110000’

f,d

decremento el resultado es 0x00 .







Ejemplo:

equ 0



W
f equ 1
Contador

equ 10



d’10’
Contador
Contador,f

d’10’
Contador

Contador,W

; Contador contiene d’10’
; El acumulador contiene d’9’

MOVLW
MOVWF
DECF

MOVLW
MOVWF
DECF

INCF

Incrementa el registro f
El resultado de esta operación lo coloca en el destino d.
Si d=0 el resultado lo coloca en el acumulador
Si d=1 el resultado se coloca en el mismo registro f

Si el contenido del registro se encuentra en 0xFF y se ejecuta un

; Contador contiene d’10’
; Contador contiene d’9’

f,d

Incremento el resultado es 0x00 .


Ejemplo:

equ 0



W
f equ 1
Contador

equ 10



; Contador contiene d’10’
; El acumulador contiene d’11’

; Contador contiene d’10’
; Contador contiene d’11’

d’10’
Contador
Contador,f

d’10’
Contador

Contador,W

MOVLW
MOVWF
INCF

MOVLW
MOVWF
INCF

BCF

Pone en cero el bit b del file f .
Los bits del registro f se numeran de 0 a 7.



f,b




Ejemplo:

Contador

equ 10



b’11111111’
Contador
Contador,0
Contador,7

MOVLW
MOVWF
BCF
BCF

BSF

Pone en uno el bit b del file f .

Ejemplo:

Contador

equ 10

f,b

; Contador b’11111111’
; Contador b’11111110’
; Contador b’01111110’



f,d

b’00000000’
Contador
Contador,0
Contador,7

; Contador b’00000000’
; Contador b’00000001’
; Contador b’10000001’

MOVLW
MOVWF
BSF
BSF

RLF

Rota el contenido del registro f una posición a la izquierda.
El bit se rota a través de la bandera “carry” . La bandera carry esta en el
bit 0 del registro STATUS, que se localiza en la posición 0x03 de la memoria del
microcontrolador. Cada vez que se ejecuta la instrucción los bits se rotan una
posición a la izquierda, el bit menos significativo es ocupado por el contenido de
la bandera carry y el bit más significativo pasa a ocupar el lugar de la bandera
carry.



El resultado de la operación se coloca en el destino d

Ejemplo:

W
f equ 1

STATUS
C

Contador

equ 0x03
equ 0

equ 10



equ 0

BCF



STATUS,0



; carry a 0







Contador,f

; Contador b’11111111’

b’11111111’
Contador


MOVLW
MOVWF

RLF

RRF

Rota el contenido del registro f una posición a la derecha
El bit se rota a través de la bandera “carry” . Cada vez que se ejecuta la
instrucción los bits se rotan una posición a la derecha, el bit más significativo es
ocupado por el contenido de la bandera carry y el bit menos significativo pasa a
ocupar el lugar de la bandera carry.

; Contador b’11111110’

f,d



El resultado de la operación se coloca en el destino d

Ejemplo:

W
f equ 1

STATUS
C

Contador

equ 0x03
equ 0

equ 10



equ 0



f,d

; carry a 0

Contador,f

STATUS,0

; Contador b’11111111’

; Contador b’01111111’

b’11111111’
Contador

BCF

MOVLW
MOVWF

RRF


SWAPF

Intercambia el nible más significativo y el nible menos significativo.
El resultado de la operación se coloca en el destino d.

Ejemplo:

W
f equ 1

Contador


equ 10



equ 0





; Contador b’11110000’
; Contador b’00001111’



b’11110000’
Contador
Contador

MOVLW
MOVWF
SWAPF

Instrucciones para controlar el flujo del programa.

GOTO
Salta a la etiqueta k

Ejemplo:

Contador

equ 10

k

b’00000000’
Contador
Programa1



; Contador b’00000000’
; El programa continua en Programa1

MOVLW
MOVWF
GOTO
---------
---------
---------

; Contador b’00000001’
; Contador b’10000001’



; Contador b’00000001’
; Contador b’10000001’



; ejecuta la subrutina CargaContador
; aquí sigue después de subrutina



k

Contador,0
Contador,7

Programa1
BSF
BSF

CALL
Salta a una subrutina en la etiqueta k

Ejemplo:

Contador
equ 10
Contador1 equ 11

BSF
BSF

CALL
-------
-------
-------
-------

CargaContador


Contador,0
Contador,7



CargaContador
MOVLW


MOVWF
Return



RETURN

b’00000000’
Contador



; Contador b’00000000’

Regresa de una subrutina
RETLW
Regresa de una subrutina. Con el numero k en el acumulador.

k

RETFIE
Regresa de una interrupción.

f,b

BTFSC
Prueba el bit b del registro f .
Salta la siguiente instrucción si bit b es 0.

equ 11
equ 0


Entrada, Switch
ChecaElSwitch



; Checa que Switch este en 0
; El Switch esta en 1, regresa
; El Switch ya esta en 0

f,b

BTFSS
Prueba el bit b del registro f .
Salta la siguiente instrucción si bit b es 1.

Ejemplo:



ChecaElSwitch
BTFSC


GOTO
-------
-------
-------

Entrada
Switch



ChecaElSwitch

BTFSS
GOTO

-------
-------
-------

Entrada
Switch


Ejemplo:



equ 11
equ 0


Entrada, Switch
ChecaElSwitch



; Checa que Switch este en 1
; El Switch esta en 0, regresa
; El Switch ya esta en 1

f,d

DECFSZ
Decrementa el registro f
Salta la siguiente instrucción si el resultado es 0
El resultado de la operación se coloca en el de
  • Links de descarga
http://lwp-l.com/pdf5586

Comentarios de: Las Instrucciones básicas de los Microcontroladores Picmicro (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad