Você está na página 1de 82

Entorno de desarrollo para programacin de microcontroladores PIC Para PIC 16F84

Versin educativa Manual de usuario

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Autoridades

Presidente de la Nacin Nstor C. Kirchner Ministro de Educacin, Ciencia y Tecnologa Daniel Filmus Directora Ejecutiva del Instituto Nacional de Educacin Tecnolgica Mara Rosa Almandoz Director Nacional del Centro Nacional de Educacin Tecnolgica Juan Manuel Kirschenbaum

Especialista de contenido: Jorge Cano

Ministerio de Educacin, Ciencia y Tecnologa Instituto Nacional de Educacin Tecnolgica Saavedra 789. C1229ACE Ciudad Autnoma de Buenos Aires Repblica Argentina

ndice1

La interfaz del entorno Entornos Crear un nuevo entorno Seleccionar el entorno actual de trabajo Borrar un entorno Bloques Interpretar bloques: Seleccionar bloques o vnculos Mover un bloque Estirar un bloque Borrar bloques Editar bloques Duplicar bloques Habilitar y deshabilitar bloques Vnculos (flechas) Crear un vnculo Cambiar el estilo de un vnculo Borrar vnculos Ingreso de datos Controlar ingreso de nombres de registros Controlar ingreso de valores literales Modos de trabajo nivel de usuario Programando Crear un nuevo proyecto. Declarar registros Borrar un registro Declarar bits Borrar un bit de usuario Cambiar el nombre a un bit de usuario Insertar bloques Descripcin de las funciones 1. Instrucciones 1.1. Instrucciones orientadas a registros ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF
1

9 10 10 10 11 11 14 14 15 15 15 16 17 19 19 20 20 21 21 21 22

25 27 29 30 31 32 33 35 35 35 35 36 36 36 37 37 37 38

El nombre comercial de este equipo es Niple, registrado por Jorge Eduardo Cano y Silvio Ernesto Galn en la Direccin Nacional de Derecho de Autor, nmero de expediente 244692. www.niplesoft.net. En el material de capacitacin del que este Manual es parte, nos referimos slo a algunas de sus funciones.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

INET / Entorno de desarrollo para programacin de microcontroladores PIC

INFCSZ IORWF MOVF MOVWF RLF RRF SUBWF SWAPF XORWF 1.2. Instrucciones orientadas a bits BCF BSF BTFSC BTFSS 1.3. Instrucciones orientadas a literales ADDLW ANDLW IORLW MOVLW SUBLW XORLW 1.4. Instrucciones orientadas a control CLRWDT NOP SLEEP 2. Rutinas bsicas Iniciar programa Asignar valor a un bit Asignar valor a un registro Configurar el puerto A Configurar el puerto B Leer puerto Escribir puerto Leer EEPROM Grabar EEPRPM Comparar un bit Comparar un registro Adicin a 8 bits Sustraccin a 8 bits Divisin a 8 bits Multiplicacin a 8 bits Conversin de registros (8 bits) a bcd Escalar RS232 Enviar RS232 Recibir Tablas Crear una nueva tabla Consultar una tabla Tiempos por bucles Multiplexado Multiplexado (4511) Teclado matricial

38 38 39 39 39 40 40 40 41 41 41 41 42 42 42 42 43 43 43 44 44 44 44 45 45 46 46 46 47 49 50 51 51 52 53 53 54 55 56 57 57 58 59 59 60 61 61 63 63 64 69 73

3. Interrupciones Configurar una interrupcin. Finalizar la interrupcin 4. Rutinas de usuario

75 75 75 75

Mens Archivo. Exportar una rutina de usuario Archivo. Importar una rutina de usuario Archivo. Exportar una imagen

79 81 82

INET / Entorno de desarrollo para programacin de microcontroladores PIC

INET / Entorno de desarrollo para programacin de microcontroladores PIC

LA INTERFAZ DEL ENTORNO


7

Entornos
Elementos de la pantalla:

En general, un programa para PIC est organizado en distintas secciones con el fin de facilitar la compresin y, al mismo tiempo, optimizar el cdigo por medio de su reutilizacin. El objetivo de cada una de estas secciones es resolver un problema en particular. Cada seccin recibe distintos nombres, segn la funcin que cumplen o el contexto en el cual se ejecutan (Programa Principal, Subrrutinas o Interrupciones). Aqu, llamamos 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. ste contiene un bloque de inicio pero no tiene un bloque de final; se realiza un bucle para ejecutar otro ciclo del programa. Cada proyecto puede contener varios entornos: Entorno del Programa principal: este entorno se crea de manera automtica y es el encargado de coordinar la ejecucin de todo el programa (incluyendo el resto de los entornos). En un proyecto slo puede haber un entorno llamado Programa Principal y no puede ser borrado. Entornos de subrutinas (rutinas de usuario): Son funciones o procedimientos generados por el usuario. Debe asignarles un nombre nico dentro del proyecto. No tiene un lmite mximo en la cantidad de entornos de subrutina que puede incluir en un proyecto. Las subrutinas pueden devolver o no un resultado (funciones y procedimientos, respectivamente). Para ejecutar una subrutina debe ser llamada o invocada. Entornos de interrupciones: Son funciones o procedimientos que se ejecutan al producirse un llamado a interrupcin. Cada interrupcin tiene un nombre predeterminado que no puede ser cambiado por el usuario. La cantidad mxi-

INET / Entorno de desarrollo para programacin de microcontroladores PIC

10

INET / Entorno de desarrollo para programacin de microcontroladores PIC

ma 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.

Crear un nuevo entorno Un entorno se genera de manera automtica, al insertar interrupciones o rutinas de usuario en el proyecto. Cuando inserta una interrupcin en el proyecto, se coloca de manera automtica el bloque inicio de entorno con el texto correspondiente y un bloque de inhabilitacin del GIE (Habilitador general de interrupciones) para que ninguna otra interrupcin suspenda la ejecucin de la actual interrupcin. Si usted est utilizando otra interrupcin de mayor prioridad, simplemente borre o inhabilite este bloque. Cuando declara una rutina de usuario, se genera un nuevo entorno con el nombre que usted asign a la rutina y le coloca el prefijo usr_ (abreviacin de la palabra usuario). Inserta de manera automtica el bloque de Inicio de entorno.

Seleccionar el entorno actual de trabajo Para conmutar entre los distintos entornos, slo seleccione el nombre del entorno en el Explorador de proyecto. En la esquina superior izquierda del rea de trabajo se muestra el nombre del entorno actual.

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

11

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 identifica una funcin en particular.

Interpretar los bloques Cada forma de bloque est directamente asociada a un tipo de funcin; esto le facilita la interpretacin del programa con slo echarle un vistazo general. Tipo de funcin, segn la forma del bloque:

Inicio-Fin. Se utiliza como inicio o fin de un entorno.

