Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


guias de Microprocesadores, Diapositivas de Microprocesadores

guias de Microprocesadores sobre el PIC, y su utilización

Tipo: Diapositivas

2019/2020

Subido el 20/04/2020

hjoelsotom
hjoelsotom 🇵🇪

6 documentos

1 / 8

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
UNIVERSIDAD NACIONAL
UNIVERSIDAD NACIONAL UNIVERSIDAD NACIONAL
UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO
DE SAN ANTONIO ABAD DEL CUSCODE SAN ANTONIO ABAD DEL CUSCO
DE SAN ANTONIO ABAD DEL CUSCO
MICROPROCESADORES
MICROPROCESADORESMICROPROCESADORES
MICROPROCESADORES
GUIA DE LABORATORIO
GUIA DE LABORATORIOGUIA DE LABORATORIO
GUIA DE LABORATORIO
ECP 1 de 8
I. TEMA : INSTRUCCIONES BASICAS DEL PIC 16F84A
II. OBJETIVOS
El estudiante al finalizar la práctica será capaz de:
Identificar las instrucciones ensamblador básicas del PIC 16F84.
Escribir programas básicos en el lenguaje ensamblador del PIC 16F84.
III. TRABAJO PREPARATORIO
Conocimiento de la arquitectura del microcontrolador 16F84A
Conocer el uso del IDE MPLAB para el desarrollo de aplicaciones en el lenguaje
ensamblador del microcontrolador 16F84A
IV. MARCO TEORICO
Las características y capacidad de un procesador están definidas por el conjunto de
instrucciones que esta pone a disposición del programador. Por tal razón, es fundamental
conocer el conjunto de instrucciones del microcontrolador que estamos utilizando en la
presente asignatura.
Si bien es cierto que se puede escribir programas para el PIC 16F84A utilizando
lenguajes de alto nivel como el C o el Basic, que permitirían tiempos de desarrollo más
rápidos; en la asignatura, orientada al estudio de los microprocesadores y su
arquitectura, estudiaremos y utilizaremos el lenguaje ensamblador del PIC 16F84A.
El PIC 16F84A comprende un conjunto de 35 instrucciones. Un número pequeño
comparado con las más de 300 instrucciones que tiene un microprocesador como el
Pentium IV de Intel.
Clasificaremos, para su estudio, las instrucciones del microcontrolador 16F84A como
instrucciones básicas e instrucciones avanzadas
INSTRUCCIONES BASICAS
Dentro de estas incluimos las instrucciones aritméticas, de movimiento, lógicas, de
complemento, de puesta en cero, de intercambio y de rotación.
pf3
pf4
pf5
pf8

Vista previa parcial del texto

¡Descarga guias de Microprocesadores y más Diapositivas en PDF de Microprocesadores solo en Docsity!

MICROPROCESADORESMICROPROCESADORESMICROPROCESADORESMICROPROCESADORES

GUIA DE LABORATORIOGUIA DE LABORATORIOGUIA DE LABORATORIOGUIA DE LABORATORIO

ECP 1 de 8

I. TEMA : INSTRUCCIONES BASICAS DEL PIC 16F84A

II. OBJETIVOS

El estudiante al finalizar la práctica será capaz de:

• Identificar las instrucciones ensamblador básicas del PIC 16F84.

• Escribir programas básicos en el lenguaje ensamblador del PIC 16F84.

III. TRABAJO PREPARATORIO

• Conocimiento de la arquitectura del microcontrolador 16F84A

• Conocer el uso del IDE MPLAB para el desarrollo de aplicaciones en el lenguaje

ensamblador del microcontrolador 16F84A

IV. MARCO TEORICO

Las características y capacidad de un procesador están definidas por el conjunto de

instrucciones que esta pone a disposición del programador. Por tal razón, es fundamental

conocer el conjunto de instrucciones del microcontrolador que estamos utilizando en la

presente asignatura.

Si bien es cierto que se puede escribir programas para el PIC 16F84A utilizando

lenguajes de alto nivel como el C o el Basic, que permitirían tiempos de desarrollo más

rápidos; en la asignatura, orientada al estudio de los microprocesadores y su

arquitectura, estudiaremos y utilizaremos el lenguaje ensamblador del PIC 16F84A.

El PIC 16F84A comprende un conjunto de 35 instrucciones. Un número pequeño

comparado con las más de 300 instrucciones que tiene un microprocesador como el

Pentium IV de Intel.

Clasificaremos, para su estudio, las instrucciones del microcontrolador 16F84A como

instrucciones básicas e instrucciones avanzadas

INSTRUCCIONES BASICAS

Dentro de estas incluimos las instrucciones aritméticas, de movimiento, lógicas, de

complemento, de puesta en cero, de intercambio y de rotación.

MICROPROCESADORESMICROPROCESADORESMICROPROCESADORESMICROPROCESADORES

GUIA DE LABORATORIOGUIA DE LABORATORIOGUIA DE LABORATORIOGUIA DE LABORATORIO

ECP 2 de 8

