miércoles, 12 de octubre de 2016

PROGRAMACIÓN DE MICROCONTROLADOR

DEFINICIÓN

Procesador con su sistema mínimo en un chip (incluye memoria para programa y datos, periféricos de entrada / salida, conversores análogo – digital (AD) y digital – análogo (DA), módulos especializados en la transmisión y recepción de datos).

La compañía Microchip Technology ofrece una serie de circuitos integrados que denomina "controladores de interfaz de periféricos" o microcontroladores PIC. Combinan un microprocesador, la memoria y la interfaz en un solo chip, ofreciendo a los desarrolladores profesionales, técnicos y aficionados, una plataforma fácil de usar y de bajo costo para el desarrollo de sistemas electrónicos controlados por software. Los microcontroladores PIC vienen en una variedad de capacidades, desde simples unidades de 8 bits hasta sofisticados chips de más de 32 bits.

CARACTERÍSTICAS
  • Arquitectura Harvard, procesador segmentado.
  • Se aplica la técnica de segmentación ("pipe-line") en la ejecución de las instrucciones.
  • El formato de todas las instrucciones tiene la misma longitud.
  • Procesador RISC (Computador de Juego de Instrucciones Reducido).
  • Todas las instrucciones son ortogonales.
  • Arquitectura basada en un banco de registros.
  • Prácticamente todos los PIC se caracterizan por poseer unos mismos recursos mínimos.
  • Modelos de arquitectura cerrada y de arquitectura abierta.
  • Diversidad de modelos de microcontroladores.
  • Amplio margen de alimentación y corrientes de salida elevadas.
  • Herramientas de soporte potentes y económicas.
  • Compatibilidad software entre los modelos de la misma gama.
  • Sencillez de uso y herramientas de desarrollo sencillas y baratas.
  • Código compacto y rápido.
  • Poco consumo y amplio rango de voltajes de alimentación. 
  • Pequeño tamaño y gran variedad de encapsulados.

LENGUAJE DE PROGRAMACIÓN - PROTEUS | PIC C | LENGUAJE C | VISUAL BASIC | ASSEMBLER

PROTEUS

Es software de automatización de diseño electrónico, desarrollado por Labcenter Electronics Ltd, que consta de los dos programas principales: Ares e Isis, y los módulos VSM y Electra.
  • ISIS: permite diseñar el plano eléctrico del circuito que se desea realizar con componentes muy variados, desde simples resistencias, hasta alguno que otro microprocesador o microcontrolador, incluyendo fuentes de alimentación, generadores de señales y muchos otros componentes con prestaciones diferentes. Los diseños realizados en Isis pueden ser simulados en tiempo real, mediante el módulo VSM, asociado directamente con ISIS.
  • VSM: Es una extensión integrada con ISIS, con la cual se puede simular, en tiempo real, con posibilidad de más rapidez; todas las características de varias familias de microcontroladores, introduciendo nosotros mismos el programa que controlará el microcontrolador y cada una de sus salidas, y a la vez, simulando las tareas que queramos que lleve a cabo con el programa. Se pueden simular circuitos con microcontroladores conectados a distintos dispositivos, como motores eléctricos, pantallas de cristal líquido (LCD), teclados en matriz, etc.
  • ARES: Es la herramienta de enrutado, ubicación y edición de componentes, se utiliza para la fabricación de placas de circuito impreso, permitiendo editar generalmente, las capas superficial (Top Copper), y de soldadura (Bottom Copper).
  • ELECTRA: El cual, una vez colocados los componentes trazará automáticamente las pistas realizando varias pasadas para optimizar el resultado.

PIC C

Es una herramienta que permite programar un microcontrolador por medio de lenguaje C, a diferencia del lenguaje máquina o ensamblador (ASM) que se maneja por defecto, este hace los programas más fáciles de escribir, analizar y comprender. PIC C ha sido desarrollado por PIC CMU, y cuenta con una gran cantidad de librerías o drivers que permiten optimizar los programas en el momento de manejar dispositivos externos, tales como pantallas LCD, memorias, conversores, etc.

