Está en la página 1de 22

Proteus es un entorno integrado diseñado para la realización completa de proyectos de construcción de equipos electrónicos en todas sus etapas: diseño, simulación, depuración y construcción. Desarrollado por Labcenter Electronics que consta de los dos programas principales: Ares e Isis, y los módulos VSM y Electra. Sus reconocidas prestaciones lo han convertido en el más popular simulador software para microcontroladores PIC.

ISIS

El Programa ISIS, Intelligent Schematic Input System (Sistema de Enrutado de Esquemas Inteligente) 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.

ARES es la herramienta de la suite Proteus dedicada al diseño de placas de circuito impreso (PCB). Está plenamente integrada con la herramienta ISIS.

Una vez diseñado en ISIS el esquema electrónico, se genera automáticamente la lista de redes (NETLIST). Una red es un grupo de pines interconectados entre sí y la lista de redes es una lista con todas las redes que forman nuestro diseño. ARES es capaz de recibir esta lista de redes para diseñar, a partir de ella, nuestra placa de circuito impreso. De esta forma nos aseguramos que nuestra placa tendrá unidos entre sí los pines de forma idéntica a como los hemos definido en nuestro esquema electrónico.

Cualquier modificación que realicemos en nuestro esquema, podrá ser reenviado desde ISIS a ARES donde aparecerán resaltados los cambios que se hayan producido. De esta forma la modificación y rediseño de nuestra placa se realizará de forma mucho más simple y segura.

Edición Barra de Ficheros Herramientas de Visualización Diseño Ventana de Vista Completa Zona de Trabajo
Edición
Barra de Ficheros
Herramientas de
Visualización
Diseño
Ventana de
Vista Completa
Zona de Trabajo
Barra de
Componentes
de Dibujo
Barra de Control
de Simulación

Selección de componentes:

Búsqueda Indica que se puede simular Componentes Categorías Modelo Esquemático Modelo PCB Familias Encapsulado
Búsqueda
Indica que se
puede simular
Componentes
Categorías
Modelo
Esquemático
Modelo PCB
Familias
Encapsulado
Compañias

Se pueden realizar distintos tipo de análisis:

Compañias Se pueden realizar distintos tipo de análisis: Y exportar los datos, que se pueden pasar

Y exportar los datos, que se pueden pasar a Matlab por ejemplo para analizarlos de una forma más precisa:

Una vez montado el circuito: Cargamos el código al PIC, para ello pulsado doble click

Una vez montado el circuito:

Una vez montado el circuito: Cargamos el código al PIC, para ello pulsado doble click sobre

Cargamos el código al PIC, para ello pulsado doble click sobre el componente. Es necesario tener generado el código en un archivo .hex (hexadecimal).

Archivo con el código Frecuencia del Reloj
Archivo con el código
Frecuencia del Reloj

ARES:

Podemos diseñar el circuito desde cero o importarlo desde ISIS.

Barras de herramientas Zona de Barra de Trabajo herramientas de dibujo Componentes Barra de Barra
Barras de
herramientas
Zona de
Barra de
Trabajo
herramientas
de dibujo
Componentes
Barra de
Barra de
selección
Estado

Podemos usar la herramienta Auto-Router o el módulo Electra para realizar las conexiones de los distintos compontes.

Podemos visualizar el diseño en 3D:

distintos compontes. Podemos visualizar el diseño en 3D: El microcontrolador ejecuta el programa cargado en la
distintos compontes. Podemos visualizar el diseño en 3D: El microcontrolador ejecuta el programa cargado en la

El microcontrolador ejecuta el programa cargado en la memoria Flash. Esto se denomina el código ejecutable y está compuesto por una serie de ceros y unos, aparentemente sin significado. Dependiendo de la arquitectura del microcontrolador, el código binario está compuesto por palabras de 12, 14 o 16 bits de anchura. Cada palabra se interpreta por la CPU como una instrucción a ser ejecutada durante el funcionamiento del microcontrolador. Todas las instrucciones que el microcontrolador puede reconocer y ejecutar se les denominan colectivamente Conjunto de instrucciones. Como es más fácil trabajar con el sistema de numeración hexadecimal, el código ejecutable se representa con frecuencia como una serie de los números hexadecimales denominada código Hex. En los microcontroladores PIC con las palabras de programa de 14 bits de anchura, el conjunto de instrucciones tiene 35 instrucciones diferentes.

