Está en la página 1de 31

Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc.

y derivados del PIC1650, originalmente desarrollado por la divisin de microelectrnica de General Instrument. El nombre actual no es un acrnimo. En realidad, el nombre completo es PICmicro, aunque generalmente se utiliza como Peripheral Interface Controller (controlador de interfaz perifrico). El PIC original se dise para ser usado con la nueva CPU de 16 bits CP16000. Siendo en general una buena CPU, sta tena malas prestaciones de E/S, y el PIC de 8 bits se desarroll en 1975 para mejorar el rendimiento del sistema quitando peso de E/S a la CPU. El PIC utilizaba microcdigo simple almacenado en ROM para realizar estas tareas; y aunque el trmino no se usaba por aquel entonces, se trata de un diseo RISC que ejecuta una instruccin cada 4 ciclos del oscilador. En 1985 la divisin de microelectrnica de General Instrument se separa como compaa independiente que es incorporada como filial (el 14 de diciembre de 1987 cambia el nombre a Microchip Technology y en 1989 es adquirida por un grupo de inversores) y el nuevo propietario cancel casi todos los desarrollos, que para esas fechas la mayora estaban obsoletos. El PIC, sin embargo, se mejor con EPROM para conseguir un controlador de canal programable. Hoy en da multitud de PICs vienen con varios perifricos incluidos (mdulos de comunicacin serie, UARTs, ncleos de control de motores, etc.) y con memoria de programa desde 512 a 32.000 palabras (una palabra corresponde a una instruccin en ensamblador, y puede ser 12, 14 o 16 bits, dependiendo de la familia especfica de PICmicro).

Contenido
[ocultar] 1 Juego de instrucciones y entorno de programacin 2

2.1 Espacio de datos (RAM)

2.2 3 Programacin del PIC

3.1 Programadores 3.2

3.3 4 Caractersticas 5 5.1 PICs modernos 5.2 5.3

( 3 2 )

5.4 ( )

5.5

32

6 PICs ms comnmente usados 7

8.1 En espaol

8.2 9 Referencias

[editar] Juego de instrucciones y entorno de programacin


El PIC usa un juego de instrucciones tipo RISC, cuyo nmero puede variar desde 35 para PICs de gama baja a 70 para los de gama alta. Las instrucciones se clasifican entre las que realizan operaciones entre el acumulador y una constante, entre el acumulador y una posicin de memoria, instrucciones de condicionamiento y de salto/retorno, implementacin de interrupciones y una para pasar a modo de bajo consumo llamada sleep. Microchip proporciona un entorno de desarrollo freeware llamado MPLAB que incluye un simulador software y un ensamblador. Otras empresas desarrollan compiladores C y BASIC. Microchip tambin vende compiladores para los PICs de gama alta ("C18" para la serie F18 y "C30" para los dsPICs) y se puede descargar una edicin para estudiantes del C18 que inhabilita algunas opciones despus de un tiempo de evaluacin. Para el lenguaje de programacin Pascal existe un compilador de cdigo abierto, JAL, lo mismo que PicForth para el lenguaje Forth. GPUTILS es una coleccin de herramientas distribuidas bajo licencia GPL que incluye ensamblador y enlazador, y funciona en Linux, MacOS y Microsoft Windows. GPSIM es otra herramienta libre que permite simular diversos dispositivos hardware conectados al PIC. Uno de los ms modernos y completos compiladores para lenguaje C es [mikroC], que es un ambiente de desarrollo con editor de texto, bibliotecas con mltiples funciones para todos los mdulos y herramientas incorporadas para facilitar enormemente el proceso de programacin.

[editar] Arquitectura central


