Hola, sean
bienvenidos nuevamente a los tutoriales de Artes Electrónicas
Pachani, vamos a continuar con la serie de tutoriales para
los microcontroladores PIC, como siempre este tutorial está dirigido
a lectores novatos, aficionados (hobbistas), estudiantes, que deseen
implementar programas para microcontroladores en lenguaje ensamblador
(ASM), para el desarrollo de aplicaciones.
Programando
Operaciones Básicas en PIC (parte 1)
 |
Figura 4.1.- Las
herramientas para programar.
|
Ya en el anterior tutorial hablamos acerca de que software íbamos a
utilizar y el modo como realizaremos nuestros proyectos. Ahora
comencemos describiendo las características de las instrucciones en
función de las operaciones mas comunes dentro del diseño de
aplicaciones para nuestro programa.
4.1.-
Instrucciones de Carga
Ésta es una de las instrucciones básicas de transferencia de datos
entre los registros RAM y el registro de trabajo W, en todas sus
variantes. Se transfieren datos desde una fuente hacia el registro de
direcciones (f) por medio de un selector de destino (d):
Cuando d=0, se carga al registro de trabajo (W).
Cuando d=1, se carga al registro de direcciones (f).
La fuente puede también ser una constante, cuyo valor (k) es de 8
bits (bit 7.0), que podemos cargar al registro de trabajo (W).
También podemos realizar una instrucción de borrado, pues carga el
valor 0x00 a (W) o (f) se puede borrar el contenido de los mismos.
Las instrucciones de carga son las siguientes :
3.2.-Instrucciones Aritméticas
Las operaciones aritméticas básicas que podemos realizar en
ensamblador son: sumar, restar, incrementar y decremento.
i).- Suma o adición:
Aquí vamos a realizar un análisis y comparación entre lo que nos
han enseñado en colegio en cuanto a la operación de la suma y la
suma hexadecimal. Como el microprocesador lo interpreta.
Ejemplo 1: Tenemos la suma de dos números (200 + 29)
calcular su valor:
Analizando las operaciones tanto en decimal , binario y hexadecimal
tenemos lo siguiente:
La operación es menor que 255. No hay C (Carry) la suma fue menor
que 255d o FFh o b“1111 1111”; sin embargo, sí hay DC
(Digit-Carry) del bit 3 al 4, al sumar los nibble LSB 8h+Dh=15h. No
hay bandera Z (Zero), pues el resultado no es 0.
La operación es mayor que 255. Si hay C (Carry) la suma fue mayor
que 255d o FFh o b“1111 1111”,
1111” no hay DC (Digit-Carry). No hay bandera Z (Zero), pues el
resultado no es 0. Con estos dos ejemplos se nota cómo funciona el
acarreo (C) y acarreo de dígito (DC). A continuación damos las dos
instrucciones de suma en código ensamblador:
ii).- Resta / sustracción :
Tal cual resta en los microprocesadores no existe, los
microprocesadores solo saben sumar y realizar operaciones lógicas,
entonces como vamos a resolver esto, pues por medio del complemento a
dos el
sustraendo y sumarlo al minuendo; así obtenemos la diferencia.
(Complementar a dos es igual que hallar el negativo del número)
veamos esto con un ejemplo:
Ejemplo 1: Tenemos
la resta de dos números en hexadecimal:
Conviene anotar que al realizar la resta de 8 bits puede haber tres
casos, dependiendo del resultado, así:
-
Positivo mayor que cero C = 1 y Z = 0.
-
Positivo igual a cero C = 1 y Z = 1.
-
Negativo menor que cero C = 0 y Z = 0.
Ahora en ensamblador la resta sera de las siguientes dos
instrucciones:
iii).-
Incrementos y decrementos
Dentro del conjunto de operaciones aritméticas para los PIC hay los
incrementos y los decrementos en una unidad.
Como habrán notado los modos de tratar el dato como las operaciones básicas en ensamblador son un tema sencillo pero complejo, en la siguiente parte de estos tutoriales nos dedicaremos a los otros tipo de operaciones con el microcontrolador , subiré la información pronto así que a estudiar y espero les sea de utilidad esta información para iniciar con este estudio de programación en ensamblador.
Todo el material que aquí se encuentra es de mi autoría, ademas de
una recopilación de información de Internet de recursos que se
pueden descargar como libros los cuales son usados como referencia
para los ejercicios y los ejemplos. Cualquier consulta la puedes
realizar en la parte de comentarios.
Bibliografia:
1.- Enrique Palacios , Fernando Ramiro y Lucas J. López,
Microcontrolador PIC16F84 Editorial Alfa Omega; Publicado el año
2004;[Fecha de consulta 21 de Febrero de 2017].
2.-Christian Bodignton Estava; Mikro Basic ; descargada de
WWW.CONEXIONELECTRONICA.COM;
Publicado el año 2010; [Fecha de consulta 5 de Marzo de 2017].