INSTRUCCIONES DE COPIA (MOVIMIENTO)

MOVLW Move Literal to W – Mover literal a W Sintaxis Operandos Operación Indicadores movlw k 0 ≤ k ≤ 255 K => W Ninguno

Mueve los 8 bits del literal 'k' al registro de trabajo 'W'.

MOVWF Move W to f – Mover W a F Sintaxis Operandos Operación Indicadores movwf f 0 ≤ f ≤ 127 W => f Ninguno

Mueve el contenido del registro de trabajo 'W' al registro 'f'.

MOVF Move f – Mover F Sintaxis Operandos Operación Indicadores movf f,d (^0) ≤ f ≤ 127, d ∈ [0,1] f => d Z

Mueve el contenido del registro 'f' al registro destino indicado con 'd'. Si 'd=0' el destino es el registro de trabajo

'W'. Si 'd=1' el destino es el propio registro 'f'. El indicador 'Z' del registro 'STATUS' queda afectado: 'Z=1' si el

contenido movido es CERO.

INSTRUCCIONES DE SUMA

ADDLW Add Literal to W – Sumar literal a W Sintaxis Operandos Operación Indicadores addlw k 0 ≤ k ≤ 255 k + W => W C, DC, Z

Suma los 8 bits del literal 'k' con el registro de trabajo 'W' y el resultado lo almacena en el registro de trabajo 'W'.

ADDWF Add W and f – Sumar W y F Sintaxis Operandos Operación Indicadores addwf f,d (^0) ≤ f ≤ 127, d ∈ [0,1] f + W => d C, DC, Z

Suma el contenido del registro 'f' al contenido del registro de trabajo 'W' y el resultado se almacena en el destino

'd'. Si 'd=0' el destino es el registro de trabajo 'W'. Si 'd=1' el destino es el propio registro 'f'.

MICROPROCESADORESMICROPROCESADORESMICROPROCESADORESMICROPROCESADORES

GUIA DE LABORATORIOGUIA DE LABORATORIOGUIA DE LABORATORIOGUIA DE LABORATORIO

ECP 4 de 8 INCF Increment f – Incrementar F Sintaxis Operandos Operación Indicadores incf f,d (^0) ≤ f ≤ 127, d ∈ [0,1] f + 1 => d Z

Incrementa el contenido del registro 'f'. Si 'd=0' el destino es el registro de trabajo 'W'. Si 'd=1' el destino es el

propio registro 'f'. Si el resultado del decremento es cero, se establece el indicador cero, 'Z=1'.

INSTRUCCIÓN LÓGICA Y (AND)

ANDLW And Literal with W – And literal con W Sintaxis Operandos Operación Indicadores andlw k 0 ≤ k ≤ 255 k .AND. W => W Z

Efectúa la operación AND de los 8 bits del literal 'k' con el registro 'W' y almacena el resultado en 'W'. Actualiza

el indicador 'Z'.

ANDWF And W with f – And W con F Sintaxis Operandos Operación Indicadores andwf f,d (^0) ≤ f ≤ 127, d ∈ [0,1] f .AND. W => d Z

Efectúa la operación AND del contenido del registro 'f' con el registro 'W' y almacena el resultado en 'd'. Si 'd=0'

el destino es el registro de trabajo 'W'. Si 'd=1' el destino es el propio registro 'f'. Actualiza el indicador 'Z'.

INSTRUCCIÓN LÓGICA O – INCLUSIVA (OR)

IORLW Inclusive OR Literal with W – Or literal con W Sintaxis Operandos Operación Indicadores iorlw k 0 ≤ k ≤ 255 k .OR. W => W Z

Efectúa la operación OR de los 8 bits del literal 'k' con el registro 'W' y almacena el resultado en 'W'. Actualiza el

indicador 'Z'.

IORWF Includive OR W with f – Or W con F Sintaxis Operandos Operación Indicadores iorwf f,d (^0) ≤ f ≤ 127, d ∈ [0,1] f .OR. W => d Z

Efectúa la operación OR del contenido del registro 'f' con el registro 'W' y almacena el resultado en 'd'. Si 'd=0' el

destino es el registro de trabajo 'W'. Si 'd=1' el destino es el propio registro 'f'. Actualiza el indicador 'Z'.

MICROPROCESADORESMICROPROCESADORESMICROPROCESADORESMICROPROCESADORES

GUIA DE LABORATORIOGUIA DE LABORATORIOGUIA DE LABORATORIOGUIA DE LABORATORIO

ECP 5 de 8

INSTRUCCIÓN LÓGICA O – EXCLUSIVA (XOR)

XORLW Exclusive OR Literal with W – Xor literal con W Sintaxis Operandos Operación Indicadores xorlw k 0 ≤ k ≤ 255 k .XOR. W => W Z

Efectúa la operación XOR de los 8 bits del literal 'k' con el registro 'W' y almacena el resultado en 'W'. Actualiza

el indicador 'Z'.

