Vous êtes sur la page 1sur 151

Niple inicio pag20 .....

50

Pag 50 Programacion

PROGRAMACIN VISUAL DE MICROCONTROLADORES

NIPLE SOFTWARE
Manual de Usuario

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Tabla de contenidos

INTRODUCCIN A LOS MICROCONTROLADORES ..................................................................................... 6


Qu es un microcontrolador? ...................................................................................................................... 6
Los microcontroladores PIC ........................................................................................................................ 6
Estructura de un microcontrolador................................................................................................................ 7
El procesador o CPU .................................................................................................................................. 7
Memoria ROM ........................................................................................................................................... 8
Memoria RAM ........................................................................................................................................... 9
Registros y Bits ........................................................................................................................................... 9
Lneas de entrada y salida (E/S) Puertos ............................................................................................... 13
Temporizadores internos (TMRs) ............................................................................................................ 14
Utilizando un microcontrolador ................................................................................................................... 16
Niple: Programacin Visual de microcontroladores PIC .............................................................................. 18
INTRODUCCIN A NIPLE ....................................................................................................................... 20
Entorno Visual de desarrollo para programacin de microcontroladores PIC ............................................ 20
Funciones disponible.................................................................................................................................... 21
Herramientas adicionales ............................................................................................................................ 23
METODOLOGA DE PROGRAMACIN CON NIPLE .................................................................................... 25
Conceptos bsicos ........................................................................................................................................ 25
Instrucciones ............................................................................................................................................ 25
Etiquetas .................................................................................................................................................. 26
Interrupciones ......................................................................................................................................... 27
Subrutinas de usuario .............................................................................................................................. 28
La interfaz de Niple .................................................................................................................................. 29
Secciones de trabajo ................................................................................................................................ 29
Entornos .................................................................................................................................................. 33
Crear un nuevo entorno .......................................................................................................................... 34
Seleccionar el entorno actual de trabajo ................................................................................................. 34
Borrar un entorno .................................................................................................................................... 34
Bloques .................................................................................................................................................... 35
Interpretacin de los bloques:................................................................................................................. 35
Seleccin de bloques o vnculos .............................................................................................................. 36
Mover un bloque ..................................................................................................................................... 37

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Estirar un bloque ..................................................................................................................................... 38


Borrar bloques ......................................................................................................................................... 38
Editar bloques .......................................................................................................................................... 39
Duplicar bloques ...................................................................................................................................... 39
Habilitar e inhabilitar bloques ................................................................................................................. 40
Vnculos entre bloques (Flechas) ............................................................................................................. 41
Crear un vnculo ....................................................................................................................................... 43
Cambiar el estilo de un vnculo ................................................................................................................ 43
Borrar vnculos ......................................................................................................................................... 44
Ingreso de datos ...................................................................................................................................... 44
Control de ingreso de nombres de registros ........................................................................................... 45
Control de ingreso de valores literales .................................................................................................... 46
Modos de trabajo: Nivel de Usuario ........................................................................................................ 46
Rutinas de usuario ....................................................................................................................................... 47
Exportar una rutina de usuario ................................................................................................................ 47
Importar una rutina de usuario ............................................................................................................... 49
Exportar imagen ...................................................................................................................................... 49
Programando con Niple ............................................................................................................................... 50
Crear un nuevo proyecto ......................................................................................................................... 50
Declaracin de registros .......................................................................................................................... 53
Borrar un registro .................................................................................................................................... 55
Declaracin de bits .................................................................................................................................. 55
Borrar un bit de usuario........................................................................................................................... 56
Cambiar el nombre a un bit de usuario ................................................................................................... 56
Insertar bloques ....................................................................................................................................... 58
Descripcin de las funciones ................................................................................................................... 62
Instrucciones ............................................................................................................................................ 62
Instrucciones orientadas a registros ........................................................................................................ 62
Instrucciones orientadas a bits ................................................................................................................ 63
Instrucciones orientadas a literales ......................................................................................................... 63
Instrucciones orientadas a control .......................................................................................................... 64
Rutinas bsicas......................................................................................................................................... 64
Iniciar programa ...................................................................................................................................... 66
Asignar valor a un Bit ............................................................................................................................... 66

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Asignar valor a un registro ....................................................................................................................... 67


Configurar puerto .................................................................................................................................... 68
Leer puerto .............................................................................................................................................. 69
Escribir puerto ......................................................................................................................................... 69
Conversin Analgica/Digital................................................................................................................... 70
Configuracin de los canales A/D ............................................................................................................ 70
Conversin A/D ........................................................................................................................................ 71
Condicin ................................................................................................................................................. 73
Comparar bit ............................................................................................................................................ 73
Comparar registro .................................................................................................................................... 75
Clculos matemticos .............................................................................................................................. 77
Suma ........................................................................................................................................................ 77
Resta ........................................................................................................................................................ 78
Multiplicacin .......................................................................................................................................... 79
Divisin .................................................................................................................................................... 80
Incrementar uno ...................................................................................................................................... 81
Decrementar uno ..................................................................................................................................... 83
Dec a BCD................................................................................................................................................. 84
Convertir valor BCD a registro ................................................................................................................. 85
Escalado proporcional ............................................................................................................................. 86
Tablas ....................................................................................................................................................... 87
Crear una nueva tabla.............................................................................................................................. 88
Consultar tabla......................................................................................................................................... 90
Tiempos por bucles .................................................................................................................................. 91
Memoria EEPROM interna....................................................................................................................... 92
Declaracin de Registros EEPROM .......................................................................................................... 92
Leer EEPROM ........................................................................................................................................... 93
Grabar EEPROM ....................................................................................................................................... 94
DECLARACIN DE DISPOSITIVOS ........................................................................................................... 95
Display de siete segmentos sin codificador ................................................................................................. 95
Display de 7 segmentos con codificador ...................................................................................................... 96
Implementacin en el diagrama de flujo ................................................................................................. 96
Pantalla LCD ............................................................................................................................................... 100
Configurar LCD ....................................................................................................................................... 102

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Utilizando ms de una pantalla LCD ...................................................................................................... 105


Generar un nuevo mensaje ................................................................................................................... 107
Visualizando valores variables en un mensaje ...................................................................................... 111
Mostrar Mensaje ................................................................................................................................... 114
Optimizacin del cdigo Assembler ...................................................................................................... 115
Enviar comandos ................................................................................................................................... 115
Enviar caracteres ................................................................................................................................... 117
Teclado Matricial........................................................................................................................................ 118
Memorias EEPROM I2C .............................................................................................................................. 119
Leer memoria EEPROM I2C.................................................................................................................... 120
Escribir memoria EEPROM I2C ............................................................................................................... 122
Memorias RAM .......................................................................................................................................... 123
Leer memoria RAM I2C .......................................................................................................................... 124
Escribir memoria RAM I2C ..................................................................................................................... 126
Reloj de tiempo real PCF8583 .................................................................................................................... 128
Declaracin del dispositivo .................................................................................................................... 128
Implementacin..................................................................................................................................... 129
Inicializacin........................................................................................................................................... 130
Escritura ................................................................................................................................................. 131
Configuracin de alarmas ...................................................................................................................... 135
Lectura ................................................................................................................................................... 137
Comunicacin RS232 .................................................................................................................................. 138
Comunicacin RS485 .................................................................................................................................. 142
Modo maestro ....................................................................................................................................... 144
Interrogar ............................................................................................................................................... 148
Procedimiento para programacin de los PIC12F6xx ................................................................................ 149

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

INTRODUCCIN A LOS MICROCONTROLADORES


Qu es un microcontrolador?
Los microcontroladores hicieron su aparicin a principio de los 80 y se trata de un circuito
integrado programable que contiene toda la estructura (arquitectura) de una microcomputadora.
Es decir que, dentro de un microcontrolador podemos encontrar:

CPU (Unidad Central de Proceso)


Memoria RAM
Memoria ROM
Memoria EEPROM (Memoria de lectura y
escritura no voltil, es decir, que no se
pierden los datos cuando el circuito es
desconectado)
Puertos de Entrada/Salida (Pines de E/S)
Mdulos perifricos: conversores
analgico/digital (A/D), mdulos PWM
(control por ancho de pulso), mdulos de
comunicaciones seriales o en paralelo, y ms.

Todo esto lo podemos encontrar dentro del mismo circuito integrado.


Cada vez existen ms productos que incorporan microcontroladores con el fin de aumentar
sustancialmente sus prestaciones, reducir su tamao y costo, mejorar su confiabilidad y disminuir
el consumo de energa.

Los microcontroladores PIC


Los microcontroladores denominados PIC corresponden exclusivamente a la marca Microchip.
PIC significa Peripheral Interface Controller y fue desarrollado por Microchip a principio de los
80.
Existe una gran cantidad de modelos de microcontroladores cuyas caractersticas y prestaciones
varan de un modelo a otro. De esta manera los desarrolladores pueden seleccionar el modelo que
mejor se ajuste a sus necesidades.

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Los distintos modelos de microcontroladores se agrupan por familia. Una familia puede estar
formada por un conjunto de modelos cuyas caractersticas y prestaciones son bastante similares.
Cuando compramos un microcontrolador, la memoria del mismo se encuentra vaca y para que
funcione es necesario que sea programado, es decir que, el desarrollador debe escribir un
programa que contenga todos los procesos que el microcontrolador debe ejecutar.
Este programa se escribe en un lenguaje llamado Assembler (ensamblador) cuya principal
caracterstica es su alta complejidad ya que se trata de un lenguaje de bajo nivel, es decir, que se
encuentra ms cercano al lenguaje de la mquina que del lenguaje humano.
Por esto, slo los tcnicos altamente capacitados estn en condiciones de realizar desarrollos
electrnicos que incluyan microcontroladores. Incluso a estos especialistas les implica un gran
esfuerzo intelectual y mucho tiempo de desarrollo.

Estructura de un microcontrolador
Bsicamente, un microcontrolador est compuesto por los siguientes componentes:

Procesador o CPU (del ingls Central Processing Unit o Unidad Central de Proceso).
Memoria para el programa tipo ROM.
Memoria RAM para contener los datos.
Lneas de E/S para comunicarse con el exterior.
Diversos mdulos para el control de perifricos (temporizadores, Puertas Serie y Paralelo,
CAD: Conversores Analgico/Digital, CDA: Conversores Digital/Analgico, etc.).

El procesador o CPU

Es el elemento ms importante del microcontrolador y determina sus principales caractersticas,


tanto a nivel hardware como software. La CPU (Central Processing Unit o Unidad Central de
Proceso) se encarga la decodificacin y ejecucin del programa.
Actualmente, existen 3 tipos de arquitectura de procesadores:

CISC (Computadores de Juego de Instrucciones Complejo): disponen de ms de 80


instrucciones en su repertorio, algunas de las cuales son muy sofisticadas y potentes,
requiriendo muchos ciclos para su ejecucin. Una ventaja de los procesadores CISC es que
ofrecen instrucciones complejas que actan como macros.

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

RISC (Computadores de Juego de Instrucciones Reducido): En estos procesadores el


repertorio de instrucciones es muy reducido y las instrucciones son simples y
generalmente se ejecutan en un ciclo. La ventaja de stos es que la sencillez y rapidez de
las instrucciones permiten optimizar el hardware y el software del procesador.

SISC (Computadores de Juego de Instrucciones Especfico): En los microcontroladores


destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser
reducido, es especfico, o sea, las instrucciones se adaptan a las necesidades de la
aplicacin prevista.

Memoria ROM

La memoria ROM es una memoria no voltil, es decir, que no se pierden los datos al desconectar
el equipo y se destina a contener el programa de instrucciones que gobierna la aplicacin. Los
microcontroladores disponen de capacidades de ROM comprendidas entre 512 bytes y 8 k bytes.
Existen distintos tipos de memorias ROM, la cual determinar la aplicacin del microcontrolador.

ROM con mscara: Es una memoria no voltil de slo lectura cuyo contenido se graba
durante la fabricacin del chip. El elevado costo del diseo de la mscara slo hace
aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se
precisan cantidades superiores a varios miles de unidades.

OTP: El microcontrolador contiene una memoria no voltil de slo lectura programable


una sola vez por el usuario. OTP (One Time Programmable). Es el usuario quien puede
escribir el programa en el chip mediante un sencillo grabador controlado por un programa
desde una PC. La versin OTP es recomendable cuando es muy corto el ciclo de diseo del
producto, o bien, en la construccin de prototipos y series muy pequeas. Tanto en este
tipo de memoria como en la EPROM, se suele usar la encriptacin mediante fusibles para
proteger el cdigo contenido.

EPROM: Los microcontroladores que disponen de memoria EPROM (Erasable


Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La
grabacin se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC.
Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su
superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos.
Las cpsulas son de material cermico y son ms caros que los microcontroladores con
memoria OTP que estn hechos con material plstico.

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

EEPROM: Se trata de memorias de slo lectura, las cuales se puede escribir y borrar
elctricamente. EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la
programacin como el borrado, se realizan elctricamente desde el propio grabador y bajo
el control programado de un PC. Es muy cmoda y rpida la operacin de grabado y la de
borrado. No disponen de ventana de cristal en la superficie. Los microcontroladores
dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y
borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan
grabadores en circuito que confieren una gran flexibilidad y rapidez a la hora de realizar
modificaciones en el programa de trabajo. El nmero de veces que puede grabarse y
borrarse una memoria EEPROM es finito, por lo que no es recomendable una
reprogramacin continua. Son muy idneos para la enseanza y la Ingeniera de diseo. Se
va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria
EEPROM en los circuitos programables para guardar y modificar cmodamente una serie
de parmetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de
memoria es relativamente lenta.

FLASH: Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y
borrar. Funciona como una ROM y una RAM pero consume menos y es ms pequea. A
diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de
mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la
EEPROM cuando se precisa gran cantidad de memoria de programa no voltil. Es ms
veloz y tolera ms ciclos de escritura y borrado.

Memoria RAM

La memoria RAM es una memoria voltil, es decir, que se pierden los datos al desconectar el
equipo, y se destina a guardar las variables y los datos. Los microcontroladores disponen de
capacidades de RAM comprendidas entre 20 y 512 bytes.

Registros y Bits

Un registro es una posicin de memoria en la cual se puede almacenar un dato. Es decir que la
memoria est dividida en pequeas partes llamadas Registros.
Dentro de la memoria, cada registro se identifica mediante un nmero, el cual se denomina
Direccin de memoria y generalmente est expresado en formato Hexadecimal. El primer
registro de una memoria corresponde a la direccin 00H.

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Dado que identificar a cada registro mediante un nmero hexadecimal puede resultar muy
complejo a la hora de disear el programa, existe la posibilidad de asignar un nombre a una
direccin de registro. En general, este nombre est directamente relacionado con la funcin que
cada registro cumple dentro del sistema.
Los registros no solo son utilizados por el programador (usuario) para almacenar los datos que la
aplicacin debe procesar, sino que, adems, sirven para controlar todo el funcionamiento del
microcontrolador en su conjunto. Esta funcin, la cumple un conjunto de registros que ya vienen
Predefinidos desde la fbrica. Es decir, que el fabricante asigna las funciones de configuracin y
control del microcontrolador en un grupo de registros y el usuario no puede modificar la funcin
que cumple cada uno de stos.
Cada Registro est dividido en 8 partes a los cuales se los denomina Bits. Entonces podemos
decir que un Registro est formado por un conjunto de 8 bits.
El Bit es la menor unidad de informacin que un sistema digital puede procesar y solo puede
contener los valores lgicos 0 y 1.
La palabra BIT proviene de la contraccin de las palabras Binary Digit
Los sistemas digitales representan la informacin en forma de bits porque sus circuitos slo
pueden tener 2 estados: encendido o apagado. En general podemos decir que:
1 = Encendido = Verdadero = SI = +5V
0 = Apagado = Falso = NO = 0V
Cada Bit se identifica por la posicin que ocupa dentro del registro, siendo el primer Bit el nmero
0, que es el que se encuentra en el extremo derecho del registro.

Al igual que los registros, se puede asignar un nombre a cada Bit para facilitar su identificacin. En
un registro se puede almacenar una combinacin 8 ceros y unos. Esto nos da una cantidad de 2^8
combinaciones, es decir, 256 posibles combinaciones de ceros y unos. Esto significa que un
registro puede procesar valores entre 0 y 255.
Esta caracterstica de procesar nmeros (Dgitos) es lo que da el nombre a la Electrnica
Digital. La electrnica digital procesa nmeros formados por combinaciones de ceros y unos.
Cualquier seal analgica debe ser digitalizada, es decir, convertida a nmeros, para poder ser
procesada en un sistema digital.

10

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Podemos decir que el conjunto de ceros y unos almacenados en un registro se trata de un nmero
entre 0 y 255, expresado en sistema Binario, esto es, en base 2. Para interpretar dicho nmero
debemos realizar el clculo de conversin de base para poder expresarlo en sistema decimal.
El siguiente ejemplo muestra el desarrollo de un clculo de conversin de base de sistema binario
(base 2) a sistema decimal (base 10):

Se llama Peso Binario al valor que representa un Bit segn la posicin que ocupa dentro del
registro. El Bit que est ubicado ms hacia la derecha del registro, es el Bit menos significativo
(LSB, Least Significant Bit) y tiene un peso de 2^0=1. El Bit del extremo izquierdo del registro es el
Bit ms significativo (MSB, Most Significant Bit) y tiene un peso de 2^7=128. Los pesos binarios
crecen de derecha a izquierda en potencias de 2.

Una manera de simplificar el clculo de conversin de binario a decimal, es, directamente sumar
los valores de los pesos binarios de los bits cuyo valor sea 1.

11

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

El sistema hexadecimal es un sistema en base 16 y consta de 16 dgitos diferentes que son: del 0 al
9 y luego de la letra A a la F, es decir, 10 dgitos numricos y seis caracteres alfabticos.
El sistema hexadecimal se usa como forma simplificada de representacin de nmeros binarios y
debido a que 16 es una potencia de 2 (2^4=16), resulta muy sencilla la conversin de los nmeros
del sistema binario al hexadecimal y viceversa.
Mediante el sistema hexadecimal podemos representar un valor numrico de 8 bits utilizando slo
2 dgitos. De sta manera estamos dividiendo el registro de 8 bits en 2 partes de 4 bits cada una
llamada Nibble. Al nibble correspondiente a los 4 bits menos significativos, se lo denomina Nibble
Bajo y al nibble correspondiente a los 4 bits ms significativos se lo denomina Nibble Alto.

El sistema hexadecimal es utilizado para identificar las direcciones de registros de las memorias en
sistemas digitales porque permite representar el valor de un Nibble con slo 1 digito, ya que:

12

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Esto permite representar nmeros grandes utilizando unos pocos dgitos. Por ejemplo:

En la programacin de microcontroladores, es habitual utilizar los 3 sistemas de numeracin


(Binario, Decimal y Hexadecimal) dependiendo del proceso que necesitemos realizar. Por eso es
fundamental tener claros estos conceptos.

Lneas de entrada y salida


alida (E/S) Puertos

Los microcontroladores cuentan con una


una serie de pines destinados a entrada y salida de datos o
seales digitales. A estos pines se les denomina Puerto.

Como mencionamos anteriormente, todo el funcionamiento del microcontrolador est controlado


a travs de los registros. Los puertos no son la excepcin, tambin estn controlados por los
registros. Por esto, un puerto no puede estar formado por ms de 8 pines; 1 Pin por cada Bit de un
registro. Un puerto si puede estar formado por menos de 8 pines.
Un microcontrolador puede contener varios p
puertos
uertos dependiendo del modelo.
A cada puerto se lo identifica con una letra. Por ejemplo; Puerto A, Puerto B, etc.

13

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Para poder utilizar un puerto, primero el mismo debe ser configurado. Cada pin de un puerto
puede ser configurado como entrada o salida independientemente del resto de los pines del
mismo puerto.

Temporizadores internos (TMRs)

Un temporizador interno (TMR) es un mdulo de hardware incluido en el mismo microcontrolador


el cual est especialmente diseado para incrementar automticamente el valor de un registro
asociado al TMR cada vez que el mdulo TMR recibe un pulso. A este pulso se lo llama seal de
reloj.
El mdulo TMR siempre incrementa el valor del registro asociado, nunca decrementa dicho valor
Algunos microcontroladores pueden incluir ms de un mdulo TMR y la seal de reloj de cada uno
de stos puede ser de origen interno o externo.
Si el origen de la seal de reloj est configurado como externo, el mdulo temporizador puede ser
utilizado como un contador de eventos externos, incrementando el TMR con cada pulso recibido
mediante el pin correspondiente.
Si el origen de la seal de reloj es interno, el TMR incrementa con cada ciclo del oscilador. Esto
permite utilizar el temporizador como contador de ciclos de programa, donde, un ciclo
corresponde al tiempo de ejecucin de una instruccin, lo cual se puede calcular con la siguiente
frmula:
1

/ 4

Donde Frecuencia de Oscilacin es la frecuencia del oscilador utilizado.

Dado que la velocidad de ejecucin del microcontrolador corresponde a de la velocidad del


cristal utilizado, cada ciclo de programa se ejecuta en un tiempo determinado segn el cristal que
estemos utilizando.
Por ejemplo; con un cristal de 4Mhz la velocidad real de procesamiento del microcontrolador es
de 1 Mhz. Aplicando la siguiente frmula:
1
4.000.000/4
1
1.000.000
0,000001 = 1

14

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Esto significa que cada ciclo de programa se ejecuta a 1/1.000.000 (1 uS) y dado que cada
incremento del TMR corresponde a un ciclo de programa, si contamos los incrementos de un TMR,
indirectamente podremos calcular el tiempo transcurrido.
El incremento del TMR se realiza de manera automtica y de forma paralela a la ejecucin del
resto del programa. Esto significa que el programa no debe controlar el incremento del TMR, lo
cual s debe realizarse en las temporizaciones por bucles, en las cuales el microcontrolador se
queda esperando a que transcurra un tiempo, y no pueden ejecutarse otras tareas mientras no
finalice la temporizacin.
Entonces el TMR puede ser utilizado como temporizador mientras el microcontrolador ejecuta
otros procesos. Por ejemplo: si diseamos un programa que encienda y apague un led cada 1
segundo, el microcontrolador enciende el led y luego puede ocuparse de esperar a que
transcurran los ciclos correspondientes a 1 segundo, luego apaga el led y continua esperando.
Pero si el microcontrolador debe realizar alguna otra tarea adems de temporizar, por ejemplo,
mostrar valores en dgitos de 7 segmentos, el micro no puede quedarse temporizando por bucles
ya que mientras se encuentre temporizando no podr realizar el proceso de muestreo de los datos
en los displays, y como resultado tendremos que los displays se apagan mientras el
microcontrolador se encuentra temporizando.
En este caso, se utiliza un TMR para realizar la temporizacin mientras el microcontrolador se
ocupa de mostrar los datos en los displays.
En general los microcontroladores cuentan con una interrupcin por desbordamiento del TRM, es
decir que, el microcontrolador se interrumpe cuando el TMR0 pasa de 255 (B11111111) a 0
(B00000000) en los temporizadores de 8 bits y cuando pasa de 65535 (B11111111_111111) a 0
(B00000000_00000000) en los temporizadores de 16 bits.
Dado que 256 uS es un tiempo relativamente corto (para un TMR de 8 bits a 4 Mhz.), existe la
posibilidad de preescalar el TMR0 para que el registro asociado al TMR se incremente cada 2, 4,
8,o ms ciclos. De esta manera, estamos multiplicando la cantidad de ciclos que deben ejecutarse
para realizar un incremento del TMR. Al prescalador tambin se lo denomina predivisor.
Por ejemplo, con un predivisor de 8, cada incremento del TMR se realiza cada 8 ciclos de programa
y el desbordamiento del TMR se realizara cada 2048 ciclos (255 incrementos * 8 ciclos).
As podemos realizar interrupciones con periodos de tiempo mayores.

15

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Utilizando un microcontrolador
Como mencionamos anteriormente, el microcontrolador tiene una memoria de programa, donde
grabamos las instrucciones necesarias para que el micro realice el trabajo que necesitamos.
Cuando compramos un microcontrolador, la memoria de programa viene vaca. Para que un
microcontrolador funcione es necesario programarlo.
Los microcontroladores se programan en un lenguaje de programacin llamado Ensamblador (en
ingls Assembler) cuya principal caracterstica es su altsima complejidad.
Los lenguajes de programacin se clasifican segn el Nivel de programacin en:

Lenguaje de Alto Nivel: permite que los algoritmos se expresen en un nivel y estilo de
escritura fcilmente legible y comprensible por el hombre. En la actualidad se trata de
lenguajes de tipo visual.

Lenguaje de Bajo Nivel: el usuario se acerca un poco ms al lenguaje de mquina.


Permiten un acceso ms amplio al control fsico de la maquina (hardware).

Lenguaje Ensamblador: Podramos considerarlo el lenguaje de ms bajo nivel. El usuario


escribe cdigo en el mismo idioma del procesador. Se tiene control total del sistema. Es
necesario un conocimiento de la arquitectura mecnica del procesador para realizar una
programacin efectiva. El lenguaje de programacin es muy especifico para cada modelo
de procesador, incluso puede variar de un modelo a otro de procesador dentro de un
mismo fabricante.

Podemos decir que los lenguajes de alto Nivel se asemejan ms al lenguaje humano y que los
lenguajes de bajo Nivel se asemejan ms al lenguaje de mquina y en el lenguaje ensamblador el
usuario debe programar en el propio idioma del procesador.

16

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

El microcontrolador slo entiende de nmeros, es decir que, el cdigo Assembler (texto) no puede
ser procesado directamente por el microcontrolador. Para poder grabar el programa en el micro,
primero debemos convertir el texto del cdigo Assembler a nmeros, en general, en formato
hexadecimal. A este proceso se le llama Compilacin.
Una vez desarrollado el cdigo Assembler, el mismo debe ser compilado. Esto se realiza con un
software compilador el cual se puede obtener de manera gratuita desde la pgina Web del
fabricante del microcontrolador.
El archivo compilado tiene una extensin .hex.
Por ltimo, despus de compilado, el programa est listo para ser grabado al microcontrolador.
Esto realiza mediante una placa programadora. A sta placa programadora, comnmente se la
llama programador. Existen distintos tipos de programadores los cuales pueden ser para
conectar a la PC mediante el puerto Serie (COM) o Paralelo (LPT).
Cada programador trabaja en conjunto con un software, mediante el cual se realiza el proceso de
lectura y escritura de los microcontroladores.
A continuacin se presenta un resumen del proceso de desarrollo del cdigo y grabacin de un
microcontrolador:
1. Escribir el cdigo Assembler. Se genera un archivo con extensin ASM.
2. Compilar el cdigo Assembler. Se genera un archivo con extensin HEX.
3. Grabar (transferir) el programa desde la PC al microcontrolador mediante un
programador.

17

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

De estos 3 pasos, el primero insume el 98 % de tiempo y esfuerzo y es aqu donde Niple le ofrece
sus ventajas.

Niple: Programacin Visual de microcontroladores PIC


Como mencionamos en los prrafos anteriores, la programacin de los microcontroladores resulta
una tarea muy compleja dado que el usuario debe conocer la arquitectura del procesador y
adems debe dominar el lenguaje de programacin Ensamblador. Si bien existen distintas
versiones del lenguaje C o Basic adaptadas a la programacin de microcontroladores, todava la
programacin resulta muy compleja por el alto grado de abstraccin que implica.
Niple es un entorno de desarrollo visual para programacin de microcontroladores PIC. Con Niple,
el usuario slo disea un diagrama de flujo de manera totalmente visual y en alto nivel de
programacin, en lenguaje humano, y el software genera el cdigo Assembler de manera
automtica.

Adems, el software controla y supervisa todo el proceso de diseo, advirtiendo al usuario sobre
posibles errores en la lgica del programa que se est diseando. Esta ventaja no la tiene ningn
otro lenguaje de programacin.
De sta manera Niple ofrece la posibilidad de realizar desarrollos con microcontroladores con un
mnimo de esfuerzo.

18

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

El principal objetivo de Niple es facilitar al mximo la programacin de los microcontroladores.


Para esto, el software ofrece un entorno totalmente visual, donde todo el sistema se adapta a las
caractersticas del modelo de microcontrolador seleccionado; es decir que; carga el mapa de
memoria con sus respectivos nombres de registros y bits, asigna las funciones correspondientes a
cada Registro y Bit dentro del sistema, ajusta el tamao de la memoria EEPROM, activa los
mdulos correspondientes, etc. Es decir que, Ud. tendr disponible slo las caractersticas que
corresponden al modelo de micro en uso.
El concepto de la programacin es que el usuario se concentre en qu es lo que quiere hacer, y
Niple sabe cmo hacerlo. Es decir que el usuario slo se dedica a disear la estructura lgica del
proceso que desea realizar y el software se encarga de resolver todo el desarrollo del cdigo
assembler, controlando hasta el ms mnimo detalle.

19

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

INTRODUCCIN A NIPLE
Entorno Visual de desarrollo para programacin de microcontroladores
PIC
Con Niple podr programar los PIC a travs del diseo de un diagrama de flujo de manera grfica y
de alto nivel de programacin, sin necesidad de escribir cdigo Assembler, o escribiendo la menor
cantidad de cdigo, convirtindose en la forma ms rpida, sencilla y productiva de desarrollar
proyectos con microcontroladores PIC.

La metodologa de programacin cons


consiste
iste en disear un diagrama de flujo de manera grfica y en
lenguaje humano mientras Niple realiza el trabajo pesado por Ud., controlando errores lgicos o
de configuracin, realizando clculos, coordinando la interaccin entre las distintas partes del
proyecto
royecto y generando de manera automtica el cdigo Assembler.
Estas caractersticas, hacen de Niple la herramienta ideal tanto para quienes se inician en el
mundo de los microcontroladores como para aquellos usuarios ms experimentados que quieran
aumentar su productividad.
Entre las principales prestaciones que Niple ofrece podemos destacar:
Entono Visual de Alto Nivel de programacin:

Niple ofrece una metodologa de programacin totalmente visual y en lenguaje humano.


Bloques estandarizados, lo cual facilita
facilita la interpretacin del proyecto.
Usted se concentra en Que Hacer y Niple se encarga de Como Hacerlo.
Control automtico de errores lgicos.
Supervisa el ingreso de datos.

Control automtico de registros y bits:

Controla la existencia de todos los registros


registros y bits necesarios para el correcto
funcionamiento del proyecto en el momento de generar el cdigo Assembler.

20

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Controla que no existan nombres de registros y bits duplicados.


Valida los nombres de los registros y los bits en el momento de ser declarados.

Correccin automtica de errores lgicos:

Controla la correcta configuracin de los puertos.


Controla la configuracin y activacin de las interrupciones.
Supervisa la creacin de vnculos entre bloques.

Generacin del Cdigo Assembler:

Control automtico de la sintaxis del cdigo generado.


Control automtico del cambio de pgina.
Generacin automtica de etiquetas.

Funciones disponible
Las funciones disponibles dependen del modelo de microcontrolador utilizado pero en general
podemos mencionar:

Seleccin del cristal utilizado


Asignacin de valores a registros y bits
Configuracin y manejo de interrupciones
Manejo de rutinas de usuario
Configuracin, Lectura y Escritura de puertos
Lectura / Escritura de EEPROM interna del PIC
Lectura / Escritura de EEPROM/RAM/FRAM Externa por I2C
Lectura / Escritura de EEPROM Paralela
Funciones de comparacin de registros y bits (condiciones =, >, <, >=, <=, <>)
Manejo automtico de tablas
Temporizadores por bucle (de tiempo fijo o variable)
Ingreso de datos por teclado matricial (33 y 34)
Visualizacin de datos en dgitos 7 segmentos (nodo comn y Ctodo comn)
Matriz de LED
Visualizacin de datos en pantallas LCD (162, 202 y 204)
Visualizacin de datos en pantallas GLCD (12864)
Manejo de memorias EEPROM 24Cxxx por comunicacin I2C
Manejo de reloj/calendario de tiempo real PCF8583 y ds1307, con control de alarmas por
fecha.

21

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Configuracin y manejo de temporizadores internos (TMRs disponibles en el


microcontrolador elegido)
Configuracin de interrupciones por: (Puertos, Tmrs, A/D, USART, CCP, EEPROM)
Comunicaciones RS232 por cdigo y por USART
Comunicaciones RS485 por cdigo y por USART
Comunicaciones USB
Comunicaciones RF
Comunicaciones Zigbee (modulo Xbee Xbee PRO)
Comunicaciones IR
Comparadores analgicos
Modulo RFID
Conversin A/D a 8 y 10 Bits.
Mdulos CCP (Compara, Captura y PWM)
Clculos matemticos: (+, , / , *, en 8 ,16 ,24 y 32 bits), conversin a BCD
Escalado de valores de un rango a otro (a 8 y 16 bits)
Vector de memoria
Encoder Incremental
Control de potencia AC
Motores Paso a Paso
Servo Motores
Impresora trmica
Teclado A/D
Teclado Matricial
Teclado AT
Sensores: temperatura, humedad, etc.
Conversor Digital Analgico DS1803
Manejo de registros de desplazamiento

22

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Herramientas adicionales
Interfaz de comunicacin RS232. Comunicaciones a 8 o 16 bits con visualizacin en distintos
formatos (decimal, hexadecimal, binario, texto, o modo grfico).

23

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Interfaz de comunicacin USB. Con visualizacin en distintos formatos (decimal, hexadecimal,


binario, texto), esta herramienta tambin dispone de eleccin sobre el tipo de dato a enviar al
microcontrolador, entre los tipos de datos a enviar estn:

Datos ASCII
Datos Decimal
Datos Hexadecimal
Datos Binarios
Interfaz USB

24

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

METODOLOGA DE PROGRAMACIN CON NIPLE


Conceptos bsicos
La metodologa de programacin en Niple consiste en el diseo de un diagrama de flujo de manera
totalmente visual y de alto nivel de programacin.
Esto significa que Usted no escribe cdigo Assembler adaptndose al lenguaje del micro, sino
que, por el contrario, realiza el diseo del programa de manera grfica, seleccionando opciones a
travs de pantallas claras e intuitivas, y donde el sistema se adapta al lenguaje humano y luego
traduce a cdigo Assembler.
El diagrama de flujo est formado por un conjunto de bloques estandarizados. Tanto la forma,
como el color y el texto de cada bloque, le estn presentando informacin y datos concretos
acerca de cada parte del proceso, lo cual facilita an ms la interpretacin del programa. Adems,
el diagrama de flujo le permite tener una visin general del proyecto.
El proceso de diseo del diagrama de flujo consiste en insertar bloques y vincularlos por medio de
flechas. Durante ste proceso, Niple controla y advierte de posibles errores, tanto de la lgica del
programa como en la configuracin del sistema (configuracin de puertos, interrupciones, etc.).
En el margen derecho de la pantalla se encuentra el rbol de Herramientas. Este consiste en una
estructura de rbol donde se encuentran todas las funciones que pueden ser insertadas como
bloques en el diagrama de flujo y que generan un cdigo Assembler. Los bloques se encuentran
agrupados en distintos niveles organizados por categora para facilitar la bsqueda de un bloque
en particular.
En el primer nivel se organizan por tipo de funcin donde se encuentran los siguientes tems:

Instrucciones

Esta categora incluye todas instrucciones en Assembler. A su vez se organizan por tipo de
instruccin:

Instrucciones orientadas a Registros


Instrucciones orientadas a Bits
Instrucciones orientadas a Literales
Instrucciones orientadas a Control

25

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

El objetivo de Niple es utilizar lo menos posible los bloques de instrucciones ya que stos bloques
equivalen a programar en cdigo Assembler.

Etiquetas

En el segundo nivel se organizan las etiquetas del proyecto, es decir, permite la creacin o el salto
de etiquetas dentro del diagrama de flujo.

26

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Luego se encuentran las rutinas bsicas, que son mdulos prediseados y se encargan de resolver
un proceso en particular (una configuracin, una comparacin, un clculo, etc.). Puede formar
estructuras lgicas muy complejas de manera rpida y sencilla a partir de la combinacin de
rutinas bsicas. Utilice las rutinas bsicas para programar dentro de cualquier Entorno.
Las rutinas bsicas estn organizadas en categoras como se muestra en la imagen a continuacin:

Interrupciones

En sta categora se encuentran todas las funciones de configuracin y manejo de las


interrupciones. Niple presenta las interrupciones disponibles de acuerdo al modelo de PIC que se
est utilizando.

27

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Subrutinas de usuario

Puede disear sus propias funciones o procedimientos para solucionar un problema en particular
(siempre combinando distintas rutinas bsicas) y luego llamarlos desde distintas partes del
programa (subrutinas). Esto le permite por un lado, la creacin de funciones o procedimientos
personalizados y por otro lado, la optimizacin del cdigo Assembler generado, ya que las rutinas

28

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

de usuario slo se escriben una vez y luego se insertan llamadas a las mismas. Esta categora
incluye las funciones de declaracin e insercin de llamadas a rutinas de usuario.
La interfaz de Niple

Elementos de la pantalla:

Secciones de trabajo

Niple dispone de dos secciones de trabajo:

Seccin de dispositivos: se encuentran los dispositivos externos que sern utilizados en el


proyecto.
Seccin de diagrama de flujo: se encuentran los diagramas de flujo que conforman el
proyecto actual.

Para conmutar entre las secciones de dispositivos y diagramas de flujo utilice el botn ubicado en
la barra de herramientas que se encuentra en la parte superior derecha de la pantalla:

29

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Al ingresar a la seccin Dispositivos puede declarar los dispositivos externos que sern utilizados
en el proyecto.
Los dispositivos a declarar esta organizados por categoras. El tipo de dispositivo que desea
declarar seleccionando en la lista de categoras de nuevo dispositivo:

Al selecciona el tipo de dispositivo a declarar se muestran los diferentes componentes disponibles


segn el modelo de microcontrolador utilizado.
Cada dispositivo es identificado con un nombre (ID, por Identificacin). Cada dispositivo debe
tener un nombre nico que lo identifique dentro del proyecto, es decir que no puede haber ms
de un dispositivo con el mismo ID.
Por defecto Niple proporciona el ID de manera automtica, y en algunos dispositivos es posible
cambiar el ID para identificar ms fcilmente cada dispositivo dentro del diagrama de flujo.
Una categora de dispositivos puede estar formado por varios componentes. En este caso se
muestra una lista de los componentes disponibles en la parte inferior de la pantalla.
Al seleccionar el componente deseado se muestra la pantalla de configuracin y opciones
correspondiente.
En la siguiente imagen se muestra un dispositivo de tipo Memoria, las opciones disponibles en la
parte inferior, la pantalla de configuracin al seleccionar un dispositivo y el ID asignado por
defecto.

30

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Una vez seleccionadas las caractersticas del dispositivo y la conexin de lo pines al PIC se termina
el proceso de declaracin de dispositivo por medio del botn Ingresar. Este botn estar
disponible solo cuando todas las opciones de configuracin del dispositivo hayan sido
seleccionadas.
En la parte inferior de la pantalla se muestra la lista de dispositivos declarados en el proyecto
actual. Al seleccionar un dispositivo se muestran todas las caractersticas y opciones de
configuracin. Los dispositivos de muestran por su ID.
En la siguiente imagen se muestran dos dispositivos de tipo Memoria identificadas como
I2C_EEPROM_01 y I2C_EEPROM_02:

31

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

A continuacin se muestra como se utiliza el ID para acceder a cada una de las memorias dentro
del diagrama de flujo:

32

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Entornos

En la seccin diagrama de flujo Usted programa los procesos o estructuras lgicas que desea
realizar en el proyecto. Un proyecto esta dividi en diferentes partes. A cada una es tas partes se
las llama Entorno.
En general, un programa para PIC es organizado en distintas secciones con el fin de facilitar la
compresin y al mismo tiempo optimizar el cdigo por medio de la reutilizacin de rutinas y
procesos.
El objetivo de cada una de stas secciones es resolver un problema en particular y reciben
distintos nombres segn la funcin que cumplen, o el contexto en el cual se ejecutan (Programa
Principal, Subrutinas o Interrupciones).
En Niple, se llama Entorno a cada una de estas secciones que conforman un programa.
Cada entorno debe estar perfectamente delimitado por un bloque de Inicio y otro de Fin, con
la excepcin del entorno del Programa Principal. Este contiene un bloque de inicio pero no tiene
un bloque de final, sino que, se realiza un bucle para ejecutar otro ciclo del programa.
Cada proyecto de Niple puede contener varios entornos:

Entorno del Programa Principal: este entorno se crea de manera automtica y es el


encargado de coordinar la ejecucin de todo el programa (incluyendo el resto de los
entornos). En un proyecto slo puede haber slo un entorno llamado Programa Principal
y no puede ser borrado.

Entornos de Subrutinas (rutinas de usuario): Son funciones o procedimientos generados


por el usuario. Debe asignarles un nombre nico dentro del proyecto. No tiene un lmite
mximo en la cantidad de entornos de subrutina que puede incluir en un proyecto. Las
subrutinas pueden devolver o no un resultado (funciones y procedimientos
respectivamente). Para ejecutar una subrutina debe ser llamada o invocada.

Entornos de Interrupciones: Son funciones o procedimientos que se ejecutan al


producirse un llamado a interrupcin. Cada interrupcin tiene un nombre predeterminado
y el usuario no puede cambiar ste nombre. La cantidad mxima de Interrupcin
corresponde al nmero de interrupciones de incluye cada modelo de microcontrolador. En
tiempo de ejecucin, se accede al entorno de una interrupcin de manera automtica, al
generarse un llamado a interrupcin. O sea que no se puede predecir el momento exacto
en que se producir una interrupcin. Esto afecta al sistema de chequeo de errores.

33

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Crear un nuevo entorno

Un entorno se genera de manera automtica al insertar interrupciones o rutinas de usuario en el


proyecto. Cuando inserta una interrupcin en el proyecto, Niple coloca de manera automtica el
bloque de inicio de entorno con el texto correspondiente.
Cuando declara una Rutina de Usuario, Niple genera un nuevo entorno con el nombre que usted
asign a la rutina y le coloca el prefijo usr_ (abreviacin de la palabra usuario). Inserta de
manera automtica el bloque de Inicio de Entorno.

Seleccionar el entorno actual de trabajo

Para conmutar entre los distintos entornos, slo seleccione el nombre del entorno en la pestaa
Rutinas.

En la esquina superior izquierda del rea de trabajo se muestra el nombre del entorno actual junto
a dos flechas para moverse por los entornos.

Borrar un entorno

Para borrar un entorno, seleccione el nombre del entorno a borrar y presione la tecla Suprimir.

34

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Bloques

Un bloque es un smbolo que representa un proceso. Cada bloque presenta informacin segn su
forma, su color y el texto que contiene, e identifican una funcin en particular.

Interpretacin de los bloques:

Cada forma de bloque est directamente asociada a un tipo de funcin, esto le facilita la
interpretacin del programa con slo echarle un vistazo general. Tipo de funcin segn la forma
del bloque:
Inicio Fin. Se utiliza
como inicio o fin de un
entorno.

Activar Desactivar
interrupciones.

Instruccin.
Cualquiera de las 35
instrucciones
en
cdigo Assembler.

Clculo matemtico.

Configuracin de un
puerto.

Conversin Decimal
a BCD o BCD a
Decimal.

Ingreso de datos. Leer


el valor de un puerto
(en paralelo), modo
Captura,
modo
Comparacin.

Consultar tabla.

Salida
de
datos.
Escribir un valor en un
puerto (en paralelo,
no serial).

Comunicaciones
seriales RS232. Envo
y recepcin de un dato
por RS232.

Asignacin.
Este
bloque representa la
asignacin de un valor
a un registro o un bit.

Comunicaciones
seriales RS232. Envo
y recepcin de un
conjunto de datos por
RS232
mediante
protocolo de usuario
diseado en Niple.

35

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Leer un dato de la
memoria EEPROM.

Temporizacin
por
bucle.
Calcula
y
genera los bucles
necesarios
para
esperar un tiempo
determinado.

Almacenar un dato en
la memoria EEPROM.

Visualizar valores en
display
de
7
segmentos por el
mtodo
del
multiplexado.

Condicin. Evala una


condicin y deriva la
ejecucin
del
programa en funcin
del resultado de la
evaluacin.
Configuracin.
Este
bloque corresponde a
configuracin
de
Interrupcin
y
mdulos perifricos.

Registro
de
desplazamiento.
Ingresar un valor y
rotar.

Llamada a subrutina
(call).

Seleccin de bloques o vnculos

Al seleccionar un bloque se presentan una serie de 9 nodos (8 alrededor y 1 en el centro del


bloque). En el caso de los vnculos se presenta 1 nodo en la mitad de la flecha. Puede seleccionar
uno o ms bloques o vnculos de varias maneras:

Haciendo un clic sobre el bloque o sobre el vnculo.


Manteniendo presionada la tecla ALT o la tecla CRTL puede ir incorporando ms
bloques o vnculos a la seleccin actual.

Puede seleccionar varios bloques y vnculos de la siguiente manera:


1. Marque un punto en el rea de trabajo (no sobre un bloque)
2. Presione el botn izquierdo del mouse y arrastre sin soltar el botn, se mostrar un
rectngulo en lnea de trazos.
3. Al soltar el botn del mouse, se seleccionarn todos los bloques y vnculos que son
incluidos en el rea seleccionada.

36

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Mover un bloque

Seleccione el bloque que desea desplazar y sin soltar el botn izquierdo del mouse y arrastre hasta
ubicar el bloque en la nueva posicin. Puede mover varios bloques simultneamente.
Note que todos los bloques que dependen del bloque seleccionado se mueven en conjunto de
manera rgida. Esto se debe a que el modo Arrastrar bloques se encuentra activado. Si conmuta
a modo Arrastrar bloques desactivado slo se desplaza el bloque seleccionado.

Para conmutar entre el modo Arrastrar bloques Activado y Desactivado ingrese al men
Opciones/Diagramas de Flujo/Activar Arrastre.

A) Posicin original.
B) Modo Arrastrar bloques activado.
C) Modo Arrastrar bloques desactivado
Utilice el comando Edicin/Deshacer para restablecer la posicin anterior del bloque.

