Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Niple v5 6 3 Manual de Usuario
Niple v5 6 3 Manual de Usuario
Versin 5.6
Manual de Usuario
Pgina 1
Contenido
CONTENIDO .............................................................................................................................................................. 2
INTRODUCCIN A LOS MICROCONTROLADORES ...................................................................................... 5
QUE ES UN MICROCONTROLADOR? ........................................................................................................................... 5
LOS MICROCONTROLADORES PIC ........................................................................................................................... 5
Estructura de un microcontrolador ....................................................................................................................... 6
El procesador o CPU ............................................................................................................................................ 6
Memoria ROM ....................................................................................................................................................... 6
Memoria RAM ....................................................................................................................................................... 7
Registros y Bits ...................................................................................................................................................... 8
Lneas de Entrada/Salida (E/S), (Puertos) .......................................................................................................... 11
Mdulos Temporizadores Internos (TMRs) ......................................................................................................... 11
UTILIZANDO UN MICROCONTROLADOR .................................................................................................................... 13
NIPLE: PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC ........................................................................... 14
INTRODUCCIN A NIPLE .................................................................................................................................... 16
FUNCIONES DISPONIBLES ......................................................................................................................................... 17
HERRAMIENTAS ADICIONALES ................................................................................................................................. 19
METODOLOGA DE PROGRAMACIN CON NIPLE ..................................................................................... 21
CONCEPTOS BSICOS .......................................................................................................................................... 24
LA INTERFAZ DE NIPLE............................................................................................................................................. 24
ENTORNOS ............................................................................................................................................................... 28
Crear un nuevo Entorno ...................................................................................................................................... 29
Seleccionar el Entorno actual de trabajo ............................................................................................................ 29
Borrar un Entorno ............................................................................................................................................... 29
BLOQUES.................................................................................................................................................................. 29
Interpretacin de los Bloques .............................................................................................................................. 29
Seleccin de Bloques o Vnculos ......................................................................................................................... 31
Mover un Bloque ................................................................................................................................................. 31
Estirar un Bloque ................................................................................................................................................ 32
Borrar Bloques .................................................................................................................................................... 32
Editar Bloques ..................................................................................................................................................... 33
Duplicar Bloques ................................................................................................................................................. 34
Habilitar e Inhabilitar Bloques ........................................................................................................................... 34
VNCULOS (FLECHAS) .............................................................................................................................................. 35
Crear un Vnculo ................................................................................................................................................. 36
Cambiar el estilo de un Vnculo .......................................................................................................................... 37
Pgina 2
Pgina 4
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)
Procesador o CPU (del ingls Central Prossesing Unit o Unidad Central de Proceso).
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.
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
Pgina 6
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.
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.
Pgina 7
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.
Pgina 8
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.
Pgina 9
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:
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 / ( Frec. Osc. / 4) )
Donde Frec. Osc. 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 uS (microsegundo)
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.
Pgina 11
Pgina 12
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 maquina. Permiten un acceso ms amplio al control fsico de la maquina (hardware).
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.
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.
Pgina 13
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.
De estos 3 pasos, el primero insume el 98 % de tiempo y esfuerzo y es aqu donde Niple le ofrece sus
ventajas.
Pgina 15
Introduccin a Niple
Niple es un 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 consiste 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 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:
Controla la existencia de todos los registros y bits necesarios para el correcto funcionamiento del proyecto en el momento de generar el cdigo Assembler.
Valida los nombres de los registros y los bits en el momento de ser declarados.
Pgina 16
"
12F629 / 675
"
16F716
"
16F84 / 84A
"
16F87 / 88
"
16F630 / 676
"
"
"
"
"
"
"
18F13K50 / 14K50
Velocidades de reloj soportadas: 4 Mhz Interno, 4Mhz , 8 Mhz 10 Mhz,12 Mhz y 20 Mhz.
Funciones disponibles
Las funciones disponibles dependen del modelo de microcontrolador utilizado pero en general podemos
mencionar:
!
Funciones de comparacin de registros y bits (condiciones =, >, <, >=, <=, <>)
Matriz de LED
Manejo de reloj/calendario de tiempo real PCF8583 y ds1307, con control de alarmas por
fecha.
Pgina 17
Comunicaciones USB
Comunicaciones IR
Comparadores analgicos
Modulo RFID
Vector de memoria
Encoder Incremental
Control de potencia AC
Servo Motores
Receptor DTMF
Impresora trmica
Teclado A/D
Teclado Matricial
Teclado AT
Impresora Trmica
Pgina 18 de 133
Interfaz de comunicacin RS232. Comunicaciones a 8 o 16 bits con visualizacin en distintos formatos (decimal, hexadecimal, binario, texto, o modo grfico).
Pgina 19 de 133
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:
1. Datos ASCII
2. Datos Decimal
3. Datos Hexadecimal
4. Datos Binarios
Pgina 20 de 133
Pgina 21 de 133
El objetivo de Niple es utilizar lo menos posible los bloques de instrucciones ya que stos bloques equivalen a programar en cdigo Assembler.
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.
Pgina 22 de 133
y manejo de
las interrupciones.
Subrutinas de usuario: Ud. 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.
Pgina 23 de 133
Conceptos bsicos
La interfaz de Niple
Elementos de la pantalla.
Secciones de trabajo
Niple dispone de 2 secciones de trabajo:
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 la lista desplegable que
se encuentra en la parte superior derecha de la pantalla:
Pgina 24 de 133
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 1 dispositivo con
el mismo ID.
Por defecto Niple le propone un Id de manera automtica, Ud. Puede 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.
Pgina 25 de 133
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.
Pgina 26 de 133
Note como la implementacin un adecuado ID permite identificar ms fcilmente la funcin de cada una
de las memorias lo cual facilitar la programacin dentro del diagrama de flujo ya que se acceder a estas
memorias por su ID.
A continuacin se muestra como se utiliza el ID para acceder a cada una de las memorias dentro del
diagrama de flujo.
Pgina 27 de 133
En la seccin Diagrama de Flujo Ud. 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.
Entornos
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: ste 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.
Pgina 28 de 133
Borrar un Entorno
Para borrar un entorno, seleccione el nombre del entorno a borrar y presione la tecla Suprimir.
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.
Configuracin de un Puerto.
Pgina 29 de 133
Este
bloque
representa
la
BCD a
Decimal.
Consultar Tabla.
Almacenar un dato en la memoria EEPROM.
de
Interrupcin
perifricos.
mdulos
necesarios
para
esperar
un
tiempo
determinado.
Clculo matemtico.
Pgina 30 de 133
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.
Pgina 31 de 133
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.
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.
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).
Pgina 32 de 133
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 click 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.
Pgina 33 de 133
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 (Flechas)
Un vnculo est representado por una Flecha que une a 2
o ms bloques y determina el flujo del proceso.
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.
Pgina 35 de 133
Cada Bloque debe tener solo un Vnculo de salida. A excepcin de los bloques de Decisin
(Rombo) que necesariamente deben tener 2 salida (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. O sea que, no pueden tener flechas que ingresen a stos bloques.
Los bloques Fin de Entorno (elipses amarillas) no pueden utilizarse como Bloques de Origen.
O sea que, no pueden tener flechas que salgan desde stos 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.
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 mouse, arrastre hasta el Bloque de Destino y 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.
Pgina 36 de 133
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.
Pgina 37 de 133
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 (RA0-5; RB0-7; RC0-7), y los bits C y Z, dado
que estos bits 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.
Pgina 38 de 133
Pgina 39 de 133
Rutinas de Usuario
Ud. 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 (subrrutinas). 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.
Pgina 40 de 133
Pgina 41 de 133
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 Windows, o sea que, no requiere de programas especiales para poder visualizarlos o editarlos.
Este tipo de archivos ocupan 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 2 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 Ud. 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.
Pgina 42 de 133
Ejemplo7_Programa Principal.wmf
"
"
Ejemplo7_usr_procesamiento.wmf
"
Ejemplo7_usr_analogico.wmf
"
etc
Pgina 43 de 133
Para crear un proyecto nuevo en Niple seleccione la opcin Nuevo Proyecto del men Archivo:
Pgina 44 de 133
Seleccione la ubicacin donde ser guardado el proyecto, al igual que los comentarios sobre el
mismo.
Pgina 45 de 133
contador
Generado:
contador
Pgina 46 de 133
16 Bits H/L (High/Low): Genera 2 bytes con el mismo nombre ingresado agregando los sufijos
_h y _l para poder procesar valores a 16 bits.
Ejemplo:
Nombre:
contador_h
Generados:
contador_h
contador_l
24 Bits HH / H/L: Genera 3 bytes con el mismo nombre ingresado agregando los sufijos _hh,
_h y _l para poder procesar valores a 24 bits.
Ejemplo:
Nombre:
contador
Generados:
contador_hh
contador_h
contador_l
32 Bits HHH / HH / H/L: Genera 4 bytes con el mismo nombre ingresado agregando los sufijos
_hhh, _hh, _h y _l para poder procesar valores a 32 bits.
Ejemplo:
Nombre:
contador
Generados:
contador_hhh
contador_hh
contador_h
contador_l
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).
Ejemplo:
Nombre:
contador
Generados:
contador_cen
contador_dec
contador_uni
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).
Pgina 47 de 133
contador
Generados:
contador_u_mil
contador_cen
contador_dec
contador_uni
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 en BCD de registros de 16 bits.
Ejemplo:
Nombre:
contador
Generados:
contador_d_mil
contador_u_mil
contador_cen
contador_dec
contador_uni
Fecha: Genera 2 bytes con el mismo nombre ingresado agregando los sufijos _d, _m para
poder guardar valores de fechas.
Ejemplo:
Nombre:
fecha
Generados:
fecha_d
(dia)
fecha_m
(mes)
Hora: Genera 3 bytes con el mismo nombre ingresado agregando los sufijos _h, _m y _s para poder guardar valores de horas.
Ejemplo:
Nombre:
hora
Generados:
hora_h
(horas)
hora_m
(minutos)
hora_s
(segundos)
Serie: Permite declarar de manera automtica una serie de registros con un prefijo incremental
determinado por un intervalo.
Pgina 48 de 133
datos
Generados:
datos_001
datos_002
datos_020
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.
Pgina 49 de 133
Una vez dentro de la declaracin de bits se muestra de manera grafica la posicin y los nombres de los
bits declarados, coloreando de colores los Bits del microcontrolador, los bits inhabilitados y las posiciones libres de creacin para bits.
Pgina 50 de 133
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.
Pgina 51 de 133
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.
Pgina 52 de 133
Pgina 53 de 133
Pgina 54 de 133
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.
Parmetros:
Instruccin:
Instruccin a ejecutar.
Registro:
Destino:
Pgina 55 de 133
Parmetros:
Instruccin:
Instruccin a ejecutar.
BIT:
Parmetros:
Instruccin:
Instruccin a ejecutar.
Literal:
Parmetros:
Pgina 56 de 133
Instruccin:
Instruccin a ejecutar.
Repetir:
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:
Matemticas: clculos matemticos de 8, 16, 24 y 32 bits, conversiones a BCD y clculos de escalado de valores.
Pgina 57 de 133
Asignar Valor
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.
En el campo Bit se selecciona el nombre del BIT al cual se asignar el valor.
Una vez seleccionado el BIT, se muestra una lista de valores de asignacin (0 y 1). Seleccione el valor
deseado.
Por ltimo, puede ingresar un comentario adicionando a la funcin.
Representacin grfica
Sintaxis
Destino = Origen
Esto se interpreta como: al Bit Destino se le asigna valor de Origen.
Ejemplos
Pgina 58 de 133
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 asignar 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 Conceptos Bsicos / Ingreso de Datos.
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 con el campo registro, el botn Registros, le permite declarar un nuevo registro sin necesidad de cancelar la operacin.
Por ltimo puede ingresar un comentario.
Representacin grfica:
Sintaxis:
Destino = Origen
Esto se interpreta como: al registro Destino se le asigna el valor de Origen.
Pgina 59 de 133
Configurar Puerto
En Niple, la configuracin de los puertos se realiza de manera totalmente visual.
En la pantalla de configuracin 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 de cada pin corresponde al modelo de PIC utilizado.
Pgina 60 de 133
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.
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 Ud. tiene pleno conocimiento de la actual configuracin.
Una vez ingresado los datos solicitados presione el botn Ingresar.
Pgina 61 de 133
Sintaxis
Puerto = Valor
Esto se interpreta como: en Puerto escribir Valor.
Donde:
El parmetro Puerto muestra el nombre del puerto:
A = Puerto A
B = Puerto B
C = Puerto C
D = Puerto D
El parmetro Valor corresponde a un registro (valor variable) o a un literal (valor constante).
Ejemplos
Pgina 62 de 133
Seleccione el valor de V Ref (voltaje de referencia) la cula 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 como 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.
Pgina 63 de 133
Seleccione 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 a la configuracin actual del puerto.
Una vez seleccionado el canal por el cual realizar la conversin A/D, Niple le solicita que seleccione una
de las 2 maneras que tiene de realizar la conversin. Las explicaremos brevemente.
Una conversin A/D puede realizarse de 2 maneras:
Pgina 64 de 133
Niple le permite realizar varias lecturas y promediarlas con lo cual se obtienen mediciones ms estables.
Pgina 65 de 133
Si elige la opcin Generar una interrupcin al finalizar la conversin, Niple chequea de forma automtica el estado de los siguientes habilitadores de interrupciones:
PEIE (Habilitador general de interrupciones por perifricos, a los cuales pertenece el mdulo de
conversin A/D).
Si decide no activar estos habilitadores, la interrupcin no se producir y por ende, el fin de la conversin
A/D no ser detectado.
Pgina 66 de 133
Sintaxis:
Registro1, Registro2 = A/D(Nro_Canal)
Donde:
Registro1 = Nombre de un Registro
Registro2 = Nombre de un Registro
Nro_Canal = Nmero de canal en el cual se realiza la conversin A/D.
Ejemplos:
Pgina 67 de 133
Leer EEPROM
Lee un dato de la memoria EEPROM del microcontrolador y lo guarda en un registro.
Seleccione entre las opciones de direccin Fija o Variable.
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, seleccione el registro destino.
Pgina 68 de 133
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 o Variable.
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
Pgina 69 de 133
Comparar Bit
Este bloque evala si el valor del BIT seleccionado es 0 o 1 y deriva el flujo del proceso en funcin del
resultado de la evaluacin.
En el campo BIT a evaluar, seleccione el nombre BIT del que desea comparar el valor y a continuacin
seleccione el valor con 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.
Pgina 70 de 133
Los operadores de comparacin posibles pueden ser =, <, >, <=, >= o <> (distinto de).
Cada vez que debe seleccionar el nombre de un registro y ha olvidado declararlo previamente, Niple 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 2 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.
Pgina 71 de 133
Cada vez que debe seleccionar el nombre de un registro y ha olvidado declararlo previamente, Niple 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 2 bloques de salida:
Pgina 72 de 133
Pgina 73 de 133
Suma
Realiza una operacin matemtica de Suma, utilizando como sumandos un valor literal o un registro. El
resultado es guardado en otro registro.
En Sumando1 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 Sumando1. Repita la operacin anterior en Sumando2.
En Resultado, seleccione el registro donde desea guardar el resultado de la operacin.
Pgina 74 de 133
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 valor 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.
Haga clic en OK.
Pgina 75 de 133
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 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 Dividendo.
Repita la operacin anterior en Divisor.
En Resultado, seleccione el registro donde guardar el resultado de la division
Pgina 76 de 133
Multiplicacin
Realiza una operacin matemtica de Multiplicacin con registros o valores a 8 bits, 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 donde guardar el resultado de la multiplicacin.
Pgina 77 de 133
Incrementar 1
Puede realzar 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.
Esta opcin se trata de un clculo muy rpido y adems ofrece diferentes opciones para control de contadores totalmente automatizado.
Pgina 78 de 133
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
usuarios una vez que se alcanzo el mximo permitido.
La 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.
Decrementar 1
Puede realzar decrementos de registros de manera automtica, Niple decrementa el valor del registro y
controla el acarreo en caso de tratarse de registros mayores a 8 bits.
Pgina 79 de 133
Pgina 80 de 133
Pgina 81 de 133
Pgina 82 de 133
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.
Pgina 83 de 133
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.
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.
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 mostrara 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.
Pgina 84 de 133
Pgina 85 de 133
"
"
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 (DS75176). Y 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.
Pgina 86 de 133
Modo Maestro
Para ingresar a los mdulos de RS485 ingrese a la pestaa dispositivos/comunicaciones.
Luego en la pestaa dispositivos, dirjase a la pestaa comunicaciones:
Y seleccione como tipo de BUS RS485.
Seleccione el modo de comunicacin, por mdulo USART o por cdigo. NO todos los modelos de microcontroladores disponen de un modulo USART.
Pgina 87 de 133
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.
Pgina 88 de 133
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.
Seleccione el registro donde guardaremos los datos y la cantidad de bytes que tiene ese dato.
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.
Para eso seleccionamos la accin Interrogar.
Pgina 89 de 133
Valor Resultado
D48
D49
D50
D51
D52
D53
D54
D55
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 subrrutina 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.
Pgina 90 de 133
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 el botn Ingresar Niple guarda la tabla actual en un archivo con extensin .TBL
A continuacin le solicita que ingrese el nombre del archivo de tabla.
De esta manera podr utilizar la tabla recin creada en
distintos proyectos sin necesidad de volver a declararla cada
vez que la necesite.
Pgina 91 de 133
Pgina 92 de 133
Temporizadores
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 de tiempo que desea.
Seleccione la unidad de tiempo que desee de la lista.
Haga clic en Ingresar.
Pgina 93 de 133
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.
Pgina 94 de 133
Una vez seleccionados todos los parmetros de configuracin presione el botn aceptar.
Pgina 95 de 133
Pgina 96 de 133
Una vez seleccionados los datos a mostrar en los Displays debe seleccionar le tipo de multiplexado que
desea realizar. Tiene 2 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.
Repeticiones: corresponde a la cantidad de veces que realiza el ciclo de visualizacin de todos los
Displays.
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.
Pgina 97 de 133
Pgina 98 de 133
Pgina 99 de 133
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.
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.
Ingrese a la pestaa dispositivos:
Nuevo dispositivo/LCD
Primero debe seleccionar el tipo de display lcd ya sea 16x2, 20x2 o 20x4 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 a 4 bits dado que la diferencia con el bus a 8 bits es insignificante
tanto en el cdigo generado como en le tiempo de ejecucin del programa y, por el contrario, los 4 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 a 4 bits, Niple le ofrece la posibilidad de utilizar los 4 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.
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.
Bsi-
cas/dispositivos/visualizacion/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.
Si por algn motivo Ud. 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.
Una vez seleccionadas todas las opciones de la configuracin del mensaje, se activa la Solapa Mensaje.
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.
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.
Pgina 107 de 133
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.
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.
Encender la pantalla: Visualiza los caracteres. Opcionalmente puede ubicar y reconfigurar el cursor.
Cursor a Inicio: Ubica el cursor al inicio de la pantalla LCD, esto es, al rengln 1, carcter 1. Este comando no incluye opciones.
Configurar el cursor: Permite reconfigurar el cursor. Este comando requiere que necesariamente configure la visualizacin de los caracteres.
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; Ud. 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 microcontro-
Ingrese el nro de dispositivo y por ultimo presione el botn Ingresar en el panel de la derecha
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.
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 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.
Si selecciona la opcin un Registro, debe seleccionar el registro que contiene el valor a grabar en la
memoria.
Memorias RAM
Declaracin del Dispositivo
Ingrese al a seccin Dispositivos, y seleccione el tipo de dispositivo Memoria Ram I2C.
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.
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.
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
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.
Inicializacin
Escritura
Lectura
Inicializacin
El PCF8583 debe ser inicializado, la inicializacin asigna una valor inicia 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 se pone en marcha activando un bit interno del reloj.
Este bit mantiene el reloj en funcionamiento y Niple programa la inicializacin del reloj para vea este bit
para determinar si el reloj ya est funcionando en cuyo caso no se asigna la hora al iniciar el sistema.
Escritura
Puede escribir datos al Reloj de Tiempo Real y asignar los valores de Fecha y Hora del reloj.
Para configurar la Fecha actual, ingrese a la Ficha 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:
- Fijo: entre 01 y 31 inclusive.
- Variable: un registro que contiene el valor del da.
Mes
- Fijo: entre 01 y 12 inclusive.
- Variable: un registro que contiene el valor del mes.
Ao
- Fijo: entre 00 y 03 inclusive.
- Variable: un registro que contiene el valor del ao.
Da Semana
- Fijo: entre Domingo y Sbado.
- Variable: un registro que contiene el valor del da de la semana.
Formato de Hora:
- Fijo: puede seleccionar el formato de 12 o 24 horas.
Horas
Minutos
- Fijo: entre 00 y 59 inclusive.
- Variable: un registro que contiene el valor de los minutos.
Segundos
- Fijo: entre 00 y 59 inclusive.
- Variable: un registro que contiene el valor de los segundos.
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 2 das de semana que puede configurar como alarmas.
Alarma Fechada: se activa cada vez que coinciden los datos de Fecha/Hora configurados como
alarma con los valores de Fecha/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
- Fijo: depende del formato de hora seleccionado. Para el formato de 12 horas, puede seleccionar entre las 00 AM..11 AM y 00 PM..11PM, Y para el formato de 24 horas puede seleccionar entre
0 y 23 inclusive.
- Variable: un registro que contiene el valor de las horas.
Minutos
- Fijo: entre 00 y 59 inclusive.
- Variable: un registro que contiene el valor de los minutos.
Da
- Fijo: entre 01 y 31 inclusive.
- Variable: un registro que contiene el valor del da seleccionado.
Mes
- Fijo: entre 01 y 12 inclusive.
- Variable: un registro que contiene el valor del mes seleccionado.
Horas
- Fijo: depende del formato de hora seleccionado. Para el formato de 12 horas, puede seleccionar entre las 00 AM..11 AM y 00 PM..11PM, Y para el formato de 24 horas puede seleccionar entre
0 y 23 inclusive.
- Variable: un registro que contiene el valor de las horas.
Minutos
- Fijo: entre 00 y 59 inclusive.
- Variable: un registro que contiene el valor del da seleccionado. Debe generar el cdigo correspondiente al da. Los cdigos correspondientes a los das son los siguientes:
Registro Desplazamiento
Ingresar valor y rotar
Esta funcin rota el valor de un BIT en un registro que puede contener hasta 64 bits de tamao, el cual
es tratado como si fuese un registro comn. Cada vez que se produce la condicin de reloj, desplaza un
1(uno) o un 0 (cero), dependiendo de la condicin de entrada se cumple o no, en el registro.
El usuario deber declarar BIT en las posiciones que desee, y luego debe programar que suceder
cuando estos tengan valor 0(cero) o 1(uno). En el ejemplo de la figura, se utiliza el registro de desplazamiento para el control de una mquina envasadora de estuches, que contiene 64 estuches en todo su largo,
y la posicin 61 corresponde al pateador de estuches fuera de peso. Se podra decir que cada vez que est
activada la expulsin de un producto fuera de peso y este BIT sea uno, el sistema de expulsin funcionar.
1) En Tamao del registro, escriba el nmero de bits a utilizar, con un mximo de 64.
2) En Ingrese los datos de la posicin escriba el nombre al BIT que desee y complete el cuadro correspondiente a Funcin.
3) Repita esta operacin hasta declarar la cantidad de bits que desee.
4) Seleccione la seal de Reloj, que producir la rotacin de todos sus bits.
5) Elija si el registro se va a rotar cuando el BIT reloj sea 1(uno) o 0(cero).
6) Seleccione que condicin se tiene que cumplir para que sea introducido un 1(uno) al registro.
7) Haga clic en Ingresar.
Las casillas de verificacin Y o O corresponden a las operaciones lgicas AND y OR inclusiva correspondientemente.
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.
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).
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.
Haga doble clic sobre esta ltima posicin de memoria con el fin de asignar el valor de calibracin correspondiente.
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 ultima 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 Ud. 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.