Sunteți pe pagina 1din 18

Programacin de PIC con NIPLE

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

Programacin visual e interactiva: La programacin visual es muy intuitiva. El usuario disea el


diagrama de flujo vinculando bloques grficos que representan diferentes funciones.
Facilidad de programacin: Niple controla automticamente la interaccin de las diferentas
partes de un programa, esto es, la interaccin entre los diferentes bloques, el tratamiento de las
interrupciones y subrutinas de usuario (retornos y banderas), cambios de banco de memoria
RAM automtico, cambio de pginas de memoria de programa automtico.
Rapidez de programacin: Niple permite desarrollar proyectos con microcontroladores de
manera muy rpida ya que solo se deben insertar bloques fcilmente configurables.
Prevencin de errores: Niple supervisa todas las acciones que realiza el usuario durante el
proceso de diseo y verifica la correcta configuracin del sistema. En general, los sistemas de
programacin tradicionales solo verifican la sintaxis del programa, verificando que todas las
instrucciones estn bien escritas. Niple verifica adems la estructura lgica del programa. Por
ejemplo, detectando si un mdulo ya fue configurado y activado antes de ser utilizado. De sta
manera el usuario no necesita buscar y corregir errores una vez que el proyecto no funciona
sobre el hardware ya que los errores son detectados durante el diseo del programa.
Facilidad en la interpretacin del programa. Es mucho mas fcil entender como funciona un
programa viendo el flujograma que observando su cdigo fuente en ensamblador.
Modelos de microcontroladores soportados (en cada versin aumenta).
o 12F629 / 675
o 16F84 / 84A
o 16F627 / 627A / 628 / 628A / 648 / 648A
o 16F630 / 676

o
o
o
o

16F870 / 873 / 873A / 874 / 874A


16F876 / 876A / 877 / 877A
16F882 / 883 / 884 / 886 / 887
18F2455 / 18F2550 / 18F4455 / 18F4550
Niple es la herramienta ideal para implementar la tecnologa de microcontroladores en mbitos
educativos, sobre todo en los niveles medios de educacin tcnica ya que permite a los
alumnos, desarrollar proyectos electrnicos de media y alta complejidad con el menor esfuerzo
y permitiendo que los alumnos desarrollen todo su potencial creativo sin las limitaciones que la
complejidad de la programacin imponen. Con Niple, el usuario centra su atencin en Que
Hacer y el software resuelve Como Hacerlo.

Mdulos Prediseados

Niple incluye una serie de libreras de diferentes dispositivos y funciones.


Estos mdulos parametrizables permiten al usuario implementar diferentes dispositivos en los
proyectos con poco esfuerzo a travs de pantallas interactivas, presentando incluso, hasta los
esquemas que conexin.

Niple incluye mdulos de rutinas y componentes comnmente utilizados:

Asignacin de valores a bits y a registros de 8 y 16 bits.


Clculos a 8 y 16 bits.
Manejo de tablas.
Displays de 7 segmentos nodo y ctodo comn, con y sin codificador.
LCD Alfanumrico16x2, 20x4 y 20x4 (textos fijos, variables y comandos).
Display LCD Grfico
Manejo de memorias EEPROM y RAM I2C (a 8 y 16 bits).
Manejo de Reloj de tiempo Real por I2C.
Manejo de conversores D/A por I2C.
Manejo de Sensores de Temperatura
Manejo de temporizadores internos (TMRs) y control automticos de interrupciones por TMRs.
Comunicacin serie por RS232 y redes RS485.
Conversin A/D a 8 y 10 bits. Mltiples mediciones A/D con clculo automtico de promedio.
Mdulos CCP (Captura, Comparacin, y PWM).
Teclados matriciales 3x4 y 4x4.
Teclados AT (teclados de PC).
Registro de desplazamientos de hasta 30 posiciones.
Manejo automtico de Interrupciones. Control automtico de retornos de interrupcin.
Manejo de rutinas de usuario.

Exportar e Importar rutinas de usuario entre proyectos.


Conversores D/A por I2C
Motores Paso a Paso
Etc.

P01. Programando un led intermitente


Para aprender a programar con Niple se realizar un sencillo ejemplo, que ser desarrollado con
NIPLE 5.2. Se puede descargar un demo de.
Entre los microcontroladores de bajo precio destaca, de la serie PIC de Microchip, el PIC12F629
de tan solo 8 patillas y cuyo costo es menor de 2 euros y con el que se pueden realizar mltiples
aplicaciones.
En este ejemplo el PIC tiene una tarea sencilla adecuada para aprender a usar Niple. Debe
generar en una de sus patillas de salida una seal cuadrada con una frecuencia de 2 Hz a la que
podemos colocar un led.
Una seal de 2 Hz tiene un periodo de 5 ms, de manera que generaremos de forma peridica una
seal a 5V durante 250 ms y a 0 V durante otros 250 ms a 1 para completar el periodo de 500
ms.
En la siguiente figura se puede observar la distribucin de patillas del PIC12F629.

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

GP3 (patilla 4) slo I


GP4 (patilla 3) I/O.
GP5 (patilla 2) I/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.

Si fuera necesario elegimos como idioma, Espaol y el microcontrolador 12F629. Aparecer la


pantalla para ponerle nombre al archivo, dar un nombre al proyecto y escribir un comentario para
describir la funcin que realiza. Pulsamos Crear.
Completada la pantalla, pulsamos crear y aparecer el entorno de trabajo donde podemos crear el
programa.

En la zona de trabajo aparece un bloque de inicio para comenzar el diagrama de flujo.


Si pulsamos el bloque aparecen unos puntos que lo establecen como activo lo que permite que el
prximo bloque se conecte automticamente al seleccionado.

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.

Ahora comienza en realidad el programa que deseamos crear y empezaremos con la


configuracin del puerto.
En nuestro caso solo debemos buscar en la tabla de operaciones de la derecha y seleccionar
Insertar / Rutinas Bsicas / Puerto / Config. Puerto y aparecer la pantalla de la imagen
siguiente con el patillaje completo del integrado. Todas las patillas (menos GP3) estn indicadas
como salidas incluyendo la que nosotros necesitamos que es la GP0.

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 bloque verde con las dos flechas significa configuracin de puerto.


La leyenda interna XXSSXSSS indica como quedo definido el puerto.

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

Ver pdf sobre ajuste reloj


MPLAB
Project / Project Wizard

Siguiente
PIC12F629
Siguiente
Create New Project File (I:\niple\p01\p01)
Add p01.asm
Build all
Absolute
Proteus
Isis
Edit Component
Program File: Hex

P01b. Programando un led intermitente sin reset


Modificacin del programa:

GP3 se pone a masa para no dejar una entrada al aire.

S-ar putea să vă placă și