37

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Estirar un bloque

Al seleccionar un bloque se muestran 9 nodos (8 alrededor y 1 en el centro del smbolo


seleccionado). Para modificar el tamao del bloque, haga un clic en uno de los 8 nodos perifricos
y, sin soltar el botn izquierdo del mouse, arrastre hasta alcanzar el tamao deseado.

A) Tamao del bloque original


B) Bloque estirado
Utilice el comando Edicin/Deshacer para restablecer el tamao anterior del bloque.

Borrar bloques

Tiene 2 formas de eliminar un o varios bloques:


1. Seleccione el bloque que desea eliminar y presione la tecla Suprimir.
2. Seleccione el bloque que desea eliminar y presione el botn derecho del mouse. Se
desplegara un men contextual y presione la opcin Borrar Smbolo (o la opcin
Borrar si ha seleccionado varios bloques o vnculos).

Utilice el comando Edicin/Deshacer para recuperar los bloques borrados.

38

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Editar bloques

Muchas veces es necesario cambiar el valor de algn parmetro u opcin a un bloque ya insertado
dentro del diagrama de flujo. Para esto tiene 2 opciones:
1. Puede borrar el bloque e insertarlo nuevamente seleccionado los parmetros deseados. Si
elige sta opcin deber realizar los vnculos de manera manual.
2. Puede editar el bloque y asignarle nuevos valores a los parmetros solicitados. Para esto
no necesita borrar el bloque ni realizar los vnculos nuevamente.
Para editar un bloque, seleccinelo y luego haga un clic con el botn derecho del mouse para que
se presente el men contextual, y elija la opcin Editar, o bien realice doble clic sobre el smbolo
a editar y automticamente entrara al men de edicin del smbolo.
Para que el men contextual presente la opcin Editar, slo debe estar seleccionado el bloque a
ser editado. Si selecciona ms de 1 elemento, ya sean bloques o vnculos, el men no presentar la
opcin Editar ya que el sistema no puede determinar cual es el bloque que desea editar.
Se presentar la pantalla correspondiente al el bloque seleccionado. La pantalla ser cargada con
todos los parmetros seleccionados. Proceda a cambiar los valores o las opciones y presione el
botn Ingresar.
Con respecto al chequeo de errores, es importante tener en cuenta que rige el mismo criterio que
para la insercin de bloques. O sea que, si el bloque a editar est vinculado a otro bloque, se
realizar el chequeo de errores en lnea. Mientras que si el bloque no se encuentra vinculado, el
chequeo no se realizar.

Duplicar bloques

Al duplicar un bloque se realiza una copia exacta del bloque seleccionado.


Muchas veces, la opcin Duplicar un bloque en combinacin con la Edicin de bloques puede
ayudarle a ahorrar tiempo de diseo, ya que es comn realizar operaciones similares en distintas
partes de proyecto, donde slo cambian algunos parmetros.
Usted puede realizar una copia de la estructura lgica del programa y luego editar los bloques
necesarios. Esto le resultara ms cmodo que insertar todos los bloques nuevamente.
Para duplicar un bloque, seleccinelo y luego haga un clic con el botn derecho del mouse para
que se presente el men contextual, y elija la opcin Duplicar.