Programación de microcontroladores - Ensamblador

Como el proceso de escribir un código ejecutable era considerablemente arduo, en consecuencia fue creado el primer lenguaje de programación denominado ensamblador (ASM). Siguiendo la sintaxis básica del ensamblador, era más fácil escribir y comprender el código. Las instrucciones en ensamblador consisten en las abreviaturas con significado y a cada instrucción corresponde una localidad de memoria. Un programa denominado ensamblador compila (traduce) las instrucciones del lenguaje ensamblador a código máquina (código binario).

lenguaje ensamblador a código máquina (código binario). HEste programa compila instrucción a instrucción sin

HEste programa compila instrucción a instrucción sin optimización. Como permite controlar en detalle todos los procesos puestos en marcha dentro del chip, este lenguaje de programación todavía sigue siendo popular.

Ventajas de lenguajes de programación de alto nivel

A pesar de todos los lados buenos, el lenguaje ensamblador tiene algunas desventajas:

Incluso una sola operación en el programa escrito en ensamblador consiste en muchas instrucciones, haciéndolo muy largo y difícil de manejar.

Cada tipo de microcontrolador tiene su propio conjunto de instrucciones que un programador tiene que conocer para escribir un programa

Un programador tiene que conocer el hardware del microcontrolador para escribir un programa

Programa escrito en C (El mismo programa compilado al código ensamblador):

Programa escrito en C

Programa escrito en C Los lenguajes de programación de alto nivel (Basic, Pascal, C etc.) fueron

Los lenguajes de programación de alto nivel (Basic, Pascal, C etc.) fueron creados con el propósito de superar las desventajas del ensamblador. En lenguajes de programación de alto nivel varias instrucciones en ensamblador se sustituyen por una sentencia. El programador ya no tiene que conocer el conjunto de instrucciones o características del hardware del microcontrolador utilizado. Ya no es posible conocer exactamente cómo se ejecuta cada sentencia, de todas formas ya no importa. Aunque siempre se puede insertar en el programa una secuencia escrita en ensamblador.

Si alguna vez ha escrito un programa para un microcontrolador PIC en lenguaje ensamblador, probablemente sepa que la arquitectura RISC carece de algunas instrucciones. Por ejemplo, no hay instrucción apropiada para multiplicar dos números. Por supuesto, para cada problema hay una solución y éste no es una excepción gracias a la aritmética que permite realizar las operaciones complejas al descomponerlas en un gran número operaciones más simples. En este caso, la multiplicación se puede sustituir con facilidad por adición sucesiva (a x b = a + a +

a +

utilizar uno de estos lenguajes de programación de alto nivel como es C, porque el compilador encontrará automáticamente la solución a éste problema y otros similares. Para multiplicar los números a y b, basta con escribir a*b.

+ a). Ya estamos en el comienzo de una historia muy larga

No hay que preocuparse al

Lenguaje C

El lenguaje C dispone de todas las ventajas de un lenguaje de programación de alto nivel (anteriormente descritas) y le permite realizar algunas operaciones tanto sobre los bytes como sobre los bits (operaciones lógicas, desplazamiento etc.). Las características de C pueden ser muy útiles al programar los microcontroladores. Además, C está estandarizado (el estándar ANSI), es muy portable, así que el mismo código se puede utilizar muchas veces en diferentes proyectos. Lo que lo hace accesible para cualquiera que conozca este lenguaje sin reparar en el propósito de uso del microcontrolador. C es un lenguaje compilado, lo que significa que los archivos fuentes que contienen el código C se traducen a lenguaje máquina por el compilador. Todas estas características hicieron al C uno de los lenguajes de programación más populares.

al C uno de los lenguajes de programación más populares. Programming microcontroller - C programming language

Programming microcontroller - C programming language

La figura anterior es un ejemplo general de lo que sucede durante la compilación de programa de un lenguaje de programación de alto nivel a bajo nivel

Para generar el código existen varios programas:

MPLAB: (Wikipedia http://es.wikipedia.org/wiki/MPLAB): MPLAB es un editor IDE gratuito, destinado a productos de la marca Microchip. Este editor es modular, permite seleccionar los distintos microcontroladores soportados, además de permitir la grabación de estos circuitos integrados directamente al programador. Permite programar en C o en ensambrador a través de distintas

Ahora se va a llamar MPLABX (eXperimental), tiene cosas nuevas como:

La primera y gran ventaja de Mplab X es que es multiplataforma. Hay tanto versiones para Windows, Mac y Linux. Mplab 8 solo se podía instalar en Windows, por lo que gente como yo, con Ubuntu instalado tenía que usar máquinas virtuales o particiones con Windows.

Otra de las funcionalidades nuevas que me encanta de Mplab X es su método de autocompletado del código. Heredado de NetBeans puedes autocompletar código de registros o variables. También cuenta con hiperlinks para saltar rápidamente a definiciones o funciones.

Incluso pasando el ratón por encima del código podrás ver el estado bit a bit de un registro o variable. Por último, cuenta con un editor que contiene esqueletos de códigos para insertar. Todo esto hace de Mplab X una herramienta mucho más eficiente para escribir código que su antecesor.

MPLAB X IDE v3.00 is based on the latest Netbeans open source IDE v8.01 and will be released in early April. This brings many new features that have been added to the open source IDE as well as bug fixes.

have been added to the open source IDE as well as bug fixes. Tambien podemos simular

Tambien podemos simular el código y cargarlo a través de distintos programadores:

as bug fixes. Tambien podemos simular el código y cargarlo a través de distintos programadores: (AÑADIR

(AÑADIR TOOLS)

MPLABX:

Existen otros programas como: PIC C Compiler: El compilador PCW CSS, se trata de un

Existen otros programas como:

PIC C Compiler:

Existen otros programas como: PIC C Compiler: El compilador PCW CSS, se trata de un compilador

El compilador PCW CSS, se trata de un compilador de alto nivel, muy eficiente, el cual nos ayudara para depurar el código, ya que nos avisa de los diferentes errores que podamos haber cometido. Contienen bibliotecas muy completas, como se ve en el vídeo, permite una combinación del lenguaje de alto nivel y Ensamblador, por si deseamos ajustar el código y muchas otras características.

CCS PCW,PCB,PCH C compiler (http://www.ccsinfo.com/picc.shtml). Es el compilador ideal para aquellos que quieren empezar a realizar proyectos en C con una mínima idea de este lenguaje. Proporciona muchas funciones para los proyectos. El entorno de trabajo es bajo

Windows. Ofrece un metódo de trabajo a base de "wizards" o plantillas prediseñadas que nos facilitan enormente la ardua tarea de empezar a programar. Ultimamente ha tomado fuerza y renueva constamente el soporte de nuevos PIC. Posse versión Linux. En su pagina disponemos de un foro de ayuda muy activo.

MikroC PRO for pic: El mikroC PRO for PIC es una poderosa herramienta de desarrollo rica en características para los microcontroladores PIC. Está diseñado para proporcionar al programador la solución más fácil posible de desarrollo de aplicaciones para sistemas empotrados, sin comprometer el rendimiento o el control.

A continuación vamos a presentar a los elementos principales del lenguaje mikroC

desarrollado por Mikroelektronika. Este lenguaje es muy similar al C estándar, no obstante en

determinados aspectos difiere del ANSI estándar en algunas características. Algunas de estas diferencias se refieren a las mejoras, destinadas a facilitar la programación de los microcontroladores PIC, mientras que las demás son la consecuencia de la limitación de la arquitectura del hardware de los PIC. Aquí vamos a presentar características específicas del lenguaje mikroC en la programación de los microcontroladores PIC. El término C se utilizará para referirse a las características comunes de los lenguajes C y mikroC.

a las características comunes de los lenguajes C y mikroC. FASES DE COMPILACIÓN El proceso de

FASES DE COMPILACIÓN

El proceso de compilación consiste en varios pasos y se ejecuta automáticamente por el

compilador. Por con, un conocimiento básico del funcionamiento puede ser útil para entender

el

concepto del lenguaje mikroC.

El

archivo fuente contiene el código en mikroC que usted escribe para programar el

microcontrolador. El preprocesador se utiliza automáticamente por el compilador al iniciarse el proceso de la compilación. El compilador busca las directivas del preprocesador (que siempre empiezan por ‘#’) dentro del código y modifica el código fuente de acuerdo con las directivas. En esta fase se llevan a cabo inclusión de archivos, definición de constantes y macros etc, lo que facilita el proceso. Más tarde vamos a describir estas directivas en detalle. El analizador sintáctico (parser) elimina toda la información inútil del código (comentarios, espacios en blanco). Luego, elcompilador traduce el código a un archivo binario denominado archivo .mcl.

El enlazador (linker) recupera toda la información requerida para ejecutar el programa de los archivos externos y la agrupa en un solo archivo (.dbg). Además, un proyecto puede contener más de un archivo fuente y el programador puede utilizar funciones predefinidas y agrupadas dentro de los archivos denominados librerías. Por último, el generador .hex produce un archivo .hex. Es el archivo que se va a cargar en el microcontrolador.

El proceso entero de la compilación que incluye todos los pasos anteriormente descritos se le denomina “building.

anteriormente descritos se le denomina “building ” . PIC y C concuerdan entre sí: PIC es

PIC y C concuerdan entre sí: PIC es el chip de 8 bits más popular en el mundo, que se utiliza en una amplia variedad de aplicaciones, y C, muy apreciado por su eficiencia, es la elección natural para el desarrollo de sistemas embebidos. mikroC PRO for PIC ofrece una conexión exitosa entre una IDE muy avanzada, ANSI compilador compatible, amplio conjunto de bibliotecas de hardware y documentación completa.

Ayuda Apariencia Menú Principal Archivo Herramientas Compilar Zona de Trabajo Librerías Mensajes
Ayuda
Apariencia
Menú Principal
Archivo
Herramientas
Compilar
Zona de
Trabajo
Librerías
Mensajes

Ventajas:

Entorno amigable.

Asistente de código.

Autocorrección.

Librerías.

Fácil de usar.

Herramientas:

Autocorrección. Librerías. Fácil de usar. Herramientas: Algunas de las más interesantes son: Editor de siete

Algunas de las más interesantes son:

Editor de siete segmentos: El siete segmentos Converter es un panel visual que devuelve valor decimal / hexadecimal para cualquier combinación que se puede mostrar en 7SEG. Haga clic en las piezas de la imagen segmento 7 de obtener el valor deseado en los cuadros de edición.

Caracteres personalizados de LDC: nos permite crear caracteres personalizados para después usarlos en una pantalla

Caracteres personalizados de LDC: nos permite crear caracteres personalizados para después usarlos en una pantalla LCD. La salida es mikroC PRO para PIC código compatible.

caracteres personalizados para después usarlos en una pantalla LCD. La salida es mikroC PRO para PIC

Es fácil configurar el Pic elegido ya que se puede hacer sin necesidad de escribir código. Podemos seleccionar el tipo de oscilador, watchdog o la frecuencia del reloj de forma sencilla.

watchdog o la frecuencia del reloj de forma sencilla. PROGRAMADORES: PICkit is a family of programmers

PROGRAMADORES:

PICkit is a family of programmers for PIC microcontrollers made by Microchip Technology. They are used to program and debug microcontrollers, as well as program EEPROM. Some models also feature logic analyzer and serial communications (UART) tool.

PICkit 1

The PICkit 1 introduced on March 31, 2003 for US$36[2] was a rudimentary USB programmer for PIC microcontrollers, produced by Microchip Technology, the manufacturers of the PIC series of microcontrollers. It was integrated into a demoonstrator board, featuring eight LEDs, a switch, and a potentiometer. Its default program, explained in the documentation, rotates the LEDs in series. The light display's direction and speed of rotation can be changed with the button and potentiometer on the PICkit board.

PICkit 2

The PICkit 2 introduced in May 2005[3] replaced the PICkit 1. The most notable difference between the two is that the PICkit 2 has a separate programmer/debugger unit which plugs into the board carrying the chip to be programmed, whereas the PICkit 1 was a single unit. This makes it possible to use the programmer with a custom circuit board via an In Circuit Serial Programming (ICSP) header. This feature is not intended[3] for so-called "production" programming, however.

The PICkit 2 uses an internal PIC18F2550 with FullSpeed USB. The latest PICkit 2 firmware allows the user to program and debug most of the 8 and 16 bit PICmicro and dsPIC members of the Microchip product line.

The PICkit 2 is open to the public, including its hardware schematic, firmware source code (in C language) and application programs (in C# language). End users and third parties can easily modify both the hardware and software for enhanced features. e.g. GNU/Linux version of PICkit 2 application software, DOS style CMD support, etc.

The PICkit 2 has a programmer-to-go (PTG) feature, which can download the hex file and programming instructions into on-board memory (128K byte I2C EEPROM or 256K byte I2C EEPROM), so that no PC is required at the end application.

The Microchip version of PICkit 2 has a standard 128K byte memory. 256K byte memory can be achieved by modifying the hardware or from third party.

Additionally, a 500 kHz three-channel logic analyser and a UART tool are built into the PICkit 2. These features are missing from the PICkit 3.

Since release of V2.61, PICkit 2 PC software now supports a maximum 4 megabytes of memory for the programmer-to-go feature. This modification makes the PICkit 2 support eight times as much memory as the PICkit 3. This enhancement has been contributed by Au Group Electronics and the PICkit 2 firmware is also reported to be submitted to Microchip PICkit 2 team in the middle of March 2009. This enhancement may be integrated into future firmware releases, too.

PICkit 3

Microchip has gone on to manufacture the PICkit 3, a variation of the PICkit 2 with the same form factor and a new translucent case. It features a faster 16-bit PIC24F processor and a wider voltage regulation range. There are some complaints of it not being as reliable as the Pickit 2.

Both PICkit 2 and PICkit 3 have internal, switch-mode voltage regulators. This allows them, in the case of the PICkit 2, to generate voltages from 2.5 to 5 volts, or in the case of the PICkit 3, 2.5 to 5.5 volts, from a 5V USB supply, at around 100mA. Both have options for calibrating the output with a multimeter, for increased accuracy. Additionally, for some PICs, the MCLR programming voltage can be generated, at around 13 to 14 volts. This voltage is required to reprogram the flash memory.

El PICKit 3 es la herramienta de depuración y programación más sencilla y de menor coste de Microchip. Está totalmente soportado por el MPLAB IDE, y tiene una sencilla conexión USB Full Speed con el ordenador que no solo permite programar y depurar sino también hacer update del firmware interno del PICKIT3.

Tiene circuitos para protección de sobre tensión y de corto circuito, permite ejecución en tiempo real y soporta tensiones desde 2.0V.

Respectando la norma USB puede dar 100mA al circuito donde esta conectado y tiene LEDs de información rápida para el usuario.

microchip pickit3

Además de estas funcionalidades, hay una que es muy interesante y en algunos entornos bastante útil del PICKIT3 que es la funcionalidad “Programmer-To-Go”.

La funcionalidad “Programmer-To-Go” permite de una forma muy sencilla programar cualquier microcontrolador de las familias PIC16, PIC18, PIC24, dsPIC33F y PIC32 de Microchip sin necesitar de un ordenador, lo que es muy útil si estamos en un entorno donde llevar un ordenador no es practico o es del todo imposible.

El PICKit3 permite guardar un código de hasta 512KB en su Flash, esto se hace desde el MPLAB y después llevar el PICKIT 3 y de forma autónoma sólo alimentando el PICKit3 desde el USB (puede ser un cargador con salida usb como ya tenemos para algunos móviles o para baterías de grabadores de video) programar “In Situ” nuestro dispositivo.

Podemos hacer uso de 4 tipos diferentes de osciladores

Oscilador tipo "XT" (XTal) para frecuencias no mayores de 4 Mhz.

"XT" (XTal) para frecuencias no mayores de 4 Mhz. Oscilador tipo "LP" (Low Power) para frecuencias
"XT" (XTal) para frecuencias no mayores de 4 Mhz. Oscilador tipo "LP" (Low Power) para frecuencias

Oscilador tipo "LP" (Low Power) para frecuencias entre 32 y 200 Khz.Este oscilador es igual que el anterior, con la diferencia de que el PIC trabaja de una manera distinta. Este modo está destinado para trabajar con un cristal de menor frecuencia, que, como consecuencia, hará que el PIC consuma menos corriente.

Oscilador tipo "HS" (High Speed) para frecuencias comprendidas entre 4 y 20 MHz.Habremos de usar esta configuración cuando usemos cristales mayores de 4 MHz. La conexión es la misma que la de un cristal normal, a no ser que usemos un circuito oscilador como el relatado unas líneas más abajo, en la sección de Otras configuración

Oscilador tipo "RC" (Resistor/Capacitor) para frecuencias no mayores de 5.5 Mhz. Por último tenemos el oscilador tipo RC que es el más económico por que tan solo se utiliza un condensador no polarizado y una resistencia. Este tipo de oscilador proporciona una estabilidad mediocre en la frecuencia generada y podrá ser utilizado para aquellos proyectos que no requieran precisión

para aquellos proyectos que no requieran precisión En ciertas ocasiones disponemos una fuente de reloj que

En ciertas ocasiones disponemos una fuente de reloj que proviene de una fuente externa como puede ser un oscilador TTL o CMOS. La onda generada por esta fuente externa puede

servir para poner en funcionamiento el PIC. En la siguiente figura tenemos la forma de conexionar la entrada digital a traves de un inversor lógico.

Como se puede observar, todos los circuitos oscilatorios que se conectan al PIC a través de una sola patilla, van conectadas a la entrada OSC1, dejando la entrada OSC2 abierta.

a la entrada OSC1, dejando la entrada OSC2 abierta. Oscilador TTL Este tipo de oscilador está

Oscilador TTL

Este tipo de oscilador está basado en un cristal que contiene toda la circuitería para generar una onda cuadrada. Este ha de ser conectado como si de un generador de señal externa se tratase. Al incluir toda la circuitería esto lo convierte en la opción más costosa; pero resulta una forma interesante por la precisión en la señal de reloj emitida.

Estos tipos de cristales están diseñados especialmente para tecnologías TTL. La frecuencias disponibles para esta versión de cristal son muy amplias y las mas usuales son 1 - 1.8432 - 2 - 4 - 8 - 10 - 11.059 - 12 - 14.31818 - 16 - 20 - 25 - 32 - 33 - 40 - 50 - 80 y 100 Mhz.

En la imagen siguiente se muestra como debe conectarse al microcontrolador y las características del cristal.

y 100 Mhz. En la imagen siguiente se muestra como debe conectarse al microcontrolador y las

COMPARACION CON DIGITAL I.

COMPARACION CON DIGITAL I. En la imagen se puede ver un circuito cuya finalidad es

En la imagen se puede ver un circuito cuya finalidad es contar a través de dos pulsadores, uno para incrementar el contador y otro para disminuir el contador.

Para llevar a cabo el circuito hemos usado el circuito integrado 74192. El 74LS192 es un contador de décadas Up/Dw en BCD y es el 74LS193 es un contador binario de 4 bits Up/Dw. También hemos usado dos decodificadores para siete segmentos de cátodo común, el 74LS48.

Los pulsadores están conectado a una parte de lógica combinacional necesaria para el correcto funcionamiento del circuito.

A continuación se muestra como sería el circuito si se montara con un PIC sustituyendo a los contadores:

En este circuito se han sustituido los dos contadores por un PIC, y se han

En este circuito se han sustituido los dos contadores por un PIC, y se han usado dos decodificadores para siete segmentos.

Con esta configuración no es necesaria la lógica combinacional, solo necesitamos colocar dos resistencias pull-down para asegurar que siempre estamos midiendo un estado alto o bajo en los pines.

También podríamos prescindir de los decodificadores si elegimos un PIC con más salidas digitales.

Con esta configuración es mucho más sencillo controlar la cuenta, es muy sencillo modificar el código para incrementar la cuenta de dos en dos en lugar de uno en uno. También es sencillo poner un límite al contador, para que no aumente aunque se pulse el pulsador cuando hayamos llegado a un valor determinado.

El código usado ha sido el siguiente:

El código usado ha sido el siguiente:
El código usado ha sido el siguiente: