Professional Documents
Culture Documents
En el momento actual, la electrnica utiliza masivamente sistemas basados en CPU, como los
microcontroladores y microprocesadores.
Los microcontroladores econmicos, de pequeo tamao, han revolucionado la electrnica por
su bajo precio y porque permiten realizar dispositivos que antes requerian de una gran cantidad
de circuitera con poco mas que el microcontrolador.
Sin embargo, uno de los aspectos que pueden complicar el desarrollo de dispositivos con
microcontroladores es su programacin.
La programacin de microcontroladores implica un alto grado de complejidad, demanda un gran
esfuerzo intelectual y mucho tiempo de desarrollo. Tradicionalmente los microcontroladores se
programan en ensamblador, el lenguaje "nativo" de los sistemas basados en CPU, y tambin
pueden programarse con Basic o C. En general, programar de este modo requiere todo un largo
aprendizaje y una ardua tarea. Hay que escribir sentencias complejas y una simple coma mal
puesta puede ser un dolor de cabeza para el programador.
Existen otras soluciones que permiten programar de forma visual, como MicroLadder, FlowCode
o Niple, que permiten un desarrollo rpido de aplicaciones sin necesidad de grandes
complicaciones. De forma grfica se representan las diferentes operaciones que realiza el
microcontrolador, y el resto del proceso lo realiza la aplicacin, que finalmente entrega el
programa en ensamblador con poco esfuerzo para el programador. Suele ser adems un sistema
de programacin menos susceptible a que puedan cometerse errores en la programacin.
Niple
Esta aplicacin proporciona un mtodo rpido de programacin de PIC mediante un entono
visual interactivo para facilitar al mximo la programacin de Microcontroladores.
Con Niple, el usuario disea un diagrama de flujo de manera rpida y sencilla mediante bloques
grficos e interactivas y el software traduce automticamente el diagrama de flujo al
correspondiente cdigo ensamblador.
El usuario no necesita escribir ni una sola lnea de cdigo ensamblador ya que el software genera
el 100% del programa en ensamblador a partir del diagrama de flujo.
Aspecto:
Caracteristicas
o
o
o
o
Mdulos Prediseados
Es evidente que con 8 patillas en total y dada la necesidad de poseer una para Vdd y otra para
masa solo restan 6 patillas como entrada/salida. Veamos sus caractersticas:
Reset: La funcin de reset puede realizarse internamente si se necesita en un micro con pocas
patillas. El 629 se puede programar para que realice esta funcin de forma automtica liberando
la patilla de reset para que pueda utilizarse como entrada.
Reloj: En la mayora de los casos se utilizan dos patillas del microcontrolador para utilizarlas en
la generacin de la seal de reloj con un cristal de cuarzo que se utiliza junto con dos
condensadores de pequeo valor. El 629 (como muchos otros microcontroladores) posee un
oscilador interno que no requiere la conexin de un cristal externo. De ese modo esas patillas
quedan libres para ser utilizadas como entradas o salidas. Hay que aclarar que el reloj interno no
tiene la precisin de un cristal. Como en nuestro caso no necesitamos que la seal generado sea
precisa haremos uso de esa facilidad del micro. Tambin cabe mencionar que la frecuencia
interna esta fija en 4 MHz y que tiene una precisin del 1% dentro de un margen de
temperatura de 0 a 70C; con esto el paso de instruccin ser de 1 us (siempre es la frecuencia
del clock dividido 4).
Puertos I/O: Con todo esto, salvo las patillas de masa y positivo, las otras 6 pueden considerarse
patillas activas (el puerto en este integrado se le denomina GP) y que son 5 de I/O y una de I
solamente. La patillas son:
o GP0 (patilla 7) I/O 20/25mA
o GP1 (patilla 6) I/O
o GP2 (patilla 5) I/O
o
o
o
En nuestro caso solo requerimos una patilla de salida, en concreto la patilla 7 (GP0) como salida.
Programacin del PIC con NIPLE
Una vez instalado aparecer una pantalla con mens similar a cualquier programa de Windows.
Configurar Herramientas directorios...
Hacemos clic en Archivo / Nuevo proyecto y aparecer la pantalla inicial para elegir el
microcontrolador.
Arriba a la derecha podemos establecer la frecuencia de reloj. Que ser interna a 4 MHz.
Elegimos entonces en Frecuencia OSC la opcin Int 4 MHz.
A continuacin podemos establecer la funcin de la patilla de reset como reset manual, o como
reset automtico producido internamente y as configurar la patilla como entrada. Elegimos
Reset.
Dejamos las otras patillas como salida aunque no las utilicemos en este proyecto. Es decir que
solo debe pulsar OK y aparecer el segundo bloque del programa que se puede observar en la
figura siguiente.
El ultimo carcter corresponde a GP0 y hacia la izquierda aparece GP1, GP2, etc hasta GP5
porque este micro no posee un puerto completo de 8 bits. La indicacin XX significa que esos
bits no estn habilitados para ser predispuestos como I o como O. GP3 aparece como X pues est
configurada como la de reset.
Aunque no sea necesario conviene establecer el estado del puerto, en este caso con todas las
salidas a 0. Para ello utilizamos Insertar / Rutinas Bsicas / Puerto / Escribir en Puerto.
Aparece un cuadro de aviso de Error de configuracin indicando que en esa parte del programa
el puerto no esta configurado como salida. Esto es as porque GP3 no es una salida. En realidad
no es un error y hacemos caso omiso del aviso y seguimos adelante. Aparecer el siguiente
cuadro de dilogo.
La opciones son escribir un valor literal en el puerto de salida o escribir un valor guardado en un
registro.
Elegimos la primer opcin un valor Literal y se podremos establecer que nmero desea colocar
en el puerto, con que notacin y en cual (en nuestro caso slo hay uno, identificado por Niple
como Puerto A).
Elegimos notacin binaria y colocamos el nmero 00000000 con lo cual todas las patillas quedan
en estado bajo. Los bits GP6 y GP7 se ponen a cero aunque sabemos que no existen como
patillas externas.
Al pulsar en OK aparece el bloque que indica el numero binario que se establece en el puerto de salida y
por lo tanto la patilla GP0 pasa al estado alto.
Nuestro programa requiere que la patilla GP0 est 250 ms a nivel alto y 250 ms a nivel bajo
continuando en un ciclo cerrado.
Vamos a pasar primero la patilla GP0 al estado alto mediante a Insertar / Rutinas Bsicas /
Asignar valor / a un Bit. Aparecer el siguiente cuadro de dilogo.
La opciones son escribir un valor directamente en el bit de salida o escribir un valor guardado en
un registro.
Elegimos el nombre del Bit (GP0) y establecemos su valor a 1.
Con esto la patilla GP0 pasa a estado alto y todas las dems seguirn en estado bajo.
Al pulsar en OK aparece el bloque que indica que GP0 = 1 y por lo tanto la patilla GP0 pasa al estado
alto.
En este punto del programa necesitamos que el microcontrolador se quede detenido con GP0 en
alto durante 250 ms. Y eso se logra mediante un temporizador con bucle cerrado (loop) obtenido
de la tabla de herramientas de la derecha con Insertar / Rutinas Bsicas / Temporizadores /
Tiempos por ciclos, para que aparezca una pantalla como la indicada en la figura siguiente.
Al pulsar Ingresar aparece el bloque del temporizador en el programa que estamos
construyendo.
Ahora escribimos 0 en GP0 y realizamos otra temporizacin de 250 ms. En la figura siguiente se
puede observar el programa para realizar un solo ciclo de la seal cuadrada de salida.
Y en la siguiente figura se puede observar el programa completo con repeticin permanente del
ciclo. Todo lo que se agreg es un lnea del diagrama de flujo para que el control del programa
de un salto hacia atrs. Esa lnea de regreso se realiza con el ultimo bloque seleccionado, luego
pulsando en su punto central y arrastrando hasta el bloque de retorno.
Como se puede observar la programacin no puede ser mas sencilla ya que construir todo este
programa puede haber llevado un tiempo de un par de minutos como mucho. Por supuesto existe
la posibilidad de modificarlo muy fcilmente editando los bloques y cambiando su contenido.
Por ejemplo si queremos generar un tono de 1 KHz solo debemos hacer doble click sobre cada
temporizador para editarlo.
Archivo / Archivo ASM / Generar cdigo ASM
Siguiente
PIC12F629
Siguiente
Create New Project File (I:\niple\p01\p01)
Add p01.asm
Build all
Absolute
Proteus
Isis
Edit Component
Program File: Hex