39

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Adems, puede duplicar uno o ms bloques a la vez:

Habilitar e inhabilitar bloques

Durante la fase de diseo del proyecto, es habitual que durante las pruebas, Usted necesite anular
una parte del proceso par que no sea ejecutada. Por medio de las opciones Habilitar Bloque e
Inhabilitar Bloque puede anular la ejecucin uno o ms bloques sin necesidad de borrarlos o de
alterar la lgica del programa.

40

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Para inhabilitar un bloque, seleccinelo y luego haga un clic con el botn derecho del mouse para
que se presente el men contextual, y elija la opcin Inhabilitar.

Un bloque deshabilitado no es considerado en el momento del chequeo de errores en lnea y


tampoco genera el cdigo Assembler.
No puede inhabilitar bloque correspondiente a una Decisin (smbolo Rombo) dado que estos
bloques tienen 2 salidas.
Para habilitar un bloque, seleccinelo y luego haga un clic con el botn derecho del mouse para
que se presente el men contextual, y elija la opcin Habilitar.

Vnculos entre bloques (Flechas)

Un vnculo est representado por una flecha que une a dos o ms bloques y determina el flujo del
proceso.

41

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Los vnculos determinan la secuencia y el orden de ejecucin del programa. Esto significa en que
es muy importante tener en cuenta el sentido en que se genera el vnculo (bloques de origen y de
destino).
El bloque desde donde parte el vnculo de denomina Bloque de origen y el bloque al cual llega
Bloque de destino y puede identificarlos visualmente porque el vnculo presenta una Punta de
flecha en extremo correspondiente al bloque de destino.

La secuencia de ejecucin del programa es; primero se ejecuta el Bloque de origen y a


continuacin el Bloque de destino. Existe un criterio a tener en cuenta a la hora de realizar
vnculos entre bloques y Niple lo supervisa de manera automtica:

Cada bloque debe tener solo un vnculo de salida. A excepcin de los bloques de decisin
(rombo) que necesariamente deben tener dos salidas (si la condicin se cumple y si la
condicin no se cumple).
Los bloques Inicio de entorno (elipses amarillas) no pueden utilizarse como Bloques de
destino. Es decir que no pueden tener flechas que ingresen a estos bloques.
Los bloques Fin de entorno (elipses amarillas) no pueden utilizarse como Bloques de
origen. Es decir que no pueden tener flechas que salgan desde estos bloques.

Antes de codificar un programa a cdigo Assembler, Niple supervisa que todos los bloques se
encuentren correctamente vinculados. En el caso de existir un error de vnculos, Niple lo informa y
suspende la codificacin del Assembler.

42

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Crear un vnculo

Para crear un vnculo entre 2 bloques siga los siguientes pasos:


1. Seleccione el Bloque de origen.
2. Haga un clic en el nodo (punto negro) que se encuentra en el centro del bloque.
3. Sin soltar el botn del mouse, arrastre hasta el Bloque de destino y luego suelte el botn
del mouse.

Un vnculo puede adoptar distintas formas de acuerdo a la disposicin de los bloques de origen y
destino. A stas formas se les llama Estilo del vnculo.

Cambiar el estilo de un vnculo

Para cambiar el estilo de un vnculo:


1. Seleccione el vnculo y presione el botn derecho del mouse.
2. Se mostrar un men contextual con los distintos estilos que puede adoptar un vnculo.
3. Seleccione el estilo deseado.

43

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Borrar vnculos

Para eliminar un vnculo:


1. Seleccione el vnculo y presione el botn derecho del mouse.
2. Se mostrar un men contextual.
3. Seleccione la opcin Borrar Flecha.
Tambin puede borrar un vnculo seleccionndolo y presionando la tecla Suprimir.

Ingreso de datos

Niple controla de manera automtica cada dato ingresado al sistema, ya sean nombres de registro,
valores literales u opciones (generalmente numricas). De esta manera se controlan los errores de
tipeo.

44

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Control de ingreso de nombres de registros

Cuando necesite ingresar el nombre de un registro como parmetro para una funcin, Niple le
presenta una lista con todos los registros declarados, donde Usted debe seleccionar el nombre del
registro deseado.
Esto garantiza que el registro a utilizar ha sido previamente declarado
declarado y dems previene los
posibles errores de tipeo por parte del usuario al ingresar el nombre del registro.
Si necesita seleccionar como parmetro, el nombre de un registro predefinido y no aparece en lista,
consulte el tema Conceptos Bsicos / Nivel de Usuario.
En general, junto a la lista de registros, Niple presenta el botn Nuevo. Este botn le carga la
pantalla de declaracin de registros.
De sta manera, si necesita ingresar como parmetro el nombre de un registro que an no ha sido
declarado,, tiene la posibilidad de declararlo y seleccionarlo sin necesidad de cancelar la pantalla
actual.

Al cargar la pantalla Declaracin de Registros puede declarar ms de un registro nuevo antes de


volver a la funcin actual.

45

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Control de ingreso de valores literales

Niple le ofrece distintos formatos de ingreso de valores literales, stos son; formato decimal,
hexadecimal o binario.
En general, cuando necesite ingresar un literal, primero debe seleccionar el formato en el cual
desea ingresar el valor. De sta manera, Niple supervisa de manera automtica el ingreso de
datos, y admite slo los valores permitidos para el formato seleccionado. Si ingresa un valor no
permitido, Niple lo muestra de color rojo y no permite continuar con el proceso actual hasta no
corregir el valor ingresado.
Cuando ingresa un nmero en formato binario, Niple lo acepta como vlido slo cuando se han
ingresado los 8 dgitos que conforman el nmero. Esto garantiza la correcta interpretacin del
valor ingresado.

Modos de trabajo: Nivel de Usuario

Dado que Niple est especialmente diseado para quienes se inician en la programacin de
microcontroladores PIC, el sistema ofrece dos modos de trabajo segn el nivel de experiencia o
conocimiento tcnico del usuario:

Modo de Usuario Inicial: Slo se permite el acceso y visualizacin de los registros y bits
declarados por el usuario, y no se tiene acceso a los registros predefinidos. Los nicos bits
predefinidos a los que se tiene acceso son los correspondientes a los puertos, y los bits C y
Z, dado que estos son de uso frecuente. De esta manera, Niple pretende evitar errores al
modificar registros de configuracin y control del sistema (ya sea por desconocimiento o
de manera accidental).

Modo de Usuario Experto: Se permite el acceso a todos los registros y bits del sistema sin
ninguna restriccin. Niple supone que el usuario tiene pleno conocimiento de las acciones
que se est realizando, y no advierte sobre de los riesgos de modificar el valor de los
registros de configuracin o control.

Por defecto Niple inicia la sesin de trabajo en modo Usuario Inicial.


Para conmutar entre modo de Usuario Inicial y Experto ingrese al men Opciones/Nivel de
Usuario.

46

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Rutinas de usuario
Usted puede disear sus propias funciones o procedimientos para solucionar un problema en
particular (siempre combinando distintas rutinas bsicas) y luego llamarlos desde distintas partes
del programa (subrutinas).
Esto le permite por un lado, la creacin de funciones o procedimientos personalizados y por otro
lado, la optimizacin del cdigo Assembler generado, ya que las rutinas de usuario slo se escriben
una vez y luego se insertan llamadas a las mismas. Esta categora incluye las funciones de
declaracin e insercin de llamadas a rutinas de usuario.

Exportar una rutina de usuario

Una vez creada una rutina de usuario, Niple le ofrece la posibilidad de guardarla en un archivo con
extensin .RUT, para luego poder ser utilizada en otros proyectos. De esta manera puede crear
una librera de rutinas de usuario. Se genera un archivo para cada rutina.
Para exportar una rutina de usuario realice los siguientes pasos:
1. Seleccione el entorno de la rutina de desea.
2. Seleccione el bloque de inicio del entorno (el bloque con forma de elipse de color
amarillo). Presione el botn derecho del mouse para mostrar el men contextual y
seleccione la opcin Exportar Rutina.
3. Niple solicita el nombre del archivo donde guardar la rutina de usuario. Por defecto,
sugiere el nombre de la rutina de usuario.

47

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

48

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Importar una rutina de usuario

Para importar una rutina de usuario que se encuentra guardada en un archivo, ingrese al men
Archivo/Rutina de Usuario y seleccione el archivo de rutina (*.RUT). Niple ingresar la rutina al
proyecto actual.
Si el modelo de microcontrolador con el cual fue creada la rutina no es el mismo que el modelo
actualmente utilizado, Niple muestra un mensaje de advertencia, ya que, al generar el cdigo
Assembler, pueden ocurrir errores si la rutina utiliza algn mdulo que no existe en el modelo de
PIC actualmente utilizado.
Por ejemplo, si la rutina fue generada con una versin de Niple para PIC16F87x y realiza una
lectura de un canal A/D y luego la importa a un proyecto de Niple para PIC16F6xx, Niple advierte
del posible error.

Exportar imagen

Puede generar un archivo de imagen del diagrama de flujo para realizar la documentacin del
proyecto. La imagen es generada en formato .WMF y corresponde un archivo de tipo vectorial.
Este formato es estndar de Microsoft Windows, o sea que, no requiere de programas especiales
para poder visualizarlos o editarlos y ocupa muy poco espacio de disco.
El archivo de imagen puede ser insertado en un editor de textos para complementar la
documentacin tcnica.
Al ingresar al men Archivo/Exportar Imagen, tiene dos opciones para generar imgenes:
1. Generar una imagen de todo el proyecto: se generan un archivo de imagen por cada
entorno.
2. Generar una imagen solo del entorno actual: se genera un archivo con el entorno actual.
Los archivos de imagen se nombran segn el siguiente formato:
NombreProyecto_NombreEntorno.WMF
Por esto, Niple solicita el nombre del proyecto y sugiere el nombre actual del proyecto.
Si Usted an no ha ingresado un nombre al proyecto, Niple sugiere NombreProyecto. En el caso
de generar archivos de imagen de todo el proyecto, Niple genera un archivo para cada entorno.
Por ejemplo, en el siguiente proyecto sern generados los archivos:

49

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Ejemplo7_Programa Principal.wmf
Ejemplo7_Interrupcin por TMR0.wmf
Ejemplo7_usr_rutina_rtc.wmf
Ejemplo7_usr_sensor_temperatura.wmf
Ejemplo7_usr_eeprom.wmf

Donde cada archivo contiene la imagen del entorno correspondiente.

Programando con Niple


Crear un nuevo proyecto

Para crear un proyecto nuevo en Niple seleccione la opcin Nuevo Proyecto del men Archivo:

50

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Se carga la ventana de creacin de nuevo proyecto. Seleccione el modelo de microcontrolador


utilizar mediante el Asistente de seleccin:

51

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Seleccione la ubicacin donde ser guardado el proyecto, al igual que los comentarios sobre el
mismo.

Por ltimo, presione el botn OK y se abre el nuevo proyecto.

52

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Declaracin de registros

Para declarar un registro ingrese al men Declaracin y seleccione la opcin Registros:

Se muestra la pantalla de Memoria del microcontrolador:

Al hacerr clic en una posicin de memoria libre (en nuestro caso 01h) se carga la ventada de
Declaracin de nuevo registro:

53

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Seleccione el tipo de registro el cual puede ser:

8, 16, 24, 32 bits.

BCD 8 bits: genera 3 bytes con el mismo nombre ingresado agregando los sufijos _uni,
_dec, y _cen para poder guardar valores en BCD de registros de 8 bits (entre 0 y 255).

BCD 10 bits: genera 4 bytes con el mismo nombre ingresado agregando los sufijos _uni,
_dec, _cen, y _u_mil para poder guardar valores en BCD de registros de 10 bits
(entre 0 y 1024).

BCD 16 bits: genera 5 bytes con el mismo nombre ingresado agregando los sufijos _uni,
_dec, _cen, _u_mil y _d_mil para poder guardar valores een
n BCD de registros de 16
bits.

Fecha: genera 2 bytes con el mismo nombre ingresado agregando los sufijos _d, _m
para poder guardar valores de fechas.

54

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Hora: genera 3 bytes con el mismo nombre ingresado agregando los sufijos _h, _m y
_s para poder guardar valores de horas.

Serie: permite declarar de manera automtica una serie de registros con un prefijo
incremental determinado por un intervalo.

Ingrese el nombre del nuevo registro y el valor inicial.


La opcin Crear BCD genera de manera automtica los registros correspondientes a la
conversin BCD.

Borrar un registro

Seleccione el registro a borrar y presione la tecla Suprimir. Slo puede borrar los registros de
usuario.
Dado que puede declarar bits dentro de un registro de usuario, Niple chequea si el registro de
usuario que se intenta borrar contiene bits declarados. Si detecta que el registro a borrar contiene
bits declarados, Niple le advierte que junto con el registro sern borrados todos los bits ste
contenga y le pregunta si desea continuar con la operacin de borrado del registro. Tiene la
posibilidad de cancelar la operacin de borrado respondiendo NO a la pregunta. Y si responde
afirmativamente se borrar el registro junto con la totalidad de los bits asociados.

Declaracin de bits

Ingrese al men Declaracin y seleccione la opcin Bits.

55

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Una vez dentro de la declaracin de bits se muestra de manera grfica la posicin y los nombres
de los bits declarados, coloreando los bits del microcontrolador, los bits inhabilitados y las
posiciones libres de creacin para bits.

Borrar un bit de usuario

Seleccione el BIT a borrar y presione la tecla Suprimir. Slo puede borrar los BIT de usuario.

Cambiar el nombre a un bit de usuario

Niple brinda la posibilidad de renombrar un BIT o de modificar la descripcin del mismo. Para esto
seleccione el BIT que desea renombrar y presione la tecla Enter.

56

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Niple preguntara si desea cambiar el nombre del BIT actualmente seleccionado. Si responde
afirmativamente se muestra la pantalla Renombrar un Bit donde se presentan el nombre y la
descripcin del BIT actualmente seleccionado. Ingrese el nuevo nombre del bit y la nueva
descripcin y a continuacin presione el botn Renombrar.

Al cambiar el nombre de un Bit, todos los bloques de los diagramas de flujo que hacen referencia a
al Bit anteriormente renombrado quedan desactualizados, o sea, hacen referencia a un BIT que ya
no existe. Para solucionar esto, Niple le brinda la posibilidad de actualizar de manera automtica
todos los bloques que hacen referencia al BIT renombrado.

57

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Niple le pregunta si desea que actualice de manera automtica los diagramas de flujo con el nuevo
nombre de Bit. Si responde afirmativamente Niple actualiza todos los bloques de todo el proyecto
de manera automtica.

Adems de renombrar los bits de usuario, Niple le ofrece la posibilidad de cambiar el nombre de
los bits correspondientes a los puertos. De sta manera puede identificar ms fcilmente los pines
del microcontrolador indicando directamente el nuevo nombre asignado. Por ejemplo: puede
renombrar el bit RA0 por Rele1 y a partir de entonces slo se refiere al mismo como Rele1.

Insertar bloques

Tenga en cuenta que cada bloque debe estar unido a otro bloque por medio de un vnculo (flecha).
Esta flecha indica el sentido de ejecucin del programa. De sta manera se establece la secuencia
y el orden en que va a ser ejecutado el programa.
El vnculo lo puede realizar de forma manual o de forma automtica. Para que el vnculo se realice
de forma automtica debe seleccionar el bloque previo antes de insertar el nuevo bloque. Niple
supervisa de manera automtica los errores lgicos solo cuando los vnculos se realizan de manera
automtica, o sea, cuando se inserta un nuevo bloque habiendo seleccionado previamente el
bloque precedente.
Cuando el vnculo se realiza de manera manual, no se realiza el chequeo automtico de errores. En
este caso, Niple lo advierte a travs del siguiente mensaje.

58

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Si elige la opcin NO se cancela la operacin de insercin de bloque. Si elige la opcin SI, Niple
le permitir insertar un bloque, pero no se realizar el chequeo de errores en lnea dado que no es
posible determinar el contexto en el cual ser insertado el nuevo bloque. Adems, el nuevo bloque
ser insertado en la esquina superior derecha del diagrama de flujo y el vnculo deber realizarlo
manualmente.
Para insertar un bloque siga los siguientes pasos:
1. Seleccione el bloque al cual vincular el nuevo bloque a ser insertado (para generar el
vnculo de manera automtica y chequear errores).

2. Haga doble clic para desplegar el rbol de herramientas y localice la funcin de que
necesite, desplegando y recorriendo el rbol de herramientas.

59

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

3. Una vez localizada la funcin que quiere insertar, haga doble clic en el nombre de la
misma para cargar la pantalla con las opciones y parmetros de la funcin. Una vez
seleccionadas las opciones e ingresados los parmetros, presione el botn Ingresar.

60

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

De sta manera se insertar el bloque y ser vinculado de manera automtica.

61

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Descripcin de las funciones

Los bloques se encuentran agrupados en distintos niveles organizados por categora para facilitar
la bsqueda de un bloque en particular. En el primer nivel se organizan por tipo de funcin donde
se encuentran los siguientes tems:
1.
2.
3.
4.
5.

Instrucciones
Etiquetas
Rutinas bsicas
Interrupciones
Subrutinas de usuario

Instrucciones

Esta categora incluye todas instrucciones en Assembler. A su vez se organizan por tipo de
instruccin:
El objetivo de Niple es utilizar lo menos posible los bloques de instrucciones ya que stos bloques
equivalen a programar en cdigo Assembler.

Instrucciones orientadas a registros

Instruccin: Instruccin a ejecutar.


Registro: Nombre del registro a procesar.

62

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Destino: Indica en donde ser guardado el resultado de la operacin.

Instrucciones orientadas a bits

Instruccin: Instruccin a ejecutar.


Bit: Indica el nombre del bit a modificar.

Instrucciones orientadas a literales

Instruccin: Instruccin a ejecutar.

63

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Literal: Indica el valor literal a procesar.

Instrucciones orientadas a control

Algunas de las instrucciones orientadas a control son las siguientes:

Instruccin: Instruccin a ejecutar.


Repetir: Se refiere al nmero de NOP que sern insertados en el cdigo ASM.

Rutinas bsicas

Las rutinas bsicas son mdulos prediseados y se encargan de resolver un proceso en particular
(una configuracin, una comparacin, un clculo, etc.).
Puede formar estructuras lgicas muy complejas de manera rpida y sencilla a partir de la
combinacin de rutinas bsicas. Utilice las rutinas bsicas para programar dentro de cualquier
Entorno.
Las rutinas bsicas estn organizadas por tipo de rutina:

Iniciar Programa: inserta el bloque de inicio del diagrama de flujo.


Puertos: configurar, lectura y escritura de puertos.
Asignar Valor: establecer valores a registros y bits.
Modulo CCP: configurar el mdulo e implementar mdulos CCP.
Comparadores Analgicos: implementar comparadores analgicos.

64

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

EEPROM: leer y escribir la EEPROM interna del micro.


Condicin: evaluar el valor de un registro o bit.
Matemticas: clculos matemticos de 8, 16, 24 y 32 bits, conversiones a BCD y clculos
de escalado de valores.
Comunicaciones: RS232, RS485, USB, ZIGBEE, RF, IR, DMX512, SIM908, SIM800L, SIM808,
MODBUS, NRF24L01.
Consultar Tablas: consultar valores por medio de tablas.
Temporizadores: Temporizadores por ciclos y por mdulos TMR internos.

Dispositivos: En esta pestaa se encuentran la totalidad de dispositivos externos


declarados en la seccin Dispositivos.
Procesos: generacin y medicin de pulsos, clculo de velocidad, RPM.
Vector de memoria: seleccionar y utilizar vectores de memoria RAM.

65

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Iniciar programa

Este bloque corresponde al inicio del programa en Assembler, debe estar presente en el entorno
del Programa Principal y debe ser ingresado obligatoriamente. Por esto Niple lo inserta de
manera automtica.
Al bloque de Iniciar no puede ingresa
ingresarr ningn vnculo. Solo acepta un vnculo de salida.

Asignar valor a un Bit

Esta funcin permite asignarle un valor a un bit. Dado que un bit representa un valor binario, slo
se le puede asignar un valor de 0 1. Es posible asignarle el valor de o
otro
tro bit tambin.
En el campo Bit se selecciona el nombre del bit al cual se asignar el valor.

66

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Una vez seleccionado el bit, se muestra una lista de valores de asignacin: 0, 1 y Otro bit.
Seleccione el valor deseado. Por ltimo, puede ingresar un comentario
comentario adicionando a la funcin.

Asignar valor a un registro

Esta funcin permite asignarle un valor constante o variable a un registro de 8, 16, 24 y 32 bits de
tamao. En el campo Registro seleccione el registro al cual le asignar un valor, en la sintaxis
corresponde al Destino.

Si desea asignarle un valor a un registro que an no ha sido declarado, mediante el botn


Registros puede declarar el registro sin necesidad de cancelar la operacin actual.
Una vez especificado el registro al cual as
asignar
ignar el valor, debe seleccionar que tipo de valor desea
asignar. Las opciones disponibles son:

Un valor literal. Esto es, un valor constante. Niple controla de manera automtica el
ingreso de literales, para obtener mayor informacin consulte el tema Co
Conceptos bsicos
/ Ingreso de datos.

67

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

El valor de otro registro. Esta opcin es equivalente a copiar el contenido de otro registro.
Si en tiempo de ejecucin se modifica el contenido del registro, estamos frente a una
asignacin de tipo variable.

Al igual que
ue con el campo registro, el botn Registros, le permite declarar un nuevo registro sin
necesidad de cancelar la operacin.

Configurar puerto

En Niple, la configuracin de los puertos se realiza de manera totalmente visual.


En la pantalla de Configuracin
cin del Puerto, se presenta una imagen del PIC con las descripciones
de todos los pines. En cada pin correspondiente se muestra una lista desplegable, a travs de la
cual el pin es configurado como entrada, entrada analgica, comparador o salida, las
caractersticas
actersticas de cada pin corresponde al modelo de PIC utilizado.

68

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Leer puerto

Permite obtener el valor actual de un puerto y guardar el resultado en un registro. Es significa que,
se obtiene el estado de cada pin correspondiente al puerto seleccionado.
En el campo Puerto seleccione el puerto que desea leer. Niple supervisa la configuracin del
puerto seleccionado de manera automtica y advierte si el puerto no est completamente como
entrada.

Si bien el hecho de leer el estado de un pin configurado como salida no es considerado un error,
igualmente Niple le advierte para asegurarse que tiene pleno conocimiento de la actual
configuracin

Escribir puerto

Permite escribir un valor en un puerto. Este valor puede ser un valor literal (constante) o el valor
de un registro (variable).
Seleccione el tipo de dato desea escribir en el puerto.

69

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Niple supervisa la configuracin del puerto seleccionado de manera automtica y advierte si el


puerto no est completamente como salida.
Si bien el hecho de escribir un pin configurado como entrada no es considerado un error,
igualmente Niple le advierte para asegurarse que tiene pleno conocimiento de la actual
configuracin. Una vez ingresado los datos solicitados presione el botn Ingresar.

Conversin Analgica/Digital
igital

Configuracin de los canales A/D

Cuando el microcontrolador utilizado dispone de conversores analgico/digital puede


configurarlos desde la configuracin del puerto.

70

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Seleccione el valor de VRef (voltaje de referencia) la cual puede ser interna (VDD y VSS) o
externa por medio de determinados pines segn el modelo de microcontrolador a utilizar.
Si elige algn voltaje de referencia externo, el pin correspondiente es inhabilitado en la pantalla
para que no pueda ser utilizado como entrada o como salida. Una vez seleccionada la
configuracin deseada, presione el botn Ingresar.
Antes de insertar el bloque, Niple chequea que la configuracin seleccionada corresponda a una
de las combinaciones vlidas, ya que en algunos modelo de de microcontrolador debe utilizar las
entradas AD con determinada configuracin.

Conversin A/D

Una vez configurado el mdulo A/D, est en condiciones de realizar una conversin A/D. Ingrese al
rbol de herramientas y seleccione la opcin Rutinas Bsicas / Conversin A/D:

Se presenta la pantalla Conversin Analgica / Digital. En esta pantalla se muestra toda la


informacin relacionada con el estado actual del mdulo de conversin A/D. Esto es:

Configuracin actual del puerto


Cantidad de canales A/D disponibles

71

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Seleccione
leccione el canal A/D que desea utilizar. La lista desplegable llamada Canal a leer contiene
todos los canales A/D que se encuentra disponibles. En esta lista se muestra el nmero de canal
junto al correspondiente nombre de bit. De esta manera, Niple le facilita la identificacin del pin
adecuado.
Para eliminar completamente la posibilidad de seleccionar un pin del puerto que no hubiera sido
configurado como Entrada A/D, Niple muestra en la lista, slo los canales que actualmente estn
disponibles de acuerdo
uerdo a la configuracin actual del puerto.
A continuacin seleccione los registros donde guardar el resultado de la conversin A/D. Puede
realizar conversiones A/D a 8 10 bits de resolucin.

Niple le permite realizar varias lecturas y promediarlas con lo cual se obtienen mediciones ms
estables.
Para esto, active la opcin Promedio. Seleccione la cantidad de mediciones que desea realizar.
Niple realiza todas las lecturas y realiza el promedio de manera automtica. Niple le da la opcin
de esperar un tiempo entre las mediciones seleccionadas.

72

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Condicin

Las funciones lgicas permiten realizar evaluaciones (comparaciones) de registros y bits con
valores literales (constantes) o con los valores contenidos en otros registros y bits (variables).

Comparar bit

Este bloque evala si el valor del bit seleccionado es 0 1 y deriva el flujo del proceso en funcin
del resultado de la evaluacin.
En el campo Bit, seleccione el nombre bit del que desea comparar el valor y a continuacin
seleccione el valor con
on el cual comparar el bit. Un bit solo puede contener los valores 0 y 1. Por
ltimo, puede ingresar un comentario al bloque. Una vez seleccionados todos los datos, presione
el botn Ingresar.

73

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Este bloque debe ser vinculado a dos bloques de salida:

El primer bloque de salida insertado corresponde a la salida SI, es decir que, en tiempo
de ejecucin el proceso tomar este camino si el resultado de la evaluacin es verdadero.

El segundo bloque de salida insertado corresponde a la salida NO, es decir que, en


tiempo de ejecucin, el proceso tomara este camino si el resultado de la evaluacin es
falso.

74

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Comparar registro

Evala el valor de un registro, utilizando como valor de comparacin un literal o el valor de otro
registro.
En la lista Registro, seleccione el registro que desea comparar. A continuacin seleccione el
operador de comparacin.
Un registro puede ser comparado con un valor literal (constante) o con el valor de otro registro
(variable). Seleccione el tipo de valor de comparacin marcando en la casilla de opcin
correspondiente.
Si selecciona la opcin Registro, seleccione de la lista el registro que contiene el valor de
comparacin, de lo contrario, ingrese el valor literal de comparacin.
Por ltimo puede ingresar un comentario al bloque. Un a vez ingresados todos los datos
solicitados, presiones el botn Ingresar.

75

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Los operadores de comparacin posibles pueden ser =, <, >, <=, >= <>.
Cada vez que debe seleccionar el nombre de un registro y ha olvidado declararlo previamente,
Niple
ple le ofrece la posibilidad de declararlo sin necesidad de cancelar la pantalla actual. Para esto
presione el botn Registros que se encuentra a la derecha de la lista de registros
correspondiente.
Este bloque debe ser vinculado a dos bloques de salida:

El primer bloque de salida insertado corresponde a la salida SI, es decir que, en tiempo
de ejecucin el proceso tomar este camino si el resultado de la evaluacin es verdadero.

El segundo bloque de salida insertado corresponde a la salida NO, es decir


de que, en
tiempo de ejecucin, el proceso tomara este camino si el resultado de la evaluacin es
falso.

76

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Clculos matemticos

Puede realizar clculos de suma, resta, multiplicacin y divisin a 8, 16, 24 y 32 bits (o


combinaciones). La metodologa es la misma para los diferentes tamaos de registro.

Suma

Realiza una operacin matemtica de suma, utilizando como sumandos un valor literal o un
registro. El resultado es guardado en otro registro. En Sumando 1 seleccione entre las opciones
un literal o el valor de un registro.
Si seleccion la opcin el valor de un registro, seleccione de la lista el registro a utilizar como
primer sumando. Repita la operacin anterior en Sumando 2. En Resultado, seleccione el
registro donde desea guardar el resultado de la operacin.

77

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Resta

Realiza una operacin matemtica de sustraccin, utilizando como minuendo y sustraendo un


valor literal o un registro. El resultado es guardado en otro registro.
En Minuendo seleccione entre las opciones un literal o el val
valor
or de un registro. Si seleccion la
opcin el valor de un registro, seleccione de la lista el registro a utilizar como minuendo. Repita la
operacin anterior en Sustraendo. En Resultado, seleccione el registro donde guardar el
resultado de la sustraccin.
n. Haga clic en OK.

78

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Multiplicacin

Realiza una operacin matemtica de multiplicacin con registros o valores, utilizando como
multiplicador valores de un literal o un registro. El resultado es guardado en un registro.
En Multiplicando seleccione entre las opciones un literal o el valor de un registro. Si seleccion la
opcin el valor de un registro, seleccione de la lista el registro a utilizar como multiplicando. Repita
la operacin anterior en Multiplicador. En Resultado, seleccione el registro
regis
donde guardar el
resultado de la multiplicacin.

79

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Divisin

Realiza una operacin matemtica de divisin, utilizando como divisor valores de un literal o un
registro. El resultado es guardado en otro registro.
En Dividendo seleccione entre las opci
opciones
ones un literal o el valor de un registro. Si seleccion la
opcin el valor de un registro, seleccione de la lista el registro a utilizar como dividendo. Repita la
operacin anterior en Divisor. En Resultado, seleccione el registro donde guardar el res
resultado
de la divisin.

80

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Incrementar uno

Puede realizar incrementos de registros de manera automtica. Niple incrementa el valor del
registro y controla el acarreo en caso de tratarse de registros mayores a 8 bits.

81

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Esta opcin se trata de un clculo muy rpido y adems ofrece diferentes opciones para control de
contadores totalmente automatizado.
La opcin Controlar valor mximo le permite automatizar la cuenta hasta un mximo ingresado
por el usuario. Una vez alcanzado el valor mximo, ya no sigue incrementando el valor de la
cuenta.
La opcin Reiniciar cuenta le permite volver a inicializar el estado de la cuenta a un valor
ingresado por el usuario una vez que se alcanzo el mximo permitido.
Laa opcin Activar Bit al llegar la mximo inserta un bloque de comparacin donde se evala un
bit seleccionado por el usuario el cual se pone en 1 cuando la cuenta llego a la mximo. De esta
manera se puede controla el flujo del programa segn el contador haya llegado al lmite mximo o
no.
Estas opciones, trabajando en conjunto le permiten realizar estructuras lgicas muy complejas en
pocos pasos.

82

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Decrementar uno

Puede realzar decrementos de registros de manera automtica. Niple decrementa el valor del
registro y controla el acarreo en caso de tratarse de
de registros mayores a 8 bits.

Si el valor es igual a 0, la operacin no se realiza.

Es posible insertar un bloque de condicin para evaluar esta situacin de manera automtica.

83

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

En caso afirmativo:

Dec a BCD

Realiza el clculo de conversin de un nmero a BCD, es decir, descomponer el valor contenido en


un registro a unidad, decena y centena.
Seleccione el registro que contiene el valor a descomponer. Seleccione los registros donde desea
almacenar el resultado de la descomposicin a U, D y C.

84

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

En caso de no encontrar registros BCD, Niple puede crearlos de manera automtica:

Convertir valor BCD a registro

La operacin inversa a la anterior. Convierte varios registros BCD en un registro de 16 bits.

85

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Escalado proporcional

La funcin Escalar permite, a partir de un valor dentro de un rango origen, calcular el valor
proporcional correspondiente a un rango destino.
Por ejemplo: Los registros dato1 y dato2 contienen el resultado de una conversin A/D, es
decir, un valor a 10 bitss entre 0 y 1023. Ahora suponga que desea controlar el ancho de pulso del
PWM a 5000 Hz. El ancho de pulso es controlado por medio de un valor a 10 bits contenido en los
registros AnchoPulso1 y AnchoPulso2. A 5000 Hz el rango vlido para el control del ancho de
pulso esta comprendido entre 0 y 200.
Partiendo de esto, necesita escalar el valor contenido en los registros dato1 y dato2 de un
rango de 01023, a un rango 0200 y asignarlo a los registros AnchoPulso1 y AnchoPulso2.
De esta manera se obtiene
btiene un valor proporcional, es decir, el mismo porcentaje o relacin entre el
rango de destino con respecto al rango de origen.

86

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Tablas

Una tabla consiste en una metodologa de programacin a travs de la cual se pueden realizar
consultas obteniendo un valor de resultado en funcin de un valor de entrada (ndice).
Por ejemplo: la siguiente tabla devuelve el cdigo ASCII correspondiente al valor ingresado como
ndice.
ndice Valor Resultado
0
D48
1
D49
2
D50
3
D51
4
D52
5
D53
6
D54
7
D55

87

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

8
9

D56
D57

El procedimiento consiste en sumar al registro contador de programa (registro PCL) el valor


correspondiente al ndice, esto produce que la ejecucin del programa salte la cantidad de
posiciones correspondiente al valor del ndice. Para que la tabla devuelva un valor para cada tem,
la tabla debe estar formada por instrucciones RETLW (retorno de subrutina con un valor en W) y
debe ser llamada mediante una instruccin CALL.
En el siguiente ejemplo en cdigo Assembler se describe el principio de funcionamiento de una
consulta por tabla:

Crear una nueva tabla

Niple incluye un generador de tablas en el cual Usted declara la tabla y luego la graba como un
archivo con extensin TBL. De esta manera puede crear su propia librera de tablas.
Para crear una tabla ingrese al men Declaracin / Generador de tablas / Tabla estndar. Niple le
muestra la pantalla de Declaracin de tablas y solicita que ingrese el nombre de la tabla. Cada
tabla debe tener su correspondiente nombre.
Una vez ingresado el nombre debe proceder a ingresar los valores de los distintos elementos que
componen la tabla. Los valores de los ndices se incrementan de manera automtica ya que no
debe saltearse ninguno de ellos. Para ingresar nuevos elementos a la tabla presione el botn
Agregar un valor.

88

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Si detecta de ha cometido un error al ingresar alguno de los valores de la tabla, puede editarlo
haciendo doble clic sobre el elemento a corregir.
Una vez ingresados todos lo valores que conforman la tabla presione el botn Ingresar. Al
presionar dicho botn Niple guarda la tabla actual en un archivo con extensin .TBL. A
continuacin le solicita que ingrese el nombre del archivo de tabla.

89

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

De esta manera podr utilizar la tabla recin creada en distintos proyectos


proyectos sin necesidad de volver
a declararla cada vez que la necesite.

Consultar tabla

Carga una tabla, la cual debe haber sido previamente definida.


Haga clic en Cargar Tabla. Seleccione el archivo de tabla que desea consultar, haga clic en
Abrir. Aparecer
cer una pantalla con el detalle de los datos de la tabla.

90

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

En ndice (Puntero) seleccione el registro que contiene el valor del puntero de la tabla. En
Resultado, elija el registro en donde desea guardar el dato devuelto por la tabla. Haga clic en
Ingresar.

Tiempos por bucles

Niple le permite realizar temporizaciones tanto fijas o variables. Con la temporizacin fija
puede genera temporizaciones entre 10 microsegundos y 255 segundos con una precisin de 1 uS.
En tiempo de espera, escriba el valor
valor de tiempo que desea. Seleccione la unidad de tiempo que
desee de la lista. Haga clic en Ingresar.

91

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Memoria EEPROM interna

Declaracin de Registros EEPROM

Puede declarar registros en la memoria EEPROM del PIC para poder acceder a las diferentes
dicciones a travs de un nombre de registro.

Se muestra la pantalla de declaracin de registros EEPROM.

92

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

La metodologa de declaracin de registros es la misma que para la declaracin de registros RAM.

Leer EEPROM

Lee un dato de la memoria EEPROM del microcontrolador y lo guarda en un registro. Seleccione


entre las opciones de direccin Fija, Variable y +1.
Si elige la opcin Fija, seleccione de la lista el registro en donde est contenida la direccin. En la
lista Registro donde guardar el dato
dato, seleccione el registro destino.

93

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Presione el botn Ingresar. Si el registro en el que desea guardar los datos no existe, haga clic en
Nuevo.

Grabar EEPROM

Graba un literal o un registro en la memoria EEPROM del microcontrolador.


En posicin de memoria a escribir, seleccione entre las opciones de direccin Fija, Variable y
+1.
Si elige la opcin variable, seleccione de la lista el registro en donde est contenida la direccin. En
Valor a grabar, seleccione entre las opciones un literal o un registro. Si selecciona la opcin un
registro, seleccione de la lista el registro que desea guardar en la EEPROM.

Presione le botn Ingresar. Si el registro en el que desea guardar los datos no existe, haga clic en
Nuevo.

94

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

DECLARACIN DE DISPOSITIVOS
Display de siete segmentos sin codificador
Este mdulo permite visualizar valores en displays de siete segmentos mediante conexin a 7 bits,
es decir, sin la utilizacin de un codificador para generar la combinacin binaria correspondiente a
cada valor. Niple le permite utilizar hasta 16 displays conectados en paralelo.
Primero seleccione el tipo de display a utilizar, esto es: nodo comn o ctodo comn.

Luego le solicita que seleccione la cantidad de displays a utilizar esto es, entre 2 y 16.

Una vez configurado los pines de datos, cantidad de dgitos y los pines de display, oprimimos el
botn Ingresar.

95

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Display de 7 segmentos con codificador


Puede implementar la utilizacin de displays de 7 segmentos por medio de un codificador
CD4511B para displays ctodo comn y el codificador 74LS47 para displays nodo comn.
De esta manera puede ahorrar tres pines en el microcontrolador para poder utilizarlos para otras
funciones. Seleccione el tipo de display a utilizar, los pines correspondientes al bus y luego
selecciona la cantidad de displays a utilizar y sus respectivos pines.

Una vez seleccionados todos los parmetros de configuracin presione el botn Aceptar.

Implementacin en el diagrama de flujo

Tanto para displays de 7 segmentos con o sin codificador la metodologa de implementacin en el


diagrama de flujo es la misma:

96

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Ingrese al rbol de herramientas: Rutinas/Dispositivos/Visualizacin/Display de 7 segmentos.

Se muestra la pantalla de visualizacin en Displays de 7 segmentos.

97

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

En cada display se puede visualizar el valor de un registro o un valor literal. Para seleccionar el
valor a visualizar en cada dgito debe hacer un doble clic en cada imagen de display. Al hacer doble
clic en la imagen de un display se presenta la pantalla de Mostrar un valor en un Display.
En un display puede visualizar dos tipos de valores:
1. Puede visualizar el valor que contiene un registro: se trata de un valor que puede ser
variable. Al seleccionar este tipo de dato a visualizar, Niple le ofrece la posibilidad de
codificar el valor mediante una tabla. Si el dato a visualizar requiere codificacin
mediante tabla, seleccione la tabla.

2. O puede visualizar un valor constante (un valor literal): en este caso se muestra
siempre el mismo valor. Al seleccionar la opcin un valor constante, Niple presenta
una imagen del display en el cual debe hacer un clic en cada barra que quiere
visualizar iluminada. De esta forma puede generar el nmero o smbolo que desea
visualizar. Niple genera el cdigo binario correspondiente de manera automtica. Este
cdigo binario vara si se trata de un display tipo nodo comn o Ctodo comn, Niple
controla el cdigo generado segn el tipo de Display.

98

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Una vez seleccionados los datos a mostrar en los displays debe seleccionar le tipo de multiplexado
que desea realizar. Tiene dos opciones: por Bucles o por Paso.
La opcin por Bucles hace que el microcontrolador se detenga en esta parte del programa y
realice todo el proceso de multiplexado completo mostrando los valores de cada displays y no
continua con la ejecucin del resto del programa hasta que no haya terminado de realizar este
proceso.

Las opciones de este tipo de multiplexado son:

Repeticiones: corresponde a la cantidad de veces que realiza el ciclo de visualizacin de


todos los Displays.
Tiempo: tiempo en uS que demora cada Diplays encendido en el proceso de multiplexado.

El tipo de multiplexado por Paso muestra el valor correspondiente a uno de los displays (por
ejemplo el display 1) y continua con el resto del programa. Cuando vuelve a pasar por este en el
siguiente ciclo del programa activa el siguiente displays y contina con la ejecucin del resto del
programa.

99

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Esta opcin es ideal para realizar un multiplexado por medio de un temporizador interno (TMR)
donde cada vez que se produce la interrupcin por TMR se ejecuta el bloque y va activando un
display en cada interrupcin. As puede realizar un multiplexado mientras realiza otros procesos
de manera simultnea.
Esta metodologa de implementacin del multiplexado por paso y por temporizando por medio
de una interrupcin TMR es la opcin recomendada para realizar visualizaciones de manera
profesional.
Opcionalmente Niple le permite Ocultar o Encender los dgitos con 0 a la izquierda.
Niple controla automticamente cuando debe mostrar u ocultar un dgito en funcin del valor
total a mostrar.

Pantalla LCD
Niple le permite controlar ms de una pantalla LCD de manera simultnea en el mismo proyecto.
Esto es se logra conectando las pantallas LCD en paralelo y los pines de control de cada pantalla se
asignas a distintos pines del microcontrolador. Niple administra las rutinas de control de manera
automtica. Usted, solo indica que mensaje desea visualizar en cada una de las pantallas LCD.
Como siempre, en Niple, tanto las configuraciones de las pantallas LCD, las configuraciones y
diseos de los de los mensajes y los comandos se realiza de manera visual y en alto nivel de
programacin. Niple genera todo el cdigo Assembler necesario de manera automtica.

100

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Principales caractersticas:

Configuracin visual de mensajes


Bus de datos a 4 y 8 bits configurable por el usuario
Mensajes con valores variables
Conversin automtica de formato numrico a cdigo ASCII para valores variables
Edicin y ajuste de mensajes y comandos de manera visual
Envo de comandos al LCD:
o Apagar la pantalla
o Encender la pantalla
o Limpiar la pantalla
o Ubicacin del cursor a inicio
o Ubicacin del cursor

101

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

o Configuracin del cursor


o Desplazamiento del cursor
o Desplazamiento de la pantalla
Envo de caracteres al LCD de manera independiente de un mensaje (para ingreso de
datos)
Cdigo Assembler optimizado: cuando actualiza un mensaje en un LCD, si el mensaje
contiene valores variables, Niple solo actualiza las variables en lugar de volver a cargar
todo el mensaje nuevamente. De esta manera Niple le ahorra tiempo durante la ejecucin
del programa.

Para utilizar un LCD debe realizar los siguientes pasos:


1.
2.
3.
4.
5.

Configurar el Puerto donde conectar el LCD


Configurar el LCD
Generar el mensaje
Visualizar el mensaje
Opcionalmente se pueden enviar comandos o caracteres independientemente de un
mensaje

Configurar LCD

Una vez configurado el puerto donde conectar el LCD debe proceder a configurar el LCD de la
siguiente manera: seleccione el bloque al cual vincular el nuevo bloque de configuracin de LCD,
luego ingrese a la pestaa dispositivos: Nuevo dispositivo/LCD.
En Niple, la configuracin de un LCD consiste en seleccionar de qu manera ser conectado el LCD
al microcontrolador. La configuracin de un LCD se realiza slo una vez. Dado que Niple puede
controlar ms de una pantalla LCD de manera simultanea, en esta pantalla se presenta el nmero
de LCD que est siendo configurado.

102

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Primero debe seleccionar el tipo de display LCD: 162, 202 o 204. Luego debe seleccionar el
tamao del bus de datos, el cual puede ser de 4 u 8 bits.
Se recomienda utilizar el bus de datos de 4 bits dado que la diferencia con el bus de 8 bits es
insignificante tanto en el cdigo generado como en el tiempo de ejecucin del programa y, por el
contrario, los cuatro pines que se ahorra pueden ser de gran importancia.

Una vez seleccionado el tamao del bus de datos, debe seleccionar los pines a los cuales conectar
el LCD. Si selecciona el bus de datos de 4 bits, Niple le ofrece la posibilidad de utilizar los cuatro
pines de mayor o menor peso de un mismo puerto. Esto simplifica el cdigo Assembler generado.
Adems, indica en la imagen del LCD los pines que deben ser conectados.

103

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Si selecciona el bus de datos de 8 bits, Niple utiliza un puerto completo.


Si ha seleccionado el bus de datos de 4 bits, Niple le solicitar que seleccione los pines
correspondientes. Si ha seleccionado el bus de datos de 8 bits, Niple asignar al bus de datos,
todos los pines del puerto seleccionado. Por ltimo debe seleccionar los pines del control del LCD.
Para esto haga un clic en la casilla de verificacin correspondiente a cada pin de control (RS, RW,
E).

Una vez ingresados todos los datos solicitados, presione el botn Ingresar. Luego dirjase a la
seccin
diagrama
y
vaya
al
rbol
de
herramientas
Rutinas
bsicas/Dispositivos/Visualizacin/Pantalla LCD. La configuracin de la pantalla LCD se realiza solo
una vez en un proyecto.

104

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Utilizando ms de una pantalla LCD

Niple le permite controlar ms de una pantalla LCD. Para esto, los pines correspondientes al bus
de datos y los pines de control RS y RW de las pantallas a utilizar deben estar conectados en
paralelo.
Solo debe conectar de manera independiente los pines correspondientes al control E de las
pantallas.
El pin E de un LCD es el encargado de habilitar e inhabilitar una pantalla LCD. De esta manera
Niple habilita e inhabilita las distintas pantallas LCD de manera automtica de acuerdo al
programa que Usted est desarrollando.
Si desea utilizar ms de un LCD, el mismo debe ser creado y configurado desde la pestaa
Dispositivos/LCD. Recuerde de conectar el display LCD en paralelo con los dems LCD y slo
deber cambiar el pin correspondiente al control E para el nuevo LCD.

105

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Seleccione el BIT correspondiente al pin de control E del LCD. Por ltimo presione la el botn
Ingresar. Cuando termine de configurar la cantidad de dispositivos LCD que desee utilizar, debe
ingrese al diagrama principal y luego debe ir a el rbol de herramientas para inicializar las pantallas
LCD.

Al inicializar las pantallas se le crearan los siguientes iconos en el programa principal:

106

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Generar un nuevo mensaje

La metodologa de visualizacin de mensajes en Niple consiste en generar un mensaje. Esto


implica configurar la pantalla, el cursor y disear el mensaje propiamente dicho. Una vez diseado
el mensaje, puede ser aplicado a cualquier LCD mediante el mdulo de visualizacin de mensajes.
Para generar un nuevo mensaje ingrese al rbol de herramientas a la seccin:
Insertar/Rutinas Bsicas/Dispositivos/Visualizacin/Pantalla LCD/Nuevo Mensaje
En Niple cada mensaje es identificado con un nombre nico. Por ejemplo Bienvenida. Al cargar
la pantalla de nuevo mensaje, lo primero que debe ingresar es el nombre del mensaje. Adems
muestra el nmero de mensaje correspondiente. Una vez ingresado el nombre, Niple nuestra las
opciones de configuracin de pantalla.
Por defecto la opcin Visualizacin de Caracteres se presenta como Caracteres Visibles. Niple
supone que Usted quiere que el mensaje sea visible al momento de llamar al mensaje.

107

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Si por algn motivo desea que el mensaje se cargue en el LCD pero que permanezca invisible para
luego mostrarlo con el comando Encender Pantalla (ver envo de comandos ms adelante),
seleccione la opcin Caracteres Invisibles.
Adems la opcin Limpiar pantalla se presenta como activada. Esta opcin realiza una limpieza
de la pantalla antes de visualizar el mensaje. Esto significa que ser borrado completamente
cualquier mensaje que haya sido visualizado antes de mostrar el actual mensaje. Si esta opcin se
inhabilita, Niple no realiza la limpieza de la pantalla y existe la posibilidad de superposicin de
mensajes.
Al inhabilitar la opcin Limpiar Pantalla Niple advierte lo anteriormente mencionado mediante el
siguiente mensaje.

108

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Dado que el objetivo de Niple es minimizar al mximo la posibilidad de error, ofrece esta opcin
como habilitada para que realice la limpieza de la pantalla antes de visualizar el mensaje actual. La
limpieza de la pantalla incluye la ubicacin del cursor al inicio del LCD, esto es, en la lnea 1,
carcter 1. Por esto, si la opcin Limpiar Pantalla se encuentra activada, entonces, la opcin
Ubicar el cursor en el Inicio se encuentra inhabilitada dado que la limpieza de pantalla incluye
esta funcin.

Por esto, si la opcin Limpiar Pantalla se desmarca, se activa la opcin Ubicar el cursor.

A continuacin debe seleccionar la configuracin del cursor. Si seleccione la opcin Cursor


Invisible. La opcin Visualizacin de parpadeo se configura de manera automtica como Sin
parpadeo. Seleccione la configuracin del cursor el parpadeo y la ubicacin del mismo.

Una vez seleccionadas todas las opciones de la configuracin del mensaje, se activa la Solapa
Mensaje.

109

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

A continuacin debe ingresar el mensaje propiamente dicho.


Se presenta una imagen de la pantalla LCD representada por una grilla de 2 filas y en la cual se
enumeran las columnas las cuales representan a los caracteres.

110

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

En la grilla ingrese el mensaje que desea visualizar:

Como lo indican las referencias, el texto del mensaje se muestra en color rojo. A la izquierda y a la
derecha de la grilla del mensaje se encuentran botones para desplazamiento del texto ingresado.
De esta manera puede ajustar la visualizacin del texto. En la siguiente imagen, el texto ha sido
desplazado hacia la derecha para ajustarlo al centro de la pantalla.

El botn Limpiar Todo le permite limpiar la grilla del texto cuando Ud. desea corregir el mensaje.

Visualizando valores variables en un mensaje

Para ingresar un valor variable en un mensaje haga doble clic en la celda donde desea visualizar la
variable. Se presentar la pantalla de seleccin de variables:

111

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Esta pantalla le solicita que seleccione el registro donde tiene almacenado el valor variable a
visualizar. Si el valor variable corresponde a un nmero, antes de ser enviado al LCD debemos
convertirlo a su correspondiente cdigo ASCII ya que el LCD solo puede mostrar caracteres ASCII.
Adems si el nmero es mayor a nueve debemos enviar realizar la conversin a BCD y enviar los
valores correspondientes a las unidades, las decenas, las centenas, etc., por separado.

Niple le ofrece la posibilidad de convertir en nmero a cdigo ASCII de manera automtica. Para
esto debe seleccionar la opcin Convertir valor numrico a cdigo ASCII. La cual se encuentra
seleccionada de manera predeterminada.
Si lo que desea enviar no corresponde a un valor numrico sino a un cdigo ASCII que Ud. ya tiene
definido en el programa, debe marcar la opcin No convertir valor numrico a cdigo ASCII.
Al ingresar la variable, la misma se presenta en la grilla de mensaje como un smbolo de
interrogacin y de color celeste. Se muestra como un smbolo de interrogacin dado que Niple no
puede predecir que valor ser mostrado en la correspondiente variable.

Si desea consultar a qu valor corresponde a una variable. Haga un clic sobre la celda donde se
encuentra la variable y Niple le mostrar a que valor corresponde la misma como lo muestra la
imagen anterior.

112

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

El formato del texto puede ser uno de los 2 siguientes:


1. ? = ASCII(Nombre_Registro): Esto significa que la variable corresponde al carcter ASCII
del valor que contiene el registro Nombre_Registro.
2. ? = Nombre_Registro: Esto significa que la variable corresponde al valor que contiene un
registro sin convertirlo a cdigo ASCII.
Por ltimo presione el Botn OK.
Al insertar un nuevo Mensaje de LCD, Niple genera un nuevo entorno para el mensaje. De esta
manera el mensaje puede ser tratado como una rutina de usuario. Al insertarse el mensaje como
una rutina de usuario, el mismo puede ser llamado desde cualquier parte del programa y puede
ser visualizado en cualquier LCD en caso de estar utilizando ms de un LCD.
Adems, para minimizar al mximo las posibilidades de error de visualizacin, Niple incluye la
configuracin de la pantalla junto con el mensaje a visualizar. De esta manera se garantiza que la
pantalla se va a encontrar configurada de acuerdo a las necesidades del mensaje a visualizar. De
esta manera no debe preocuparse por la configuracin de la pantalla, o la configuracin y
ubicacin del cursor cada vez que desea visualizar el mensaje. Simplemente indica el mensaje
desea visualizar.

113

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Mostrar Mensaje

Una vez definido el mensaje, puede visualizarlo en cualquier parte del programa ingresando al
rbol de herramientas a:
Rutinas Bsicas/dispositivos/visualizacion/Pantalla LCD/Nuevo Mensaje
Se presentar la pantalla Mostrar un mensaje en LCD.

Primero debe seleccionar el LCD en el cual debe desea visualizar el mensaje y a continuacin
indica el nombre del mensaje a visualizar. De esta manera un mismo mensaje puede ser
visualizado en cualquier LCD. Al presionar el botn OK, Niple ingresa el bloque del LCD.

114

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Optimizacin del cdigo Assembler

Niple incluye un algoritmo de optimizacin de para ahorrar recursos en tiempo de ejecucin (del
PIC). Niple administra los mensajes que estn siendo visualizados en cada LCD y sabe en todo
momento que mensaje se est visualizando en cada LCD. Incluso si un proyecto incluye solo un
LCD, Niple sabe qu menaje est siendo visualizando en el LCD.
Cuando desea visualizar un mensaje en un LCD que ya esta mostrando en dicho mensaje, Niple
solo actualiza los valores variables (en caso de que el mensaje incluye variables). Es decir que no
vuelve a cargar todo el mensaje en el LCD. De esta manera se ahorra tiempo de ejecucin.
Lo mismo ocurre con la configuracin de la pantalla y la configuracin y ubicacin del cursor. Solo
se ejecutan stas configuraciones cuando el mensaje no esta siendo visualizado en el LCD actual.

Enviar comandos

Niple le permite enviar una serie de comandos al LCD solo indicando el nombre del comando
deseado. Para facilitarle an ms el manejo de las pantallas LCD, algunos comandos le permite
realizar reconfiguraciones de pantalla o cursor.
Los comandos disponibles son los siguientes:

Apagar la pantalla: Este comando apaga los caracteres. No incluye opciones.


Encender la pantalla: Visualiza los caracteres. Opcionalmente puede ubicar y reconfigurar
el cursor.

115

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Limpiar la pantalla: Limpiar todos caracteres de la pantalla. No incluye opciones.


Cursor a Inicio: Ubica el cursor al inicio de la pantalla LCD, esto es, al rengln 1, carcter 1.
Este comando no incluye opciones.
Ubicar el cursor: Ubica el cursor en la posicin que indique el usuario. Opcionalmente
puede reconfigurar la visualizacin del cursor.

Configurar el cursor: Permite reconfigurar el cursor. Este comando requiere que


necesariamente configure la visualizacin de los caracteres.

Desplazar el cursor: Permite realizar un desplazamiento del cursor hacia la izquierda o


hacia la derecha. Opcionalmente puede ingresar un retardo entre cada desplazamiento.

116

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Desplazar la pantalla: Permite realizar un desplazamiento de la pantalla hacia la izquierda


o hacia la derecha. Opcionalmente puede ingresar un retardo entre cada desplazamiento.
Este comando produce un efecto visual de desplazamiento del mensaje.

Enviar caracteres

Adems de configurar la visualizacin de mensajes, Niple le permite enviar caracteres


independientemente de un mensaje. Esto es muy comn cuando se realizan proyectos con ingreso
de datos, los cuales son mostrados en la pantalla LCD. Por ejemplo; Usted disea el mensaje de
solicitud de ingreso de datos. En general, en estos casos, configura el cursor como visible e
intermitente y lo ubica en la posicin donde el usuario debe ingresar el mensaje y luego espera el
ingreso de los datos. Cada vez que el usuario ingresa un dato, el microcontrolador lo captura, por
interrupcin por ejemplo, y lo enva a la pantalla LCD donde el usuario puede visualizar los datos
que est ingresando. Este envo de datos al LCD, corresponde a la funcin de Niple de envo de
carcter.

117

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Niple le permite enviar un carcter o un texto.


Adems le permite enviar los caracteres a la actual posicin del cursor o definir una posicin de
visualizacin determinada. Si necesita enviar un valor numrico guardado en un registro, Niple le
ofrece la posibilidad de convertirlo a cdigo ASCII de manera automtica.

Teclado Matricial
El mdulo de teclado matricial permite capturar el valor de la tecla presionada en un teclado
matricial de 34 o de 44 y lo guarda en un registro. Para ello utiliza interrupciones por cambio de
estado en RB4 a RB7.
Niple verifica que la interrupcin por RB4-7 se encuentre activada. Si la interrupcin no se
encuentra activada no permite en ingreso del mdulo.
Dado que se utiliza la interrupcin por RB4-7, Niple requiere que los pines correspondientes a las
columnas del teclado matricial sean conectados a los pines RB4-7, mientras que le permite
seleccionar libremente los la conexin de los pines correspondientes a las filas. Al ingresar a la
pantalla de teclado matricial, Niple le solicita que seleccione el registro donde guardar el valor de
la tecla presionada. Luego le solicita que seleccione el tipo de teclado matricial que desea
conectar.

118

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Y por ltimo que seleccione los pines correspondientes a las filas del teclado matricial.

Memorias EEPROM I2C


Ingrese la seccin Dispositivos y seleccione Nuevo dispositivo tipo Memoria. Seleccione el
modelo de la memoria a utilizar y elija los pines donde conectar la memoria al PIC.
Ingrese el nmero de dispositivo y por ultimo presione el botn Ingresar en el panel de la
derecha.

119

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Recuerde que puede conectar varios dispositivos en paralelo formando una red, en la cual, a cada
dispositivo se le asigna un numero. Este nmero de dispositivo se configura conectado los pines
correspondientes de cada dispositivo. La cantidad de dispositivos que puede incluir en una red
depende del modelo de memoria que esta utilizando. Niple controla de manera automtica la
cantidad de dispositivos que puede conectar en funcin del modelo seleccionado.

Leer memoria EEPROM I2C

Ingrese al rbol de herramientas: Rutinas Basicas/Dispositivos/Memoria EEPROM. Se presenta la


pantalla Memorias EEPROM y selecciona la accin Lectura.

120

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Luego debe seleccionar la direccin de memoria que desea leer desde la memoria EEPROM.
Primero debe selecciona el tipo de direccin, la cual puede ser Fija o Variable.
Si selecciona el tipo de direccin Fija debe ingresar la posicin de memoria
memoria a leer en formato
decimal. Niple controla que la direccin ingresada no supere el lmite mximo de cantidad de
registros que contiene le modelo seleccionado. Mediante este tipo de acceso (por direccin fija) el
microcontrolador acceder a la direccin ingresada cada vez que se ejecute el bloque actual.
Si selecciona el tipo de direccin Variable debe seleccionar el registro que contiene el valor
correspondiente a la posicin de memoria que desea leer.

121

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

En este caso, Niple no controla que la direccin ingresada no supere el lmite mximo de cantidad
de registros que contiene el modelo seleccionado dado que no se puede predeterminar que valor
tendr el registro seleccionado al ejecutarse el programa. Mediante este tipo de acceso (por
direccin variable) el microcontrolador acceder a la direccin correspondiente al valor que
contiene el registro cada vez que se ejecute el bloque actual.
Una vez seleccionada la direccin a leer, debe seleccionar el registro donde guardar el dato
obtenido desde la memoria. Por ltimo, puede ingresar un comentario.

Escribir memoria EEPROM I2C

Para guardar datos de memorias EEPROM de la familia 24Cxxx ingrese al rbol de herramientas
como se muestra en la imagen de abajo:

Al ingresar en Memoria EEPROM se presenta la pantalla donde debe seleccionar que tipo de
acceso desea y los parmetros del mismo, ya sea escritura o lectura.

122

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Seleccione el modelo de memoria que desea utilizar. Seleccione el tipo de acceso que desea tener
a la memoria EEPROM (ya sea escritura o lect
lectura).
Luego debe seleccionar la direccin de memoria que desea escribir en la memoria EEPROM.
Primero debe seleccionar el tipo de direccin, la cual puede ser Fija o Variable. Si selecciona el
tipo de direccin Fija debe ingresar la posicin de memoria
memoria a escribir en formato decimal.
Si selecciona el tipo de direccin Variable debe seleccionar el registro que contiene el valor
correspondiente a la posicin de memoria que desea escribir. Mediante este tipo de acceso (por
direccin variable) el microc
microcontrolador
ontrolador acceder a la direccin correspondiente al valor que
contiene el registro cada vez que se ejecute el bloque actual.
Una vez seleccionada la direccin a escribir, debe indicar el dato que desea grabar en la memoria.
Puede ingresar un valor literal
literal o seleccionar un registro el cual contiene le valor que desea grabar.
Si selecciona la opcin Literal, debe seleccionar el tipo de dato a grabar y luego debe ingresar el
valor que desea grabar en la memoria. Si selecciona la opcin Registro, debe seleccionar
sel
el
registro que contiene el valor a grabar en la memoria.
Por ltimo, puede ingresar un comentario.

Memorias RAM
Ingrese al a seccin Dispositivos, y seleccione el tipo de dispositivo Memoria Ram I2C.
Seleccione le modelo de la memoria a uti
utilizar y los pines correspondientes.

123

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Presione el botn Ingresar para terminar de crear el dispositivo. Recuerde que puede conectar
varios dispositivos en paralelo formando una red, en la cual, a cada dispositivo se le asigna un
nmero. Este nmero de dispositivo se configura conectado los pines correspondientes de cada
dispositivo. La cantidad de dispositivos que puede incluir en una red depende del modelo de
memoria que est utilizando. Niple controla de manera automtica la cantidad de dispositivos que
puede conectar en funcin del modelo seleccionado.

Leer memoria RAM I2C

Para leer datos de la memoria RAM ingrese al rbol de herramientas como se muestra en la
imagen de abajo:

124

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Seleccione la memoria que desea utilizar. Al seleccionar el tipo de dispositivo


dispositivo a utilizar, Niple le
muestra la cantidad de registros de 8 bits que contiene el modelo seleccionado.
Seleccione el tipo de acceso a la memoria en este caso Lectura. Actualmente, Niple soporta la
memoria RAM PCF8570 pero en futuras versiones se irn agregando ms modelos.

125

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Luego debe seleccionar la direccin de memoria que desea leer desde la memoria RAM. Primero
debe selecciona el tipo de direccin, la cual puede ser Fija o Variable.
Si selecciona el tipo de direccin Fija debe ingresar la posicin de memoria a leer en formato
decimal. Niple controla que la direccin ingresada no supere el lmite mximo de cantidad de
registros que contiene le modelo seleccionado. Mediante este tipo de acceso (por direccin fija) el
microcontrolador acceder a la direccin ingresada cada vez que se ejecute el bloque actual.
Si selecciona el tipo de direccin Variable debe seleccionar el registro que contiene el valor
correspondiente a la posicin de memoria que desea leer.

En este caso, Niple no controla que la direccin ingresada no supere el lmite mximo de cantidad
de registros que contiene el modelo seleccionado dado que no se puede predeterminar que valor
tendr el registro seleccionado al ejecutarse el programa. Mediante este tipo de acceso (por
direccin variable) el microcontrolador acceder a la direccin correspondiente al valor que
contiene el registro cada vez que se ejecute el bloque actual.
Una seleccionada la direccin a leer, debe seleccionar el registro donde guardar el dato obtenido
desde la memoria. Por ltimo, puede ingresar un comentario.

Escribir memoria RAM I2C

Ingrese al rbol de herramientas en la seccin Dispositivos / Memoria RAM I2C:

126

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Se presenta la pantalla Memoria RAM por I2C. Seleccione el nombre del dispositivo que desea
de
acceder.

127

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Luego debe seleccionar la direccin de memoria que desea escribir en la memoria RAM. Primero
debe selecciona el tipo de direccin, la cual puede ser Fija o Variable.
Si selecciona el tipo de direccin Fija debe ingresar la posicin de memoria a leer en formato
decimal. Niple controla que la direccin ingresada no supere el lmite mximo de cantidad de
registros que contiene le modelo seleccionado. Mediante este tipo de acceso (por direccin fija) el
microcontrolador acceder a la direccin ingresada cada vez que se ejecute el bloque actual.
Si selecciona el tipo de direccin Variable debe seleccionar el registro que contiene el valor
correspondiente a la posicin de memoria que desea escribir. En este caso, Niple no controla que
la direccin ingresada no supere el lmite mximo de cantidad de registros que contiene el modelo
seleccionado dado que no se puede predeterminar que valor tendr el registro seleccionado al
ejecutarse el programa.
Mediante este tipo de acceso (por direccin variable) el microcontrolador acceder a la direccin
correspondiente al valor que contiene el registro cada vez que se ejecute el bloque actual.
Una vez seleccionada la direccin a escribir, debe indicar el dato que desea grabar en la memoria.
Puede ingresar un valor literal o seleccionar un registro el cual contiene le valor que desea grabar.
Si selecciona la opcin Literal, debe seleccionar el tipo de dato a grabar y luego debe ingresar el
valor que desea grabar en la memoria.
Si selecciona la opcin Registro, debe seleccionar el registro que contiene el valor a grabar en la
memoria. Por ltimo, puede ingresar un comentario.

Reloj de tiempo real PCF8583


Declaracin del dispositivo

Ingrese a la seccin de Dispositivos y seleccione la opcin Reloj Tiempo Real en la lista de nuevo
dispositivo. Se carga la pantalla de Declaracin y Configuracin del RTC.
Niple incluye tres modelos diferentes de RTC, los cuales se incluyen en la lista de dispositivos en la
parte superior izquierda de la pantalla. Seleccione el RTC PCF8583.

128

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

El PCF8583 funciona por comunicacin I2C. Seleccione los pines correspondientes a las seales
SDA y SCL en las listas correspondientes. Por ltimo presione el botn Ingresar que se encuentra
en la parte derecha de la pantalla.

Implementacin

Ingrese a la seccin de Rutinas Bsicas/Dispositivos/Reloj Tiempo Real en el rbol de


herramientas. Al cargarse la pantalla, seleccione el dispositivo por su nombre (ID).
Las acciones que puede realizar sobre un PCF8583 son:

Inicializacin
Escritura
Lectura

129

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Inicializacin

El PCF8583 debe ser inicializado, esta accin asigna un valor inicial de fecha y hora, y pone en
marcha el reloj/calendario. Por defecto Niple asigna la fecha y hora actual del proyecto.

Una vez configurado el reloj de tiempo real (RTC) se pone en marcha activando un bit interno del
reloj. Este bit mantiene el reloj en funcionamiento
funcionamiento y Niple programa la inicializacin del reloj para
ver este bit y determinar si el reloj ya est funcionando, en cuyo caso no se asigna la hora al iniciar
el sistema.

130

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Escritura

Puede escribir datos al RTC y asignar los valores de fecha y hora del reloj. Para configurar la fecha
actual, ingrese a la solapa con el nombre Fecha.
Seleccione los parmetros que desea configurar (da, mes, ao, da de la semana) marcado las
opciones correspondientes. Cada uno de estos datos puede ser de tipo Fijo o Variable.
Los valores a ingresar pueden ser los siguientes segn el tipo de dato solicitado:

Da:
o Fijo: entre 1 y 31 inclusive.
o Variable: un registro que contiene el valor del da.
Mes:
o Fijo: entre 1 y 12 inclusive.
o Variable: un registro que contiene el
e valor del mes.
Ao:
o Fijo: entre 00 y 99 inclusive.
o Variable: un registro que contiene el valor del ao.
Da Semana:

131

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

o
o

Fijo: entre Domingo y Sbado.


Variable: un registro que contiene el valor del da de la semana.

La siguiente imagen muestra una configura


configuracin de fecha Fija:

La siguiente imagen muestra una configuracin de fecha Variable:

132

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Para configurar la hora actual, ingrese a la solapa con el nombre Hora. Seleccione los parmetros
que desea configurar (Formato de Horas, Hora, Minutos, Segundos)
Segundos) marcado las opciones
correspondientes. Cada uno de estos datos puede ser de tipo Fijo o Variable.
Los valores a ingresar pueden ser los siguientes segn el tipo de dato solicitado:

Formato de Hora:
o Fijo: puede seleccionar el formato de 12 o 24 horas.
Horas:
o Fijo: depende del formato de hora seleccionado. Para el formato de 12 horas,
puede seleccionar entre las 00AM a 11AM y 00PM a 11PM. Para el formato de 24
horas puede seleccionar entre 0 y 23 inclusive.
o Variable: un registro que contiene el valor de las horas.
Minutos:
o Fijo: entre 00 y 59 inclusive.
o Variable: un registro que contiene el valor de los minutos.
Segundos:
o Fijo: entre 00 y 59 inclusive.
o Variable: un registro que contiene el valor de los segundos.

La siguiente imagen muestra una configurac


configuracin de hora en formato Fijo:

133

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

La siguiente imagen muestra una configuracin de hora en formato Variable:

134

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Configuracin de alarmas

El PCF8583 incluye un Pin de Alarma que el cual se pone en estado bajo cada vez que se produce
una alarma. Mientras una alarma no se produce el pin queda en estado alto.
Al producirse una alarma en el PCF8583, internamente se activa una bandera (bit) de alarma y el
pin de alarma se pone en estado bajo y se mantiene as mientras la bandera de alarma permanece
activada. La bandera de alarma debe ser limpiada por software. El PCF8583 incluye alarmas por
fecha, hora o por temporizacin.
La configuracin de alarma por fecha y hora permite generar distintos tipos de alarmas:

Alarma diaria: esta alarma se activa cada vez que coinciden la hora (horas, minutos y
segundos) configurada como alarma con la hora actual del reloj (horas, minutos y
segundos actuales).

Alarma semanal: la alarma semanal se activa cuando coincide el da de la semana con el


alguno de los dos das de semana que puede configurar como alarmas.

Alarma fechada: se activa cada vez que coinciden los datos de fecha y hora configurados
como alarma con los valores de fecha y hora actuales.

Cada una de estas alarmas puede ser configurada con valores fijos o variables. Los valores a
ingresar pueden ser los siguientes segn el tipo de dato solicitado:
ALARMA DIARIA:

Horas:
o Fijo: depende del formato de hora seleccionado. Para el formato de 12 horas,
puede seleccionar entre las 00AM a 11AM y 00PM a 11PM. Para el formato de 24
horas puede seleccionar entre 0 y 23 inclusive.
o Variable: un registro que contiene el valor de las horas.
Minutos:
o Fijo: entre 00 y 59 inclusive.
o Variable: un registro que contiene el valor de los minutos.

135

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

ALARMAR POR FECHA:

Da:
o
o
Mes:
o
o
Horas:
o

Fijo: entre 01 y 31 inclusive.


Variable: un registro que contiene el valor del da seleccionado.
Fijo: entre 01 y 12 inclusive.
Variable: un registro que contiene el valor del mes seleccionado.

Fijo: depende del formato de hora seleccionado. Para el formato de 12 horas,


puede seleccionar entre las 00AM a 11AM y 00PM a 11PM. Para el formato de 24
horas puede seleccionar entre 0 y 23 iinclusive.
o Variable: un registro que contiene el valor de las horas.
Minutos:
o Fijo: entre 00 y 59 inclusive.
o Variable: un registro que contiene el valor del da seleccionado. Debe generar el
cdigo correspondiente al da.

136

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Lectura

Para leer la fecha o la hora actual seleccione los datos que desea consultar (Da, Mes, Ao, Da de
la Semana, Horas, Minutos, Segundos) y luego seleccione el registro donde desea almacenar cada
uno de los datos obtenidos. No es necesario que obtenga todos los datos correspondientes
correspondie
a la
hora, sino que, puede obtener slo los datos que necesita.

137

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Comunicacin RS232
El protocolo RS232 es utilizado para comunicacin con el puerto serial de las computadoras
(puertos COM). Este mdulo le permite enviar datos mediante el protocolo de comunicacin
RS232 ya sea a otros microcontroladores o a una PC.
Para configurar y activar una comunicac
comunicacin
in RS232, ingrese a la seccin
Dispositivos/Comunicaciones. Seleccione de la lista de tipos de protocolos la opcin RS232.

138

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Seleccione el tipo de comunicacin a realizar la cual puede ser mediante mdulo USART. La USART
es un mdulo de comunicaciones que algunos modelos de microcontroladores incluyen. Por
medio del mdulo USART, todo el procedimiento de envo de los datos se realiza de manera
automtica.
Mediante el modo de envo por cdigo, se genera el cdigo Assembler necesario para realizar el
envo de los datos.

La diferencia radica en que el mdulo USART prepara el dato e inicia el envo y luego vuelve a
seguir ejecutando el resto del cdigo del programa sin necesidad de realizar todo el proceso de
envo del dato ya que este se realiza de manera automtica y en forma paralela a la ejecucin del
resto del programa. Mientras que si se realiza por Cdigo, la ejecucin del programa realiza todo
el proceso de envo del dato.
Si selecciona el modo de envo por USART, el sistema selecciona de manera automtica el pin de
transmisin correspondiente. Este pin no puede ser modificado dado que el mdulo USART utiliza
un determinado pin para el envo de datos.

139

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Si selecciona el modo de envo por Cdigo, el sistema le solicita que seleccione el pin de
transmisin por el cual quiere realizar la comunicacin.

A continuacin debe seleccionar la velocidad de comunicacin. Por ltimo seleccione el botn


Ingresar y ya habr creado el bus de comunicacin RS232.
Para llamar en el programa principal a la rutina enviar datos por RS232, debe ingrese al rbol de
herramientas y al apartado comunicaciones dentro de rutinas bsicas:

Luego debe seleccionar el nombre del bus que creo en la pantalla dispositivos y configurar la
accin.
En el caso de seleccionar la accin Enviar, Niple le mostrar la siguiente ventana donde debe
especificar, si desea la identificacin del equipo del destino, la cantidad de bytes a enviar y de que
tipo es el dato a enviar, ya sea un literal o un registro.

140

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Por ltimo presione el botn Ingresar.


En el caso de configurar la comunicacin en modo de recepcin de datos, debe especificarse
parmetros similares al envo de datos y debe seleccionarse el registro donde guardar los datos
recibidos.

141

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Comunicacin RS485
La comunicacin RS485 le permite conectar varios microcontroladores en red. Generalmente una
red de microcontroladores est formada por un micro llamado maestro, el cual
cu se encarga de
organizar el funcionamiento de la red, enviando comandos y solicitando informacin al resto de
los de micros denominados esclavos. En general, los dispositivos esclavos responden enviando los
datos solicitados por el maestro o ejecutan comandos
comandos enviados por el maestro.

142

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Una red 485 puede estar formada por hasta 256 dispositivos esclavos a una distancia mxima
aproximada de 1200 metros y cada dispositivo esclavo debe estar identificado por un nmero de
dispositivo.
En general, el microcontrolador maestro se encarga de realizar los procesos principales (ingreso de
datos al sistema, interfaz con el usuario, LCD, display de 7 segmentos, conexin a PC, etc.)
mientras que los dispositivos esclavos, generalmente realizan los procesos distribuidos, es decir,
los procesos locales propios de cada punto de control y pueden contar con un alto grado de
autonoma.
Niple soporta la interfaz DS75176B para realizar las comunicaciones RS485.
La comunicacin RS485 requiere de 3 pines:

Transmisin (TX), configurado como salida


Recepcin (RX), configurado como entrada
Control de TX/RX de la interfaz DS75176 configurado como salida

Cuando un microcontrolador en modo maestro solicita datos a otro microcontrolador en modo


esclavo, las interfaces DS75176 de ambos micros deben conmutar a modo transmisin y recepcin
respectivamente y si el esclavo debe responder con algn dato al maestro, ambos micros deben
cambiar el estado de sus interfaces (maestro en modo recepcin y esclavo en modo transmisin)
mediante el pin de control del la interfaz. Cuando termine el envo de datos al maestro, deben
volver a conmutar el modo de sus interfaces al estado inicial. Niple coordina de manera
automtica el cambio de modo de trabajo (TX/RX) de las interfaces.
A continuacin se muestra un esquema de la estructura de un proyecto tpico de implementacin
de una red RS485.

143

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Modo maestro

Para ingresar a los mdulos de RS485 ingrese a la pestaa Dispositivos/Comunicaciones. Luego


seleccione RS485:

144

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Seleccione el modo de comunicacin,


comunicacin, por mdulo USART o por cdigo. No todos los modelos de
microcontroladores disponen de un modulo USART.
Si selecciona el modo de comunicacin por USART, Niple selecciona de manera automtica los
pines correspondientes a TX y RX e inhabilita los mismos, dado que los mismos ya vienen
preestablecidos para ser utilizados por el mdulo USART.
Luego seleccione la velocidad de comunicacin:

Una vez creado el mdulo de comunicacin RS485, ingrese al rbol de herramientas y seleccione
comunicaciones, una vez seleccionado pedir que seleccionemos el tipo de comunicacin creado.
Inicialice el modulo RS485:

145

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Una vez inicializado el bus, tendremos que configurar en el caso de elegir la accin enviar las
opciones como:

Identificacin del destino


Cantidad de bytes a enviar
Datos a enviar

Opcionalmente puede seleccionar un ID de destino. Esto es ideal para trabajar en una red RS-485
RS
donde cada dispositivo esclavo es identificado por medio de un cdigo ID.
Para interpretar mejor cada una de las funciones disponibles, aclaramos los significados que
damos a las siguientes palabras:

146

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Enviar: enviar una orden a un esclavo a partir de la cual el esclavo realiza una determinada
accin pero esta accin no incluye el envo de una respuesta desde el esclavo hacia el
maestro.

Interrogar: solicitar un dato a un esclavo, en general el esclavo responde inmediatamente


sin realizar ningn proceso antes de enviar los datos solicitados.

Recibir datos: recibe datos desde un esclavo.

Seleccione el registro donde guardaremos


guardaremos los datos y la cantidad de bytes que tiene ese dato.

147

NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC

Interrogar

Como detallamos anteriormente la funcin interrogar solicita un dato a un esclavo, en general el


esclavo responde inmediatamente sin realizar ningn proceso antes de enviar los datos
solicitados.
itados. Para eso seleccionamos la accin Interrogar.

148

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Procedimiento para programacin de los PIC12F6xx


Los micros de las familia de PIC 12F6xx requieren un procedimiento especial para ser
programados. Estos micros requieren de un valor de calibracin ubicado en final de la memoria de
programa que permite garantizar la correcta calibracin del oscilador interno.
Este procedimiento es necesario realizarlo para todos los tipos de programadores de PIC.
Por esto: es necesario recuperar este valor antes de utilizar por utilizar por primera el micro. A
continuacin, vamos a utilizar el PIC12F675 y el software de programacin IC-Prog.
Seleccione el modelo correcto de PIC. En este caso el PIC12F675.

El valor de calibracin puede variar de un chip a otro. Por esto, debe comenzar realizando una
lectura de la memoria flash del micro. Para ello, presione el botn para realizar el proceso de
lectura:

Al finalizar la lectura del micro, se obtiene el contenido de la memoria flash (memoria de


programa). Dado que an el micro no ha sido utilizado, todas las posiciones de memoria deben
contener el valor 3FFF a excepcin de la ltima direccin (0x03FF). Esta ltima direccin de
memoria flash contiene el valor de calibracin del microcontrolador (en formato hexadecimal).

En nuestro ejemplo el valor de calibracin del PIC actualmente utilizado es 0x3428.


Es aconsejable tomar nota del valor de calibracin. Y mejor an, puede grabar el este valor
pegando un papel en la parte inferior del PIC. Este procedimiento es recomendable cuando trabaja
con varios PIC. Recuerde que el cdigo de calibracin puede variar de un PIC a otro.
Cargue el archivo .HEX que desea programar en IC-Prog. Al realizar esto, el valor de calibracin del
PIC16F675 fue sustituido por el valor hexadecimal por defecto $3FFF.

149

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Haga doble clic sobre esta ltima posicin de memoria con el fin de asignar el valor de calibracin
correspondiente.

En la zona de valor hexadecimal 3FFF, ingrese el valor de calibracin anteriormente obtenido. Para
nuestro ejemplo, el valor corresponde a 3428.

Presione el botn OK. Ahora el programa esta listo para grabar el PIC. En la fase de
programacin, IC-Prog comienza leyendo la memoria del PIC con el fin de comparar el contenido
de la ltima direccin con el valor de calibracin ingresado manualmente.
Si el cdigo de calibracin que contiene el PIC es el mismo que el que se encuentra en la ltima
posicin de memoria del archivo a grabar, contina la grabacin y por ltimo muestra el mensaje
que el PIC ha sido grabado correctamente y con esto queda finalizada la grabacin del PIC.

150

NIPLE - PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC

Si el cdigo de calibracin que contiene el PIC no es el mismo que se encuentra la ltima posicin
de memoria del programa a grabar, se muestra un mensaje indicado este problema y pregunta si
desea sobrescribir el valor que actualmente se encuentra en el PIC con el valor contenido en la
ltima posicin del archivo a grabar.

Si responde SI, se graba el valor de calibracin contenido en la ultima posicin del archivo. Si
responde NO, se graba el programa pero no se cambia el valor de configuracin del PIC.
Si Usted no est completamente seguro que el valor contenido en la ltima posicin del archivo
corresponde al valor de calibracin del PIC, seleccione la opcin Cancelar vuelva a realizar la
lectura de la memoria del micro para obtener el valor de calibracin.

Para grabar el mismo programa en distintos microcontroladores, debe actualizar el valor de


calibracin de cada PIC en la ltima posicin de memoria del archivo a grabar.

151