Documente Academic
Documente Profesional
Documente Cultură
50
Pag 50 Programacion
NIPLE SOFTWARE
Manual de Usuario
Tabla de contenidos
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
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.
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.
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
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
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:
13
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.
/ 4
14
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
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.
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
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
De estos 3 pasos, el primero insume el 98 % de tiempo y esfuerzo y es aqu donde Niple le ofrece
sus ventajas.
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
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.
20
Funciones disponible
Las funciones disponibles dependen del modelo de microcontrolador utilizado pero en general
podemos mencionar:
21
22
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
Datos ASCII
Datos Decimal
Datos Hexadecimal
Datos Binarios
Interfaz USB
24
Instrucciones
Esta categora incluye todas instrucciones en Assembler. A su vez se organizan por tipo de
instruccin:
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
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
27
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
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
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
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:
30
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
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:
33
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
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.
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.
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
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.
Registro
de
desplazamiento.
Ingresar un valor y
rotar.
Llamada a subrutina
(call).
36
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
Estirar un bloque
Borrar bloques
38
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
39
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
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 vnculo est representado por una flecha que une a dos o ms bloques y determina el flujo del
proceso.
41
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.
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
Crear un vnculo
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.
43
Borrar vnculos
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
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.
45
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.
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.
46
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.
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
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
Ejemplo7_Programa Principal.wmf
Ejemplo7_Interrupcin por TMR0.wmf
Ejemplo7_usr_rutina_rtc.wmf
Ejemplo7_usr_sensor_temperatura.wmf
Ejemplo7_usr_eeprom.wmf
Para crear un proyecto nuevo en Niple seleccione la opcin Nuevo Proyecto del men Archivo:
50
NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC
51
Seleccione la ubicacin donde ser guardado el proyecto, al igual que los comentarios sobre el
mismo.
52
NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC
Declaracin de registros
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
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
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.
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
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.
Seleccione el BIT a borrar y presione la tecla Suprimir. Slo puede borrar los 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 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 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
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
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
61
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.
62
63
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:
64
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.
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.
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.
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
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
Conversin Analgica/Digital
igital
70
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:
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
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.
74
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.
76
Clculos matemticos
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
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.
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
84
NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC
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
8
9
D56
D57
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
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
Consultar 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.
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
Puede declarar registros en la memoria EEPROM del PIC para poder acceder a las diferentes
dicciones a travs de un nombre de registro.
92
NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC
Leer EEPROM
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
Presione le botn Ingresar. Si el registro en el que desea guardar los datos no existe, haga clic en
Nuevo.
94
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
Una vez seleccionados todos los parmetros de configuracin presione el botn Aceptar.
96
97
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
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.
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
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
Principales caractersticas:
101
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
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
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 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
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.
106
107
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
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.
Una vez seleccionadas todas las opciones de la configuracin del mensaje, se activa la Solapa
Mensaje.
109
110
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.
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
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
113
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 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:
115
116
Enviar caracteres
117
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
Y por ltimo que seleccione los pines correspondientes a las filas del teclado matricial.
119
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.
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
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.
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
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.
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
125
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.
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
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.
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
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
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
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.
133
NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC
134
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 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
Da:
o
o
Mes:
o
o
Horas:
o
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
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
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.
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
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
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:
143
Modo maestro
144
NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC
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:
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.
147
NIPLE - PROGRAMACIN
RAMACIN VISUAL DE MICROCONTROLADORES PIC
Interrogar
148
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:
149
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
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.
151