La arquitectura del PIC es sumamente minimalista. Esta caracterizada por las siguientes prestaciones: rea de cdigo y de datos separadas (Arquitectura Harvard). Un reducido nmero de instrucciones de largo fijo. La mayora de las instrucciones se ejecutan en un solo ciclo de ejecucin (4 ciclos de clock), con ciclos de nico retraso en las bifurcaciones y saltos. Un solo acumulador (W), cuyo uso (como operador de origen) es implcito (no est especificado en la instruccin). Todas las posiciones de la RAM funcionan como registros de origen y/o de destino de operaciones matemticas y otras funciones.[1] Una pila de hardware para almacenar instrucciones de regreso de funciones. Una relativamente pequea cantidad de espacio de datos direccionable

(tpicamente, 256 bytes), extensible a travs de manipulacin de bancos de memoria. El espacio de datos est relacionado con el CPU, puertos, y los registros de los perifricos. El contador de programa esta tambin relacionado dentro del espacio de datos, y es posible escribir en l (permitiendo saltos indirectos).

A diferencia de la mayora de otros CPU, no hay distincin entre los espacios de memoria y los espacios de registros, ya que la RAM cumple ambas funciones, y esta es normalmente referida como "archivo de registros" o simplemente, registros.

[editar] Espacio de datos (RAM)


Los microcontroladores PIC tienen una serie de registros que funcionan como una RAM de propsito general. Los registros de propsito especifico para los recursos de hardware disponibles dentro del propio chip tambin estn direccionados en la RAM. La direccionabilidad de la memoria varia dependiendo la lnea de dispositivos, y todos los dispositivos PIC tienen algn tipo de mecanismo de manipulacin de bancos de memoria que pueden ser usados para acceder memoria adicional. Las series ms recientes de dispositivos disponen de funciones que pueden cubrir todo el espacio direccionable, independientemente del banco de memoria seleccionado. En los dispositivos anteriores, esto deba lograrse mediante el uso del acumulador. Para implementar direccionamiento indirecto, un registro de "seleccin de registro de archivo" (FSR) y de "registro indirecto" (INDF) son usados: Un nmero de registro es escrito en el FSR, haciendo que las lecturas o escrituras al INDF sern realmente hacia o del registro apuntado por el FSR. Los dispositivos ms recientes extienden este concepto con pos- y preincrementos/decrementos para mayor eficiencia en acceder secuencialmente a la informacin almacenada. Esto permite que se pueda tratar al FSR como un puntero de pila. La memoria de datos externa no es directamente direccionable excepto en algunos microcontroladores PIC 18 de gran cantidad de pines.

[editar] Tamao de palabra


El tamao de palabra de los microcontroladores PIC es fuente de muchas confusiones. Todos los PICs (excepto los dsPIC) manejan datos en trozos de 8 bits, con lo que se deberan llamar microcontroladores de 8 bits. Pero a diferencia de la mayora de CPUs, el PIC usa arquitectura Harvard, por lo que el tamao de las instrucciones puede ser distinto del de la palabra de datos. De hecho, las diferentes familias de PICs usan tamaos de instruccin distintos, lo que hace difcil comparar el tamao del cdigo del PIC con el de otros microcontroladores. Por ejemplo, un microcontrolador tiene 6144 bytes de memoria de programa: para un PIC de 12 bits esto significa 4096 palabras y para uno de 16 bits, 3072 palabras.

[editar] Programacin del PIC


Para transferir el cdigo de un ordenador al PIC normalmente se usa un dispositivo llamado programador. La mayora de PICs que Microchip distribuye hoy en da incorporan ICSP (In Circuit Serial Programming, programacin serie incorporada) o LVP (Low Voltage Programming, programacin a bajo voltaje), lo que permite programar el PIC directamente en el circuito destino. Para la ICSP se usan los pines RB6 y RB7 (En algunos modelos pueden usarse otros pines como el GP0 y GP1 o el RA0 y RA1) como reloj y datos y el MCLR para activar el modo programacin aplicando un voltaje de 13 voltios. Existen muchos programadores de PICs, desde los ms simples que dejan al software los detalles de comunicaciones, a los ms complejos, que pueden verificar el dispositivo a diversas tensiones de alimentacin e implementan en hardware casi todas las funcionalidades. Muchos de estos programadores complejos incluyen ellos mismos PICs preprogramados como interfaz para enviar las rdenes al PIC que se desea programar. Uno de los programadores ms simples es el TE20, que utiliza la lnea TX del puerto RS232 como alimentacin y las lneas DTR y CTS para mandar o recibir datos cuando el microcontrolador est en modo programacin. El software de programacin puede ser el ICprog, muy comn entre la gente que utiliza este tipo de microcontroladores. Entornos de programacin basados en interpretes BASIC ponen al alcance de cualquiera proyectos que parecieran ser ambiciosos. Se pueden obtener directamente de Microchip muchos programadores/depuradores (octubre de 2005): Un buena recopilacin de herramientas de desarrollo para PICs puede encontrarse Aqu. (Mayo de 2009). [editar] Programadores PICStart Plus (puerto serie y USB) Promate II (puerto serie) MPLAB PM3 (puerto serie y USB) ICD2 (puerto serie y USB) ICD3 (USB) PICKit 1 (USB) IC-Prog 1.06B PICAT 1.25 (puerto USB2.0 para PICs y Atmel) WinPic 800 (puerto paralelo, serie y USB) PICKit 2 (USB)

PICKit 3 (USB) Terusb1.0 Eclipse (PICs y AVRs. USB.) http://programador-usb.blogspot.com/ Adems es posible hacer un programador de manera casera, en http://microspics.blogspot.com hay una lista con los ms utilizados.

[editar] Depuradores integrados ICD (Serie) ICD2 (Serie full speed USB - 2M bits/s) ICD3 (High speed USB - 480M bits/s)

[editar] Emuladores Proteus - ISIS ICE2000 (puerto paralelo, convertidor a USB disponible) ICE4000 (USB) PIC EMU PIC CDlite

[editar] Caractersticas
Los PICs actuales vienen con una amplia gama de mejoras hardware incorporadas: Ncleos de CPU de 8/16 bits con Arquitectura Harvard modificada kilobytes y ROM disponible desde 256 bytes a 256

Puertos de E/S (tpicamente 0 a 5,5 voltios) de 8/16 bits

Tecnologa Nanowatt para modos de control de energa EUSART bits Comparadores de tensin serie sncronos y asncronos: USART, AUSART, / de 8-10-12

Mdulos de captura y comparacin PWM Controladores LCD Perifrico MSSP para comunicaciones IC, SPI, y IS Memoria EEPROM interna con duracin de hasta un milln de ciclos de lectura/escritura Perifricos de control de motores Soporte de interfaz USB Soporte de controlador Ethernet Soporte de controlador CAN Soporte de controlador LIN

Soporte de controlador Irda

[editar] Variaciones del PIC


[editar] PICs modernos
Los viejos PICs con memoria PROM o EPROM se estn renovando gradualmente por chips con memoria Flash. As mismo, el juego de instrucciones original de 12 bits del PIC1650 y sus descendientes directos ha sido suplantado por juegos de instrucciones de 14 y 16 bits. Microchip todava vende versiones PROM y EPROM de la mayora de los PICs para soporte de aplicaciones antiguas o grandes pedidos. Se pueden considerar tres grandes gamas de MCUs PIC en la actualidad: Los bsicos (Linebase), los de medio rango (Mid Range) y los de alto desempeo (high performance). Los PIC18 son considerandos de alto desempeo y tienen entre sus miembros a PICs con mdulos de comunicacin y protocolos avanzados (USB, Ethernet, Zigbee por ejemplo).

[editar] Clones del PIC


Por todos lados surgen compaas que ofrecen versiones del PIC ms baratas o mejoradas. La mayora suelen desaparecer rpidamente. Una de ellas que va perdurando es Ubicom (antiguamente Scenix) que vende clones del PIC que funcionan mucho ms rpido que el original. OpenCores tiene un ncleo del PIC16F84 escrito en Verilog.