Instruccin. Cualquiera de las 35 instrucciones en cdigo assember.

Configuracin de un puerto.

Ingreso de datos. Leer el valor de un puerto (en paralelo), modo captura, modo comparacin.

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

INET / Entorno de desarrollo para programacin de microcontroladores PIC

12

INET / Entorno de desarrollo para programacin de microcontroladores PIC

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

Leer un dato de la memoria EEPROM.

Almacenar un dato en la memoria EEPROM.

Condicin. Evala una condicin y deriva la ejecucion del programa en funcin del resultado de la evaluacin.

Configuracin. Este bloque corresponde a configuracin de interrupcin y mdulos perifricos.

Activar-Desactivar interrupciones.

Clculo matemtico.

Conversin decimal a BCD o BCD a decimal.

13

Consultar tabla.

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

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

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

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

Registro de desplazamiento. Ingresar un valor y rotar.

Llamada a subrutina (call).

INET / Entorno de desarrollo para programacin de microcontroladores PIC

14

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Seleccionar bloques o vnculos Al seleccionar un bloque se presenta una serie de 9 nodos (8 alrededor y 1 en el centro). En el caso de los vnculos, se presenta un nodo en la mitad de la flecha. Puede seleccionar uno o ms bloques o vnculos de varias maneras: Haga un clic sobre el bloque o sobre el vnculo. Mantenga presionada la tecla ALT o la tecla CRTL; puede ir incorporando ms bloques o vnculos a la seleccin actual. Puede seleccionar varios bloques y vnculos de la siguiente manera: Marque un punto en el rea de trabajo (no sobre un bloque). Presione el botn izquierdo del mouse y arrastre sin soltar el botn; se mostrar un rectngulo en lnea de trazos. Al soltar el botn del mouse, se seleccionarn todos los bloques y vnculos que son incluidos en el rea seleccionada.

Mover un bloque Seleccione el bloque que desea desplazar, sin soltar el botn izquierdo del mouse, y arrastre hasta ubicar el bloque en la nueva posicin. Puede mover varios bloques simultneamente. Note que todos los bloques que dependen del bloque seleccionado se mueven en conjunto de manera rgida. Esto se debe a que el modo Arrastrar bloques se encuentra activado. Si conmuta a modo Arrastrar bloques desactivado, slo se desplaza el bloque seleccionado. Para conmutar entre el modo Arrastrar bloques activado y desactivado, ingrese al men Opciones/Diagramas de Flujo/Activar Arrastre.

A) Posicin original B) Modo Arrastrar bloques activado C) Modo Arrastrar bloques desactivado

15

Utilice el comando Edicin/Deshacer para restablecer la posicin anterior del bloque.

Estirar un bloque Al seleccionar un bloque se muestran 9 nodos (8 alrededor y 1 en el centro del smbolo seleccionado). Para modificar el tamao del bloque, haga un clic en uno de los 8 nodos perifricos y, sin soltar el botn izquierdo del mouse, arrastre hasta alcanzar el tamao deseado.

A) Tamao del bloque original B) Bloque estirado

Utilice el comando Edicin/Deshacer para restablecer el tamao anterior del bloque.

Borrar bloques Tiene dos formas de eliminar un o varios bloques: Seleccione el bloque que desea eliminar y presione la tecla Suprimir. Seleccione el bloque que desea eliminar y presione el botn derecho del mouse. Se desplegar un men contextual; presione la opcin Borrar smbolo (o la opcin Borrar, si ha seleccionado varios bloques o vnculos).

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

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 dos opciones: Puede borrar el bloque e insertarlo nuevamente, seleccionado los parmetros deseados. Si elige esta opcin, deber realizar los vnculos de manera manual. Puede editar el bloque y asignarle nuevos valores a los parmetros solicitados. Para esto no necesita borrar el bloque ni realizar los vnculos nuevamente.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

16

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Para editar un bloque, seleccinelo y luego haga un clic con el botn derecho del mouse para que se presente el men contextual. Elija la opcin Editar. Importante: Para que el men contextual presente la opcin Editar, slo debe estar seleccionado el bloque a ser editado. Si selecciona ms de un elemento, ya sean bloques o vnculos, el men no presentar la opcin Editar ya que el sistema no puede determinar cul es el bloque que desea editar. Se presentar la pantalla correspondiente al bloque seleccionado. La pantalla ser cargada con todos los parmetros seleccionados. Proceda a cambiar los valores o las opciones, y presione el botn Ingresar. Con respecto al chequeo de errores, es importante tener en cuenta que rige el mismo criterio que para la insercin de bloques. O sea que, si el bloque a editar est vinculado a otro bloque, se realizar el chequeo de errores en lnea. Mientras que si el bloque no se encuentra vinculado, el chequeo no se realizar.

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

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

17

Habilitar y deshabilitar bloques En la fase de diseo del proyecto, es habitual que durante las pruebas, usted necesite anular una parte del proceso para que no sea ejecutada. Por medio de las opciones Habilitar bloque y Deshabilitar bloque, puede anular la ejecucin de uno o ms bloques sin necesidad de borrarlos o de alterar la lgica del programa. Para deshabilitar un bloque, seleccinelo y, luego, haga un clic con el botn derecho del mouse para que se presente el men contextual. Elija la opcin Deshabilitar.

Importante: Un bloque deshabilitado no es considerado en el momento del chequeo de errores en lnea y tampoco genera el cdigo assembler. No puede deshabilitar el bloque correspondiente a una Decisin (smbolo Rombo), dado que este tipo de bloques tiene 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. Elija la opcin Habilitar.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

18

INET / Entorno de desarrollo para programacin de microcontroladores PIC

19

Vnculos (Flechas)
Un vnculo est representado por una flecha que une a dos o ms bloques, y determina el flujo del proceso. Los vnculos determinan la secuencia y el orden de ejecucin del programa. Esto significa que es muy importante tener en cuenta el sentido en que se genera el vnculo (bloques de origen y de destino). El bloque desde donde parte el vnculo de denomina Bloque de origen y el bloque al cual llega Bloque de destino. Puede identificarlos visualmente, porque el vnculo presenta una Punta de flecha en el extremo correspondiente al bloque de destino.

La secuencia de ejecucin del programa es: primero se ejecuta el Bloque de origen y, a continuacin, el Bloque de destino. Existe un criterio a tener en cuenta a la hora de realizar vnculos entre bloques, que este programa supervisa de manera automtica: Cada bloque debe tener slo un vnculo de salida. A excepcin de los bloques de decisin (rombo) que, necesariamente, deben tener 2 salidas (si la condicin se cumple y si la condicin no se cumple). Los bloques Inicio de entorno (elipses amarillas) no pueden utilizarse como Bloques de destino. O sea que no pueden tener flechas que ingresen a ellos. Los bloques Fin de entorno (elipses amarillas) no pueden utilizarse como Bloques de origen. O sea que, no pueden tener flechas que salgan desde estos bloques. Antes de codificar un programa a cdigo assembler, el programa supervisa que todos los bloques se encuentren correctamente vinculados. En el caso de existir un error de vnculos, lo informa y suspende la codificacin del assembler.

