Introducción

Reseña Histórica de los Microcontroladores


Los microcontroladores nacen por la necesidad de integrar sistemas de procesamiento, control y comunicacion entre dispositivos electrónicos, ademas con el fin de realizar operaciones y aplicaciones de electrónica a bajo costo, hace muchos años atrás los dispositivos de control y comunicación en diversas áreas estaban basados en equipos o dispositivos electromecánicos, estos elementos eran robustos, tenían un gran consumo de energía y se desgastaban con el uso y el tiempo. Los microcontroladores nacen con la invención del transistor, que es el elemento mas pequeño que posee un circuito integrado, el transistor es un elemento electrónico que se utiliza como amplificación o conmutación, en este caso es utilizado principalmente como conmutador (corte y saturación), así con la interconexion de miles de estos en un circuito integrado se puede llegar al diseño de muchos equipos electrónicos que conocemos hoy en día. Los microcontroladores se dividen es dos partes, la primera en su hardware interno y la segunda en su sintaxis de programación, se puede decir que es un computador con características reducidas puesto que posee un microcproceador, buses de dirección, memoria RAM, ROM y periféricos de entrada y salida.

Muchas empresas como INTEL, MOTOROLA, MICROCHIP, ATMEL y otras han fabricado y desarrollado varias familias de microcontroladores para diferentes usos en todo el mundo, todo esto gracias a la visión de pensadores y de investigadores en el área de electrónica para entregarnos y proveernos de la tecnología que hoy poseemos.

Microcontorladores de Microchip


Los Microcontroladores que fabrica y produce la empresa Microchip son unos de los más usados en el mundo, gracias a su bajo costo y a la programación de ellos mismos, cada vez en memos tiempo se producen mas microcontroladores con mayores recursos y más económicos. Microchip nos entrega un software descargable llamado MPLAB IDE, dicho programa se usa para programar sus microcontroladores en lenguaje Assembler si lo queremos hacer de esa manera, pero también podemos usar otras herramientas adicionales para programarlos en alto nivel como PIC-C lite, CCS para programarlos en C; Mikrobasic y Pic Basic PRO para programarlos en Basic, estas herramientas de programación son aplicaciones que nos facilitaran hacer desarrollos de alto nivel con los microcontroladores de Microchip. Para mayor información pueden ir a su website www.microchip.com

Assembler Vs Basic



Los primeros lenguajes de programación de los microcontroladores comenzaron a bajo nivel o se puede decir a lenguaje "maquina" dichas instrucciones eran algo tediosas en el sentido que no son palabras comunes, para poder programar deberiamos conocer bastante hardware interno del PIC para saber que registros debemos modificar o que datos debemos cargar a ciertos registros para realizar operaciones entre ellos, algunos ejemplos de la sintaxis de programación son los siguientes: addwf, movlw, movwf, xorwf y así muchas mas, como podemos observar debemos leer y aprendernos detalladamente cada instrucción y saber que registros se han modificado.

Los lenguajes de programación de alto nivel como el basic, que es un lenguaje mas parecido al lenguaje humano, surgieron gracias a personas y empresas que comenzaron a hacer sus instrucciones o algoritmos para desarrollar diversas funciones del assembler al mismo tiempo y no tener que preocuparnos tanto por conocer le hardware interno del PIC, una sola instrucción de un lenguaje de alto nivel puede tener incluidas varias instrucciones de assembler, todo esto se hace para minimizar el tiempo en el desarrollo de algoritmos o programas de alto nivel, algunos ejemplos de la sintaxis de PIC BASIC PRO son: goto, lcdout, serin, if then, while, select case y muchas mas, estas instrucciones dependen de la sintaxis del programa que hace la "traducción" a assembler, como podemos observar estas instrucciones son palabras en ingles que se asemejan a nuestro lenguaje y si alguna vez hemos hecho algoritmos o algún tipo de programación se nos hace familiar esta sintaxis.

Ejemplo de código en assembler:

LIST P=16F84A
#INCLUDE
__config _XT_OSC & _WDT_OFF & _PWRTE_ON

ORG 5
;CONFIGURACION DE PUERTOS
BSF STATUS,5
MOVLW  0XFF ;MOVEMOS A W WL VALOR DE 255
MOVWF  TRISA ;MUEVE EL CONTENIDO DE W AL REGISTRO TRISA Y AUTOMATICAMENTE LO CONFIGURA COMO ENTRADA
MOVLW  0X00
MOVWF  TRISB ;MUEVE EL CONTENIDO DE W AL REGISTRO TRISB Y AUTOMATICAMENTE LO CONFIGURA COMO SALIDA
MOVLW  0XD7
MOVWF  OPTION_REG
BCF STATUS,5

DATO  EQU 0X0C
MOVLW 0X00
MOVWF DATO

INICIO CALL TEMPO
MOVF PORTA,W
MOVWF PORTB
GOTO INICIO


TEMPO MOVLW 0X1E
MOVWF DATO
TEMPO1 CLRF TMR0
BTFSS TMR0,7
GOTO $-1
DECFSZ DATO,1
GOTO TEMPO1
RETURN
END

Ejemplo de código en Pic Basic PRO:

trisa=$ff
trisb=$00

inicio:
portb=porta
pause 1000
goto inicio
end

Nota: ambos programas hacen exactamente lo mismo, podemos observar que la sintaxis de assembler se hicieron bastantes lineas, en cambio con la sintaxis de basic hicimos lo mismo pero con menos lineas, automáticamente el lenguaje de alto nivel hace sus respectivos algoritmos para hacer las funciones en assembler.

Opinión: tu puedes comenzar a programar en cualquiera de los dos lenguajes de programación, lo recomendable si quieres ser un excelente programador deberías comenzar con assembler y conocer la estructura interna del pic y luego pasar a un lenguaje de alto nivel como por ejemplo el Basic, por otro lado si se te complica el assembler puedes comenzar con basic desde el principio y hacer buenas aplicaciones.

Software necesario



Para comenzar con el tutorial debemos tener instalados en nuestro computador algunas herramientas de compilación y simulación, que puedes encontrarlas en nuestra sección de descargas o si prefieres bajarlas de Internet, estas herramientas son las siguientes:

  1. MPLAB IDE: es el software que nos entrega la empresa Microchip para la programación de estos microcontroladores, normalmente para trabajarlos en assembler, aunque también tiene asociadas compiladores de alto nivel como PIC-C lite y otros. Este programa es gratuito y lo puedes descargar de la pagina www.microchip.com.
  2. PIC BASIC PRO: es un software adicional que se le añade al MPLAB IDE para programar nuestros microcontroladores en lenguaje de alto nivel "Basic". Puedes bajar una versión demo dela pagina www.MeLabs.com.
  3. PROTEUS: es un software que nos ayudara a simular muchas de nuestras aplicaciones, es uno de los mejores para simular aplicaciones con microcontroladores. Puedes bajar versiones portables de varias paginas web o alguna versión instalable, recomendando que por mínimo sea una version 7.
Nota: en la sección de videotutoriales encontraras los vídeos de como instalar estos programas.

Recomendaciones para iniciar la programación



A este nivel creo que ya debes estar que te programas algun microcontrolador, pero no te afanes, antes de comenzar te voy a decir las recomendaciones que debes seguir para que no exista ningun porblema en nuestro aprendizaje:

  1. Intenta leer o investigar que es un microcontrolador y para ser mas precisos busca los microcontroladores de Microchip, puedes buscar esto en cualquier buscador.
  2. Este es un importante paso, por favor lee el manual de instrucciones de PIC BASIC PRO que lo puedes encontrar en la sección de descargas en ingles o te puedes referir a la pagina de su desarrollador http://melabs.com/ donde encontraras un archivo en formato PDF; por otro lado si se te dificulta el ingles puedes encontrar el manual en español en el siguiente link http://www.todopic.com.ar/pbp_sp.html.
  3. Mira en la sección de videotutoriales los vídeos relacionas a la introducción de Proteus que sera nuestro simulador.
  4. Si deseas hacer tus practicas y montarlos en el chip te sugiero que compres un programador de PICs que no es muy costoso.
  5. mucho animo, si quieres aprender a programar PICs es por que realmente te gusta.
¿Que Microcontrolador debemos utilizar?