[editar] PICs wireless


El microcontrolador rfPIC integra todas las prestaciones del PICmicro de Microchip con la capacidad de comunicacin wireless UHF para aplicaciones RF de baja potencia. Estos dispositivos ofrecen un diseo muy comprimido para ajustarse a los cada vez ms demandados requerimientos de miniaturizacin en aparatos electrnicos. Aun as, no

parecen tener mucha salida en el mercado.

[editar] PICs para procesado de seal (dsPICs)


Los dsPICs son el penltimo lanzamiento de Microchip, comenzando a producirlos a gran escala a finales de 2004. Son los primeros PICs con bus de datos inherente de 16 bits. Incorporan todas las posibilidades de los anteriores PICs y aaden varias operaciones de DSP implementadas en hardware, como multiplicacin con suma de acumulador (multiply-accumulate, o MAC), barrel shifting, bit reversion o multiplicacin 16x16 bits.

[editar] PICs de 32 bits (PIC32)


Microchip Technology lanz en noviembre de 2007 los nuevos microcontroladores de 32 bits con una velocidad de procesamiento de 1.5 DMIPS/MHz con capacidad HOST USB. Estos MCUs permiten un procesamiento de informacin increble con un ncleo de procesador de tipo M4K.

[editar] PICs ms comnmente usados


PIC12C508/509 (encapsulamiento reducido de 8 pines, oscilador interno, popular en pequeos diseos como el iPod remote). PIC12F629/675 1 6 84 (Considerado obsoleto, pero imposible de descartar y muy popular) PIC16F84A (Buena actualizacin del anterior, algunas versiones funcionan a 20 MHz, compatible 1:1) PIC16F628A PIC16F88 (Nuevo sustituto del PIC16F84A con ms memoria, oscilador interno, PWM, etc que podra convertirse en popular como su hermana). La subfamilia PIC16F87X y PIC16F87XA (los hermanos mayores del PIC16F84 y PIC16F84A, con cantidad de mejoras incluidas en hardware. Bastante comn en proyectos de aficionados). PIC16F886/887 (Nuevo sustituto del 16F876A y 16F877A con la diferencia que el nuevo ya se incluye oscilador interno). PIC16F193x (Nueva gama media de PIC optimizado y con mucha RAM, ahora con 49 instrucciones por primera vez frente a las 35 de toda la vida). PIC18F2455 y similares con puerto USB 2.0 PIC18F2550 manejo de puertos USB 2.0 y muy versatil.

PIC18F452 PIC18F4550 dsPIC30F2010 dsPIC30F3014 dsPIC30F3011 (Ideales para control electrnico de motores elctricos de induccin, control sobre audio, etc). PIC32 (Nueva gama de PIC de 32 bits, los ms modernos ya compatible con USB 2.0).

[editar] PICs en Internet


Se puede encontrar mucha informacin y documentacin sobre PICs en Internet principalmente por dos motivos: el primero, porque han sido muy usados para romper los sistemas de seguridad de varios productos de consumo mayoritario (televisin de pago, Play Station...), lo que atrae la atencin de los crackers; y segundo, porque el PIC16C84 fue uno de los primeros microcontroladores fcilmente reprogramables para aficionados. Hay muchos foros y listas de correo dedicados al PIC en los que un usuario puede proponer sus dudas y recibir respuestas. Pero tambin podemos enfocar el tema de internet a la posibilidad que se tiene de desarrollar con estos, Sistemas SCADA va Web debido a que pueden adquirir y enviar datos al puerto serial de un computador utilizando transmisin UART y el protocolo RS232, o la posibilidad de implementar el protocolo TCP/IP directamente.

[editar] Enlaces externos


[editar] En espaol
Electrnica PIC Manuales y tutoriales de electrnica general y PIC. Manuales y tutoriales de electrnica general , PIC y mas . en la Asociacin de Robtica y Domtica de Espaa.