Crear un vnculo Para crear un vinculo entre 2 bloques, siga los siguientes pasos: Seleccione el Bloque de origen. Haga un clic en el nodo (punto negro) que se encuentra en el centro del bloque.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

20

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Sin soltar el botn mouse, arrastre hasta el Bloque de destino y suelte el botn del mouse.

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

Cambiar el estilo de un vnculo Para cambiar el estilo de un vnculo: Seleccione el vnculo y presione el botn derecho del mouse. Se mostrar un men contextual con los distintos estilos que puede adoptar un vnculo. Seleccione el estilo deseado.

Borrar vnculos Para eliminar un vnculo: Seleccione el vnculo y presione el botn derecho del mouse. Se mostrar un men contextual. Seleccione la opcin Borrar flecha. Tambin puede borrar un vnculo, seleccionndolo y presionando la tecla Suprimir.

21

Ingreso de datos
El programa 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. Controlar ingreso de nombres de registros Cuando necesite ingresar el nombre de un registro como parmetro para una funcin, se presenta una lista con todos los registros declarados, donde usted debe seleccionar el nombre del registro deseado. Esto garantiza que el registro a utilizar haya sido previamente declarado y, adems, previene los posibles errores de tipeo por parte del usuario, al ingresar el nombre del registro. Importante: 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, se presenta el botn Nuevo. Este botn carga la pantalla de declaracin de registros. De esta manera, si necesita ingresar como parmetro el nombre de un registro que an no ha sido declarado, tiene la posibilidad de declararlo y seleccionarlo, sin necesidad de cancelar la pantalla actual. Al cargar la pantalla Declaracin de registros, puede declarar ms de un registro nuevo antes de volver a la funcin actual. Pero, al retornar, el programa seleccionar de manera automtica, en la lista, el nombre del registro seleccionado al momento de cerrar la pantalla.

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

INET / Entorno de desarrollo para programacin de microcontroladores PIC

22

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Modos de trabajo Nivel de usuario


Dado que el programa est especialmente diseado para quienes se inician en la programacin de microcontroladores PIC, el sistema ofrece dos modos de trabajo, segn el nivel de experiencia o conocimiento tcnico del usuario: Modo de usuario inicial: Slo se permite el acceso y visualizacin de los registros y bits declarados por el usuario, y no se tiene acceso a los registros predefinidos. Los nicos bits predefinidos a los que se tiene acceso son los correspondientes a los puertos (RA0-4; RB0-7) y los bits C y Z, dado que estos bits son de uso frecuente. De esta manera, se 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. El programa supone que el usuario tiene pleno conocimiento de las acciones que se estn realizando, y no advierte sobre de los riesgos de modificar el valor de los registros de configuracin o control. Por defecto, se inicia la sesin de trabajo en modo Usuario inicial. Para conmutar entre modo de usuario inicial a experto, ingrese al men Opciones/ Nivel de Usuario.

23

INET / Entorno de desarrollo para programacin de microcontroladores PIC

PROGRAMANDO

25

Crear un nuevo proyecto


Para crear un nuevo proyecto, ingrese al men Archivo\Nuevo Proyecto... Se presentar la pantalla de Nuevo proyecto donde se le solicita que ingrese los siguientes datos:

Los datos del proyecto son: Nombre del proyecto: Nombre descriptivo del proyecto (No es el nombre del archivo). Descripcin del proyecto: Ingrese una descripcin para identificar el proyecto. Fecha: Por defecto, se presenta la fecha actual del sistema. Nombre del autor: Se 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. Los datos del archivo son: Nombre del archivo: El programa utiliza la extensin .NPL para los archivos de proyecto. Seleccione la unidad y la carpeta donde guardar el nuevo proyecto. Al seleccionar la carpeta, se muestran todos los proyectos existentes en ella. 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.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

26

INET / Entorno de desarrollo para programacin de microcontroladores PIC

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.

27

Declarar registros
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 hgalo 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.

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. Registros deshabilitados (color gris): Corresponde a la memoria no disponible. Estas direcciones de memoria no pueden ser utilizadas. Para declarar un registro de usuario, debe hacer un clic en una posicin de memoria libre correspondiente a los registros de tipos Usuario (color verde). Al hacer clic, se le solicita que ingrese el nombre del registro a declarar. Se controla la validez del nombre del registro que se est declarando; esto es:

INET / Entorno de desarrollo para programacin de microcontroladores PIC

28

INET / Entorno de desarrollo para programacin de microcontroladores PIC

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.

29

Borrar un registro
Seleccione el registro a borrar y presione la tecla Suprimir. Slo puede borrar los registros de usuario. Importante: Dado que se puede declarar bits dentro de un registro de usuario, se chequea si el registro de usuario que se intenta borrar contiene bits declarados. Si se detecta que el registro a borrar contiene bits declarados, se le advierte que junto con el registro sern borrados todos los bits que ste contenga y se 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.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

30

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Declarar bits
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.

La memoria de datos se encuentra organizada en 4 bancos o pginas, las cuales son presentadas una en cada solapa de la pantalla de declaracin de Bits El mapa de memoria de datos presenta los distintos 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. Antes de declarar un BIT de usuario debe haber declarado el registro de usuario al cual pertenece el bit que desea declararse. 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.

31

El programa 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 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.

Borrar un bit de usuario


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

INET / Entorno de desarrollo para programacin de microcontroladores PIC

32

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Cambiar el nombre a un bit de usuario


Le brinda la posibilidad de renombrar un bit o de modificar su descripcin. Para esto, seleccione el bit que desea renombrar y presione la tecla Enter. A continuacin, pregunta si desea cambiar el nombre del bit actualmente seleccionado. Si responde afirmativamente, se muestra la pantalla Renombrar un bit donde se presentan el nombre y la descripcin del bit actualmente seleccionado. Ingrese el nuevo nombre del registro y la nueva descripcin, y a continuacin presione el botn Renombrar. Al cambiar el nombre de un bit, todos los bloques de los diagramas de flujo que hacen referencia al bit anteriormente renombrado quedan desactualizados, o sea, hacen referencia a un bit que ya no existe. Para solucionar esto, se le brinda la posibilidad de actualizar de manera automtica todos los bloques que hacen referencia al bit renombrado. Se le pregunta si desea que actualice de manera automtica los diagramas de flujo con el nuevo nombre de bit. Si responde afirmativamente, se actualizan todos los bloques de todo el proyecto, de manera automtica. Importante: Adems de renombrar los bits de usuario, se le ofrece la posibilidad de cambiar el nombre de los bits correspondientes a los puertos. De esta manera, puede identificar ms fcilmente los pines del microcontrolador, indicando directamente el nuevo nombre asignado. Por ejemplo: puede renombrar el bit RA0 por Rele1 y, a partir de entonces, slo se refiere a ste como Rele1.

33

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 esta manera, se establece la secuencia y el orden en que va a ser ejecutado el programa. El vnculo puede realizarse 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. Se supervisa de manera automtica los errores lgicos, slo cuando los vnculos se realizan de manera automtica, o sea, cuando se inserta una nuevo bloque habiendo seleccionado previamente el bloque precedente. Cuando el vnculo se realiza de manera manual, no hay chequeo automtico de errores. En este caso, se le advierte a travs del siguiente mensaje.

Si elige la opcin No, se cancela la operacin de insercin de bloque. Si elige la opcin Si, se 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 ser realizado manualmente. Para insertar un bloque siga los siguientes pasos: 1. Seleccione el bloque al cual vincular el nuevo bloque a ser insertado (para que el sistema realice el vnculo de manera automtica y el chequeo de errores). 2. Haga doble clic para desplegar el rbol de herramientas y localice la funcin que necesite, desplegando y recorriendo el rbol de herramientas. 3. Una vez localizada la funcin que quiere insertar, haga doble clic en su nombre para cargar la pantalla con las opciones y parmetros de la funcin. Una vez seleccionadas las opciones e ingresados los parmetros, presione el botn Ingresar. 4. De esta manera, se insertar el bloque y ser vinculado de manera automtica.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

34

INET / Entorno de desarrollo para programacin de microcontroladores PIC

35

Descripcin de las funciones


Los bloques se encuentran agrupados en distintos niveles, organizados por categora para facilitar la bsqueda de un bloque en particular. En el primer nivel se organizan por tipo de funcin, encontrndose: 1. 2. 3. 4. Instrucciones Rutinas bsicas Interrupciones Rutinas de usuario

1. Instrucciones Esta categora incluye todas instrucciones en assembler. A su vez, se organizan por tipo de instruccin. El objetivo es utilizar lo menos posible los bloques de instrucciones, ya que estos bloques equivalen a programar en cdigo assembler.

1.1. Instrucciones orientadas a registros ADDWF Suma el valor de W y un registro

Registro F: Nombre registro que se quiere sumar a W. Destino (d): Indica dnde ser guardado el resultado de la operacin.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

36

INET / Entorno de desarrollo para programacin de microcontroladores PIC

ANDWF Realiza una operacin lgica AND entre W y un registro.

Registro F: Nombre de registro a combinar con W. Destino (d): Indica dnde ser guardado el resultado de la operacin.

CLRF Borra el contenido del registro seleccionado (Registro F).

Registro F: Nombre de registro a combinar con W.

CLRW Borra el contenido del registro W.

Esta instruccin no contiene parmetros.

37

COMF Devuelve el complemento de un registro.

Registro F: Nombre de registro del que se quiere obtener el complemento. Destino (d): Indica dnde ser guardado el resultado de la operacin.

DECF Decrementa el valor de un registro en 1.

Registro F: Nombre de registro a decrementar. Destino (d): Indica en donde ser guardado el resultado de la operacin.

DECFSZ Decrementa un registro. Si el valor del registro decrementado es 0, entonces la siguiente instruccin es obviada y ejecuta la instruccin ubicada dos lneas ms abajo.

Registro F: Nombre de registro a decrementar. Destino (d): Indica dnde ser guardado el resultado de la operacin.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

38

INET / Entorno de desarrollo para programacin de microcontroladores PIC

INCF Incrementa el valor de un registro en 1.

Registro F: Nombre de registro a incrementar. Destino (d): Indica dnde ser guardado el resultado de la operacin.

INFCSZ Incrementa un registro. Si el valor del registro incrementado es 0, entonces la siguiente instruccin es obviada y ejecuta la instruccin ubicada dos pasos ms abajo.

Registro F: Nombre de registro a incrementar. Destino (d): Indica dnde ser guardado el resultado de la operacin.

IORWF Realiza una operacin lgica OR Inclusive entre W y un registro.

Registro F: Nombre de registro a utilizar en la operacin. Destino (d): Indica dnde ser guardado el resultado de la operacin.

39

MOVF Mueve el contenido del registro.

Registro F: Nombre de registro a utilizar en la operacin. Destino (d): Indica dnde ser guardado el registro.

MOVWF Mueve el contenido del registro W a otro registro.

Registro F: Nombre de registro destino.

RLF Rota un bit el contenido del registro haca la izquierda, incorporando el Carry al registro.

Registro F: Nombre de registro a rotar. Destino (d): Indica dnde ser guardado el resultado de la rotacin.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

40

INET / Entorno de desarrollo para programacin de microcontroladores PIC

RRF Rota un bit el contenido del registro haca la derecha, incorporando el Carry al registro.

Registro F: Nombre de registro a rotar. Destino (d): Indica dnde ser guardado el resultado de la rotacin.

SUBWF Resta el valor de un registro (F) al valor de W.

Registro F: Nombre de registro a restar. Destino (d): Indica dnde ser guardado el resultado de la operacin.

SWAPF Intercambia los nibbles bajo y alto de registro.

Registro F: Nombre de registro a modificar. Destino (d): Indica dnde ser guardado.

41

XORWF Realiza una operacin lgica OR exclusiva entre el registro y W.

Registro F: Nombre de registro a utilizar en la operacin. Destino (d): Indica dnde ser guardado el resultado de la operacin. 1.2. Instrucciones orientadas a bits BCF Limpia un bit; o sea, lo pone a 0.

Registro F: Nombre de registro en donde se encuentra el bit. Nombre del bit: Indica el nombre del bit a modificar. BSF Setea un bit; o sea, lo pone a 1.

Registro F: Nombre de registro en donde se encuentra el bit. Nombre del bit: Indica el nombre del bit a modificar.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

42

INET / Entorno de desarrollo para programacin de microcontroladores PIC

BTFSC Consulta el valor del bit. Si es 0, se descarta una instruccin y ejecuta la siguiente.

Registro F: Nombre de registro en donde se encuentra el bit. Nombre del bit: Indica el nombre del bit a consultar. BTFSS Consulta el valor del bit. Si es 1, se descarta una instruccin y ejecuta la siguiente.

Registro F: Nombre de registro en donde se encuentra el bit. Nombre del bit: Indica el nombre del bit a consultar. 1.3. Instrucciones orientadas a literales ADDLW Suma un literal con W.

43

Literal K: Valor hexadecimal, decimal o binario a sumar.

ANDLW Realiza una operacin lgica entre el literal (K) y W.

Literal K: Valor hexadecimal, decimal o binario a utilizar en la operacin.

IORLW Realiza una operacin lgica OR inclusiva entre el literal (K) y W.

Literal K: Valor hexadecimal, decimal o binario a utilizar en la operacin.

MOVLW Asigna el valor del literal (K) a W.

Literal K: Valor hexadecimal, decimal o binario a mover.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

44

INET / Entorno de desarrollo para programacin de microcontroladores PIC

SUBLW Resta a W el valor del literal (K).

Literal K: Valor hexadecimal, decimal o binario a mover.

XORLW Realiza una operacin lgica OR exclusiva entre W y el valor del literal (K).

Literal K: Valor hexadecimal, decimal o binario a utilizar en la operacin.

1.4. Instrucciones orientadas a control CLRWDT Borra el contenido del registro Watchdog y su pre-escalador.

45

NOP Instruccin que se utiliza para consumir un ciclo de reloj.

Repetir: Se refiere al nmero de NOP a introducir.

SLEEP El procesador es puesto en modo Standby con el oscilador detenido.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

46

INET / Entorno de desarrollo para programacin de microcontroladores PIC

2. Rutinas bsicas Las rutinas bsicas son mdulos prediseados y se encargan de resolver un proceso en particular (una configuracin, una comparacin, un clculo, etc.). Pueden 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, se inserta de manera automtica.

Al bloque de Iniciar no puede ingresar ningn vnculo. Slo acepta un vnculo de salida.

Asignar valor a un bit Esta funcin permite asignarle un valor a un bit. Dado que un bit representa un valor binario, slo se le puede asignar un valor de 0 1.

En el campo Nombre del bit, se selecciona el nombre del bit al cual se asignar el valor. Al seleccionar el Bit, se presentan 2 renglones con informacin referida al bit seleccionado: En la primera lnea se muestra el nmero de bit y el registro al que pertenece. En la segunda se muestra la descripcin o comentario correspondiente al bit.

47

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

Filtrar los bits por registro 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 muchos bits de usuario. 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:

Sintaxis Destino = Origen Esto se interpreta como: al Bit destino se le asigna valor de Origen. Ejemplos:

Al bit RA0 se le asigna el valor 1.

Al Bit RA0 se le asigna el valor 0.

Asignar valor a un registro Esta funcin permite asignarle un valor constante o variable a un registro.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

48

INET / Entorno de desarrollo para programacin de microcontroladores PIC

En el campo Registro, seleccione el registro al cual le asignar un valor; en la sintaxis corresponde al Destino. Si desea asignarle un valor a un registro que an no ha sido declarado, mediante el botn Nuevo puede declarar el registro sin necesidad de cancelar la operacin actual. Una vez especificado el registro al cual asignar el valor, debe seleccionar qu tipo de valor desea asignar. En la sintaxis corresponde al Origen. Las opciones disponibles son: Un valor literal. Esto es, un valor constante. Se controla de manera automtica el ingreso de literales. Para obtener mayor informacin consulte el tema Conceptos bsicos / Ingreso de datos. El valor de otro registro. Esta opcin es equivalente a copiar el contenido de 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. Ejemplos: Al registro Dato se le asigna el valor Decimal 00.

Al registro Dato se le asigna el valor Binario 11011101.

49

Al registro Dato se le asigna el valor que contiene el registro Dato1.

Configurar el puerto A La configuracin de los puertos se realiza de manera totalmente visual, trabajando directamente sobre una imagen del PIC. El puerto A est conformado slo por 5 bits (RA0 RA4).

En la pantalla de configuracin del puerto A, se presenta una imagen del PIC con las descripciones de todos los pines. En cada pin correspondiente al puerto A se muestra una casilla de verificacin, a travs de la cual el pin es configurado como entrada o salida. Una vez seleccionada la configuracin correcta, presione el botn Ingresar. 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:

INET / Entorno de desarrollo para programacin de microcontroladores PIC

50

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Configurar el puerto B 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 Ejemplos:

51

Leer puerto Permite obtener el valor actual de un puerto y guardar el resultado en un registro. Esto significa que se obtiene el estado de cada pin correspondiente al puerto seleccionado.

En el campo Puerto seleccione el puerto que desea leer. El programa 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 se le advierte, para asegurarse que usted 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 que desea escribir en el puerto. Seleccione el tipo de dato y el valor a escribir en el puerto. Se supervisa la configuracin del puerto seleccionado de manera automtica y se le advierte si el puerto no est completamente como salida.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

52

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Si bien el hecho de escribir un pin configurado como entrada no es considerado un error, igualmente se le advierte, para asegurarse que usted tiene pleno conocimiento de la actual configuracin. Una vez ingresados los datos solicitados, presione el botn Ingresar. Representacin grfica:

Sintaxis: Puerto = Valor Esto se interpreta como: en el puerto Puerto, escribir el valor: Valor. Donde: El parmetro Puerto muestra el nombre del puerto: A = Puerto A B = Puerto B El parmetro Valor corresponde a un registro (valor variable) o a un literal (valor constante). Ejemplos:

Escribir el valor que contiene el registro contador en el puerto B.

Escribir el valor constante B10001111 en el puerto B.

Leer EEPROM Lee los datos de la memoria EEPROM del micro y los guarda en un registro.

1. Seleccione entre las opciones de direccin fija o variable. 2. Si elige la opcin variable, seleccione de la lista el registro en donde est contenida la direccin.

53

3. En la lista Registro donde guardar el dato, seleccione el registro destino. 4. Haga clic en Ingresar. La opcin de direccin Variable est incorporada para que usted tenga la posibilidad de tener un puntero que pueda incrementar y, de esta manera, leer o grabar un vector de memoria o incluso la totalidad. Si el registro en el que desea guardar los datos no existe, haga clic en Nuevo.

Grabar EEPROM Graba un literal o un registro en la memoria EEPROM del micro.

1. En posicin de memoria a escribir, seleccione entre las opciones de direccin Fija o Variable. 2. Si elige la opcin variable, seleccione de la lista el registro en donde est contenida la direccin. 3. En Valor a grabar, seleccione entre las opciones un literal o un registro. 4. Si seleccion la opcin un registro, seleccione de la lista el registro que desea guardar en la EEPROM 5. Haga clic en Ingresar. La opcin de direccin Variable est incorporada para que usted tenga la posibilidad de tener un puntero el cual pueda incrementar y de esta manera grabar o leer un vector de memoria o incluso la totalidad. Si el registro en el que desea guardar los datos no existe, haga clic en Nuevo.

Comparar un bit Este bloque evala si el valor del bit seleccionado es 0 o 1 y deriva el flujo del proceso en funcin del resultado de la evaluacin.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

54