LENGUAJE C

Es uno de los lenguajes de programación estructurada más utilizados en nuestros días. El principal componente estructural de C es la función. En C, las funciones son bloques en los cuales ocurren las actividades de un programa. Esto nos permite separar los programas en tareas, lo que nos conduce a la programación modular. Otra forma de estructurar en C es usando bloques de códigos. Un bloque de código es un grupo de instrucciones conectadas lógicamente el cual es tratado como una unidad. Un bloque está construido por un conjunto de instrucciones colocadas entre llaves { }.

VISUAL BASIC
Es un lenguaje de programación dirigido por eventos, desarrollado por Alan Cooper para Microsoft.

Ha sido desarrollado con el objetivo de entregar a los usuarios de programación informática un paquete de utilidades simples y accesibles. Es por esto que el Visual Basic puede ser usado y fácilmente comprendido por expertos como también por usuarios principiantes. Su base parte del dialecto BASIC pero con componentes novedosos que lo adaptan a los lenguajes informáticos modernos. A esto se suma que el Visual Basic es además un lenguaje de programación guiado por eventos que permite mayor operatibilidad y mejores resultados.

ASSEMBLER
Es un programa que toma las instrucciones básicas de computación y las convierte en un patrón de bits (ceros y unos) que el procesador de la computadora puede utilizar para realizar sus operaciones básicas.

En el pasado, programadores tenían que hacer todos sus trabajado en un código que entendiera la computadora (es decir, binarios o ceros y unos). Con la introducción de los lenguajes en “assembly”, este aceleró el proceso de desarrollo siendo un intermediario entre el programador y el lenguaje en maquina (0s y 1s). Programación en “assembler” poco a poco a quedado en desuso, sólo utilizado cuando queremos ser eficiente en el control de las operaciones del procesador.

EJEMPLOS

PIC C

Un programa en PIC C se puede hacer de dos formas distintas, ya sea creando un proyecto o simplemente escribiendo el código completo directamente en un archivo con extensión ".C" (más adelante se tratará este tema), cualquiera que sea el caso que se vaya a usar, la estructura es prácticamente la misma:

Estructura programa C

LENGUAJE C

El siguiente programa imprime en pantalla la frase "Hola Mundo" (C99).

// necesario para utilizar printf() 
# include <stdio.h> 

 int main(void) { 
      printf("Hola Mundo\n"); 
      return 0; 
}

El siguiente escribe "Hola Mundo" en C89

/* comentarios con '//' no permitidos en C89, sí en C99 */ 
# include <stdio.h> /* necesario para utilizar printf */  

main() /* tipo 'int' de retorno implícito */ 
        printf ("Hola Mundo\n") ; 
        return 0; 
}

Estructura de control "else if"

if (condicion 1) { 
    sentencia 1 
} else if (condicion 2){ 
   sentencia 2 
} else if (condicion n){ 
   sentencia n 
} else { 
   sentencias por defecto 
}

VISUAL BASIC

El siguiente fragmento de código muestra un cuadro de mensaje, en una ventana, que dice "¡Hola, mundo!":

Private Sub Form_Load() 
     MsgBox ("¡Hola, mundo!") 
End Sub

ASSEMBLER

Un programa escrito en lenguaje ensamblador consiste en una serie de instrucciones que corresponden al flujo de órdenes ejecutables por un microprocesador.

Por ejemplo, en el lenguaje ensamblador para un procesador x86:

La sentencia: MOV AL, 61h

Asigna el valor hexadecimal 61 (97 decimal) al registro "AL".

El programa ensamblador lee la sentencia de arriba y produce su equivalente binario en lenguaje de máquina: Binario: 10110000 01100001 (hexadecimal: B61)

El mnemónico MOV es un código de operación u "opcode". El opcode es seguido por una lista de argumentos o parámetros, completando una típica instrucción de ensamblador. En el ejemplo, AL es un registro de 8 bits del procesador, al cual se le asignará el valor hexadecimal 61 especificado.

El código de máquina generado por el ensamblador consiste de 2 bytes. El primer byte contiene empaquetado la instrucción MOV y el código del registro hacia donde se va a mover el dato:


En el segundo byte se especifica el número 61h, escrito en binario como 01100001, que se asignará al registro AL, quedando la sentencia ejecutable como: 10110000 01100001

La cual puede ser entendida y ejecutada directamente por el procesador.

RESUMEN

El juego de instrucciones de un microprocesador o microcontrolador es el conjunto de entradas binarias que producen acciones definidas durante un ciclo de instrucción. Un juego de instrucciones es para el microcontrolador lo mismo que una tabla de verdad es para una puerta lógica, un registro de desplazamiento o un sumador. Por supuesto, las acciones que realiza un microcontrolador con cada instrucción, son más complejas que las que realizan los dispositivos y puertas.

Una instrucción es un patrón de dígitos binarios el cual debe estar a disposición del microcontrolador en el tiempo y forma que éste lo requiera.

SUMMARY

The instruction set of a microprocessor or microcontroller is the set of binary inputs that produce defined actions during one instruction cycle. A set of instructions for the microcontroller is the same as a truth table for a logic gate, a shift register or an adder. Of course, the actions taken by a microcontroller with each instruction, are more complex than those made devices and doors.

An instruction is a pattern of bits which must be available to the microcontroller in the time and manner it requires.

RECOMENDACIONES

Los micrconctoladores son computadores digitales integrados en un chip que cuentan con un Microprocesador o unidad de procesamiento central (CPU), una memoria para almacenar el programa, una memoria para almacenar datos y puertos de entrada salida. A diferencia de los microprocesadores de propósito general, como los que se usan en los computadores PC, los microcontroladores son unidades autosuficientes y más económicas. 

CONCLUSIONES

El funcionamiento de los microcontroladores está determinado por el programa almacenado en su memoria. Este puede escribirse en distintos leguajes de programación. Además, la mayoría de los microcontroladores actuales pueden reprogramarse repetidas veces. Por las características mencionadas y su alta flexibilidad, los microcontroladores son ampliamente utilizados como el cerebro de una gran variedad de sistemas embebidos que controlan maquinas, componentes de sistemas complejos, como aplicaciones industriales de automatización y robótica, domotica, equipos médicos, sistemas aeroespaciales, e incluso dispositivos de la vida diaria como automóviles, hornos de microondas, teléfonos y televisores.

APRECIACIÓN PERSONAL

Los microcontroladores están invadiendo el mundo. Están presentes en nuestra casa, en nuestro trabajo y en nuestra vida. Se pueden encontrar controlando los hornos microondas y los televisores de nuestro hogar, en los teclados y ratones de los computadores y en los automóviles. En el bolsillo llevamos unos cuantos entre los del teléfono móvil, los que tienen las modernas llaves del coche y los mandos a distancia del garaje y la alarma doméstica. Pero la invasión acaba de comenzar la conquista masiva de estos diminutos computadores, que gobernarán la mayor parte de los aparatos que fabricamos y usamos los humanos.

GLOSARIO DE TÉRMINOS

ISIS: Intelligent Schematic Input System (Sistema de Enrutado de Esquemas Inteligente)
VSM: El Virtual System Modeling (Sistema Virtual de Modelado)
ARES: Advanced Routing and Editing Software (Software de Edición y Ruteo Avanzado)
ELECTRA: Electra Auto Router

BIBLIOGRÁFICA O LINKOGRAFÍA
  • http://perso.wanadoo.es/pictob/micropic.htm#informacion_sobre_pic
  • https://www.ecured.cu/Microcontroladores_PIC.
  • http://edii.uclm.es/~miniesta/mc_pic_1.pdf
  • https://sites.google.com/site/incoelectronicasas/mini-tutos/-como-programar-un-microcontrolador-con-pic-c
  • http://fcqi.tij.uabc.mx/usuarios/palacios/Parte2.pdf
  • http://www.definicionabc.com/tecnologia/visual-basic.php
  • http://www.digitalika.com/2011/06/assembler-definicion-de-hoy/