Esta es una pregunta que siempre nos hacemos cuando vamos a empezar a programar en PICs, pero esta pregunta es facil de responder, todo depende de que tipo de practica o aplicación que queremos hacer, si son aplicaciones sencillas podemos escoger microcontroladores de gama baja o media-baja los cuales tienen una memoria entre 1kb, 2kb y 4kb con una configuración entre 18 pines de los cuales 12 o 13 pueden ser configurados como entradas o salidas dependiendo de cada referencia; por otro lado si queremos hacer aplicaciones mas dedicadas o un poco mas complejas en las cueles necesitamos mas memoria de programa o mas características adicionales (comunicación RS-232, comunicación I²C,) aunque en PIC BASIC PRO, esto se puede hacer por programa (conversor analogo digital, procesamiento de señales y comunicación USB) tendremos que utilizar PIC de gama media a media-alta. a continuación realizaremos una breve descripción de algunos microcontroladores:

  • PIC16F84A: fue uno de los mas utilizados en su época, con este microcontrolador la mayoría de personas aprendimos a programar puesto que su relación costo-utilidad era bastante bajo, algunas características son: 1K X 14 BIT De memoria Flash de Programa, 68 bytes de RAM, 64 bytes de EEPROM, 13 líneas de entrada/salida. Empaque 18 Pines DIP. 4 MHZ
  • PIC16F628A: es el que actualmente esta reemplazando al PIC16F84A, puesto que tiene el doble de memoria, oscilador interno de 4Mhz, 2 comparadores analogicos y muchas mas características, ademas es mucho mas económico, algunas características son: 2K X 14 BIT De memoria Flash de Programa, 224 bytes de RAM, 128 bytes de EEPROM, 15 líneas de entrada/salida. Empaque 18 Pines DIP. 20 MHZ.
  • PIC16F688: es muy similar al PIC16F628A pero con mucho mas memoria de programa, si costo esta muy cercano al micrococntrolador anterior, algunas características son: Microcontrolador Flash que cuenta con las ventajas de la arquitectura x14 de medio rango incluyendo el amplio rango de operación de 2.0 a 5.5V y tecnología nanoWatt. Tiene 4 Kbytes de memoria Flash de programa, 256 bytes de memoria RAM y 256 bytes de memoria EEPROM. Solo 35 instrucciones de ciclo sencillo fáciles de aprender. 12 pines de entrada - salida con capacidad de manejo de leds, 2 comparadores análogos, 8 canales de conversión A/D de 10 bits, 1 contador de 8 bits y 2 contador de 16 bits, soporta RS-485, RS-232 y LIN 1.2, programación In-Circuit Serial Programming™ de 2 pines. Empaque 14-DIP.
  • PIC16F877A: es un microcontrolador de gama media-baja el cual posee 40 pines, este PIC es útil a la hora en que necesitemos bastantes pines de entrada o salida, algunas características son: 8K X 14 BIT De De memoria Flash de Programa, 368 bytes de RAM, 256 bytes de EEPROM, 33 líneas de entrada/salida. Empaque 40 Pines DIP. 20 MHZ. 8 Canales de Conversor A/D de 10 bits.
  • PIC18F4550: estos PIC están catalogados como gama media-alta por su rendimiento, prestaciones, velocidad de operación y memoria de programa, la mayoría de familia de PIC18 soporta comunicación USB, algunas características son: microcontrolador de 40 pines, vompatible con USB v2.0 SIE, baja velocidad (1,5 Mb/s) y la plena velocidad (12 Mb/s), soporta hasta 32 endpoints (16 bidireccional), 1K de memoria RAM de doble acceso para USB, 32K de memoria FLASH, 2K de memoria SRAM, y 256 bytes de memoria EEPROM. 13 canales de conversor A/D de 10 bits, PWM, EAUSART, SPI, SPP etc. Empaque 40-DIP.
  • DSPIC30F4011: estos microcontroladores se catalogan como microcontroladores de gama alta, puesto que se utilizan para el procesamiento de señales digitales, su gran capacidad de memoria y diversas aplicaciones de alto nivel, algunas características son: Controlador de señal digital de 16 bits, de alto desempeño con CPU tipo RISC modificada, utiliza una arquitectura Harvard modificada, 48 Kbytes de memoria Flash de programa, 2 Kbytes de memoria RAM y 1 Kbyte de memoria EEPROM no volatil, más de 30 MIPS, 30 fuentes de interrupción, con características DSP, control de motor PWM (6 canales PWM), módulo de interfaz de codificador de cuadratura, 9 canales de conversor A/D de 10 bits, controlador de señal digital y muchas otras cosas más. Empaque 40DIP.
Nota: hemos visto diversos microcontroladores con varias características, cada uno de ellos tienen sus funciones de aplicación, la idea es que tu utilices el microcontrolador adecuado para cada aplicación sin desperdiciar los recursos de ellos, intenta trabajar como lo hacen las grandes compañías, minimizar costos, que quiero decir con estos, ajusta tu aplicación a los requerimientos necesarios. Ahora nosotros vamos a escoger nuestro PIC, como estamos comenzando vamos a utilizar el PIC16F628A, puesto que se ajusta a los requerimientos de hardware y el costo es bajo, mas adelante si es necesario utilizaremos uno de mayor gama.

VideoTutoriales



Hola, ya se han publicado los nuevos Videoturiales en nuestra sección, puedes encontrar la forma de como instalar Pic Basic Pro y Mplab, tambien ya se encuentra el video de "conociendo a Proteus", en este video conoceras el entorno del software simulador para nuestros diseños, todo esto con una aplicacion sencilla la cual la puedes hacer para que te familiarices con el simulador. Tambien ya esta publicado el Videotutorial "conociendo al pic" en el encontraras una breve descripción de los microcontroladores que se van a utilizar como guía en nuestro aprendizaje, espero que sigas en este proceso de auto-aprendizaje guiado con nuestros ejemplos en vídeo.

"La parte más importante de la educación del hombre es aquella que él mismo se da". Walter Scott