INET / Entorno de desarrollo para programacin de microcontroladores PIC

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 slo puede contener los valores 0 y 1. Puede filtrar todos los bits correspondientes a un registro determinado. Para esto, seleccione la casilla de verificacin Por registro y, a continuacin, seleccione de la lista el nombre del registro del cual se quieren filtrar todos los bits declarados en l. Para verificar que realmente se ha seleccionado el bit deseado, se le ofrece informacin acerca de ste. La informacin presentada es: nmero de bit, nombre del registro al cual pertenece y comentario asociado al bit. Por ltimo, si lo desea, puede ingresar un comentario al bloque. Una vez seleccionados todos los datos, presione el botn Ingresar. Este bloque debe ser vinculado a 2 bloques de salida: El primer bloque de salida insertado corresponde a la salida SI; es decir que, en tiempo de ejecucin, el proceso tomar este camino si el resultado de la evaluacin es verdadero. El segundo bloque de salida insertado corresponde a la salida NO; es decir que, en tiempo de ejecucin, el proceso tomar este camino si el resultado de la evaluacin es falso.

Comparar un registro Evala el valor de un registro, utilizando como valor de comparacin un literal o el valor de otro registro.

55

En la lista Registro a evaluar, seleccione el registro que desea comparar. A continuacin, seleccione el operador de comparacin. Un registro puede ser comparado con un valor literal (constante) o con el valor de otro registro (variable). Seleccione el tipo de valor de comparacin, marcando en la casilla de opcin correspondiente Si selecciona la opcin un Registro, opte de la lista el registro que contiene el valor de comparacin; de lo contrario, ingrese el valor literal de comparacin. Por ltimo, puede ingresar un comentario al bloque. Una vez ingresados todos los datos solicitados, presione el botn Ingresar. 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, se 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 ejecucin, el proceso tomar este camino si el resultado de la evaluacin es falso.

Adicin a 8 bits Realiza una operacin matemtica de adicin, utilizando como sumandos un valor literal o un registro. El resultado puede ser guardado en W o en otro registro.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

56

INET / Entorno de desarrollo para programacin de microcontroladores PIC

1. En Sumando1 seleccione entre las opciones un literal o el valor de un Registro. 2. Si seleccion la opcin el valor de un Registro, seleccione de la lista el registro a utilizar como Sumando1. 3. Repita la operacin anterior en Sumando2. 4. En Resultado, seleccione entre las opciones en el registro W o en otro registro. 5. Si seleccion la opcin en otro registro, seleccione de la lista el registro en donde quiere guardar el resultado de la operacin. 6. Haga clic en Ingresar. Si algunos de los registros que desea no existen, haga clic en Nuevo.

Sustraccin a 8 bits Realiza una operacin matemtica de sustraccin, utilizando como minuendo y sustraendo un valor literal o un registro. El resultado puede ser guardado en W o en otro registro.

1. En minuendo, seleccione entre las opciones un literal o el valor de un Registro. 2. Si seleccion la opcin el valor de un Registro, seleccione de la lista el registro a utilizar como minuendo.

57

3. Repita la operacin anterior en sustraendo. 4. En Resultado, seleccione entre las opciones en el registro W o en otro registro. 5. Si seleccion la opcin en otro registro, seleccione de la lista el registro en donde quiere guardar el resultado de la operacin. 6. Haga clic en Ingresar. Si algunos de los registros que desea no existen, haga clic en Nuevo.

Divisin a 8 bits Realiza una operacin matemtica de divisin, utilizando como divisor, un valor literal o el valor de un registro. El resultado puede ser guardado en W o en otro registro.

1. En Dividendo, seleccione entre las opciones un literal o el valor de un Registro. 2. Si seleccion la opcin el valor de un Registro, seleccione de la lista el registro a utilizar como Dividendo. 3. Repita la operacin anterior en Divisor. 4. En Resultado, seleccione entre las opciones en el registro W o en otro registro. 5. Si seleccion la opcin en otro registro, seleccione de la lista el registro en donde quiere guardar el resultado de la operacin. 6. Haga clic en Ingresar. Si algunos de los registros que desea no existen, haga clic en Nuevo.

Multiplicacin a 8 bits Realiza una operacin matemtica de multiplicacin con registros o valores a 8 bits, utilizando como multiplicador, un valor literal o el valor de un registro. El resultado puede ser guardado en W o en otro registro.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

58

INET / Entorno de desarrollo para programacin de microcontroladores PIC

1. En Multiplicando seleccione entre las opciones un literal o el valor de un Registro. 2. Si seleccion la opcin el valor de un Registro, seleccione de la lista el registro a utilizar como Multiplicando. 3. Repita la operacin anterior en Multiplicador. 4. En Resultado, seleccione entre las opciones en el registro W o en otro registro. 5. Si seleccion la opcin en otro registro, seleccione de la lista el registro en donde quiere guardar el resultado de la operacin. 6. Haga clic en Ingresar. Si algunos de los registros que desea no existen, haga clic en Nuevo.

Conversin de registros (8 bits) a BCD Realiza el clculo de conversin de un nmero a BCD; es decir, descompone el valor contenido en un registro a unidad, decena y centena.

1. Seleccione el registro que contiene el valor a descomponer. 2. Seleccione los registros donde desea almacenar el resultado de la descomposicin a U, D y C. 3. Haga clic en Ingresar. Si algunos de los registros que desea no existen, haga clic en el botn Nuevo.

59

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 pulso es controlado por medio de un valor a 10 bits contenido en los registros AnchoPulso1 y AnchoPulso2. A 5000, Hz el rango vlido para el control del ancho de pulso est comprendido entre 0 y 200. Partiendo de esto, usted necesita escalar el valor contenido en los registros Dato1 y Dato2 de un rango comprendido entre 0 y 1023, al valor proporcional comprendido entre 0 y 200; para, luego, asignarlo a los registros AnchoPulso1 y AnchoPulso2. De esta manera, se obtiene un valor proporcional; es decir, el mismo porcentaje o relacin entre el rango de destino con respecto al rango de origen.

RS232 Enviar El protocolo RS232 es utilizado para comunicacin con el puerto serial de las computadoras (puertos com). Este mdulo le permite enviar datos mediante el protocolo de comunicacin RS232, ya sea a otros microcontroladores o a una PC.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

60

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Lo primero que debe seleccionar es el dato que desea transmitir. Puede enviar un valor literal o el valor que contiene un registro. Luego, seleccione el pin por el cual desea realizar la transmisin. Por ltimo, seleccione la velocidad de comunicacin.

RS232 Recibir El protocolo RS232 es utilizado, generalmente, para comunicacin con el puerto serial de las computadoras (puertos com). Este mdulo le permite recibir datos mediante el protocolo de comunicacin RS232 ya sea desde otros microcontroladores o desde una PC.

Seleccione el pin de recepcin de los datos, el cual debe estar configurado como entrada. A continuacin, debe seleccionar el registro donde guardar el valor dato recibido.

61

Por ltimo, seleccione la velocidad de comunicacin.

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