Sitio de robtica con artculos de contenido tcnico y didctico

1 8 2550

[editar] En ingls
http://www.microchip.com La pgina oficial del fabricante PICs y otros componentes electrnicos semiconductores 1 650

Entorno de desarrollo y simulador para el PIC16F628 liberado bajo licencia GPL-2

Small Device C Compiler, an Open Source compiler for microcontrollers, PIC 16x and 18x support is a WIP. principiantes (en ingls). Gua para de programacin del PIC para

[editar] Referencias
Hoja de datos de un 16F84 (pdf), definicin de instrucciones de lenguaje ensamblador de PIC16 e informacin sobre la RAM y su direccionabilidad. Obtenido de "http://es.wikipedia.org/wiki/Microcontrolador_PIC" Categora: Microcontroladores
Herramientas personales

Registrarse/Entrar

Espacios de nombres

Artculo


Variantes Vistas

Leer

Acciones Buscar

Navegacin

Portada


Imprimir/exportar

Crear un libro


Herramientas

Lo que enlaza aqu


En otros idiomas

Catal ()

Esta pgina fue modificada por ltima vez el 15 ene 2011, a las 22:56. El texto est disponible bajo la Licencia Creative Commons Atribucin Compartir Igual 3.0; podran ser aplicables clusulas adicionales. Lee los trminos de uso para ms informacin.

SEMAFORO CON PIC 16F628 FIGURA 1

FIGURA 2

FIGURA 3

FIGURA 4

FIGURA 5

El programa que en esta ocasin analizaremos ya

hace tiempo fue utilizado por primera vez, en estas mismas pginas de sta, nuestra queria revista, y lo que haremos en esta nota es "traspasar" el programa del PIC16F84 a un PIC16F628, que finalmente es el microcontrolador, que en un futuro, reemplazar al viejo 16F84.

INTRODUCCION En la figura 1 se muestra el diagrama esquemtico del circuito del semforo, en este diagrama se encuentra ya el microcontrolador PIC16F628, y lo nico que tuvimos que hacer fue quitar el PIC16F84 y colocar el nuevo microcontrolador, los dems elementos del circuito se quedan como estn. Lo anterior es posible gracias a la compatibilidad que existe entre las terminales de un microcontrolador con el otro, por lo que no se tiene mayor problema, al reemplazarlos ya que fsicamente son equivalentes en cuanto a la disposicin de las terminales de cada uno de ellos, por otra parte, la operacin que realizaremos en cuanto a la sustitucin del programa es muy simple, pero tenemos que

PROMOCIO NES

adecuarlo. Para recordar de qu se trata el programa abordado en esta ocasin, procederemos a explicar cmo funciona el clsico programa del semforo en las lneas que siguen a continuacin: La gran ventaja de los PICs radica en que existe abundante bibliografa gratuita disponible en distintas plataformas (sin duda Internet ha contribuido a potencializar esta ventaja), los entornos de desarrollo son provistos por la misma Microchip en forma gratuita y se los puede programar y cargar con gran cantidad de dispositivos, adems de la informacin que pueden encontrar en nuestra pgina de internet: www.webelectronica.com.a r

ESTRUCTURA DEL PROGRAMA Como compilador emplearemos la aplicacin de Microchip MPLAB, que genera y compila el archivo con extensin "asm, y a partir de este obtener el programa en un archivo con extensin 'hex". Como cargador

usaremos el Quark Pro 2, que por otra parte emplea la aplicacin lC-PROG como programa para permitir la carga de los microcontroladores PIC. Vamos a construir un semforo que funcione con 12VCD y que sea capaz de manejar lmparas de 50W con dicha tensin. Partiremos desde cero a partir del circuito de la figura 1. El microcontrolador PIC16F628 debe tener en su interior el programa que haga que se enciendan en secuencia las lmparas LA1 (color verde), LA2 (color amarillo) y LA3 (color rojo). A los efectos de monitorear el encendido de las lmparas, usamos como pilotos a los leds D1 (verde), D2 (amarillo) y D3 (rojo) y para manejar las lmparas de potencia se utilizan transistores NPN de potencia con disipador del tipo TIP41A. Los dispositivos R1 en serie con VR1 y C1 conforman un circuito de carga cuya constante de tiempo determina la frecuencia de operacin del reloj, que a su vez controla al contador de programa del PIC y por

ende, el tiempo en que las lmparas permanecern encendidas, mientras que D4 junto con Q4 representan un limitador de tensin para alimentar al PIC con 5V.

CONSTRUCCION DEL PROGRAMA Note que tanto los leds pilotos como los transistores que manejan las lmparas estn conectados a los terminales 6, 7 y 8 del PIC que corresponden a los bits menos significativos del Puerto B (vea la figura 1), sea, debemos recordar que usaremos los bits b0, b1 y b2 del PIC (podramos haber empleado otras patas, incluso hasta del puerto A y seguiramos el mismo procedimiento que vamos a describir). Una vez que comienza el programa, debe encenderse el led verde, permanecer encendido durante 45 segundos, apagarse el verde y prenderse el amarillo durante 5 segundos, apagarse el amarillo y prenderse el rojo durante 45 segundos, apagar el led rojo y prender el verde durante 45 segundos y as sucesivamente. Para hacer que un led permanezca encendido se utilizan rutinas de tiempo

(temporizadores), cuya funcin es la de contar dicho tiempo. Para armar el programa tenemos que definir qu patas del PIC vamos a emplear para encender las lmparas del semforo. Decimos entonces que usaremos los siguientes pines:

BIT Y PUERTO b0 b1 b2

PA TA 6 7 8

LAMPARA Verde Amarillo Rojo

El programa tiene que realizar los siguientes pasos: Iniciar el programa.

Configuramos el puerto B con todas las patas como salida, slo nos interesan los 3 bits menos significativos, pero igual configuramos a todas las patas como salida. Escribimos en el puerto B el dato '00000001", de esta manera mandamos un 1, lgico, al bit b0 para que se

encienda la lmpara verde. Activamos un temporizador de 45 segundos, para que la lmpara verde permanezca encendida ese tiempo (note que las lmparas amarilla y roja van a estar apagadas porque los bits B 1 y B2 est6n en '0'). Escribimos en el puerto B el dato '00000010' para que se encienda la lmpara amarilla y queden apagadas las lmparas roja y verde (note que el bit b1 estar en " 1 " mientras que los bits b0 y b2 estn en '0'). Activamos un temporizador de 5 segundos, para que la lmpara amarilla permanezca encendida ese tiempo (note que las lmparas verde y roja van a estar apagadas porque los bits b0 y b2 estn en 0). Escribimos en el puerto B el dato '00000100 , para

que se encienda la lmpara roja y queden apagadas las lmparas amarilla y verde (note que el bit b2 estar en " 1 " mientras que los bits b0 y b1 estn en "0"). Activamos un temporizador de 45 segundos, para que la lmpara roja permanezca encendida ese tiempo (note que las lmparas amarilla y verde van a estar apagadas porque los bits b0 y b1 estn en 0). Retornamos al paso (3). Fin del programa. En la figura 4 vemos el programa. Primero vamos a mostrar el cdigo original para el PIC16F84, y posteriormente el cdigo para el PIC16F628, y al hacer la correspondiente comparacin entre ambos, se notar que los cambios principales se centran en las localidades de los registros, sobre todo de memoria RAM, en el aumento de bancos de registros, y en un par de instrucciones que se

requieren para que las terminales del puerto A del PIC16F628, funciones como entradas discretas. Estas instrucciones son las siguientes:

movlw movwf

0x0 7 cm con

