lunes, 13 de marzo de 2017

Análisis y diseño de programas en ensamblador para PIC ( PARTE 4 )



Hola nuevamente a los tutoriales de Artes Electrónicas Pachani, hoy vamos a continuar con la serie de tutoriales en la parte de componentes PIC, 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.

3.- Programando Operaciones Básicas en PIC (parte 2)

 

Figura 3.3.- Las herramientas para programar.

Continuando con la segunda parte de las operaciones básicas debido a que no hemos llegado a realizar operaciones lógicas y desplazamiento de bits que son muy importantes,entonces continuemos.

iv).-Instrucciones logicas

Dentro de las operaciones lógicas que se pueden realizar con un microcontrolador están: AND, OR inclusive. OR exclusiva, la rotación, complemento y el intercambio de nibbles, todo con el fin de manipular byte:
AND
Dentro de las operaciones lógicas que vamos a estudiar esta la operación AND que se simboliza por () como (AB) o bien (A y B), también (A&B), una operación lógica donde ambos deben ser verdaderos, para que la operación sea verdadera.

  OR (OR INCLUSIVA)
Esta operación se simboliza con (+) como (A + B) , (A o B), (A|B), donde cualquiera se el valor de A ó bien de B el resultado de esta operación lógica siempre dará como verdadero, ya que la operación siempre sera verdad es como tener una suma de contenido .
  OREX (OR EXCLUSIVA)
Esta operación se simboliza con (O) como (A O B), uno u otro (no ambos) debe ser verdadero, para que la operación lógica sea verdadera.
ROTACIONES
Las rotaciones son desplazamientos de una posición o bit (ver figura 3.4), con todo el registro de 8 bits a través de la bandera C (Carry). Puede ser rotación a la izquierda (left, rlf) o a la derecha (right, rrf). Es relevante poner el bit C en el valor deseado antes de la operación.


Figura 3.4.- Instrucción para los modos de rotación.

Figura 3.5.- Rotación de los bits hacia la izquierda.
     Habrán notado que cuando rotamos la posición de cada bit hacia la izquierda al final tenemos un numero binario que si lo convertinos en decimal, es como si hubiera sido multiplicado por dos.
Antes de la instrucción PORTD =b’0011 1100’ su valor decimal es : 60
Después de la instrucción PORTD =b’0011 1100’ su valor decimal es : 120
Antes de la instrucción numero =b’0001 1111’ su valor decimal es : 31

Después de la instrucción numero =b’0011 1110’ su valor decimal es : 62

  Antes de la instrucción num =b’1001 1111’ su valor decimal es : 159
Después de la instrucción num =b’0011 1111’ su valor decimal es : 63
Pero como tenemos ese Carry =1 , ese valor lo multiplicamos por 255 entonces tendremos al final
1*255 + 63 = 318 , que vendría a ser el resultado en decimal de la multiplicación de 159*2 , como habrán notado tenemos con el desplazamiento a la izquierda de los bits tenemos la operación de la multiplicación.

Figura 3.6.- Rotación de los bits hacia la derecha.
Habrán notado que cuando rotamos la posición hacia la derecha de cada bit al final tenemos un numero binario que si lo convertinos en decimal, es como si hubiera sido divido por dos.
Antes de la instrucción PORTB =b’1100 0011’ su valor decimal es : 195
Después de la instrucción W =b’0110 0001’ su valor decimal es : 97
Ademas tenemos un Carry =1 , es decir tenemos un valor decimal, de igual manera que cuando tenemos números binarios que representan por 4 bits 1111, que convertidos al decimal viene a ser igual a 8+4+2+1 =15 ,
para el microprocesador se tiene el mismo pensamiento, pero para valores decimales de la siguiente manera:
.byte = .1111 = 0.5000 + 0.2500 + 0.1250 + 0.0625 que sumados tiene que dar como valor sumado igual a uno (1).
Entonces cuando tenemos el valor de PORTB = 195 , ya al haber hecho la rotación de bits hacia la derecha tendremos W = 97 + .1000 = 97 + (1*0.5+0+0+0)= 97.5 , que vendría a ser el resultado en decimal del numero dividido entre dos , o en rotación a la derecha, que estábamos buscando.
COMPLEMENTO E INTERCAMBIO DE NIBBLES

Otras dos operaciones lógicas con las que vamos a trabajar son:

  • El complemento que consiste en cambiar los “1” por “0” y viceversa.
  • El intercambio de nibbles que consiste en intercambiar nibbles (7:4) y (3:0).

Complemento

 Aquí se realiza el complemento de la dirección nivel , cambiando los 1 por 0 y viceversa y se guara nuevamente en la misma dirección nivel.
  INSTRUCCIONES DE BIT
Estas instrucciones ponen un bit (b) a nivel lógico “0” o “1”, de un registro de la RAM o memoria de datos.
    Algo importante que hay que notar que tanto DL1 y bit2, deben de ser reemplazados con su correspondiente valor es decir bcf PORTB,4 ; ya que indicamos que en el bit 4 , es donde vamos a poner a cero dicho bit.
En el caso bsf out_led, 2; de igual manera indicamos que en el bit 2, es donde vamos a poner en uno o set dicho valor.
   Espero les sea de utilidad este material ya que en hemos trabajado la parte de operaciones básicas como de manipulación de byte de forma que podemos obtener la parte de multiplicación y división, para la siguiente entrega trabajemos en la parte de salto y tener ciclos  como en los lenguajes de alto nivel pero en la versión ensamblador, bien hasta la próxima.
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].

No hay comentarios.:

Publicar un comentario

Hola, con tu comentario puedes aportar para mejorar la calidad de mi trabajo

Microcontroladores PIC – Curso de Programación en MikroC (Parte 6 )

Microcontroladores PIC – Curso de Programación en MikroC Bienvenido nuevamente a los tutoriales de Artes Electrónicas Pachani , con...