El procedimiento consiste en sumar al registro contador de programa (registro PCL) el valor correspondiente al ndice. Esto produce que la ejecucin del programa salte la cantidad de posiciones correspondiente al valor del ndice. Para que la tabla devuelva un valor para cada tem, la tabla debe estar formada por instrucciones RETLW (retorno de subrrutina con un valor en W) y debe ser llamada mediante una instruccin CALL . En el siguiente ejemplo en cdigo assembler se describe el principio de funcionamiento de una consulta por tabla.

Crear una nueva tabla Se incluye un generador de tablas en el cual usted declara la tabla y, luego, la graba como un archivo con extensin TBL. De esta manera, usted puede crear su propia librera de tablas.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

62

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Para crear una tabla, ingrese al men Declaracin / Generador de tablas / Tabla estndar. Se le muestra la pantalla de declaracin de tablas y se le solicita que ingrese el nombre de la tabla. Cada tabla debe tener su correspondiente nombre. Una vez ingresado el nombre, debe proceder a ingresar los valores de los distintos elementos que componen la tabla. Los valores de los ndices se incrementan de manera automtica, ya que no debe saltearse ninguno de ellos. Para ingresar nuevos elementos a la tabla, presione el botn Agregar un valor.

Importante: Si detecta que 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 los valores que conforman la tabla, presione el botn Ingresar.

63

Al presionar el botn Ingresar, se guarda la tabla actual en un archivo con extensin TBL A continuacin, se le solicita que ingrese el nombre del archivo de tabla. De esta manera, podr utilizar la tabla recin creada en distintos proyectos, sin necesidad de volver a declararla cada vez que la necesite. Consultar una tabla Carga una tabla, la cual debe haber sido previamente definida.

1. 2. 3. 4.

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. 5. En Resultado, elija el registro en donde desea guardar el dato devuelto por la tabla. 6. Haga clic en Ingresar.

Tiempos por bucles Realiza temporizaciones por ciclos desde 10 microsegundos hasta 99 segundos.

1. En Tiempo de espera, escriba el valor de tiempo que desea. 2. Seleccione la unidad de tiempo que desee de la lista. 3. Haga clic en Ingresar.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

64

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Multiplexado Este mdulo permite visualizar valores en displays de 7 segmentos mediante conexin a 7 bits; es decir, sin la utilizacin de un codificador para generar la combinacin binaria correspondiente a cada valor. Le permite utilizar hasta 8 displays conectados en paralelo. El primer paso es seleccionar el tipo de muestra a realizar, el cual puede ser:

1. Valor de un registro: En este caso, le solicita que seleccione el registro a visualizar y realiza de manera automtca la conversin a BCD1. Adems, selecciona de manera automtica los valores que sern mostrados en cada display, ubicando las unidades, decenas y las centenas en el orden correspondiente. Tambin le solicita que seleccione el nombre del registro a visualizar. 2. Valores individuales por display: Al seleccionar es tipo de muestra, no realiza de manera automtica el clculo de conversin a BCD1, sino que debe realizarlo el usuario en un paso previo al bloque de visualizacin. Mediante esta opcin, debe indicar los valores a visualizar en cada uno de los displays. Mediante esta opcin, puede visualizar valores a 16 bits, ya que puede realizar la conversin a BCD previamente y, luego, seleccionar los valores correspondientes al resultado de la conversin.

Una vez seleccionado el tipo de muestra a realizar, le solicita que seleccione el tipo de display a utilizar, esto es: nodo comn o Ctodo comn.

La conversin a BCD consiste en un clculo matemtico para descomponer un valor en unidad decena y centena. Es proceso es necesario para poder visualizar un valor en displays de 7 segmentos.

65

Una vez seleccionado el tipo de display a utilizar, 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, 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. En cada display se puede visualizar el valor de un registro o un valor literal. Este paso depende del tipo de muestra que haya seleccionado: 1. Si, previamente, usted ha seleccionado como tipo de muestra la opcin el valor de un registro, asigna de manera automtica los valores correspondientes a cada display, ordenando de derecha a izquierda los valores de unidad, decena y centena. 2. Si, previamente, usted ha seleccionado como tipo de muestra la opcin valores individuales por display, no asigna los valores correspondientes a cada display. Para esto, debe hacer un doble clic en cada imagen de display.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

66

INET / Entorno de desarrollo para programacin de microcontroladores PIC

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, le ofrece la posibilidad de codificar el valor mediante una tabla. Si el dato a visualizar requiere codificacin mediante tabla, seleccione la tabla.

2. O puede visualizar un valor constante (un valor literal): En este caso, se muestra siempre el mismo valor. Al seleccionar la opcin un valor constante, 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. Genera el cdigo binario correspondiente de manera automtica. Este cdigo binario vara si se trata de un display tipo nodo comn o ctodo comn; controla el cdigo generado segn el tipo de display.

67

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. Se presentan como opciones vlidas slo los pines de los puertos que se encuentra configurados como salida.

Una vez seleccionados los pines de habilitacin de cada display, le solicita que seleccione los pines correspondientes al 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.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

68

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Una vez seleccionados los pines correspondientes al bus de datos. solicita que ingrese 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. Importante: Cuando seleccione los pines, tanto de habilitacin de los displays como los pines del bus de datos, el programa 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, se los presenta en color rojo y se deshabilita el botn Ingresar.

Una vez ingresados todos los parmetros necesarios, puede consultar el esquema de conexionado que se muestra en la solapa esquema.

Puede realizar una impresin del esquema de conexionado, haciendo un clic en el bot Imprimir. Por ltimo, presione el botn Ingresar.

69

Multiplexado (4511) Este mdulo permite visualizar valores en displays de 7 segmentos mediante un codificador CD4511, para generar la combinacin binaria correspondiente a cada valor. Una de las ventajas de este tipo de visualizacin es que slo se requieren 4 bits para el bus de datos, a diferencia de los 7 bits requeridos para la visualizacin sin codificador. Le permite utilizar hasta 8 displays conectados en paralelo. El primer paso es seleccionar el tipo de muestra a realizar, el cual puede ser:

1. El valor de un registro: En este caso, le solicita que seleccione el registro a visualizar y realiza de manera automtica la conversin a BCD2. Adems, selecciona de manera automtica los valores que sern mostrados en cada display, ubicando las unidades, decenas y las centenas en el orden correspondiente. Tambin le solicita que seleccione el nombre del registro a visualizar. 2. Valores individuales por display: Al seleccionar es tipo de muestra, no realiza de manera automtica el clculo de conversin a BCD2, sino que debe realizarlo el usuario en un paso previo al bloque de visualizacin. Mediante esta opcin, debe indicar los valores a visualizar en cada uno de los displays. Mediante esta opcin puede visualizar valores a 16 bits, ya que puede realizar la conversin a BCD previamente y luego seleccionar los valores correspondientes al resultado de la conversin. Una vez seleccionado el tipo de muestra a realizar, le solicita que seleccione el tipo de display a utilizar. En este caso, slo se pueden utilizar displays tipo ctodo comn. Esto se debe a que el codificador CD4511 genera cdigos compatibles con este tipo de display.