El registro CMCON se encuentran en el banco 0, por lo que ste tiene que ser ubicado adecuadamente de manera previa. En la figura 5 vemos el siguiente programa. Esperamos que el proceso de reemplazar un microcontrolador por otro, sea cada vez ms sencillo, ya que se es el espritu de esta serie de artculos y para ello tomamos un programa ya clsico para nosotros, y los invitamos para que a manera de prctica lo desarrollen y ahonden en sus conocimientos sobre la programacin de microcontroladores. Por ltimo los invitamos a que visiten nuestra pgina de internet en www.webelectronica.com.a r en donde encontrarn ms informacin acerca del tema de reemplazo del microcontrolador PIC16F84

por un PIC16F628A.

Autor: Ismael Cervantes de Anda - Docente EXCOM IPN icervantes@saberinternaci onal.com.mx

SEMAFORO CON PIC 16F628 FIGURA 1

FIGURA 2

FIGURA 3

FIGURA 4

FIGURA 5

El programa que en esta ocasin analizaremos ya hace tiempo fue utilizado por primera vez, en estas mismas pginas de sta, nuestra queria revista, y lo que haremos en esta nota es "traspasar" el programa del PIC16F84 a un PIC16F628, que finalmente es el microcontrolador, que en un futuro, reemplazar al viejo 16F84.

INTRODUCCION En la figura 1 se muestra el diagrama esquemtico del circuito del semforo, en este diagrama se encuentra ya el microcontrolador PIC16F628, y lo nico que tuvimos que hacer fue quitar el PIC16F84 y colocar el nuevo microcontrolador, los dems elementos del circuito se quedan como

PROMOCIO NES

estn. Lo anterior es posible gracias a la compatibilidad que existe entre las terminales de un microcontrolador con el otro, por lo que no se tiene mayor problema, al reemplazarlos ya que fsicamente son equivalentes en cuanto a la disposicin de las terminales de cada uno de ellos, por otra parte, la operacin que realizaremos en cuanto a la sustitucin del programa es muy simple, pero tenemos que adecuarlo. Para recordar de qu se trata el programa abordado en esta ocasin, procederemos a explicar cmo funciona el clsico programa del semforo en las lneas que siguen a continuacin: La gran ventaja de los PICs radica en que existe abundante bibliografa gratuita disponible en distintas plataformas (sin duda Internet ha contribuido a potencializar esta ventaja), los entornos de desarrollo son provistos por la misma Microchip en forma gratuita y se los puede programar y cargar con gran cantidad de dispositivos, adems de la informacin que pueden encontrar en nuestra pgina de internet: www.webelectronica.com.a r

ESTRUCTURA DEL PROGRAMA Como compilador emplearemos la aplicacin de Microchip MPLAB, que genera y compila el archivo con extensin "asm, y a partir de este obtener el programa en un archivo con extensin 'hex". Como cargador usaremos el Quark Pro 2, que por otra parte emplea la aplicacin lC-PROG como programa para permitir la carga de los microcontroladores PIC.

Vamos a construir un semforo que funcione con 12VCD y que sea capaz de manejar lmparas de 50W con dicha tensin. Partiremos desde cero a partir del circuito de la figura 1. El microcontrolador PIC16F628 debe tener en su interior el programa que haga que se enciendan en secuencia las lmparas LA1 (color verde), LA2 (color amarillo) y LA3 (color rojo).

A los efectos de monitorear el encendido de las lmparas, usamos como pilotos a los leds D1 (verde), D2 (amarillo) y D3 (rojo) y para manejar las lmparas de potencia se utilizan transistores NPN de potencia con disipador del tipo TIP41A. Los dispositivos R1 en serie con VR1 y C1 conforman un circuito de carga cuya constante de tiempo determina la frecuencia de operacin del reloj, que a su vez controla al contador de programa del PIC y por ende, el tiempo en que las lmparas permanecern encendidas, mientras que D4 junto con Q4 representan un limitador de tensin para alimentar al PIC con 5V.

CONSTRUCCION DEL PROGRAMA Note que tanto los leds pilotos como los transistores que manejan las lmparas estn conectados a los terminales 6, 7 y 8 del PIC que corresponden a los bits menos significativos del Puerto B (vea la figura 1), sea, debemos recordar que usaremos los bits b0, b1 y b2 del PIC (podramos haber empleado otras patas, incluso hasta del puerto A y seguiramos el mismo procedimiento que vamos a

describir). Una vez que comienza el programa, debe encenderse el led verde, permanecer encendido durante 45 segundos, apagarse el verde y prenderse el amarillo durante 5 segundos, apagarse el amarillo y prenderse el rojo durante 45 segundos, apagar el led rojo y prender el verde durante 45 segundos y as sucesivamente. Para hacer que un led permanezca encendido se utilizan rutinas de tiempo (temporizadores), cuya funcin es la de contar dicho tiempo. Para armar el programa tenemos que definir qu patas del PIC vamos a emplear para encender las lmparas del semforo. Decimos entonces que usaremos los siguientes pines:

BIT Y PUERTO b0 b1 b2

PA TA 6 7 8

LAMPARA Verde Amarillo Rojo

El programa tiene que realizar los siguientes pasos: Iniciar el programa.

Configuramos el puerto B con todas las patas como salida, slo nos interesan los 3 bits menos significativos, pero igual configuramos a todas las patas como salida. Escribimos en el puerto B el dato '00000001", de esta manera mandamos un 1, lgico, al bit b0 para que se encienda la lmpara verde. Activamos un temporizador de 45 segundos, para que la lmpara verde permanezca encendida ese tiempo (note que las lmparas amarilla y roja van a estar apagadas porque los bits B 1 y B2 est6n en '0'). Escribimos en el puerto B el dato '00000010' para que se encienda la lmpara amarilla y queden apagadas las lmparas roja y verde (note que el bit b1 estar en " 1 " mientras que los bits b0 y b2 estn en '0').

Activamos un temporizador de 5 segundos, para que la lmpara amarilla permanezca encendida ese tiempo (note que las lmparas verde y roja van a estar apagadas porque los bits b0 y b2 estn en 0). Escribimos en el puerto B el dato '00000100 , para que se encienda la lmpara roja y queden apagadas las lmparas amarilla y verde (note que el bit b2 estar en " 1 " mientras que los bits b0 y b1 estn en "0"). Activamos un temporizador de 45 segundos, para que la lmpara roja permanezca encendida ese tiempo (note que las lmparas amarilla y verde van a estar apagadas porque los bits b0 y b1 estn en 0). Retornamos al paso (3).

Fin del programa. En la figura 4 vemos el programa. Primero vamos a mostrar el cdigo original para el PIC16F84, y posteriormente el cdigo para el PIC16F628, y al hacer la correspondiente comparacin entre ambos, se notar que los cambios principales se centran en las localidades de los registros, sobre todo de memoria RAM, en el aumento de bancos de registros, y en un par de instrucciones que se requieren para que las terminales del puerto A del PIC16F628, funciones como entradas discretas. Estas instrucciones son las siguientes:

movlw movwf

0x0 7 cm con

El registro CMCON se encuentran en el banco 0, por lo que ste tiene que ser ubicado adecuadamente de manera previa. En la figura 5 vemos el siguiente programa. Esperamos que el proceso de reemplazar un microcontrolador por otro, sea cada vez ms sencillo, ya que se es el espritu de

esta serie de artculos y para ello tomamos un programa ya clsico para nosotros, y los invitamos para que a manera de prctica lo desarrollen y ahonden en sus conocimientos sobre la programacin de microcontroladores. Por ltimo los invitamos a que visiten nuestra pgina de internet en www.webelectronica.com.a r en donde encontrarn ms informacin acerca del tema de reemplazo del microcontrolador PIC16F84 por un PIC16F628A.

Autor: Ismael Cervantes de Anda - Docente EXCOM IPN icervantes@saberinternaci onal.com.mx