Documente Academic
Documente Profesional
Documente Cultură
Para PIC 12F6xx, 16F84, 16F6xx y 16F87x Versin 4.0 Manual de Usuario
Pgina 1 de 239
Importante
Existe una serie de caractersticas, mdulos y funciones que son comunes a todas las versiones de Niple. Tanto el diseo de las pantallas como as tambin la metodologa de utilizacin e implementacin de muchos de estos mdulos no varan de una versi n a otra. Por esto, los manuales de las diferentes versiones comparten una importante cantidad de informacin y si los mismos se imprimen por separado, se estara generando una considerable cantidad de informacin duplicada. Dado que este manual ha sido diseado para incluir las caractersticas de todas las versiones de Niple 4.0 hemos organizado la i n formacin en 2 partes. La primer parte consiste en toda aquella informaci n que resulta com n a todas las versiones, esto es, informacin general y conceptos bsicos sobre micro controladores, introducci n a Niple, principios bsicos y generales de programacin con Niple y la descripci n de los mdulos comunes a todas las versiones. La segunda parte consiste en las caractersticas particulares de cada lnea de microcontroladores y las descripciones de los mdulos especficos de cada versin de Niple.
Pgina 2 de 239
ndice
COMO UTILIZAR ESTE MANUAL ________________________________________________________________________ 2 INTRODUCCIN A LOS M ICROCONTROLADORES _______________________________________________ 10 QUE ES UN MICROCONTROLADOR ? ___________________________________________________________________ 10 LOS MICROCONTROLADORES PIC ___________________________________________________________________ 10 Estructura de un microcontrolador _________________________________________________________________ 11 El procesador o CPU _____________________________________________________________________________ 11 Memoria ROM___________________________________________________________________________________ 11 Memoria RAM ___________________________________________________________________________________ 12 Registros y Bits __________________________________________________________________________________ 13 Lneas de Entrada/Salida (E/S), (Puertos) ___________________________________________________________ 16 Mdulos Temporizadores Internos (TMRs) __________________________________________________________ 16 UTILIZANDO UN MICROCONTROLADOR _________________________________________________________________ 18 NIPLE : PROGRAMACIN VISUAL DE MICROCONTROLADORES PIC__________________________________________ 19 INTRODUCCIN A NIPLE _________________________________________________________________________ 20 FUNCIONES DISPONIBLES ____________________________________________________________________________ 21 HERRAMIENTAS ADICIONALES ________________________________________________________________________ 22 METODOLOGA DE PROGRAMACIN CON NIPLE _______________________________________________ 23 CONCEPTOS BSICOS ____________________________________________________________________________ 24 LA INTERFAZ DE NIPLE ______________________________________________________________________________ 24 ENTORNOS _________________________________________________________________________________________ 25 Crear un nuevo Entorno __________________________________________________________________________ 25 Seleccionar el Entorno actual de trabajo____________________________________________________________ 26 Borrar un Entorno _______________________________________________________________________________ 26 BLOQUES __________________________________________________________________________________________ 26 Interpretacin de los Bloques ______________________________________________________________________ 26 Seleccin de Bloques o Vnculos ___________________________________________________________________ 28 Mover un Bloque_________________________________________________________________________________ 28 Estirar un Bloque ________________________________________________________________________________ 29 Borrar Bloques __________________________________________________________________________________ 29 Editar Bloques ___________________________________________________________________________________ 29 Duplicar Bloques ________________________________________________________________________________ 30 Habilitar e Inhabilitar Bloques ____________________________________________________________________ 31 VNCULOS (FLECHAS ) _______________________________________________________________________________ 32 Crear un Vnculo_________________________________________________________________________________ 33 Cambiar el estilo de un Vnculo____________________________________________________________________ 33 Borrar Vnculos __________________________________________________________________________________ 34
Pgina 3 de 239
Pgina 4 de 239
EEPROM _______________________________________________________________________________________ 64
Leer EEPROM__________________________________________________________________________________ 64 Grabar EEPROM ________________________________________________________________________________ 65
Matemticas_____________________________________________________________________________________ 68
8 Bits _________________________________________________________________________________________ 68 Adicin (8) __________________________________________________________________________________ 68 Sustraccin (8) ________________________________________________________________________________ 69 Divisin (8) __________________________________________________________________________________ 69 Multiplicacin (8) _____________________________________________________________________________ 70 Reg(8) a BCD ________________________________________________________________________________ 70
Pgina 5 de 239
Tablas __________________________________________________________________________________________ 89
Crear una nueva tabla ____________________________________________________________________________ 90 ConsultarTabla__________________________________________________________________________________ 91
Temporizadores__________________________________________________________________________________ 91
Tiempos por Bucles ______________________________________________________________________________ 91
Visualizacin ____________________________________________________________________________________ 92
Display de 7 segmentos ___________________________________________________________________________ 92 Multiplexado _________________________________________________________________________________ 92 Multiplexado (4511) ___________________________________________________________________________ 96 Pantalla LCD __________________________________________________________________________________ 100 Configurar LCD _____________________________________________________________________________ 101 Utilizando ms de una pantalla LCD _____________________________________________________________ 105 Generar un nuevo mensaje _____________________________________________________________________ 106 Visualizando valores variables en un mensaje ______________________________________________________ 110 Mostrar Mensaje _____________________________________________________________________________ 112 Optimizacin del cdigo Assembler ______________________________________________________________ 113 Comandos __________________________________________________________________________________ 113
INTERRUPCIONES __________________________________________________________________________________ 140 Configurar Interrup. _____________________________________________________________________________ 140 Fin de la Interrupcin ___________________________________________________________________________ 140
Pgina 6 de 239
Configurar Interrupciones _______________________________________________________________________ 159 NIPLE PARA PIC 16F84 ___________________________________________________________________________ 160 CARACTERSTICAS TCNICAS DEL PIC 16F84 __________________________________________________________ 160 Conexin del PIC 16F84_________________________________________________________________________ 161 Los puertos del PIC 16F84 _______________________________________________________________________ 161 M DULOS ESPECFICOS DE NIPLE PARA PIC 16F84 _____________________________________________________ 162 Crear un nuevo proyecto. ________________________________________________________________________ 162 Declaracin de Registros ________________________________________________________________________ 163 Declaracin de un registro de usuario_____________________________________________________________ 164 Puertos ________________________________________________________________________________________ 165
Configurar Puerto A ____________________________________________________________________________ 165 Configurar Puerto B_____________________________________________________________________________ 166
Configurar Interrup. _____________________________________________________________________________ 171 NIPLE PARA PIC 16F6XX _________________________________________________________________________ 172 CARACTERSTICAS TCNICAS DE LOS PIC 16F6XX______________________________________________________ 172
Pgina 7 de 239
Configurar el Puerto B __________________________________________________________________________ 186 Comparadores Analgicos _______________________________________________________________________ 187 El Mdulo CCP_________________________________________________________________________________ 190
Modo Captura _________________________________________________________________________________ 191 Modo Comparacin _____________________________________________________________________________ 195 Modo PWM ___________________________________________________________________________________ 200
Configurar Interrup. _____________________________________________________________________________ 206 NIPLE PARA PIC 16F87 X __________________________________________________________________________ 207 CARACTERSTICAS TCNICAS DE LOS PIC 16F87X ______________________________________________________ 207 Conexin de los PIC 16F87x _____________________________________________________________________ 208 Los puertos del PIC 16F87x______________________________________________________________________ 209 M DULOS ESPECFICOS DE NIPLE PARA PIC 16F87X ____________________________________________________ 210 Crear un nuevo proyecto. ________________________________________________________________________ 210 Declaracin de Registros ________________________________________________________________________ 212
Declaracin de un Registro de Usuario ______________________________________________________________ 213
Pgina 8 de 239
Pgina 9 de 239
incorporan como
distintos ser;
pueden
conversores analgico/digital (A/D), mdulos PWM (control por ancho de pulso), mdulos de comunicaciones seriales o en paralelo, y ms. Todo esto lo podemos encontrar dentro del mismo circuito integrado. Cada vez existen ms productos que incorporan microcontroladores con el fin de aumentar sustancialmente sus prestaciones, reducir su tamao y costo, mejorar su confiabilidad y disminuir el consumo de energa.
Pgina 10 de 239
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 ins trucciones 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 r epertorio 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 des tinados 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 previs ta.
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 11 de 239
Memoria RAM
La memoria RAM es una memoria voltil, es decir, que se pierden los datos al d esconectar 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 12 de 239
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 q ue 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 13 de 239
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 bas e 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 14 de 239
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:
Esto permite representar nmeros grandes utilizando unos pocos dgitos. Por ejemplo:
En la programacin de microcontroladores, es habitual utilizar los 3 sistemas de numeracin (Binario, Decimal y Hexadecimal) dependiendo del proceso que necesitemos realizar. Por eso es fundamental tener claros estos conceptos.
Pgina 15 de 239
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 16 de 239
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 r esultado 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.
Pgina 17 de 239
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 18 de 239
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 proces o 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 program ador. De estos 3 pasos, el primero insume el 98 % de tiempo y esfuerzo y es aqu donde Niple le ofrece sus ventajas.
microcontroladores, todava la programacin resulta muy compleja por el alto grado de abstraccin que implica. Niple es un entorno de desarrollo visual para programacin de microcontroladores PIC. Con Niple, el usuario slo disea un diagrama de flujo de manera totalmente visual y en alto nivel de programacin, en lenguaje humano, y el software genera el cdigo Assembler de manera automtica. Adems, el software controla y supervisa todo el proceso de diseo, advirtiendo al usuario sobre posibles errores en la lgica del programa que se est diseando. Esta ventaja no la tiene ningn otro lenguaje de progr amacin.
Pgina 19 de 239
El concepto de la programacin es que el usuario se concentre en qu es lo que quiere hacer, y Niple sabe cmo hacerlo. Es decir que el usuario slo se dedica a disear la estructura lgica del proceso que desea realizar y el software se encarga de resolver todo el desarrollo del cdigo Assembler , controlando hasta el ms mnimo detalle.
Introduccin a Niple
Niple es un Entorno Visual de Desarrollo para p rogramacin 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. Disee 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 m s experimentados que quieran aumentar su productividad. Entre las principales prestaciones que Niple ofrece podemos destacar:
Entono Visual de Alto Nivel de programacin: Niple ofrece una metodologa de programacin totalmente visual y en lenguaje humano. Bloques estandarizados, lo cual facilita la interpretacin del proyecto. Ud. se concentra en Que Hacer y Niple se encarga de Como Hacerlo. Control automtico de errores lgicos. Supervisa el ingreso de datos.
Control automtico de registros y bits: Controla la existencia de todos los registros y bits necesarios para el correcto funcionamiento del proyecto en el momento de generar el cdigo Assembler. Controla que no existan nombres de registros y bits duplicados. Valida los nombres de los registros y los bits en el momento de ser declarados.
Pgina 20 de 239
Generacin del Cdigo Assembler: Control automtico de la sintaxis del cdigo generado. Control automtico del cambio de pgina. Generacin automtica de etiquetas.
Modelos de PIC soportados por Niple: Niple para PIC 12F6xx 12F629 12F675
Funciones disponibles
Las funciones disponibles dependen del modelo de microcontrolador utilizado pero en general podemos mencionar: Seleccin del cristal utilizado (4, 10 o 20 Mhz) Asignacin de valores a registros y bits Configuracin y manejo de interrupciones Manejo de rutinas de usuario Confi guracin, Lectura y Escritura de puertos Lectura / Escritura de EEPROM interna del PIC Funciones de comparacin de registros y bits (condiciones =, >, <, >=, <=, <>) Manejo automtico de tablas Temporizadores por bucle (de tiempo fijo o variable)
Pgina 21 de 239
Herramientas adicionales
Interfase de comunicacin RS232. Comunicaciones a 8 o 16 bits con visualizacin en distintos formatos (decimal, hexadecimal, binario, texto, o modo grfico).
Pgina 22 de 239
El objetivo de Niple es utilizar lo menos posible los bloques de instrucciones ya que stos bloques equivalen a programar en cdigo Assembler .
Rutinas Bsicas : Las rutinas bsicas son mdulos prediseados y se encargan de resolver un proceso en particular (una configuracin, una comparacin, un clculo, etc.). Ud. puede formar es tructuras 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: Asignacin de valores
Pgina 23 de 239
Interrupciones: En sta categora se encuentran todas las funciones de configuracin y manejo de las interrupciones. Niple presenta las interrupciones disponibles de acuerdo al m odelo de PIC que se est utilizando. 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. Es ta categora incluye las funciones de declaracin e insercin de llamadas a rutinas de usuario.
Conceptos bsicos
La interfaz de Niple
Elementos de la pantalla.
Pgina 24 de 239
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 Progr ama Principal y no puede ser borrado. Entornos de Subrutinas (rutinas de usuario): Son funciones o procedimientos generados por el usuario. Debe asignarles un nombre nico dentro del proyecto. No tiene un lmite mximo en la cantidad de entornos de subrutina que puede incluir en un proyecto. Las subrutinas pue den devolver o no un resultado (Funciones y Procedimientos respectivamente). Para ejecutar una subrutina debe ser llamada o invocada. Entornos de Interrupciones: Son funciones o procedimientos que se ejecutan al producirse un llamado a interrupcin. Cada interrupcin tiene un nombre predeterminado y el usuario no puede cambiar ste nombre. La cantidad mxima de Interrupcin corresponde al nmero de interrupciones de incluye cada modelo de microcontrolador. En tiempo de ejecucin, se accede al entorno de una interrupcin de manera automtica, al generarse un llamado a interrupcin. O sea que no se puede predecir el momento exacto en que se producir una interrupcin. Esto afecta al sistema de chequeo de errores.
Pgina 25 de 239
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 una parte del proceso. Cada bloque presenta informacin segn su forma, su color y el texto que contiene, e identifican una funcin en particular.
Salida de datos. Escribir un valor en un puerto Inicio Fin. Se utiliza como inicio o fin de un entorno. (en paralelo, no serial)
Asignacin.
Este
bloque
representa
la
Ingreso de datos. Leer el valor de un puerto (en paralelo), modo Captura, modo Comparacin. Almacenar un dato en la memoria EEPROM.
Pgina 26 de 239
Condicin. Evala una condicin y deriva la ejecucion del programa en funcin del resultado de la evaluacin.
Comunicaciones Seriales RS232. Envo y recepcin de un conjunto de datos por RS232 mediante protocolo de usuario diseado en Niple. Configuracin. Este bloque corresponde a configuracin perifricos. de Interrupcin y mdulos
Temporizacin por bucle. Calcula y genera los bucles Activar Desactivar Interrupciones. necesarios para esperar un tiempo
determinado.
Clculo matemtico.
BCD a
Pgina 27 de 239
Mover un Bloque
Seleccione el bloque que desea desplazar y sin soltar el botn izquierdo del mouse y arrastr e 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 a ctivado. 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 origi nal. b) Modo Arrastrar bloques Activado. c) Modo Arrastrar bloques Desactivado Utilice el comando Edicin/Deshacer para restablecer la posicin anterior del bloque.
Pgina 28 de 239
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).
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.
Pgina 29 de 239
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 cheque no se realizar.
Duplicar Bloques
Al duplicar un bloque se realiza una copia exacta del bloque seleccionado.
Muchas veces, la opcin Duplicar un Bloque en combinacin con la Edicin de bloques puede ayudarle a ahorrar tiempo de diseo, ya que es comn realizar operaciones similares en distintas partes de proyecto, donde slo cambian algunos parmetros. Ud. puede realizar una copia de la estructura lgica del programa y luego editar los bloques necesarios. Esto le resultara ms cmodo que insertar todos los bloques nuevamente.
Para duplicar un bloque, seleccinelo y luego haga un clic con el botn derecho del mouse para que se presente el men contextual, y elija la opcin Duplicar. Adems, puede duplicar uno o ms bloques a la vez.
Pgina 30 de 239
Un bloque deshabilitado no es considerado en el momento del chequeo de errores en lnea y tampoco genera el cdigo Assembler .
No puede inhabilitar bloque correspondiente a una Decisin (smbolo Rombo) dado que estos bloques tienen 2 salidas. Para Habilitar un bloque, seleccinelo y luego haga un clic con el botn derecho del mouse para que se presente el men contextual, y elija la opcin Habilitar.
Pgina 31 de 239
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.
Le secuencia de ejecucin del programa es; primero se ejecuta el Bloque de Origen y a continuacin el Bloque de Destino. Existe un criterio a tener en cuenta a la hora de realizar vnculos entre bloques y Niple lo supervisa de manera automtica:
Cada Bloque debe tener solo un Vnculo de salida. A excepcin de los bloques de Decisin (Rombo) que necesariamente deben tener 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 Des tino. 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 c odificacin del Assembler.
Pgina 32 de 239
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 33 de 239
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.
Esto garantiza que el registro a utilizar ha sido previamente 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 / Modo de Usuario.
En general, junto a la lista de registros, Niple presenta el Botn Nuevo. Este botn le carga la pantalla de declaracin de registros. De sta manera, si necesita ingresar como parmetro el nombre de un registro que an no ha sido declarado, tiene la posibilidad de declararlo y seleccionarlo sin necesidad de cancelar la pantalla actual.
Al carga r la pantalla declaracin de Registros puede declarar ms de un registro nuevo antes de volver a la funcin actual. Pero al retornar, Niple seleccionar de manera automtica en la lista, el nombre del registro seleccionado al momento de cerrar la pantalla .
Pgina 34 de 239
Cuando ingresa un nmero en formato Binario, Niple lo acepta como vlido slo cuando se han ingres ado los 8 dgitos que conforman el nmero. Esto garantiza la correcta interpretacin del valor ingresado.
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.
Para conmutar entre Modo de Usuario Inicial y Experto ingrese al men Opciones/Nivel de Usuario.
Pgina 35 de 239
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 declar acin e insercin de llamadas a rutinas de usuario.
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). 3) Presione el botn derecho del mouse para mostrar el men contextual y seleccione la opcin Exportar Rutina. 4) Niple solicita el nombre del archivo donde guardar la rutina de usuario. Por defecto, sugiere el nombre de la rutina de usuario.
Pgina 36 de 239
Pgina 37 de 239
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 PIC 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 16F87x y realiza una lectura de un canal A/D y luego la importa a un proyecto de Niple apara 16F6xx, Niple advierte del posible error.
Pgina 38 de 239
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 un a 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 . Por ejemplo, en el siguiente proyecto sern
Pgina 39 de 239
Declaracin de Registros
Para consultar sobre la declaracin de registros remtase la seccin correspondiente a las rutinas especficas de cada versin de Niple.
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
Para consultar sobre la declaracin de Bits remtase a la seccin correspondiente a los mdulos especficos de cada versin de Niple.
A continuacin Niple pregunta si desea cambiar el nombre del BIT actualmente seleccionado. Si responde afirmativamente se muestra la pantalla Renom brar un Bit donde se presentan el nombre y la descripcin del BIT actualmente seleccionado. Ingrese el nuevo nombre del registro y la nueva descripcin y a continuacin presione el botn Renombrar.
Pgina 40 de 239
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 nom bre 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 man era 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.
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.
Pgina 41 de 239
Pgina 42 de 239
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.
ADDWF
Suma el valor de W y un registro.
Destino
(d): Indica
en
donde
ser
Pgina 43 de 239
Parmetros:
Registro
F: Nombre de registro a
combinar con W.
CLRF
Borra el contenido de un registro.
Parmetros:
Registro limpiar.
F: Nombre de registro a
CLRW
Borra el contenido del registro W.
Esta
instruccin
no
contiene
parmetros.
Pgina 44 de 239
Parmetros:
en
donde
ser
DECF
Decrementa el valor de un registro en 1.
Parmetros:
Registro
F:
Nombre de registro a
decrementar.
DECFSZ
Decrementa un registro y evala si el resultado es igual a 0. Si el valor del registro decrementado es 0, el diagrama de flujo sigue por el camino del SI, de lo contrario toma el camino del NO.
Parmetros:
Registro
F:
Nombre de registro a
decrementar.
Pgina 45 de 239
Parmetros:
Registro
F:
Nombre de registro a
incrementar.
INFCSZ
Incremente un registro. Si el valor de un registro y evala si el resultado de igual a 0.
Parmetros:
Registro
F: Nombre de registro a
incrementar.
IORWF
Realiza una operacin lgica OR Inclusive entre W y un registro.
Parmetros:
Registro
F: Nombre de registro a
utilizar en la operacin.
Pgina 46 de 239
Parmetros:
Registro
F: Nombre de registro a
MOVWF
Mueve el contenido del registro W a otro registro.
Parmetros:
RLF
Rota un BIT el contenido del registro haca la izquierda, incorporando el Carry al registro.
Parmetros:
Pgina 47 de 239
Parmetros:
SUBWF
Resta el valor de un registro (F) al valor de W.
Parmetros:
SWAPF
Intercambia los nibbles bajo y alto de registro.
Parmetros:
Registro modificar.
F: Nombre de registro a
Pgina 48 de 239
Parmetros:
Registro
F: Nombre de registro a
utilizar en la operacin.
Parmetros:
BSF
Setea un BIT, o sea que, lo pone a 1.
Parmetros:
Pgina 49 de 239
Parmetros:
BTFSS
Consulta el valor del BIT, si es 1, se descarta una instruccin y ejecuta la siguiente.
Parmetros:
Parmetros:
Pgina 50 de 239
Parmetros:
IORLW
Realiza una operacin lgica OR inclusiva entre el literal (K) y W.
Parmetros:
MOVLW
Asigna el valor del literal (K) a W.
Parmetros:
Pgina 51 de 239
Parmetros:
XORLW
Realiza una operacin lgica OR exclusiva entre W y el valor del literal (K).
Parmetros:
Pgina 52 de 239
Parmetros:
SLEEP
El procesador es puesto en modo Standby con el oscilador detenido.
Rutinas Bsicas
Las rutinas bsicas son mdulos prediseados y se encargan de resolver un proceso en particular (una configuracin, una comparacin, un clculo, etc.). Puede formar estructuras lgicas muy complejas de manera rpida y sencilla a partir de la combinacin de rutinas bsicas. Utilice las rutinas bsicas para programar dentro de cualquier Entorno. Las rutinas bsicas estn organizadas por tipo de rutina:
Iniciar Programa
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 ingresar ningn vnculo. Solo acepta un vnculo de salida.
Pgina 53 de 239
Niple v4.0 - Programacin Visual de Microcontroladores 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 Nombre del BIT se selecciona el nombre del BIT al cual se asignar el valor. Al seleccionar el BIT, Niple presenta informacin seleccionado: En la primera lnea se muestra el nmero de BIT y el registro al cual pertenece. Y en la segunda, se muestra la descripcin o comentario correspondiente al BIT. 2 renglones referida al con BIT
Una vez seleccionado el BIT, se muestra una lista de valores de asignacin (0 y 1). Seleccione el valor deseado. Por ultimo, puede ingresar un comentario adiciona a la funcin.
Puede
filtrar
la
lista
de
Nombres de Bit para que slo muestre los bits declarados en un registro determinado. Esto resulta muy prctico cuando est
trabajando en Modo de Usuario Experto (se muestran todos los bits del sistema), o cuando ha declarado Usuario. muchos Bits de
Si desea filtrar la lista de bits, active la casilla de verificacin Por registro y seleccione el nombre del registro. De manera automtica se mostrarn todos los bits declarados en el registro seleccionado. Representacin grfica
Pgina 54 de 239
Ejemplos
corresponde al Destino. Si desea asignarle un valor a un registro que an no ha sido declarado, mediante el botn Nuevo 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. En la sintaxis corresponde al Origen. Las opciones disponibles son: Un valor Literal. Esto es, un valor constante. Niple controla de manera automtica el ingreso de lit erales, 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 un 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 Nuevo, 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 55 de 239
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 Ud. 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). Lo primero que debe seleccionar es el tipo de dato desea escribir en el puerto. Seleccione el tipo de dato y el valor a escribir en el puerto. Niple supervisa la configuracin del puerto seleccionado de manera automtica y advierte si el puerto no est completamente com o 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.
Pgina 56 de 239
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 57 de 239
Recuerde que est actuando sobre todo el mdulo de conversin A/D independientemente de la cantidad de canales configurados. O sea que, si habilita el mdulo, est habilitando todos los canales disponibles y cada canal no puede ser habilitado o inhabilitado de manera independiente.
Representacin Grfica:
Donde: El parmetro Estado puede adoptar algunos de los siguientes valores: Activado Desacti vado Ejemplos: Activar el mdulo A/D Desactivar el mdulo A/D
Conversin A/D
Este mdulo es vlido para los modelos de PIC de la lnea 16F87x y para el modelo de PIC 12F675.
Para poder realizar una conversin Analgica/Digital (A/D) primero debe realizar los siguientes pasos: Configurar los canales de lectura A/D. Para esto, consulte configuracin del puerto A. Activar el mdulo de conversin A/D. Para esto consulte Activar/Desct. A/D.
Una vez configurado y activado el mdulo A/D, est en condici ones de realizar una conversin A/D.
Pgina 58 de 239
Configuracin actual del puerto Cantidad de canales A/D disponibles El estado actual del mdulo de conversin A/D (Activado o Desactivado).
Lo primero que Niple le solicita, es que 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, N iple 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. A continuacin se presentan algunos ejemplos de sta caracterstica. En cada caso, compare la informacin de la configuracin actual del Puerto, con la cantidad de canales A/D disponibles, y con la lista de canales A/D que Niple ofrece como canales disponibles.
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.
Pgina 59 de 239
1) Mediante un bucle; esperando hasta que finalice la conversin: El PIC no realiza ninguna otra tarea que no sea esperar a que el BIT go_done (BIT 2 del registro a dcon0) se ponga en 0, lo cual indica que la conversin ha finalizado.
2) Iniciar la conversin y generar una interrupcin al finalizar la conversin A/D: El PIC inicia la conversin y contina ejecutando el resto del cdigo mientras se realiza la conversin A/D. Cuando termina de realizar la conversin se produce una interrupcin por Fin de Conversin A/D.
Elija la manera de realizar la conversin que Ud. desea, seleccionando la opcin correspondiente. Sea cual fuere la opcin que Ud. elija, a continuacin Niple le solicita que seleccione los registros donde guardar el resultado de la conversin A/D. Si bien el conversor A/D del 12F675, realiza la conversin AD con una resolucin a 10 bits, Ud. puede seleccionar la resolucin de con la cual realizar la conversin A/D, que puede ser a 8 o a 10 Bits.
Si selecciona la resolucin a 8 bits, el sistema configura de manera automtica la alineacin del r esultado de la medi cin hacia la izquierda y toma como resultado el registro Alto, ignorando los 2 bits menos significativos.
Pgina 60 de 239
Niple le permite realizar varias lectu ras y promediarlas con lo cual se obtienen mediciones ms esta bles.
Para esto, active la opcin Realizar promedio. Seleccione la cantidad de mediciones que desea realizar. Niple realiza todas las lecturas y realiza el promedio de manera automtica. Ni ple le da la opcin de esperar un tiempo entre las mediciones seleccionadas.
Pgina 61 de 239
PEIE (Habilitador general de interrupciones por perifricos, a los cuales pertenece el mdulo de conversin A/D).
Si
alguno
de
los
habilitadores
anteriormente
mencionados NO se encuentra Activado, Niple ofrece la opcin de activarlo para que la interrupcin se produzca normalmente. producir. El modo de conversin por interrupcin no permite realizar el promedio automtico. De lo contrario, la interrupcin no se
Si decide no activar estos habilitadores, la interrupcin no se producir y por ende, el fin de la conversin A/D no ser detectado.
Al presionar el botn Ingresar, Niple realiza distintas acciones segn del tipo de conversin A/D seleccionado (por Bucles o por Interrupcin).
Pgina 62 de 239
En la siguiente imagen se muestran los bloques insertados de manera automtica dentro del entorno Interrupcin por A/D.
Pgina 63 de 239
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:
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 guardar la el lista Registro donde el
dato,
seleccione
registro destino.
Si el registro en el que desea guardar los datos no existe, haga clic en Nuevo.
Pgina 64 de 239
En escribir,
posicin
de
a las o
seleccione de
opciones Variable . Si
direccin
elige
la
opcin
variable,
seleccione de la lista el registro en donde est contenida la direccin. En Valor a grabar , seleccione entre las opciones un literal o un registro. Si selecciona la opcin un
registro, seleccione de la lista el registro que desea guardar en la EEPROM Presione le botn Ingresar .
Si el registro en el que desea guardar los datos no existe, haga clic en Nuevo.
Funciones Lgicas
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 o 1 y deriva el flujo del proceso en funcin del resul tado 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. Puede filtrar todos los bits correspondientes a un registro determinado.
Pgina 65 de 239
El pri mer 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 qu e, en tiempo de ejecucin, el proceso tomara este camino si el resultado de la evaluacin es falso.
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
Pgina 66 de 239
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 Nuevo que se encuentra a la derecha de la lista de registros correspondiente. Este bloque debe ser vin culado 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 cor responde a la salida NO, es decir que, en tiempo de ejecucin, el proceso tomara este camino si el resultado de la evaluacin es falso.
respecto a un valor literal (constante) o con el valor de otros 2 registros (variable). Seleccione el tipo de valor de comparacin marcando en la casilla de opcin correspondiente. Pgina 67 de 239
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 Nuevo 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 ejecu cin, el proceso tomar este camino si el resultado de la evaluacin es falso.
Pgina 68 de 239
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 entre las
opciones en el registro W o en otro registro. Si selecciono la opcin en otro registro, seleccione de la lista el registro en donde quiere guardar el resultado de la oper acin. Haga clic en Ingresar.
Divisin (8)
Realiza una operacin matemtica de divisin, utilizando como divisor valores de un literal o un registro. El resultado puede ser guardado en W o 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 Di videndo. Repita la operacin anterior en Divisor. En Resultado, seleccione entre las opciones en el registro W o en ot ro registro.
Si selecciono la opcin en otro registro, seleccione de la lista el registro en donde quiere guardar el resultado de la operacin.
Pgina 69 de 239
Si seleccion la opcin el valor de un Registro, seleccione de la lista el registro a utilizar como Multiplicando. Repita la operacin anterior en
Si selecciono la opcin en otro registro, seleccione de la lista el registro en donde quiere guardar el resultado de la operacin.
Reg(8) a BCD
Realiza el clculo de conversin de un nmero a BCD, es decir, descomponer el valor contenido en un registro a unidad, decena y centena.
Seleccione el registro que contiene el valor a descomponer. Seleccione los registros donde desea almacenar el resultado de la
descomposicin a U, D y C.
Pgina 70 de 239
seleccione de la lista el registro a utilizar como Sumando1. Repita la operacin anterior en Sumando2.
En Resultado, seleccione entre las opciones en el registro W o en otro registro. Seleccione los registros donde guardar el resultado de la operacin. Haga clic en Ingresar.
Sustraccin (16)
Realiza una operacin matemtica de sustraccin con valores a 16 bits, utilizando como numerador o denominador un valor literal o el valor de 2 registros. El resultado es guardado en ot ros 2 registros. En Denominador seleccione entre las
seleccione de la lista los registros a utilizar como Denominador. Repita la operacin anterior en Sustraendo. Seleccione los registros donde guardar el resultado de la operacin.
Pgina 71 de 239
utilizando como multiplicador valores de un literal o el valor contenido en 2 registros. El resultado puede es guardado en 4 registros. En Multiplicando seleccione entre las opciones un literal o el valor de 2 Registros.
Si
seleccion a
la
opcin
Registros,
Repita
la
operacin
anterior
en
Seleccione
los
registros
donde
desea
Pgina 72 de 239
descomponerlo
centena,
Seleccione
los
registros
donde
desea
Escalar
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 bits entre 0 y 1023. Ahora suponga que desea controlar el ancho de pulso del PWM a 5000 Hz. El ancho de puls o es controlado por medio de un valor a 10 bits contenido en los registros
AnchoPulso1 y AnchoPulso2. A 5000 Hz el rango vli do para el control del ancho de pulso esta comprendido entre 0 y 200. Partiendo de esto, Ud. ne cesita escalar el valor contenid o en los registros Dato1 y Dato2 de un rango 0..1023, a un rango 0..200 y asignarlo a los registros
AnchoPulso1 y AnchoPulso2. De esta manera se obti ene un valor proporcional, es decir, el mismo porcentaje o relacin entre el rango de destino con respecto al rango de origen.
Pgina 73 de 239
RS485
Si bien el mdulo RS485 est disponible en todas las versiones de Niple, en los modelos 16F84 y los modelos de la lnea 12F6xx no se encuentra la opcin de comunicacin por USART dado que estos modelos de PIC no disponen en un mdulo USART. Dado que, salvando la diferencia antes mencionada, el mdulo de comunicacin RS485 se utiliza de la misma manera y cuenta con las mismas opciones, hemos decidido poner este bloque en la seccin de rutinas comunes.
La comunicacin RS2485 le permite conectar varios microcontroladores en red. Generalmente una red de microcontroladores est formada por un micro llamado Maestro, el cual se encarga de organizar el funcionamiento de la red, enviando comandos y solicitando informaci n al resto de los de micros denomina dos esclavos . En general , los dispositivos esclavos responden enviando los datos solicitados por el maestro o ejecutan comandos enviados por el maestro. Una red 485 puede estar formada por hasta 256 dispositivos escla vos a una distancia m xima aprox. de 1200 metros y cada dispositivo esclavo debe estar identificado por un nmero de dispositivo. En general, el micro maestro es un modelo de micro grande y 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 son micros ms pequeos que realizan los procesos distribuidos, es decir, los procesos locales propios de cada punto de control y pueden contar con un alto grado de au tonoma.
La comunicacin RS485 requiere de 3 pines: un pin de Transmisin (TX) , configurado como salida un pin de Recepcin (RX) , configurado como entrada un pin de control de TX/RX de la interfaz DS75176 configurado como salida
Cuando un microcontrolador en modo Maestro solicita datos a otro microcontrolador en modo Esclavo las interfaces (DS75176) de ambos micros deben conmutar a modo Transmisin y Recepcin respectivamente y si el esclavo debe responder con algn dato al maestro, ambos micros deben cambiar el estado de sus interfaces (Maestro en modo recepcin y Esclavo en modo Transmisin) mediante el pin de control del la interfaz (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.
Pgina 74 de 239
Modo Maestro
Para ingresar a los mdulos de RS485 ingrese al rbol de herramientas como lo muestra la imagen de la derecha. Se presenta la pantalla Comunicacin RS485 Dispositivo Maestro. Niple le permite utilizar el mdulo USART para realizar las comunicaciones RS485. Seleccione el modo de comunicacin , por mdulo USART o por cdigo.
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 pre establecidos para ser utilizados por el mdulo USART.
Pgina 75 de 239
Es recomendable utilizar el mdulo USART para el tipo de comunicacin RS232, por ejemplo para recibir datos desde una PC, lo cual s puede resultar totalmente imprevisible y la interrupcin por USART resulta de vital importancia.
En el modo de comunicacin por cdigo Niple le permite seleccionar los pines de TX y RX. Dado que no se utiliza el mdulo USART del PIC En ambos modos de comunicacin, debe seleccionar el pin de seleccin de TX/RX.
Niple soli cita este el tipo de conexin ya que en una comunicacin Punto a Punto el maestro se cone cta con un esclavo de manera directa, es decir que no se configura una red con varios esclavos, sino que se conecta un solo esclavo, y eso implica que no es necesario asignarle un nro. de esclavo y por ende, Niple no requiere este dato.
Pgina 76 de 239
Al seleccionar la opcin de conexin, Niple ya le puede mostrar la configuracin del hardware correspondiente.
Para interpretar mejor cada una de las f unciones disponibles, aclaramos los significamos que damos a las siguientes palabras: Comando: Enviar una orden a un esclavo a partir de la cual el esclavo realiza una determ inada accin pero esta accin no incluye el envo de una respuesta desde el esclavo hacia el maestro. Interrogar: Solicitar un dato a un esclavo, en general el esclavo responde inmediatamente sin realizar ningn procesos antes de enviar los datos solicitados. A partir de este punto, las opciones de la pantalla dependen de la funcin s eleccionada Pgina 77 de 239
Interrogar esclavo: Enva uno o ms comandos a modo de solicitud de datos donde el esclavo debe
Recibir datos: Recibe datos desde un esclavo. Muestra la solapa Recibir datos.
Pgina 78 de 239
Enviar Comandos En esta seccin se indican cuales son los comandos o datos a enviar. Como mencionamos anteriormente, si selecciona el modo de conexin Punto a punto no necesita especificar el nro. de esclavo.
Pero si ha seleccionado el modo de conexin en Red deber indicar el nro de esclavo al cual va a enviar el dato o comando.
El nro de esclavo puede ser un valor Fijo (un literal) o un valor variable (un r egistro). Si selecciona el tipo de valor Fijo , estar haciendo que el PIC enve el
Mientras que si elige la opcin Variable el PIC puede enviar el dato o comando a diferentes esclavos segn el valor que
contenga el registro seleccionado como variable. De esta manera puede generar una estructura cclica para enviar comando o consultas a diferentes esclavos modificando solo el valor del regis tro seleccionado como variable.
A continuacin debe seleccionar la cantidad de comandos que desea enviar. Niple le permite enviar hasta 5 comandos l o cuales representan hasta 5 niveles de comandos.
Pgina 79 de 239
En este caso vamos a disear un protocolo de comunicacin formado por 3 niveles de comandos. Nivel 1 = Comando. Indica el comando que debe ejecutar el esclavo cuyos valores posibles pueden ser: 01 Habilitar sensor 02 Inhabilitar sensor 03 Leer sensor
Nivel 2 = Tipo de sensor. Este valor es de tipo parmetro. 01 Tipo sensor A 02 Tipo sensor B
El primer nivel de comandos es el Comando propiamente dicho y los 2 niveles restantes podemos interpretarlos como Pa rmetros los cuales indican sobre qu sensor se desea ejecutar el comando.
De esta maner a, por ejemplo: Para activar el sensor Tipo A, Nro. 1 del primer esclavo debe enviar la siguiente secuencia de coman dos 01, 01, 01, 01. Para leer el valor del sensor Tipo A, Nro.1 del esclavo 2 debe enviar la siguiente secuencia de comandos 03, 02, 01, 01.
Pgina 80 de 239
parmetros), con lo cual se puede generar una gran cantidad de comandos o aplicar una gran cantidad de parmetros lo cual facilita el desarrollo proyectos fcilmente escalables. Niple administra el envo de todos los datos de comandos de manera automtica. Seleccione la cantidad de comandos que desea enviar.
Recibir Respuesta En esta seccin se indica como reci bir los datos que envan los esclavos. Recuerde que esta seccin solo esta disponible para las funcione Interrogar
Primero ingrese la cantidad de registros que espera recibir desde el dispositivo esclavo. La grilla de r e cepcin de datos se ajusta automticamente la cantidad de datos ingresados.
Pgina 81 de 239
donde guardar cada uno de los bytes e r cibidos. Para esto haga un clic en la celda de la grilla correspondiente al byte a recibir.
Checksum Niple le permite calcular el checksum de manera automtica. Para esto active la opcin Calcular e incluir el checksum al enviar y recibir los datos que se encuentra en la seccin Configuracin . Al seleccionar la opcin de checksum, se agregar automticamente 2 registros, que son en los cuales se va a realizar el clculo. En el caso del envo de datos se calcula de manera automtica el checksum y se realiza el envo de los bytes de CRC (checksum). En el caso de la recepcin de datos, se reciben los bytes de CRC y se calcula y verifica el checksum poniendo a 0 el bit rx_ok (bit 0 del registro _np_banderas).
Pgina 82 de 239
Niple le recomienda NO utilizar el mdulo USART para realizar comunicaciones RS485 en modo Maestro dado que la mayor parte del control (envo y recepcin de datos) se realiza por cdigo y no por interrupciones de USART. Por ejemplo, cuando un PIC en modo maestro solicita datos a otro micro en modo Esclavo, el esclavo sabe cuando comandos debe esperar. Es decir, que en este caso, la recepcin de los datos es totalmente pr evisible. Por esto no es necesario utilizar la interrupcin por USART para la recepcin de los datos del esclavo.
Es recomendable utilizar el mdulo USART para el tipo de comunicacin RS232, por ejemplo para recibir datos desde una PC, lo cual s puede resultar totalmente imprevisible y la interrupcin por USART resulta de vital importancia.
En el modo de comunicacin por cdigo Niple le permite seleccionar los pines de TX y RX. Dado que no se utiliza el mdulo USART del PIC. En ambos modos de comunicacin, debe seleccionar el pin de seleccin de TX/RX. Luego seleccione la velocidad de
comunicacin.
Pgina 83 de 239
Niple solicita este el tipo de conexin ya que en una comunicacin Punto a Punto el maestro se conecta con un esclavo de manera directa, es decir que no se configura una red con varios esclavos, sino que se conecta un solo esclavo, y eso implica que no es necesario asignarle un nro. de esclavo y por ende, Niple no requiere este dato.
Si por el contrario selecciona la opcin Red, esto significa que el dispositivo maestro va estar conectado a una red de varios micros esclavos y por esto es necesario indicar que nro. de esclavo es el que corresponde al dispositivo actual .
Al seleccionar la opcin de conexin, Niple ya le puede mostrar la configuracin del hardware correspondiente.
El nro. de dispositivo se puede asignar de manera Fija o Variable. En este punto, es muy importante tener en cue nta que el nro. de dispositivo Fijo implica tener que cambiar el programa (reprogramar el PIC) para cambiar el nro. de dispositivo dado que este nmero no se pue de cambiar una vez que ha sido compilador el programa y grabado en el PIC. En un proyecto formado por una red de micros, es muy comn que todos micros esclavos realicen los mismos procesos. Es decir que un micro esclavo bien podra trabajar en cualquiera de los puntos de control ocupado por cualquiera de l os otros esclavos.
Pgina 84 de 239
Para interpretar mejor cada una de las funciones disponibles, aclaramos los significamos que damos a las siguientes palabras: Consulta : Recibir una orden desde el maestro y responder enviando uno o varios datos . Comando: Recibir una orden desde el maestro y realizar una determinada accin pero esta accin no incluye el envo de una respuesta hacia el maestro. Respuesta : Enviar datos al maestro.
A partir de este punto, las opciones de la pantalla dependen de la funcin seleccionada A continuacin se describen cada una de e stas funciones: Responder consulta : Se reciben los comandos desde el maestro y enva uno o ms datos como respuesta . Al seleccionar esta funcin, Niple
de Recibir
Pgina 85 de 239
Recibir datos: Recibe datos desde un esclavo. Muestra la solapa Recibir datos.
continuacin
vamos
describir
las
secciones de Recibir
Comandos y Enviar
Recibir Comandos En esta seccin se indica como recibir los comandos que enva el maestro . Recuerde que esta seccin solo esta disponible para las funcione Responder Consulta y Recibir Comandos. Como mencionamos anteriormente, en una red 485, cada dispositivo esclavo se identifica mediante un nmero de esclavo. En la seccin Configuracin se defini el valor que identifica al dispositivo actual. Ahora debe seleccionar el registro en el cual guardar el nro. de dispositivo enviado por el maestro. Al recibir los datos, Niple compara automticamente el valor del dispositivo actual con el nro. de esclavo recibido desde el maestro y determina si el esclavo esta enviando comandos al dispositivo actual. Si el nro. de esclavo actual no coincide con el enviado por el maestro, Niple ignora el resto de los comando de manera automtica.
Pgina 86 de 239
El registro del nro. de esclavo recibido NO ES EL MISMO que el registro de nro de esclavo seleccionado en la seccin Configuracin . Debe seleccionar un registro diferente al utilizado para guardar el nro de esclavo a ctual.
Primero
seleccione
la
cantidad
de
Seleccione cada uno de los registros en los cual es desea guardar los comandos recibido.
Pgina 87 de 239
Para seleccionar el valor a enviar como respuesta en cada byte seleccione el byte correspondiente en la grilla de datos a enviar.
En la parte inferior, seleccione el tipo de dato Fijo o Variable. Si enve un dato de tipo Fijo como respuesta, el PIC siempre enviar el mismo dato.
Mientras que si selecciona el tipo de datos variable, Niple enva el dato guardado en el registro seleccionado.
Una vez seleccionado el valor a enviar, presione el botn OK. Repita esta operacin para cada byte de la grilla de datos a enviar.
Pgina 88 de 239
Pgina 89 de 239
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 t abla 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 c reada en distintos proyectos sin necesidad de volver a de clararla cada vez que la necesite.
Pgina 90 de 239
Haga clic en Cargar Tabla. Seleccione el archivo de tabla que desea consultar, haga clic en Abrir. Aparecer una pantalla con el detalle de los datos de la tabla.
En Valor a buscar, 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.
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 91 de 239
Primero seleccione el tipo de display a utilizar, esto es: nodo Comn o Ctodo Comn.
Una vez seleccionado el tipo de display a utilizar, Niple le presenta informacin acerca del estado de los puertos. Esta informacin es importante a la hora de seleccionar los pines de conexin de los displays.
Si algn puerto an no ha sido configurado, Niple le ofrece la oportunidad de configurarlo. Pero lo recomendable es cancelar el cuadro de visualizacin en displays, configurar el puerto en el inicio del programa y volver cargar el mdulo de visualizacin por displays.
Luego le solicita que seleccione la cantidad de displays a utilizar esto es, entre 2 y 8.
A continuacin debe seleccionar los valores a visualizar en cada display. Pgina 92 de 239
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 2 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 v alor. 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 v ara si se trata de un display tipo nodo comn o Ctodo comn, Niple controla el cdigo gen erado segn el tipo de display. Una vez ingresados los valores que desea visualizar en cada display, debe seleccionar los pines correspondientes al
multiplexado, es decir, los pines a travs de los cuales se habilita y se deshabilita cada display en el proceso de multiplexado.
Pgina 93 de 239
vez los
bus de datos. En este caso se trata de 7 pines, uno por cada barra de los display.
El criterio de seleccin de los pines del bus de datos es el mismo que para los pines de habilitacin de los displays.
Pgina 94 de 239
Cuando seleccione los pines tanto de habilitacin de los displays como los pines del bus de datos, Niple controla que no se repitan los pines seleccionados, dado que esto producira un error en el proceso de multiplexado. Al repetir alguno de los pines solicitados, Niple los presenta en color rojo y deshabilita el botn Ingresar.
Una vez ingresados todos los parmetros necesarios. Puede consultar el esquema de conexi n que se muestra en la solapa esquema.
Puede realizar una impresin del esquema de conexin haciendo un clic en el boto Imprimir.
Pgina 95 de 239
que solo se requieren 4 bits para el bus da datos a diferencia de los 7 bits requeridos para la visualizacin sin codificador. Niple utilizar displays le permite 8
hasta
conectados
Una vez seleccionado el tipo de display a utilizar, Niple le presenta informacin acerca del estado de los puertos. Esta informacin es importante a la hora de seleccionar los pines de conexin de los displays. Si algn puerto an no ha sido configurado, Niple le ofrece la oportunidad de configurarlo. Pero lo recomendable es
el puerto en el inicio del volver mdulo visualizacin displays. Luego le solicita que seleccione la programa cargar y el de por
Pgina 96 de 239
Al hacer doble clic en la imagen de un display se presenta la pantalla de Mostrar un valor en un display. Mediante la utilizacin del codificador CD4511 solo puede visualizar valores numricos. Es decir que no puede crear sus propios smbolos ya que el codificador CD4511 no reconoce dichos cdigos. Por esto solo puede visualizar el valor que contiene un registro: este valor puede ser variable y no requiere la codificacin mediante tabla ya que sta tarea la realiza el CD4511. Niple informa acerca de esto en la pantalla. Una vez ingresados los valores que desea visualizar en cada display, debe seleccionar los pines correspondientes al multiplexado, es decir, los pines a travs de los cuales se habilita y se deshabilita cada display en el proceso de multiplexado. Debajo de cada display se encuentra una lista desplegable. En cada una de estas listas seleccione el pin al cual se conecta el comn de cada display. Niple presenta como opciones vlidas, solo los pines de los puertos que se encuentra configurados como salida.
Pgina 97 de 239
Una vez seleccionados los pines correspondientes al bus de datos. Niple solicita que ingr ese el tiempo de muestreo, es decir, el tiempo que permanece encendido cada display en el proceso de multiplexado. Por defecto se asigna el valor de 200 uS. En general, no es necesario cambiar este valor.
Cuando seleccione los pines tanto de habilitacin de los displays como los pines del bus de datos, Niple controla que no se repitan los pines seleccionados, dado que esto producira un error en el proceso de multiplexado. Al repetir alguno de los pines solicitados, Niple los presenta en color rojo y deshabilita el botn Ingresar.
Pgina 98 de 239
Puede realizar una impresin del esquema de conexin haciendo un clic en el boto Imprimir.
Pgina 99 de 239
En la versin de Niple para PIC 16F6xx puede controlar hasta 8 p antallas LCD y en la versin Para PIC 16F84 puede controlar 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 hasta 7 pantallas
manera automtica.
Envo de caracteres al LCD de manera independiente de un mensaje (para ingreso de datos) Cdigo Assembler optimizado: Cuando actualiza un mensaje en un LCD, si el mensaje contiene valores variables, Niple solo actualiza las variables en lugar de volver a cargar todo el mensaje nuevamente. De esta manera Niple le ahorra tiempo durante la ejecucin del programa.
1. Configurar el Puerto donde conectar el LCD 2. Configurar el LCD 3. Generar el mensaje 4. Visualizar el mensaje 5. Opcionalmente se pueden enviar comandos o caracteres independientemente de un mensaj e .
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 al rbol de herramientas en:
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 1 vez. Dado que Niple puede controlar ms de 1 LCD de manera simultanea, en esta pantalla se presenta el nmero de LCD que est siendo configurado.
Primero 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.
Una vez ingresados todos los datos solicitados, presione el botn Insertar y en el diagrama de flujo actual se insertara un bloque de tipo configuracin con las caractersticas seleccionadas. Si desea modificar alguna de stas cara ctersticas, seleccione el bloque y presione la tecla Enter. O bien puede seleccionar el bloque, hacer un clic con el botn derecho del mouse y seleccionar la opcin Editar Blo que. La configuracin de la pantalla LCD se realiza solo una vez en un proyecto.
Como lo describe el mensaje, Niple utilizara los pines del bus de datos y los pines de control del LCD RS y RW para el nuevo LCD y estas opciones permanecern inhabilitadas al cargarse la pantalla Configurar LCD. Slo deber seleccionar el pin correspondiente al control E para el nuevo LCD.
mensajes en Niple consiste en generar un mensaje. Esto implica configurar la pantalla, el cursor y disear el mensaje propiamente dicho. Una vez diseado el mensaje, puede ser aplicado a cualquier LCD mediante el mdulo de visualizacin de mensajes. Para generar un nuevo mensaje ingrese al rbol de herramientas a la seccin: Insertar/Rutinas Bsi cas/Visualiza-
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 mens aje.
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 la ms adelante), Caracteres
seleccione Invisibles.
opcin
Adems la opcin Limpiar pantalla se presenta como activada. Esta opcin realiza una lim pieza de la pantalla antes de visualizar el mensaje. Esto significa que cualquier ser borrado que
completamente
mensaje
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.
Dado que el objetivo de Niple es minimizar al mximo la posibilidad de error, ofr ece 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. Pgina 107 de 239
Si seleccione la opcin Cursor Invisible. La opcin Visualizacin de parpadeo se configura de manera automtica como Sin
parpadeo. Seleccione la configuracin del cursor y del parpadeo. Una vez seleccionadas todas las opciones de la configuracin del mensaje, se activa la Solapa Mens aje.
A continuacin debe ingresar el mensaje propiamente dicho. Se presenta una imagen de la pantalla LCD representada por una grilla de 2 filas y en la cual se enumeran las columnas las cuales representan a los caracteres.
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.
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 v alor ser mostrado en la correspondiente variable.
Nombre_Registro.
Por ltimo si ha configurado el cursor como Visible, Niple le solicita que ingrese la ubicacin donde quiere visualizar el cursor.
usuario, el mismo puede ser llamado parte y puede en caso desde del ser
cualquier de estar
utilizando ms de 1 LCD. Adems, para minimizar al mximo las posibilidades de error de visualizacin, Niple incluye la configuracin de la pantalla junto con el mensaje a
mensaje a visualizar. De esta manera Ud. no debe preocuparse por la configuracin de la pantalla, o la configuracin y ubicacin del cursor cada vez que desea visualizar el mensaje. Simplemente indica el mensaje desea visualizar.
Mostrar Mensaje
Una vez definido el mensaje, puede visualizarlo en cualquier parte del programa ingresando al rbol de herramientas a: Insertar/Rutinas Bsicas/Visualizacin/Pantalla LCD/Mostrar Mensaje Se presentar la pantalla Mostrar un mensaje en 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 eje cutan stas configuraciones cuando el mensaje no esta siendo visualizado en el LCD actual.
Los comandos disponibles son los siguientes. Apagar la pantalla: Este comando apaga los caracteres. No incluye opciones.
Limpiar la pantalla: Limpiar todos caracteres de la pantalla. No incluye opciones. Cursor a Inicio: Ubica el cursor al inicio de la pantalla LCD, esto es, al rengln 1, carcter 1. Este comando no incluye opciones. Ubicar el cursor: Ubica el cursor en la posicin que indique el usuario. Opcionalmente puede reconfigurar la visualizacin del cursor.
Configurar el cursor: Permite reconfigurar el cursor. Este comando requiere que necesariamente configure la visualizacin de los caracteres.
Desplazar la pantalla: Permite realizar un desplazamiento d e 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 independient emente 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 microcontrolador lo captura, por interrupcin por ejemplo, y lo enva a la pantalla LCD donde el usuario puede visualizar los datos que esta ingresando. Este envo de datos al LCD, corresponde a la funcin de Niple de envo de carcter .
Adems le permite enviar los caracteres a la actual posicin del cursor o definir una posicin de visualizacin determinada. Si necesita enviar un valor numrico guardado en un registro, Niple le ofrece la posibilidad de convertirlo a cdigo ASCII de manera automtica.
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 pones 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. Y por ultimo que seleccione los pines correspondientes a las filas del teclado matricial.
Niple v4.0 - Programacin Visual de Microcontroladores Memorias EEPROM I2C Leer Memoria EEPROM I2C
Para leer datos de memorias EEPROM de la familia 24Cxx x. Ingrese al rbol de herramientas a:
Se presenta la pantalla Leer Memoria EEPROM 24Cxxx. Seleccione el modelo de memoria que desea utilizar. Al seleccionar el modelo, N iple le muestra la cant idad de registros de 8 bits que contiene el modelo seleccionado.
Una vez seleccionados los pines del bus I2C, debe seleccionar el nmero de dispositivo al cual desea acceder. 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 correspon dientes de cada dispositivo. La cantidad de disposit ivos 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.
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 guar dar el dato obtenido desde la memoria. Por ltimo, puede ingresar un comentario.
esquema de conexin.
Por
ltimo,
presione
el
botn
Seleccione el modelo de memoria que desea utilizar. Al seleccionar el modelo, Niple le muestra la cantidad de registros de 8 bits que contiene el modelo seleccionado. Luego debe seleccionar los pines de seal de reloj y de datos
correspondientes al bus I2C. Primero seleccione el puerto y luego el pin correspondiente. Una vez seleccionados los pines del bus I2C, debe seleccionar el nmero de dispositivo al cual desea acceder.
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
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.
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 indicar el a escribir, que debe desea
dato
grabar en la memoria.
Puede
ingresar
un
valor
Si selecciona la opcin un 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 un Registro, debe seleccionar el registro que contiene el valor a grabar en la memoria.
Una vez ingresados los parmetros requeridos, puede visualizar el esquema de conexin.
Niple v4.0 - Programacin Visual de Microcontroladores Memorias RAM Leer Memoria RAM I2C
Niple le permite utilizar memorias RAM. Actualmente soporta la memoria PCF8570 la cual tiene una capacidad de 256 registros. Esto le permite aumentar considerablemente la capacidad de procesamiento de los PIC, sobre todo, los que tienen menos capacidad de memoria. Puede conectar hasta 8 memorias en un bus I2C. Para leer datos de la memoria RAM ingrese al rbol de herramientas como se muestra en la imagen de la derecha: Se presenta la pantalla Leer memoria RAM por I2C. Seleccione el modelo de memoria que desea utilizar. Al seleccionar el modelo, Niple le muestra la cantidad de registros de 8 bits que contiene el modelo seleccionado. Actualmente, memoria RAM Niple soporta pero la en
PCF8570
futuras versiones se irn agregando ms modelos. Luego debe seleccionar los pines de seal de reloj y de datos
correspondientes al bus I2C. Primero seleccione el puerto y luego el pin correspondiente. Una vez seleccionados los pines del bus I2C, debe seleccionar el nmero de dispositivo al cual desea acceder. Recuerde que puede conectar
varios dispositivos en paralelo formando una red, en la cual, a cada dispositivo se le asigna un n mero. Este nmero de dispositivo se configura conectado los pines corresp on dientes 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.
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 al el registro el
seleccionado programa.
ejecutarse
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 seleccion ar el registro donde guardar el dato obtenido desde la memoria. Por ltimo, puede ingresar un c omentario.
esquema de conexin.
Por ltimo, presione el botn Ingresar y se insertar el bloque de Lectura de Memoria RAM en el diagrama de flujo.
dispositivos
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 Pgina 125 de 239
seleccio nado. 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. Me diante 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 r egistro seleccionado al ejecutarse el progr ama. 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.
Una
vez
ingresados
los
parmetros
Niple v4.0 - Programacin Visual de Microcontroladores Reloj de Tiempo Real Configurar el PCF8583
El reloj de tiempo real PCF8583 controla fechas y horas de manera autnoma y precisa, sin necesidad que el microcontrolador se ocupe de esto ahorrando, cdigo y tiempo de proceso. Para poder utilizar el reloj de tiempo real PCF8583, primero debe configurarlo. Para esto ingrese al rbol de herramientas como se muest ra en la imagen de la derecha. Se presenta la pantalla Configuracin Reloj / Calendario PCF8583 (I2C). Primero debe seleccionar los pines de seal de reloj y de datos correspondientes al bus I2C. Primero seleccione el puerto y luego el pin correspondiente.
Una vez seleccionados los pines del bus I2C, debe seleccionar el nmero de dispositivo al cual desea acceder.
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. Puede conectar un mximo de 2 dispositivos en un a red. Tenga en cuenta que cdigo de dispositivo del PCF8583 es el mismo que el cdigo de las memorias EEPROM. Por esto, cuando disea una red I2C compuesta por memorias EEPROMs y reloj PCF8583, debe asignar los nmeros de dispositivos como si se tratara del mismo tipo de dispositivos. Primero debe seleccionar el modo de trabajo, los cuales pueden ser reloj de 32768 Khz. o reloj 50 Hz. Al seleccionar el modo de trabajo, se habilitan las solapas denominadas Fecha, Hora y Alarmas.
Configuracin de Fecha
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 in clusive. - 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. La siguiente imagen muestra una configuracin de fecha Fija:
Configuracin de Hora
Para configurar la Hora actual, ingrese a la Ficha con el nombre Hora. Seleccione los parmetros que desea configurar (Formato de Horas, Hora, Minutos, 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: - Fijo: puede seleccionar el formato de 12 o 24 horas. 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. Segundos - Fijo: entre 00 y 59 inclusive. - Variable : un registro que contiene el valor de los segundos.
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.
Alarma por Fecha 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:
La configuracin de alarma por Temporizacin le permite realizar temporizacin independientemente de la fecha, por ejemplo, 5 segundos, 35 minutos 3 horas: El tipo de temporizacin puede ser Fijo Variable: La siguiente imagen muestra una alarma por temporizacin Fija.
Comandos
Puede enviar comandos al reloj PCF8583. Para esto, ingrese a la solapa Comandos y seleccione la opcin Comandos. Luego marque las opciones correspondientes a los comandos que desea enviar al reloj.
Leer PCF8583
Para leer la informacin del reloj PCF8583, ingrese al rbol de herramientas como lo muestra la imagen de la derecha : Se presenta la pantalla Leer el Reloj / Calendario PCF8583 (I2C). Primero debe seleccionar los pines de seal de reloj y de datos correspondientes al bus I2C. Primero seleccione el puerto y luego el pin correspondiente. Una vez seleccionados los pines del bus I2C, debe seleccionar el nmero de dispositivo al cual desea acceder. 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. Puede conectar un mximo de 2 dispositivos en un a red. Tenga en cuenta que cdigo de dispositivo del PCF8583 es el mismo que el cdigo de las memorias EEPROM. Por esto, cuando disea una red I2C compuesta por memorias
EEPROMs y reloj PCF8583, debe asignar los nmeros de dispositivos como si se tratase del mismo tipo de dispositi vos.
Seleccione los datos que desea consultar (Da, Mes, Ao, Da de la Semana) y luego seleccione el registro donde desea almacenar cada uno de los datos obtenidos. No es necesario que obtenga todos los datos correspondientes a la hora, sino que, puede obtener slo los datos que necesita. Proceda del mismo modo si desea leer la Hora Actual. Como lo muestra la siguiente imagen, no es necesario que obtenga todos los datos correspondientes a la hora, sino que, puede obtener slo los datos que necesita.
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 c orresponde 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 c orrespondiente 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).
Las casillas de verificacin Y o O corresponden a las operaciones lgicas AND y OR inclusiva correspondientemente.
Configurar Interrup.
Para consultar la configuracin de las interrupciones consulte la seccin correspondiente a las rutinas especficas de cada versi n de Niple.
Fin de la Interrupcin
Inserta en el diagrama el smbolo correspondiente a fin de interrupcin. Este solo se podr insertar en el entorno de interrupcin, si intenta insertarlo en otro entorno, Niple mu estra un mensaje de error y no llevar a cabo la insercin del smbolo. Para cargar el smbolo, haga doble clic sobre el men Fin de interrupcin .
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 (subru tinas). 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 ca tegora incluye las funciones de declaracin e insercin de llamadas a rutinas de usuario.
Voltaje de alimentacin: 5VCC. CPU RISC Circuito Integrado de 8 pines. 6 Pines de configurables como Entrada o Salida. Frecuencia operacin mxima: 20 Mhz. Memoria Flash: 12F629 12F675 = x Kbytes = x Kbytes
1 Temporizador interno de 8 bits (TMR0). 1 Temporizador interno de 16 bits (TMR1). 1 Comparador Anal gico Conversores Analgico-Digital: 12F675 = 4 canales
Como mencionamos anteriormente, para que un microcontrolador funcione es necesario grabarle un programa en su interior. Este programa ser ledo y ejecutado lnea a lnea por la CPU. Para que la CPU funcione, debe contar con un generador de impulsos de reloj externo que sincroniza el funcionamiento de
En general se utiliza u n cristal como origen de la seal de reloj externa. El microcontrolador ejecuta cada instruccin (1 ciclo de programa) a de la velocidad del cristal utilizado. En general, un ciclo de programa corresponde a una lnea de cdigo Assembler .
Por ejemplo, si utilizamos un cristal de 4 Mhz, el microcontrolador estar ejecutando el cdigo a una v elocidad de 1 Mhz. Es decir que, ejecutar 1.000.000 de lneas de cdigo del programa por segundo. Por lo tanto, cada lnea de cdigo se ejecutar en 1 microsegundo (1/ 1.000.000 Seg.).
Niple v4.0 - Programacin Visual de Microcontroladores Mdulos especficos de Niple para PIC 12F6xx Crear un nuevo proye cto.
Para crear un nuevo p royecto ingrese al men Archivo\Nuevo Proyecto... Se presentar la pantalla de Nuevo Proyecto. En primer lugar debe
seleccionar el modelo PIC que ser utilizado para desarrollar el proyecto. Es importante saber que en Niple, todo el sistema de
registros, EEPROM,
memoria
perifricos,
interrupciones, etc.). Tenga en cuenta que una vez creado el proyecto no puede cambiar el modelo de PIC. Una vez seleccionado el modelo de PIC a utilizar Niple l e solicita que ingrese los siguientes datos: Datos del Proyecto: Nombre del proyecto: Nombre descriptivo del proyecto (No es el nombre de Archivo). Descripcin del proyecto: Ingrese una descripcin para identificar el proyecto Fecha: Por defecto Niple presenta la fecha actual del sistema. Nombre del Autor: Niple asigna el nombre del titular de la licencia como Autor del proyecto. Este nombre no puede ser modificado.
Datos del archivo Nombre del archivo: Niple utiliza la extensin .NPL para los archivos de proyecto. Seleccione la unidad y la carpeta donde guardar el nuevo proyecto. Al selecciona la carpeta, Niple mues tra todos los proyecto existentes en la misma. No puede r epetir el nombre de un archivo de proyecto.
Una vez ingresados todos los datos necesarios, presione el botn Crear.
Al crear un nuevo proyecto se cargan todas las caractersticas del modelo de PI C seleccionado.
Adems se genera de manera automtica el entorno del Programa Principal y se inserta el bloque de Inicio del programa.
Todos los proyectos deben tener un entorno de Programa Principal. Este entorno no puede ser borrado. Y cada entorno de Programa Principal debe tener un bloque de Inicio de Programa.
Declaracin\Registros
La lnea 12F6xx cuenta con 2 bancos de memoria, las cuales son presentadas en 1 solapa.
Cada registro est identificado con una direccin de registro la cual est expresada en formato hexadecimal.
El mapa de memoria de datos presenta los distintos los tipos de registros con diferentes colores.
Registros Predefinidos por el PIC (Color Naranja): Corresponde a registros de configuracin y control del sistema. Estos registros se declaran de manera automtica en el momento de crear el proyecto y no pueden ser borrados. Cada uno de estos registros cumple con una funcin predeterminada. Registros de Usua rio (Color Verde): Corresponde a la memoria disponible para que el usuario declare sus propios registros. Registros inhabilitados (Color Gris): Corresponde a la memoria no disponible. Estas direcciones de memoria no pueden ser utilizadas.
La memoria de datos se encuentra organizada en 2 bancos, las cuales son presentadas en una solapa. El mapa de memoria de datos presenta los distintos los tipos de registros con diferentes colores. A la vez se muestra un detalle de los bits que conforman cada registro.
Registros Predefinidos por el PIC (Color Naranja): Corresponde a registros de configuracin y control del sistema. Estos registros se declaran de manera automtica en el momento de crear el proyecto y no pueden ser borrados. Cada uno de estos registros cumple con una funcin predeterminada.
Registros de Usuario (Color Verde): Corresponde a la memoria disponible para que el usuario declare sus propios registros.
Registros deshabilitados (Color Gris): Corresponde a la memoria no disponible. Estas direcciones de memoria no pueden ser utilizadas.
Haciendo un clic sobre el nombre de un BIT se muestra en la parte inferior de la pantalla toda informacin correspondiente al BIT seleccionado.
Niple controla la validez del nombre del BIT que se est declarando, esto es: Que no est siendo ya utilizado por un registro o BIT. No se permiten nombres de bits como A, B, C, D y E que pueden llegar a confundirse con un nombre de puerto. Que no contenga caracteres no vlidos. Que el nombre no contenga ms de 20 caracteres de largo. Que el nombre no corresponda a una instruccin o comando.
Para
configurar
el
mdulo
comparador, marque la opcin Habilitar comparador analgico que se encuentra en el extremo superior izquierdo de la pantalla de configuracin del puerto.
Una vez seleccionado el mod o de operacin del comparador, presione el botn Ingresar. De manera automtica Niple asigna las configuraciones a los pines correspondientes.
Si configurar al menos una entrada como Conversin A/D, en la parte inferior -izquierda de la pantalla se visualiza un cuadro de configuracin del voltaje de referencia para el mdulo de conversin A/D.
El voltaje de referencia (+) puede ser configurado como referencia Interna (V+= Vdd) o como referencia externa (V+ = RA1). Si elige algn voltaje de referencia como externo, el pin correspondiente (RA1) queda inhabilitado en la pantalla para que no pueda ser utilizado como entrada o como salida.
Sintaxis Puerto = Valor_Configuracin Esto se interpreta como: el puerto A es configurado como Valor_Configuracin.
Donde: El parmetro Valor_Configuracin puede contener alguno de los siguientes cdigos: S = Salida Digital E = Entrada Digital A = Canal de Conversin A/D + = Voltaje de referencia externa positiva (para conversin A/D o Comparador analgico) - = Voltaje de referencia negativa (para conversin A/D o Comparador analgico) X = Bit no disponible. C = Salida de comparador analgico
Ejemplos
Este mdulo le permite enviar datos mediante el protocolo de comunicacin RS232 ya sea a otros micro controladores o a una PC.
Primero seleccione el pin por el cual transmitir los datos y la velocidad de comunicacin. Luego, ingrese la cantidad de bytes que desea transmitir. Seleccione los datos a enviar. Puede enviar datos fijos (literales) o variables (registros).
Para seleccionar el dato a enviar haga un clic en la grilla. Ingrese el tipo de dato y el valor a enviar. Luego presione el botn OK.
Cuando se envan ms de un dato, Niple le permite esperar un tiempo entre un dato y otro. Seleccione la opcin Esperar entre datos e ingrese el tiempo en mS que desea esperar.
Por ltimo, Niple le ofrece la opcin de calcular y enviar el checksum de manera automtica. Al seleccionar la opcin de calcular y enviar el checksum Niple agrega de manera automtica los registros necesarios para calcular el checksum.
Luego ingrese los registros donde desea guardar cada uno de los datos recibidos.
Niple le permite calcular y verificar el checksum de los datos recibidos. Al seleccionar esta opcin, automticamente se agregan los registros correspondientes a la recepcin de los bytes de checksum.
Configurar Interrupciones
Permite configurar todas las opciones posibles para las interrupciones RB0, TMR0 y Watchdog. En el primer caso, el usuario podr seleccionar si la interrupcin se activa mientras transcurre el flanco descendente o el ascendente, mientras que para las restantes, podr seleccionar la tasa de divisin para el escalado de los tiempos. 1) Seleccione la interrupcin a configurar, para esto haga clic sobre las casillas de verificacin disponibles para cada caso. 2) Si selecciono Interrup. por RB0, haga clic en lo botones de opcin correspondientes a Interrup. por flanco Ascendente descendente. 3) Si selecciono Interrup. por TMR0, seleccione de la lista la Tasa de divisin y el Origen de la seal de reloj. Haga clic en Ingresar. o Interrup. por flanco
Entre las principales caractersticas del PIC 16F84 podemos destacar: Voltaje de alimentacin: 5VCC. CPU RISC Circuito Integrado de 18 pines. 13 Pines de configurables como Entrada o Salida. Frecuencia operacin mxima: 10 Mhz. Memoria Flash: 1 Kbytes Memoria de Datos: 68 bytes Memoria de Datos EEPROM: 64 bytes 1 Temporizador interno de 8 bits. 3 Interrupciones.
Como mencionamos anteriormente, para que un microcontrolador funcione es necesario grabarle un programa en su interior. Este programa ser ledo y ejecutado lnea a lnea por la CPU. Para que la CPU funcione, debe contar con un generador de impulsos de reloj externo que sincroniza el funcionamiento de todo el sistema. Como origen de la seal de reloj externa se utiliza un cristal. El microcontrolador ejecuta cada instruccin (1 ciclo de programa) a de la velocidad del cristal utilizado. En general, un ciclo de programa corresponde a una lnea de cdigo Assembler . Por ejemplo, si utilizamos un cristal de 4 Mhz, el microcontrolador estar ejecutando el cdigo a una velocidad de 1 Mhz. Es decir que, ejecutar 1.000.000 de lneas de cdigo del programa por segundo. Por lo tanto, cada lnea de cdigo se ejecutar en 1 microsegundo (1/1.000.000 Seg.). Lo microcontroladores de la lnea 16F6xx pueden ser configurados para que el origen de la seal de reloj sea a trabes de un oscilador interno. Con esto, puede prescindir del oscilador externo y utilizar los pines correspondientes a la entrada del oscilador como pines E/S. Dado que el oscilador interno no es tan preciso como un cristal, un microcontrolador configurado con para ejecutar con oscilador interno puede tener un error importante en las temporizaciones.
Niple v4.0 - Programacin Visual de Microcontroladores Mdulos especficos de Niple para PIC 16F84 Crear un nuevo proyecto.
Para crear un nuevo proyecto ingrese al men Archivo \ Nuevo Proyecto... Se presentar la pantalla de Nuevo Proyecto donde Niple le solicita que ingrese los siguientes datos:
Datos del proyecto Nombre del proyecto: Nombre descriptivo del proyecto (No es el nombre de Archivo). Descripcin del proyecto: Ingrese una descripcin para identificar el proyecto Fecha: Por defecto Niple presenta la fecha actual del sistema. Nombre del Autor: Niple asigna el nombre del titular de la licencia como Autor del proyecto. Este nombre no puede ser modificado.
Si bien los datos del proyecto son opcionales se recomienda ingresar estos datos para la correcta identificacin del proyecto en el futuro.
Datos del archivo Nombre del archivo: Niple utiliza la extensin .NPL para los archivos de proyecto. Seleccione la unidad y la carpeta donde guardar el nuevo proyecto. Al selecciona la carpeta, Niple muestra todos los proyecto existentes en la misma. No puede repetir el nombre de un archivo de proyecto. Una vez ingresados todos los datos necesarios, presione el botn Crear. Pgina 162 de 239
Todos los proyectos deben tener un entorno de Programa Principal. Este entorno no puede ser borrado. Y cada entorno de Programa Principal debe tener un bloque de Inicio de Programa.
Declaracin de Registros
En Niple la declaracin de registros se realiza de manera visual trabajando directamente sobre el mapa de memoria.
Para ingresar a la pantalla de declaracin de registros, seleccione el men Declaracin \ Registros o por medio de la combinacin de teclas CTRL+R.
En esta pantalla se presenta el mapa de memoria. Cada registro est identificado con una direccin de registro la cual est expresada en formato hexadecimal.
Registros Naranja):
Predefinidos
por
el
PIC (Color
Corresponde
registros
de
configuracin
control del sistema. Estos registros se declaran de manera automtica en el momento de crear el proyecto y no pueden ser borrados. Cada uno de estos registros cumple con una funcin
predeterminada.
Registros de Usuario (Color Verde): Corresponde a la memoria disponible para que el usuario declare sus propios registros.
Registros deshabilitados (Color Gris): Corresponde a la memoria no disponible. Estas direcciones de memoria no pueden ser utili zadas.
Niple controla la validez del nombre del registro que se est declarando, esto es: - Que no est siendo ya utilizado por otro registro o BIT. - No se permiten nombres de registros como A, B que pueden llegar a confundirse con un nombre de puerto. - Que no contenga caracteres no vlidos. - Que el nombre no contenga ms de 20 caracteres de largo. - Que el nombre no corresponda a una instruccin o comando.
correspondiente
verificacin, a travs de la cual el pin es configurado entrada o salida. Una seleccionada vez la como
Representacin grfica
Sintaxis Puerto = Valor_Configuracin Esto se interpreta como: el puerto A es configurado como Valor_Configuracin.
Donde: El parmetro Valor_Configuracin puede contener alguno de los siguientes cdigos: S = Salida Digital E = Entrada Digital Ejemplos
Puerto B, se presenta una imagen del PIC con las descripciones de todos los pines. En cada pin al
correspondiente
entrada o salida. Una vez seleccionada la configuracin deseada, presione el botn Ingresar.
Representacin grfica
Sintaxis Puerto = Valor_Configuracin Esto se interpreta como: el puerto B es configurado como Valor_Configuracin.
Donde: El parmetro Valor_Configuracin puede contener alguno de los siguientes cdigos: S = Salida Digital E = Entrada Digital Ejemplos
Niple v4.0 - Programacin Visual de Microcontroladores Comunicaciones RS232 RS232 Enviar datos
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 micro controladores o a una PC.
Primero seleccione el pin por el cual transmitir los datos y la velocidad de comunicacin. Luego, ingrese la cantidad de bytes que desea transmitir. Seleccione los datos a enviar. Puede enviar datos fijos (literales) o variables (registros).
Para seleccionar el dato a enviar haga un clic en la grilla. Ingrese el tipo de dato y el valor a enviar. Luego presione el botn OK.
Cuando se envan ms de un dato, Niple le permite esperar un tiempo entre un dato y otro. Seleccione la opcin Esperar entre datos e ingrese el tiempo en MS que desea esperar.
Por ltimo, Niple le ofrece la opcin de calcular y enviar el checksum de manera automtica. Al seleccionar la opcin de calcular y enviar el checksum Niple agrega de manera automtica los registros necesarios para calcular el checksum.
Luego ingrese los registros donde desea guardar cada uno de los datos recibidos.
Al seleccionar esta opcin, automticamente se agregan los registros correspondientes a la recepcin de los bytes de checksum.
Configurar Interrup.
Permite configurar todas las opciones posibles para las interrupciones RB0, TMR0 y Watchdog. En el primer caso, el usuario podr seleccionar si la interrupcin se activa mientras transcurre el flanco descendente o el ascendente, mientras que para las restantes, podr seleccionar la tasa de divisin para el escalado de los tiempos. 1) Seleccione la interrupcin a
configurar, p ara esto haga clic sobre las casillas de verificacin disponibles para cada caso. 2) Si selecciono Interrup. por RB0 , haga clic en lo botones de opcin correspondientes a Interrup. por flanco Ascendente o descendente. 3) Si selecciono Interrup. por TMR0, seleccione de la lista la Tasa de divisin y el Origen de la seal de reloj. Haga clic en Ingresar. Interrup. por flanco
Voltaje de alimentacin: 5VCC. CPU RISC Circuito Integrado de 18 pines. 16 Pines de configurables como Entrada o Salida. Frecuencia operacin mxima: 20 Mhz. Memoria Flash: 16F627 = 1 Kbytes 16F628 = 2 Kbytes 16F648 = 4 Kbytes
Memoria de Datos: 16F627 = 224 bytes 16F628 = 224 bytes 16F648 = 256 bytes
Memoria de Datos EEPROM: 16F627 = 128 bytes 16F628 = 128 bytes 16F648 = 256 bytes
2 Temporizadores internos de 8 bits. 1 Temporizador interno de 16 bits. 1 Mdulo CCP (Captura, Comparacin y PWM). 1 Mdulo de comunicaciones USART. 2 Comparadores analgicos. 10 Interrupciones.
Como mencionamos anteriormente, para que un microcontrolador funcione es necesario grabarle un programa en su interior. Este programa ser ledo y ejecutado lnea a lnea por la CPU. Para que la CPU funcione, debe contar con un generador de impulsos de reloj externo que sincroniza el funcionamiento de todo el sistema.
La
configuracin
de
los
puertos
se
realiza
mediante los registros TRISA y TRISB, y por medio de los registros PORTA y PORTB se accede directamente a cada uno de los pines de los puertos.
Niple v4.0 - Programacin Visual de Microcontroladores Mdulos especficos de Niple para PIC 16F6xx Crear un nuevo proyecto.
Para crear un nuevo proyecto ingrese al men Archi vo\Nuevo Proyecto... Se presentar la pantalla Proyecto. En primer lugar de Nuevo
debe seleccionar el modelo PIC que ser utilizado desarrollar proyecto. Es importante para el
saber que en Niple, todo el sistema de adapta de acuerdo al modelo de PIC (los bits,
Tenga en cuenta que una vez creado el proyecto no puede cambiar el modelo de PIC. El Botn Caractersticas de la Lnea 16F6xx presenta un cuadro comparativo con las caractersticas de cada uno de los modelos de PIC que componen la lnea 16F6xx.
Una vez seleccionado el modelo de PIC a utilizar Niple le solicita que ingrese los siguientes datos:
Datos del proyecto Nombre del proyecto: Nombre descriptivo del proyecto (No es el nombre de Archivo). Descripcin del proyecto: Ingrese una descripcin para identificar el proyecto Fecha: Por defecto Niple presenta la fecha actual del sistema. Nombre del Autor: Niple asigna el nombre del titular de la licencia como Autor del proyecto. Este nombre no puede ser modificado.
Si bien los datos del proyecto son opcionales se recomienda ingresar estos datos para la correcta identificacin del proyecto en el futuro.
Datos del archivo Nombre del archivo: Niple utiliza la extensin .NPL para los archivos de proyecto. Seleccione la unidad y la carpeta dond e guardar el nuevo proyecto. Al selecciona la carpeta, Niple muestra todos los proyecto existentes en la misma. No puede repetir el nombre de un archivo de proyecto.
Una vez ingresados todos los datos necesarios, presione el botn Crear.
Al crear un nuevo proyecto se cargan todas las caractersticas del modelo de PIC seleccionado. Adems se genera de manera automtica el entorno del Programa Principal y se inserta el bloque de Inicio del programa.
Todos los proyectos deben tener un entorno de Programa Principal. Este entorno no puede ser borrado. Y cada entorno de Programa Principal debe tener un bloque de Inicio de Programa.
Declaracin de Registros
En Niple la declaracin de registros se realiza de manera visual trabajando directamente sobre el mapa de memoria. Para ingresar a la pantalla de declaracin de registros, seleccione el men Declaracin\Registros o por medio de la combinacin de teclas CTRL+R. En esta pantalla se presenta el mapa de memoria. La lnea 16F6xx cuenta con 4 pginas de memoria, las cuales son presentadas en 2 solapas. Cada registro est identificado con una direccin de registro la cual est expresada en formato hexadecimal.
El mapa de memoria de datos presenta los distintos los tipos de registros con diferentes colores.
Registros
Predefinidos
por
el
PIC
(Color
Naranja): Corresponde a registros de configuracin y control del sistema. Estos registros se declaran de manera automtica en el momento de crear el proyecto y no pueden ser borrados. Cada uno de estos registros cumple con una funcin predeterminada. Registros de Usuario (Color Verde): Corresponde a la memoria disponible para que el usuario declare sus propios registros. Pgina 176 de 239
Niple controla la validez del nombre del registro que se est declarando, esto es: Que no est siendo ya utilizado por otro registro o BIT. No se permiten nombres de registros como A, B, C, D, E que pueden llegar a confundirse con un nombre de puerto. Que no contenga caracteres no vlidos. Que el nombre no contenga ms de 20 caracteres de largo. Que el nombre no corresponda a una instruccin o comando.
Declaracin de Bits
En Niple la declaracin de Bits se realiza de manera totalmente visual trabajando directamente sobre el mapa de memoria. Puede ingresar a la pantalla de declaracin de bits a travs del men Declaracin\Bits o a travs de la combinacin de teclas CTRL+B.
Haciendo un clic sobre el nombre de un BIT se muestra en la parte inferior de la pantalla toda informacin correspondiente al BIT seleccionado.
Configurar el Puerto A
En Niple, la configuracin de los puertos se reali za de manera totalmente visual. En la pantalla de configuracin del
Puerto A, se presenta una imagen del PIC con las descripciones de todos los pines. En cada pin al
correspondiente
verificacin, a travs de la cual el pin es configurado entrada o salida. El puerto A est conformado por 8 como
pines. De los cuales, a los pines 5 a 7 se les pueden asignar las siguientes funciones:
habilita
manera automtica los pines 6 y 7 del puerto A para ser utilizados como Entradas o
Salidas Digitales.
Una vez seleccionado el modo de operacin de los comparadores, presione el botn Ingresar.
Una vez seleccionada la configuracin deseada, presione el botn Ingresar. Si el chequeo de la configuracin seleccionada resulta ser correcta, Niple inserta el bloque en el diagrama.
Representacin grfica
Sintaxis Puerto = Valor_Configuracin Esto se interpreta como: el puerto A es configurado como Valor_Configuracin.
Donde: El parmetro Valor_Configuracin puede contener alguno de los siguientes cdigos : S = Salida Digital E = Entrada Digital + = Pin positivo de un mdulo comparador - = Pin positivo de un mdulo comparador
Configurar el Puerto B
En Niple, la configuracin de los puertos se realiza de manera totalmente visual, trabajando directamente sobre una imagen del PIC.
En la pantalla de configuracin del Puerto B, se presenta una imagen del PIC con las descripciones de todos los pines. En cada pin correspondiente al puerto B se muestra una casilla de verificacin, a travs de la cual el pin es configurado como entrada o salida. Una vez seleccionada la configuracin deseada, presione el botn Ingresar. Representacin grfica
Sintaxis Puerto = Valor_Configuracin Esto se interpreta como: el puerto B es configurado como Valor_Configuracin. Donde: El parmetro Valor_Configuracin puede contener alguno de los siguientes cdigos: S = Salida Digital E = Entrada Digital
Comparadores Analgicos
Los microcontroladores de la lnea 16F6xx incluyen 2 mdulos comparadores analgicos. Un mdulo comparador analgico est compuesto por 2 entradas (Vin+ y Vin-) y una salida (Vout), la cual se activa en funcin del estado de las entadas.
El mdulo comparador activa (o desactiva) la salida Vout cuando el voltaje en la entrada Vin+ sea mayor al voltaje de la entrada Vin-. Para implementar un comparador, primero debe configurar los pines correspondientes. Esto se realiza junto con la configuracin del puerto A. Consulte el tema Configuracin del puerto A. Luego de haber configurado el puerto A debe configurar el modo de funcionamiento del mdulo comparador. Una vez que el mdulo comparador ha sido configurado, el mismo funciona de manera independiente de la ejecucin del resto del programa, es decir que el programa no debe atender el funcionamiento del comparador.
Cada vez que la condicin de comparacin se cumple segn lo configurado, se activa un BIT por cada mdulo comparador (Bits C1VOUT y C2VOUT, bits 6 y 7 del regis tro CMCON respectivamente). Puede configurar una interrupcin por comparadores. Esta se ejecuta cada vez que cambia el estado de alguno de las 2 banderas de los mdulos compradores. Debe determinar por software cual es el comprador que genera la interrupcin. Niple controla esto de manera automtica.
Una vez seleccionada la configuracin de los comparadores, debe configurar el mdulo de funcionamiento de cada uno de los mismos. Para esto ingrese al rbol de herramientas como se muestra en la siguiente image n:
A continuacin debe seleccionar el modo de funcionamiento del comparador seleccionado. S eleccione como poner la salida (0 1) cuando el voltaje en la entrada Vin+ sea mayor a la entrada Vin-. Si est utilizando alguna de las configuraciones de comparadores Multiplexados , se activa la opcin de seleccin de comparador por multiplexado. Debe seleccionar el comparador que desea utilizar.
0.21 V,
0.42 V,
0.63 V,
0.84 V,
1.04 V,
1.25 V,
1.46 V,
1.67 V,
1.88 V,
2.08 V,
2.29 V,
Adems los micros de la familia 16F6xx cuentan con una interrupcin por Compara dores Analgicos. La interrupcin se produce cada vez que cambia el estado del BIT de salida de un mdulo comparador (bits C1Vout y C2Vout). El software debe mantener la informacin del estado actual de cada BIT de salida de los mdulos comparadores para poder determinar cual fue el comparador que gener la interrupcin. Niple administra esta informacin y determina de manera automtica cual es el comparador que produjo la interrupcin. Para activar las interrupciones por comparadores analgicos debe activar la opcin Generar Interrupcin.
Al activar la opcin Generar Interrupcin, Niple revisa el estado de las interrupciones y detecta si las interrupciones necesarias se encuentran activadas. Si alguna de las interrupciones no se encuentra activada, Niple le presenta la posibilidad de activarlas activando los cuadros de verificacin correspondientes. Cuando se ingresa una interrupcin por comparadores analgicos, Niple genera de manera automtica el registro de banderas y declara los bits de banderas de estado actual de cada uno de los mdulos comparadores.
Se inserta un bloque de evaluacin para cada mdulo comparador. El diagrama de flujo de la interrupcin queda preparado para que Ud. programe lo que desea realizar al producirse la interrupcin por cada uno de los mdulos comparadores.
El Mdulo CCP
Los microcontroladores de la lnea 16F6xx incluyen 1 mdulo de Captura, Comparacin y Modulacin por ancho de pulso, llamado CCP1. Los registros de control y trabajo del mdulo CCP1 son: CCP1C ON direccin 17h y CCP1RH-CCP1RL direcciones 16h y 15h.
- Modo Captura - Modo Comparacin - Modo Modulacin por Ancho de Pulso, PWM
Modo Captura
Antes de pasar a desarrollar la metodologa de programacin con Niple, realizaremos una breve descripcin del modo Captura a modo de repaso general.
El modo Captura recupera el estado de cuenta del TMR1 y lo guarda en los registros CCPR1H y CCPR1L.
El TMR1 debe estar configurado con la opcin Origen de seal de reloj = Reloj Interno. (Recuerde que tambin el TMR1 puede ser configurado para que incremente mediante una seal externa).
La captura se realiza cada vez que ocurre alguno de los siguientes eventos en el Pin RB3, esto se configura mediante los 4 primeros bits de los registros CCP1CON:
1) Un flanco ascendente. 2) Un flanco descendente. 3) Cada 4 flancos ascendentes. 4) Cada 16 flancos ascendentes.
Cada vez que se realiza una captura, se activa el Bit 2 del registro PIR1 (Bit CCP1IF). Adems puede generarse una interrupcin, si previamente fue configurado el Bit 2 del registro PIE1 (CCP1IE).
Para poder utilizar el Modo Captura primero deb e realizar los siguientes pasos: Configur e y active el temporizador interno TMR1. Configur e el Pin correspondiente al mdulo CCP como Entrada.
contar
anteriormente mencionados. En primer lugar debe seleccionar la configuracin del evento que provoca la captura. Para este caso, seleccione la opcin 1 Flanco Ascendente.
1)
No esperar y generar una interrupcin por Fin de Captura: Se configura el modo Captura y contina ejecutando el resto del cdigo. Cuando se realiza la captura se produce una interrupcin por Fin de Captura.
Sea
cual
fuere
la
opcin
seleccionada,
continuacin le solicita que seleccione los registros donde gua rdar el resultado de la captura. Si ha seleccionado la opcin No esperar y generar una interrupcin, Niple chequea el estado de las interrupciones y ofrece la posibilidad de habilitar las interrupciones que se encuentran deshabilitadas. La siguiente ilustracin muestra este caso.
En la siguiente imagen se muestran el bloque y el entorno de Interrupcin por CCP1 que son insertados en el tipo de captura por interrupcin. La siguiente imagen muestra los bloques insertados en el entorno del Programa Principal
Modo Comparacin
En este modo, el microcontrolador compara de manera constante los registros CCPR1H y CCPR1L con el valor actual de TMR1. Cuando los valores son iguales, puede llegar a producirse alguno de los 3 eventos segn la configuracin seleccionada. Estos eventos son: - Poner a 1 el Pin RB3. - Poner a 0 el Pin RB3. - Generar una interrupcin. Esta opcin no afecta al Pin RB3.
Si el TMR1 es configurado con la opcin Origen de seal de reloj = Reloj Externo, entonces este mdulo puede ser utilizado como contador de eventos que al llegar al valor deseado se produzca una accin determinada sin necesidad de es tar monitoreando el estado de cuenta.
Para poder utilizar el Modo Comparacin primero debe realizar los siguientes pasos: - Configurar y activar el temporizador interno TMR1. - Configurar el Pin RB3 como Salida.
Una vez realizados los pasos previos necesarios ya esta en condiciones de realizar una Comparacin. Ingrese al rbol de herramientas y seleccione la opcin Insertar / Rutinas Bsicas / Mdulo CCP / Con fig. y Activar CCP1 como se muestra en la imagen de la derecha . Se presenta la pantalla Mdulo CCP1. Es importante aclarar que los 3 modos (Captura, Comparacin y PWM) se programan en la misma pantalla ya que pertenecen al mismo mdulo. Seleccione el modo Comparacin en la lista desplegable denominada Modo a utilizar. Para garantizar el correcto funcionamiento, Niple chequea de manera sido automtica si el
previamente
han
configurados
temporizador TMR1 y el Pin RB3 como Salida. Si todo est correctamente configurado, Niple permite comenzar a seleccionar las opciones correspon dientes, de lo contrario, no permite continuar hasta no contar con los requisitos anteriormente mencionados.
En primer lugar debe seleccionar el valor de Comparacin. O sea, el valor hasta el cual desea que el temporizador interno TRM1
incremente. Dado que el temporizador TMR1 est formado por 2 registros (TRM1H y TMR1L), el valor de comparacin tambin corresponde a un nmero de 16 bits.
Por ejemplo: Si desea desarrollar un sistema contador que realice una determinada accin al llegar a la cuenta de 1000. Entonces debe seleccionar las opciones Valor Literal, Tipo Decimal y 1000 como valor de comparacin. Tenga en cuenta que no podr cambiar el valor de comparacin dado que se trata de un valor constante. Si en el futuro desea cambiar el valor de comparacin, deber generar nuevamente el cdigo
Una forma ms verstil de realizar esto es: asignando el valor de comparacin como
variable, por ejemplo, mediante 2 registros llamados cant_max_1 y cant_max_2. Esto le permite disear el programa para poder
actualizar el valor de comparacin mediante algn sistema de Set Point (por RS232, Teclado, o pulsadores que incrementen y decrementen estos valores) y se guarde (por
A continuacin seleccione el eve nto a realizar cuando el TMR1 llegue al estado de cuenta del valor de comparacin. Aqu tiene 3 opciones: - Poner a 1 el Pin RB3. - Poner a 0 el Pin RB3. - Generar una interrupcin. Esta opcin no afecta al Pin RB3.
Si elige alguna de las 2 primeras opciones. Niple se solicita que seleccione una de las 2 maneras que tiene de realizar la comparacin. 1) Esperar en un bucle hasta que termine la Comparacin: El PIC no realiza ninguna otra tarea que no sea esperar a que el Bit 2 del registro PIE1 (CCP1IE) se ponga en 1. 2) No esperar y generar una interrupcin por Fin de Comparacin: Se configura el modo Comparacin y contina ejecutando el resto del cdigo. Cuando el valor del TMR1 es igual a valor de compar acin, se produce una interrupcin por Fin de Comparacin.
Si ha seleccionado la opcin No esperar y generar una interrupcin..., Niple chequea el estado de las interrupciones y ofrece la posibilidad de habilitar las interrupciones que se encuentran deshabilitadas. La siguiente ilustracin muestra es te caso.
En la siguiente imagen se muestran el bloque y el entorno de interrupcin por Interrupcin por CCP1 que son insertados en el tipo de comparacin por interrupcin. La primera imagen muestra los bloques insertados en el entorno del Programa Principal y la segunda imagen muestra el entorno de Interrupcin por CCP1 y los bloques que se insertan de manera automtica.
Modo PWM
En este modo, el microcontrolador genera un pulso a una determinada frecuencia en el Pin RB3 y cuyo ancho de pulso (tiempo de duracin del nivel alto dentro del ciclo) puede ser variable.
La frecuencia generada (o periodo del ciclo) se controla por medio del registro PR2 y su valor se calcula mediante la siguiente frmula: Periodo = 1 / Frecuencia_a_generar PR2 = (Periodo / (4 * Tosc * Predivisor_de_TRM2)) 1 Donde: Tosc (Tiempo de oscilacin) = 1 / Frecuencia_Cristal
Si desea obtener el periodo que genera un determinado valor de PR2: Periodo = (PR2 + 1) * 4 * Tosc * Predivisor_de_TRM2
El ancho de pulso es controlado mediante un valor de 10 bits el cual s e calcula con la siguiente frmula: Ancho_Pulso = Periodo * (Porcentaje_Ancho_Pulso / 100) Valor_Ancho_Pulso = Ancho_Pulso / (Tosc * Predivisor_de_TRM2) Donde: Porcentaje_Ancho_Pulso = Porcentaje de ancho de pulso deseado. Ej: Porcentaje_Ancho_Pulso = 50 (Control por ancho de pulso del 50%).
Es importante tener en cuenta que el rango de valores para el control del ancho de pulso es variable y depende de la frecuencia generada. O sea que, si bien el control del ancho de pulso se realiza mediante un valor de 10 bits, el rango 0 1023 no corresponde al 0% y 100% respectivamente. Por ejemplo: - Para una frecuencia de 1000 Hz., el control del ancho de pulso debe estar entre los valores 0 y 1000. - Para una frecuencia de 2500 Hz., el control del ancho de pulso debe estar entre los valores 0 y 400. - Para una frecuencia de 5000 Hz., el control del ancho de pulso debe estar entre los valores 0 y 500.
Programando el PWM con Niple Para poder utilizar el Modo PWM primero debe realizar los siguientes pasos: - Configurar y activar el temporizador interno TMR2. - Configurar el Pin RB3 como Salida.
Una vez realizados los pasos previos necesarios ya esta en condiciones de configurar el PWM.
Ingrese al rbol de herramientas y seleccione la opcin Insertar / Rutinas Bsicas / Mdulo CCP / Config. y Activar CCP1 como se muestra en la siguiente figura.
contar
los
anteriormente mencionados. En primer lugar Niple le presenta informacin acerca de la configuracin del temporizador TMR2. En este caso se muestra el valor de configuracin del Prescalado, dado que este valor se utiliza para realizar los clculos necesarios para generar tanto la frecuencia de salida como el control del ancho de pulso.
Seleccione la opcin Tipo de Frecuencia = Fija. A continuacin ingrese la frecuencia que desea generar. Niple calcula y muestra automticamente el rango vlido de frecuencias que puede generar. Este rango depende de Prescalado del temporizador TMR2 y de la veloci dad del cristal utilizado. A modo de ilustracin generaremos una
frecuencia de 5000 Hz. Observe que mientras Ud. ingresa el valor de la frecuencia a generar, Niple calcula de manera automti ca el valor correspondiente el registro PR2. Una vez ingresada la frecuencia, proceda a configurar el control por ancho de pulso.
2)
Control por ancho de pulso Variable: el valor de configuracin del ancho de pulso se realiza por medio de 2 registros (recuerde que se trata de un valor a 10 bits). Seleccione los registros que contienen el valor. Niple calcula y muestra de manera automtica el rango de valores permitidos para el control del ancho de pulso. Debe prestar especial atencin de asignar a los registros seleccionados, un valor que se encuen tre dentro de es te rango.
Para facilitar esto, Niple cuenta con el mdulo de escalar un valor. Consulte el mdulo de funcin matemtica Escalar un valor.
La siguiente ilustracin muestra el bloque insertado con los pasos anteriormente realizados.
comunicacin a realizar la cual puede ser mediante mdulo USART. La USART es un mdulo de comunicaciones que los modelos de la lnea 16F6xx incluyen. Es decir que todo el procedimiento de envo de los datos se realiza de manera automtica mientras que si se realiza por cdigo, se generar el cdigo Assembler necesario para realizar el envo de los datos.
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. A continuacin debe seleccionar la velocidad de comunicacin. Por ltimo seleccione el dato a enviar.
RS232 Recibir
El protocolo RS232 es utilizado generalmente para comunicacin con el puerto serial de las computad oras (puerto COM). Este mdulo le permite recibir datos mediante el protocolo de comunicacin RS232 ya sea desde otros microcontroladores o desde una PC. Primero debe selecciona el tipo de
comunicacin a realizar la cual puede ser mediante mdulo USART. La USART es un mdulo de
comunicaciones que los modelos de la lnea 16F6xx incluyen. Es decir que todo el
procedimiento de envo de los datos se realiza de manera automtica mientras a diferencia del tipo de comunicacin por cdigo que se generar el cdigo Assembler necesario para realizar el envo de los datos. En primer lugar debe seleccionar el tipo de comunicacin: por USART o por Cdigo. Si selecciona el modo de comunicacin por USART, el sistema seleccionar de manera automtica el pin de recepcin. Este pin no puede ser modificado dado que el mdulo USART determina el pin (por hardware) para la recepcin de datos. A continuacin debe seleccionar el registro donde guardar el dato recibido.
GIE = habilitador general de interrupciones PEIE = Habilitador de interrupciones por perifricos RCIE = Habilitador de interrupcin por Recepcin en USART.
Si alguna de stas banderas de interrupcin no ha sido activada, no se producir la interrupcin al recibir un dato y por ende, el micro no detectar cuando recibe un dato.
Por esto, Niple supervisa si estas interrupciones estn correctamente activadas. Si Niple detecta que las interrupciones no han sido activadas, por defecto, ofre ce la posibilidad de activarlas.
Configurar Interrup.
Permite configurar todas las opciones posibles para las interrupciones.
Seleccione la interrupcin a configurar, para esto haga clic sobre las casillas de verificacin
Frecuencia operacin mxima: 20 Mhz. Memoria Flash: 16F870/3/4 16F876/7 = 4 Kbytes = 8 Kbytes
2 Temporizadores internos de 8 bits. 1 Temporizador interno de 16 bits. Mdulos CCP (Captura, Comparacin y PWM): 16F870 = 1 mdulo
16F873/4/6/7 = 2 mdulos
Como origen de la seal de reloj externa utilizamos un cristal. El microcontrolador ejecuta cada instruccin (1 ciclo de programa) a de la velocidad del cristal utilizado. En general, un ciclo de programa corresponde a una lnea de cdigo Assembler .
Por ejemplo, si utilizamos un cristal de 4 Mhz, el microcontrolador estar ejecutando el cdigo a una velocidad de 1 Mhz. Es decir que, ejecutar 1.000.000 de lneas de cdigo del programa por segundo. Por lo tanto, cada lnea de cdigo se ejecutar en 1 microsegundo (1/1.000.000 Seg.).
Niple v4.0 - Programacin Visual de Microcontroladores Los puertos del PIC 16F87x
Los microcontroladores de la familia 16F87x disponen de 3 o 5 puertos segn el modelo de microcontrolador: Puerto A = 6 pines (5 pines A/D) Puerto B = 8 pines Puerto C = 8 pines Puerto D = 8 pines Puerto E = 3 pines (3 pines A/D)
Niple v4.0 - Programacin Visual de Microcontroladores Mdulos especficos de Niple para PIC 16F87x Crear un nuevo proyecto.
Para crear un nuevo proyecto ingrese al men Archivo \Nuevo Proyecto... Se pantalla Proyecto. En debe primer lugar el presentar de la
Nuevo
seleccionar
EEPROM,
perifricos, interrupciones, etc.). Tenga en cuenta que una vez creado el proyecto no puede cambiar el modelo de PIC. El Botn Caractersticas de la Lnea 16F87x presenta un cuadro comparativo con las caractersticas de cada uno de los modelos de PIC que componen la lnea 16F87x.
Datos del proyecto Nombre del proyecto: Nombre descriptivo del proyecto (No es el nombre de Archivo). Descripcin del proyecto: Ingrese una descripcin para identificar el proyecto Fecha: Por defecto Niple presenta la fecha actual del sistema. Nombre del Autor: Niple asigna el nombre del titular de la licencia como Autor del proyecto. E ste nombre no puede ser modificado.
Si bien los datos del proyecto son opcionales se recomien da ingresar estos datos para la correcta identificacin del proyecto en el futuro. Datos del archivo Nombre del archivo: Niple utiliza la extensin .NPL para los archivos de proyecto. Seleccione la unidad y la carpeta donde guardar el nuevo proyecto. Al selecciona la carpeta, Niple muestra todos los proyecto existentes en la misma. No puede r epetir el nombre de un archivo de proyecto.
Una vez ingresados todos los datos necesarios, presione el botn Crear.
Al crear un nuevo proyecto se cargan todas las c aractersticas del modelo de PIC seleccionado. Adems se genera de manera automtica el entorno del Programa Principal y se inserta el bloque de Inicio del programa.
Declaracin de Registros
En Niple la declaracin de registros se realiza de manera visual trabajando directamente sobre el mapa de memoria. Para ingresar a la pantalla de declaracin de registros, seleccione o por el medio men de la
Declaracin\Registros
La lnea 16F87x cuenta con 4 pginas de memoria, solapas. Cada registro est identificado con una las cuales son presentadas en 2
El mapa de memoria de datos presenta los distintos los tipos de registros con diferentes colores.
Declaracin de Bits
En Niple la declaracin de Bits se realiza de manera totalmente visual trabajando directamente sobre el mapa de memoria. Puede ingresar a la pantalla de declaracin de bits a travs del men Declaracin\Bits o a travs de la combinacin de teclas CTRL+B.
Registros Predefinidos por el PIC (Color Naranja): Corresponde a registros de configuracin y control del sistema. Estos registros se declaran de manera automtica en el momento de crear el proyecto y no pueden ser borrados. Cada uno de estos registros cumple con una funcin predeterminada.
Registros de Usuario (Color Verde): Corresponde a la memoria disponible para que el usuario declare sus propios registros.
Registros deshabilitados (Color Gris): Corresponde a la memoria no disponible. Estas direcciones de memoria no pueden ser utilizadas.
Haciendo un clic sobre el nombre de un BIT se muestra en la parte inferior de la pantalla toda informacin correspondiente al BIT seleccionado.
Una vez declarado el registro de usuario, ingrese a la pantalla de Declaracin de Bits y seleccione el nmero de BIT que desea declarar. Esto se hace haciendo un clic sobre la posicin de BIT correspondiente dentro registro de usuario y respondiendo afirmativamente cuando le pregunta si desea declara un nuevo BIT. Luego le solicita que ingrese el nombre y la descripcin del nuevo BIT.
Puerto A, se presenta una imagen del PIC con las descripciones de todos los pines. En cada pin al
correspondiente
verificacin,
de la cual el pin es configurado como entrada o salida. Cuando utiliza los modelos de micros 16F874 y 16F877, los puertos A y E se configuran juntos ya que los mismos incluyen los pines de los canales A/D y stos deben ser configurados en conjunto. Adems, debido al tamao de estos modelos (de 40 pines) la imagen del micro es demasiado grande para caber en la de Por le
esta manera, puede reco rrer la imagen del micro, como lo muestra la siguiente ilustracin.
Haciendo un clic en la casilla de verificacin se conmuta a Conversin A/D, representada por una A. Si selecciona configurar una entrada como Conversin A/D, en la parte inferior-izquierda de la pantalla se visualiza un cuadro de configuracin del voltaje de referencia para la conversin A/D. El voltaje de referencia puede ser configurado como Referencia Interna (V+= Vdd; V - = Vss); como Ref erencia Externa (V+ = RA3; como combinacin ambas. Si elige algn V- = RA2) o una de
deshabilitado
Observe
en
la
siguiente imagen donde se ha seleccionado el BIT RA1 como nica entrada advierte A/D. del Niple error y
ofrece asistencia. Si responde afirmativamente, se presenta un cuadro con todas las combinaciones posibles.
Representacin grfica
Sintaxis Puerto = Valor_Configuracin Esto se interpreta como: el puerto A es configurado como Valor_Configuracin.
Donde: El parmetro Valor_Configuracin puede contener alguno de los siguientes cdigos: S = Salida Digital E = Entrada Digital A = Canal de Conversin A/D + = Voltaje de referencia externa positiva (para conversin A/D) - = Voltaje de referencia negativa (para conversin A/D) X = Bit no disponible.
Ejemplos
Configurar Puerto B
En Niple, la configuracin de los puertos se realiza de manera totalmente visual, trabajando directamente sobre una imagen del PIC.
En la pantalla de configuracin del Puerto B, se presenta una imagen del PIC con las descripciones de todos los pines.
En cada pin correspondiente al puerto B se muestra una casilla de verificacin, a travs de la cual el pin es configurado como entrada o salida.
Cuando utiliza los modelos de micros 16F874 y 16F877, los puertos A y E se configuran juntos ya que los mismos incluyen los pines de los canales A/D y stos deben ser configurados en conjunto. Cuando utiliza los modelos 16F874 16F877 (de 40 pines), la imagen del micro es demasiado grande para caber en la pantalla de configuracin. Por esto, Niple le presenta una barra de desplazamiento en la parte derecha de la pantalla de configuracin. De esta manera puede recorrer la imagen del micro, como lo muestra la siguiente ilustracin.
Sintaxis Puerto = Valor_Configuracin Esto se interpreta como: el puerto B es configurado como Valor_Configuracin.
Donde: El parmetro Valor_Configuracin puede contener alguno de los siguientes cdigos: S = Salida Digital E = Entrada Digital Ejemplos
Configurar Puerto C
En Niple, la configuracin de los puertos se realiza de manera totalmente visual, trabajando directamente sobre una imagen del PIC.
En la pantalla de configuracin del Puerto C, se presenta una imagen del PIC con las descripciones de todos los pines. En cada pin correspondi ente al puerto C se muestra una casilla de verificacin, a travs de la cual el pin es configurado como entrada o salida.
Representacin grfica
Sintaxis Puerto = Valor_Configuracin Esto se interpreta como: el puerto C es configurado como Valor_Configuracin.
Donde: El parmetro Valor_Configuracin puede contener alguno de los siguientes cdigos: S = Salida Digital E = Entrada Digital Ejemplos
correspondiente
verificacin, a travs de la cual el pin es configurado entrada o salida. Niple le presenta una barra de como
recorrer la imagen del micro, como lo muestra la siguiente ilustracin. Una vez seleccionada la configuracin deseada, presione el botn Ingresar .
Representacin grfica
Sintaxis Puerto = Valor_Configuracin Esto se interpreta como: el puerto C es configurado como Valor_Configuracin.
Donde: El parmetro Valor_Configuracin puede contener alguno de los siguientes cdigos: S = Salida Digital E = Entrada Digital Ejemplo
Mdulos CCP
Los microcontroladores de la lnea 16F87x pueden contener 1 2 mdulos de Captura, Comparacin y Modulacin por ancho de pulso (CCP), llamados CCP1 y CCP2. La cantidad de mdulos CCP disponibles depende del modelo de PIC. Para ambos casos tienen registros de control o configuracin y registros de trabajo. Los registros de control y trabajo para el mdulo CCP1 son: CCP1CON direccin 17h y CCP1RH-CCP1RL direcciones 16h y 15h, mientras que para el mdulo CCP2 son: CCP2CON direccin 1Dh y CCP2RH-CCP2RL direcciones 16h y 15h.
Asignacin de bits a los registros CCPxCON, x puede tomar el valor 1 o 2. CCPxX 5 CCPxY 4 CCPxM3 CCPxM2 CCPxM1 CCPxM0 3 2 1 0
Los mdulos pueden trabajar en tres mod os diferentes, que son: - Modo Captura - Modo Comparacin - Modo Modulacin por Ancho de Pulso, PWM
CCPxM3-0 0000 0100 0101 0110 0111 1000 1001 1010 1011 11xx
Modo de trabajo para los mdulos CCP Mdulo desconectado. Modo captura cada flanco descendente. Modo captura cada flanco ascendente. Modo captura cada 4 flancos ascendente. Modo captura cada 16 flancos ascendente. Modo comparacin que activa la salida RC. Modo comparacin que desactiva la salida RC. Modo comparacin que genera una interrupcin en el programa. Modo comparacin que genera un disparo para cada mdulo. Modo PWM
Modo Captura
Antes de pasar a desarrollar la metodologa de programacin con Niple, realizaremos una breve descripcin del modo Captura a modo de repaso general. El modo Captura recupera el estado de cuenta del TMR1 y lo guarda en los registros CCPR1H y CCPR1L para el mdulo CCP1 o en los registros CCPR2H y CCPR2L para el mdulo CCP2. Para el mdulo CCP1, el Pin RC2 debe estar configurado como Entrada y para el mdulo CCP2, el Pin RC1 debe estar configurado como Entrada.
El TMR1 debe estar configurado con la opcin Origen de seal de reloj = Reloj Interno. (Recuerde que tambin el TMR1 puede ser configurado para que increment e mediante una seal externa).
Programando el modo Captura en Niple Para poder utilizar el Modo Captura primero debe realizar los siguientes pasos: Configurar y activar el temporizador interno TMR1. Configurar el Pin correspondiente al mdulo CCP como Entrada.
En este caso trabajamos sobre el modo Captura del mdulo CCP1, pero lo desarrollado a continuacin es valido tambin para el modo Captura del mdulo CCP2. Una vez realizados los pasos previos necesarios ya esta en condiciones de realizar una Captura.
Ingrese al rbol de herramientas y seleccione la opcin Insertar / Rutinas Bsicas / Mdulos CCP / Mdulo CCP1 / Config. y Activar CCP1 como se muestra en la imagen de la derecha. Se presenta la pantalla Mdulo CCP1. Es importante aclarar que los 3 modos (Captura, Comparacin y PWM) se programan en la misma pantalla ya que pertenecen al mismo mdulo.
Para garantizar el correcto funcionamiento, Niple chequea de manera automtica si previamente han sido configurados el temporizador TMR1 y el Pin correspondiente al mdulo, en este caso el Pin RC2 como entrada.
Si todo esta correctamente confi gurado, Niple permite comenzar a seleccionar las opciones correspondientes, de lo contrario, no permite continuar hasta no contar con los requisitos anteriormente mencionados.
En primer lugar debe seleccionar la configuracin del evento que provoca la captura. Para este caso, seleccione de la lista desplegable la opcin 1 Flanco Ascendente.
1) Esperar en un bucle hasta que termine la Captura: El PIC no realiza ninguna otra tarea que no sea esperar a que el BIT 2 (CCP1IE) del registro PIE1 se ponga en 1, lo cual indica que se ha realizado una captura.
2) No esperar y generar una interrupcin por Fin de Captura: Se configura el modo Captura y conti na ejecutando el resto del cdigo. Cuando se realiza la captura se produce una interrupcin por Fin de Captura.
Sea
cual
fuere
la
opcin
seleccionada,
continuacin le solicita que seleccione los registros donde guardar el resultado de la captura.
Si ha seleccionado la opcin No esperar y generar una interrupcin, Niple chequea el estado de las interrupciones y ofrece la posibilidad de habilitar las interrupciones que se encuentran deshabilitadas.
Por ltimo puede ingresar un comentario. Una vez seleccionados todos lo parmetros, presione el botn Ingresar.
En la siguiente imagen se muestran el bloque y el entorno de Interrupcin por CCP1 que son insertados en el tipo de captura por interrupcin. La siguiente imagen muestra los bloques insertados en el entorno del Programa Principal .
Modo Comparacin
En este modo, el microcontrolador compara de manera constante los registros CCPR1H y CCPR1L con el valor actual de TMR1. Cuando los valores son iguales, puede llegar a producirse alguno de los 3 event os segn la configuracin seleccionada. Estos eventos son: - Poner a 1 el Pin RC2 para CCP1 o el Pin RC1 para CCP2. - Poner a 0 el Pin RC2 para CCP1 o el Pin RC1 para CCP2. - Generar una interrupcin. Esta opcin no afecta al Pin RC2 para CCP1 o el Pin RC1 para CCP2.
Para el mdulo CCP1, el Pin RC2 debe estar configurado como Salida y para el CCP2 el Pin RC1 debe estar configurado como Salida.
Si el TMR1 es configurado con la opcin Origen de seal de reloj = Reloj Externo, entonces este mdulo puede ser utilizado como contador de eventos que al llegar al valor deseado se produzca una accin determinada sin necesidad de estar monitoreando el estado de cuenta.
Si el TMR1 es configurado con la opcin Origen de seal de reloj = Reloj Interno, entonces este mdulo puede ser utilizado para generar eventos en un determinado periodo.
Programando el modo Comparacin en Niple Para poder utilizar el Modo Comparacin primero debe realizar los siguientes pasos: - Configurar y activar el temporizador interno TMR1. - Configurar el Pin correspondiente al mdulo CCP como Salida.
En este caso trabajamos sobre el modo Comparacin del mdulo CCP1, pero lo desarrollado a continuacin es vlido tambin para el modo Comparacin del mdulo CCP2. Una vez realizados los pasos previos necesarios ya esta en condiciones de realizar una Comparacin. Ingrese al rbol de herramientas y seleccione la opcin Insertar / Rutinas Bsicas / Mdulos CCP / Mdulo CCP1 / Config. y Activar CCP1 como se muestra en la imagen de la derecha . Se presenta la pantalla Mdulo CCP1. Es importante aclarar que los 3 modos (Captura, Comparacin y PWM) se programan en la misma pantalla ya que pertenecen al
mismo mdulo.
Seleccione el modo Comparacin en la lista desplegable denominada Modo a utilizar. Para garantizar el correcto funcionamiento, Niple chequea de manera sido automtica si el
previamente
han
configurados
temporizador TMR1 y el Pin correspondiente al mdulo, en este caso el Pin RC2 como Salida. Si todo esta cor rectamente configurado, Niple permite comenzar a seleccionar las opciones correspondientes, de lo contrario, no permite continuar hasta no contar con los requisitos anteriormente mencionados. En primer lugar debe seleccionar el valor de Comparacin. O sea, el valor hasta el cual desea que el temporizador interno TRM1 incremente. Dado que el temporizador TMR1 est formado por 2 registros (TRM1H y TMR1L), el valor de comparacin tambin corresponde a un nmero de 16 bits.
Si Ud. desea desarrollar un sistema contador que realice una determinada accin al llegar a la cuenta de 1000. Entonces debe seleccionar las opciones Valor Literal, Tipo Decimal y 1000 como valor de comparacin. Tenga en cuenta que no podr cambiar el valor de comparacin dado que se trata de un v alor constante. Si en el futuro desea cambiar el valor de comparacin, deber generar nuevamente el cdigo Assembler, compilar el archivo .hex y grabar nuevamente el PIC.
Una forma ms verstil de realizar esto es: asignar el valor de comparacin como variable, por ejemplo, mediante 2 registros llamados cant_max_1 y cant_max_2. Esto le permite disear el programa para poder actualizar el valor de comparacin mediante algn sistema de Set Point (por RS232 , Teclado, o pulsadores que incrementen y decrementen estos valores) y se guarde (por ejemplo) los valores de estos 2 registros en la memoria EEPROM.
A continuacin seleccione el evento a realizar cuando el TMR1 llegue al estado de cuenta del valor de comparacin. Aqu tiene 3 opciones: - Poner a 1 el Pin correspondiente. - Poner a 0 el Pin correspondiente. - Generar una interrupcin. Esta opcin no afecta al Pin correspondiente el Mdulo CCP.
Si elige alguna de las 2 primeras opciones. Niple se so licita que seleccione una de las 2 maneras que tiene de realizar la comparacin.
1)
Esperar en un bucle hasta que termine la Comparacin: El PIC no realiza ninguna otra tarea que no sea esperar a que el BIT 2 (CCP1IE) del registro PIE1 se ponga en 1, lo cual finalizado la comparacin. indica que ha
2)
No esperar y generar una interrupcin por Fin de Comparacin: Se configura el modo Comparacin y contina ejecutando el resto del cdigo. Cuando el valor del TMR1 es igual a valor de comparacin, se produce una interrupcin por Fin de Compara cin.
Si ha seleccionado la opcin No esperar y generar una interrupcin..., Niple chequea el estado de las interrupciones y ofrece la posibilidad de habilitar las interrupciones que se encuentran deshabilitadas. La siguiente ilustracin muestra este caso.
La siguiente ilustracin muestra el bloque insertado con los pasos anteriormente realizados.
En la siguiente imagen se muestran el bloque y el entorno de interrupcin por Interrupcin por CCP1 que son insertados en el tipo de comparacin por interrupcin. La siguiente imagen muestra los bloques insertados en el entorno del Programa Principal.
Modo PWM
En este modo, el microcontrolador genera un pulso a una determinada frecuencia en el Pin correspondiente al mdulo CCP y cuyo ancho de pulso (tiempo de duracin del nivel alto dentro del ciclo) puede ser variable. La frecuencia generada (o periodo del ciclo) se controla por medio del registro PR2 y su valor se calcula mediante la siguiente frmula: Periodo = 1 / Frecuencia_a_generar PR2 = (Periodo / (4 * Tosc * Predivisor_de_TRM2)) 1 Donde: Tosc (Tiempo de oscilacin) = 1 / Frecuencia_Cristal
Si desea obtener el periodo que genera un determinado valor de PR2: Periodo = (PR2 + 1) * 4 * Tosc * Predivisor_de_TRM2
El ancho de pulso es controlado mediante un valor de 10 bits el cual se calcula con la siguiente frmula: Ancho_Pulso = Periodo * (Porcentaje_Ancho_Pulso / 100) Valor_Ancho_Pulso = Ancho_Pulso / (Tosc * Predivisor_de_TRM2) Donde: Porcentaje_Ancho_Pulso = Porcentaj e de ancho de pulso deseado. Ej: Porcentaje_Ancho_Pulso = 50 (Control por ancho de pulso del 50%).
Es importante tener en cuenta que el rango de valores para el control del ancho de pulso es variable y depende de la frecuencia generada. O sea que, si bien el control del ancho de pulso se realiza mediante un valor de 10 bits, el rango 0 1023 no corresponde al 0% y 100% respectivamente. Por ejemplo: - Para una frecuencia de 1000 Hz., el control del ancho de pulso debe estar entre los valores 0 y 1000. - Para una frecuencia de 2500 Hz., el control del ancho de pulso debe estar entre los valores 0 y 400. - Para una frecuencia de 5000 Hz., el control del ancho de pulso debe estar entre los valores 0 y 500.
Programando el PWM con Niple Para poder utilizar e l Modo PWM primero debe realizar los siguientes pasos: - Configurar y activar el temporizador interno TMR2. - Configurar el Pin correspondiente al mdulo CCP como Salida.
En este caso trabajamos sobre el modo PWM del mdulo CCP1, pero lo desarrollado a continuacin es valido tambin para el modo PWM del mdulo CCP2. Una vez realizados los pasos previos necesarios ya esta en condiciones de configurar el PWM. Ingrese al rbol de herramientas y seleccione la opcin Insertar / Rutinas Bsicas / Mdulos CCP / Mdulo CCP1 / Config. y Activar CCP1 como se muestra en la siguiente figura. Se presenta la pantalla Mdulo CCP1. Es importante aclarar que los 3 modos (Captura, Comparacin y PWM) se programan en la misma pantalla ya que pertenecen al mismo mdulo. Seleccione el modo PWM en la lista desplegable denominada Modo a utilizar.
contar
los
anteriormente mencionados. En primer lugar Niple le presenta informacin acerca de la configuracin del temporizador TMR2. En este caso se muestra el valor de configuracin del Prescalado, dado que este valor se utiliza para realizar los clculos necesarios para generar tanto la frecuencia de salida como el control del ancho de pulso. Lo primero que debe determinar es la frecuencia que desea generar. Seleccione la opcin Tipo de Frecuencia = Fija. A continuacin ingrese la frecuencia que desea generar. Niple calcula y muestra automticamente el rango vlido de frecuencias que puede generar. Este rango depende de Prescalado del temporizador TMR2 y de la velocidad del cristal utilizado. A modo de ilustracin vamos a generar una frecuencia de 5000 Hz. Observe que mientras Ud. ingresa el valor de la frecuencia a generar, Niple calcula de manera
automti ca el valor correspondiente el registro PR2. Una vez ingresada la frecuencia, proceda a configurar el control por ancho de pulso. Para esto seleccione el tipo de control a realizar que puede realizarse de 2 maneras segn sus neces idades: 1) Control por ancho de pulso Fijo: se genera un control por ancho de pulso constante a un determina do porcentaje del perodo y e ste porcentaje no podr ser modificado. (Es decir, para modificar este porcentaje de control de ancho de pulso deber volver a generar el cdigo ASM, compilar el archivo .hex y volver a grabar el PIC).
Por ltimo puede ingresar un comentario. Una vez seleccionados todos lo parmetros, presione el botn Ingresar. La siguiente ilustracin muestra el bloque insertado con los pasos anteriormente realizados.
comunicacin a realizar la cual puede ser mediante mdulo USART. La USART es un mdulo de
comunicaciones que los modelos de la lnea 16F87x incluyen. Es decir que todo el
procedimiento de envo de los datos se realiza de manera automtica mientras que si se realiza por cdigo, se generar 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 segui r 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. Si selecciona el modo de envo por Cdigo, el sistema le solicita que seleccione el pin de transmisin por el cual quiere realizar la comunicacin. A continuacin debe seleccionar la velocidad de comunicacin. Por ltimo seleccione el dato a enviar.
RS232 Recibir
El protocolo RS232 es utilizado generalmente para comunicacin con el puerto serial de las computad oras (puertos COM). Este mdulo le permite recibir datos mediante el protocolo de comunicacin RS232 ya sea desde otros microcontroladores o desde una PC.
Primero debe selecciona el tipo de comunicacin a realizar la cual puede ser mediante mdulo USART. La USART es un mdulo de comunicaciones que los modelos de la lnea 16F87x incluyen. Es decir que todo el procedimiento de envo de los datos se realiza de manera automtica mientras a diferencia del tipo de comunicacin por cdigo que se generar el cdigo Assembler necesario para realizar el envo de los datos. En primer lugar debe seleccionar el tipo de comunicacin: por USART o por Cdigo. Si selecciona el modo de comunicacin por USART, el sistema seleccionar de manera automtica el pin de recepcin. Este pin no puede ser modificado dado que el mdulo USART determina el pin (por hardware) para la recepcin de datos. A continuacin debe seleccionar el registro donde guardar el dato recibido. Por ultimo seleccione la velocidad de comunicacin.
Si selecciona el modo de comunicacin por USART, se deben activar las interrupcin por recepcin por USART. Si esto no se realiza, el sistema no detectar cuando un dato sea recibido. Por esto, Niple chequea si las interrupciones correspondientes han sido activadas: GIE = habilitador general de interrupciones PEIE = Habilitador de interrupciones por perifricos RCIE = Habilitador de interrupcin por Recepcin en USART.
Si alguna de estas banderas de interrupcin no ha sido activada, no se producir la interrupcin al recibir un dato y por ende, el micro no detectar cuando recibe un dato. Por esto, Niple supervisa si estas interrupciones estn correctamente activadas. Si Niple detecta que las interrupciones no han sido activadas, por defecto, ofrece la posibilidad de activarlas. Por ltimo presione le botn Ingresar.
1) Seleccione la interrupcin a configurar, para es to haga clic sobre las casillas de verificacin dispon ibles para cada caso. 2) Si selecciono Interrup. por RB0, haga clic en lo botones de opcin correspondientes a Interrup. por flanco Ascendente o Interrup. por flanco descendente. 3) Si selecciono Interr up. por TMR0 , seleccione de la lista la Tasa de divisin y el Origen de la seal de reloj . Haga clic en Ingresar.