La conversin a BCD consiste en un clculo matemtico para descomponer un valor en unidad, decena y centena. Es proceso es necesario para poder visualizar un valor en los displays de 7 segmentos.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

70

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Una vez seleccionado el tipo de display a utilizar, 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, 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 a 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. En cada display se puede visualizar el valor de un registro o un valor literal. Este paso depende del tipo de muestra que haya seleccionado: 1. Si, previamente, usted ha seleccionado como tipo de muestra la opcin el valor de un registro, se asigna de manera automtica los valores correspondientes a cada display, ordenando de derecha a izquierda los valores de unidad, decena y centena. 2. Si, previamente, usted ha seleccionado como tipo de muestra la opcin valores individuales por display, no asigna los valores correspondientes a cada display. Para esto, debe hacer un doble clic en cada imagen de display.

71

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 slo puede visualizar valores numricos. Es decir que no puede crear sus propios smbolos, ya que el codificador CD4511 no reconoce dichos cdigos. Por esto, slo puede visualizar el valor que contiene un registro: Este valor puede ser variable y no requiere la codificacin mediante tabla, ya que esta tarea la realiza el CD4511. Se le 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. Se presentan slo como opciones vlidas, los pines de los puertos que se encuentran configurados como salida.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

72

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Una vez seleccionados los pines de habilitacin de cada display, le solicita que seleccione los pines correspondientes al bus de datos. En este caso, se trata de 4 pines que son conectados al CD4511. El criterio de seleccin de los pines del bus de datos es el mismo que para los pines de habilitacin de los displays.

Una vez seleccionados los pines correspondientes al bus de datos, se solicita que ingrese 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. Importante: Cuando seleccione los pines, tanto de habilitacin de los displays como los pines del bus de datos, se 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, se los presenta en color rojo y se deshabilita el botn Ingresar.

73

Una vez ingresados todos los parmetros necesarios, puede consultar el esquema de conexionado que se muestra en la solapa esquema.

Puede realizar una impresin del esquema de conexionado, haciendo un clic en el boto Imprimir. Por ltimo, presione el botn Ingresar.

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

INET / Entorno de desarrollo para programacin de microcontroladores PIC

74

INET / Entorno de desarrollo para programacin de microcontroladores PIC

75

3. Interrupciones En esta categora se encuentran todas las funciones de configuracin y manejo de las interrupciones. La pantalla presenta las interrupciones disponibles, de acuerdo con el modelo de PIC que se est utilizando. Configurar una interrupcin 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 usted ha seleccionado la opcin Interrup. por RB0, haga clic en lo botones de opcin correspondientes a Interrup. por flanco ascendente o Interrup. por flanco descendente. 3. Si usted ha seleccionado la opcin Interrup. por TMR0, seleccione de la lista la Tasa de divisin y el Origen de la seal de reloj. Haga clic en Ingresar. Finalizar la interrupcin Inserta en el diagrama el smbolo correspondiente a fin de interrupcin. Este slo se podr insertar en el entorno de interrupcin. Si intenta insertarlo en otro entorno, se mostrar un mensaje de error y no se llevar a cabo la insercin del smbolo. Para cargar el smbolo, haga doble clic sobre el men Fin de interrupcin.

4. Rutinas de usuario Usted puede disear sus propias funciones o procedimientos para solucionar un problema en particular (siempre combinando distintas rutinas bsicas) y, luego, llamarlos desde distintas partes del programa (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 ellas. Esta categora incluye las funciones de declaracin e insercin de llamadas a rutinas de usuario.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

76

INET / Entorno de desarrollo para programacin de microcontroladores PIC

77

INET / Entorno de desarrollo para programacin de microcontroladores PIC

MENS

78

INET / Entorno de desarrollo para programacin de microcontroladores PIC

79

Archivo. Exportar una rutina de usuario


Una vez creada una rutina de usuario, se le ofrece la posibilidad de guardarla en un archivo con extensin .RUT, para luego poder utilizarla en otros proyectos. De esta manera, puede crear una librera de rutinas de usuario. Se genera un archivo para cada rutina. Para exportar una rutina de usuario, realice los siguientes pasos: 1. Seleccione el entorno de la rutina de desea. 2. Seleccione el bloque de inicio del entorno (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. Se le solicita el nombre del archivo donde guardar la rutina de usuario. Por defecto se le sugiere el nombre de la rutina de usuario.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

80

INET / Entorno de desarrollo para programacin de microcontroladores PIC

81

Archivo. Importar una rutina de usuario


Se le permite guardar sus rutinas de usuario en archivos externos para, luego, ser utilizadas en otros proyectos. De esta manera, usted puede generar su propia librera de rutinas o, incluso, intercambiar rutinas con otros usuarios. 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). Se 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, se 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 microcontrolador actualmente utilizado. Por ejemplo, si la rutina fue generada con una versin para 16F87x y realiza una lectura de un canal A/D y, luego, la importa a un proyecto para 16F84, se advierte del posible error.

INET / Entorno de desarrollo para programacin de microcontroladores PIC

82

INET / Entorno de desarrollo para programacin de microcontroladores PIC

Archivo. Exportar una imagen


Puede generar un archivo de imagen del diagrama de flujo para realizar la documentacin del proyecto. La imagen es generada en formato .WMF y corresponde un archivo de tipo vectorial. Este formato es estndar de Windows; o sea que no requiere de programas especiales para poder visualizarlos o editarlos. Adems, este tipo de archivos ocupa muy poco espacio de disco. Puede incluir este tipo de archivos en su editor de textos para complementar la documentacin tcnica o en programas de presentaciones. Al ingresar al Men Archivo/Exportar Imagen, tiene dos opciones para generar imgenes: Generar una imagen de todo el proyecto: Se genera un archivo de imagen por cada entorno. Generar una imagen slo del entorno actual: Se genera un archivo con la imagen del entorno actual. Los archivos de imagen se nombran segn el siguiente formato: NombreProyecto_NombreEntorno.WMF. Por esto, se le solicita el nombre del proyecto y se le sugiere el nombre actual del proyecto. Si usted an no ha ingresado un nombre al proyecto, se le sugiere NombreProyecto. En el caso de generar archivos de imagen de todo el proyecto, se genera un archivo para cada entorno Por ejemplo, en el siguiente proyecto:

Sern generados los archivos: Ejemplo7_Programa Principal.wmf Ejemplo7_usr_calculo1.wmf Ejemplo7_usr_calculo2.wmf Ejemplo7_usr_calculo3.wmf

Donde cada archivo contiene la imagen del entorno correspondiente.