XORWF Exclusive OR W with f – Xor W con F Sintaxis Operandos Operación Indicadores xorwf f,d (^0) ≤ f ≤ 127, d ∈ [0,1] f .XOR. W => d Z

Efectúa la operación XOR del contenido del registro 'f' con el registro 'W' y almacena el resultado en 'd'. Si 'd=0'

el destino es el registro de trabajo 'W'. Si 'd=1' el destino es el propio registro 'f'. Actualiza el indicador 'Z'.

INSTRUCCIÓN DE COMPLEMENTO

COMF Complement f – complementar F Sintaxis Operandos Operación Indicadores comf f,d (^0) ≤ f ≤ 127, d ∈ [0,1] ~f => d Z

Efectúa el complemento bit a bit del contenido del registro 'f' y almacena el resultado en 'd'. Si 'd=0' el destino es

el registro de trabajo 'W'. Si 'd=1' el destino es el propio registro 'f'. Actualiza el indicador 'Z'.

INSTRUCCIÓN DE INTERCAMBIO DE NIBBLES

SWAPF Swap Nibbles in f – Intercambiar nibbles en F Sintaxis Operandos Operación Indicadores swapf f,d (^0) ≤ f ≤ 127, d ∈ [0,1] f[3:0]=>d[7:4],f[7:4]=>d[3:0] ninguno

Efectúa el intercambio del nibble menos significativo con el nibble más significativo del registro 'f' y almacena el

resultado en 'd'. Si 'd=0' el destino es el registro de trabajo 'W'. Si 'd=1' el destino es el propio registro 'f'.

Actualiza el indicador 'Z'.

MICROPROCESADORESMICROPROCESADORESMICROPROCESADORESMICROPROCESADORES

GUIA DE LABORATORIOGUIA DE LABORATORIOGUIA DE LABORATORIOGUIA DE LABORATORIO

ECP 7 de 8

resul equ 0xC ; almacena la diferencia

;********CODIGO

ORG 0 ; Indica donde comienza el programa

Inicio

movlw .20 ; W <- 20

movwf num1 ; num1 <- 20

movlw .10 ; W <- 10

movwf num2 ; num2 <- 10

comf num2,0 ; W <- ~num

addlw .1 ; W <- ~num2 + 1 = -num

addwf num1,W ; W <- num1 + ~num2 + 1 = num1 - num

movwf resul ; resul <- W

END

2. Escriba un programa que intercambie los valores almacenados en dos variables v1 y

v2, sin utilizar variables auxiliares

Solución

; Nombre : apSwap ;

; Proposito : Intercambia dos variables, sin utilizar variables auxiliares ;

; Autor : Edwin Carrasco ;

; FCreacion : 05/01/2008 ;

; FModificacion : ------ ;

LIST P=16f84A ; Modelo de PIC utilizado

INCLUDE <P16f84A.INC> ; Contiene definiciones de elementos del PIC

;********DATOS

v1 equ 0xA ; primer numero

v2 equ 0xB ; segundo numero

;********CODIGO

ORG 0 ; Indica donde comienza el programa

Inicio

movlw .7 ; W <- 10

movwf v1 ; num1 <- 10

movlw .5 ; W <- 15

movwf v2 ; num2 <- 15

MICROPROCESADORESMICROPROCESADORESMICROPROCESADORESMICROPROCESADORES

GUIA DE LABORATORIOGUIA DE LABORATORIOGUIA DE LABORATORIOGUIA DE LABORATORIO

ECP 8 de 8

xorwf v1, 1 ; v1 <- v1 .xor. v

xorwf v1, 0 ; W <- v1 .xor. v

xorwf v1, 1 ; v1 <- v1 .xor. v

movwf v2 ; v2 <- W

END

VI. EJERCICIOS PROPUESTOS

1. Escriba un programa que cargue el número 59 en la variable nro1 y almacene en la

variable nro2 el resultado de aplicar la mascara 00001111 al contenido de la

variable nro1.

2. Escriba un programa secuencial que multiplique los números -9 y 6 y almacene el

resultado en la variable total.

3. Escriba un programa que calcule la diferencia de dos números de 8 bits, sin utilizar

las instrucciones de sustracción.

4. Escriba un programa que sume el nible más significativo de una variable de 8 bits

con el nible menos significativo de otra variable de 8 bits. El resultado debe

almacenarse en una tercera variable.

5. Escriba un programa secuencial que calcule X = A * 8.

6. Escriba un programa secuencial que calcule X = B * 3.

7. Escriba un programa secuencial que calcule el cociente entero Z = B / 4.

VII. BIBLIOGRAFIA

1. Angulo Jose et. al. “Microcontroladores PIC. Diseño práctico de aplicaciones”.

3ed. McGraw Hill 2003

2. Palacios Enrique et. Al. “Microcontrolador PIC 16F84. Desarrollo de proyectos”

2Ed. Alfaomega 2006

3. www.microchip.com – Sitio Web del fabricante del PIC 16F84 y del IDE MPLAB

4. http://ww1.microchip.com/downloads/en/DeviceDoc/35007b.pdf - Ficha técnica del

PIC 16F