You are on page 1of 43

SDM-ATM-28-B

Sistema de Desarrollo para Microcontroladores

Manual de Usuario y Primeros Pasos

SDM-ATM-28-B

SDM-ATM-28-B SISTEMA DE DESARROLLO PARA MICROCONTROLADORES PICS

Manual de Usuario y primeros pasos

Versin 1.0.

ROSO Electric Supply Telfono (0241) 8426384 Cel (0414) 4266490 www.roso-control.com jmrs@roso-control.com

TA AB BL LA AD DE EC CO ON NT TE EN NIID DO O
Materiales necesarios C AP TU L O Introduccin Contenido del CD-ROM Requerimientos mnimos del computador Caractersticas del sistema SDM-ATM-28-B Caractersticas del microcontrolador ATOM 1 1 1 2 2 2 Uso de la interrupcin externa EXTINT Interrupcin por desbordamiento del timer La PWM por hardware Combinando varias funciones Utilizando el programa MicroGUI Un ejemplo avanzado 24 25 26 28 29 30 32

C AP TU L O

2 4 5

Consideraciones finales Solucin a problemas frecuentes Sitios de inters en la red Productos desarrollados o distribuidos por ROSO

35 36 37

Instalacin del software Configuracin del entorno de programacin

C AP TU L O

3 5 5 6 7 7 7 8

Electric Supply Sistema de desarrollo para microcontroladores Modelo SDM-ATM-28-B Mdulo de comunicacin inalmbrica Microcontroladores ATOM IC-B (interpretes) Sistema de desarrollo para microcontroladores Modelo SDM-ATM28-USB

37

Descripcin del sistema Interfaz de programacin Fuente de alimentacin El microcontrolador La regleta de conexiones Los perifricos Listado de componentes

37 38 38

39

C AP TU L O Primeros pasos

4 9 10 11 12 13 15

Funcionamiento del protoboard Escribiendo el primer programa Depurando errores Utilizando los recursos del IDE. El Debugger Utilizando los recursos del IDE. El osciloscopio

C AP TU L O

5 18 20 21

Manejo de Entradas y Salidas Entradas y salidas digitales Entradas analgicas: El conversor A/D

C AP TU L O

6 23 23 24

Interrupciones y otros recursos avanzados Fuentes de interrupcin del microcontrolador Definiciones importantes

C O LO UL TU PIIT CA AP

IN NT TR RO OD DU UC CC CII N N
Gracias por adquirir el sistema de desarrollo SDM-ATM-28-B!
Esta unidad compacta de experimentacin, le permitir explorar el mundo de los microcontroladores de una forma fcil y rpida utilizando al mximo el poder de estos dispositivos de muy alta tecnologa. Usted aprender a utilizar al microcontrolador PIC 16F876 ATOM para desarrollar sus propias aplicaciones, escribir programas para realizar labores complejas en tiempo record y observar como, a travs de ejemplos, podr incorporar al microcontrolador PIC 16F876 ATOM en mltiples tareas, ya sea en casa, oficina, automvil y/o aplicaciones industriales. El propsito de este manual de usuario es: Presentar las caractersticas, potencialidades y ventajas del SDM-ATM-28-B. Guiarlo durante el proceso de instalacin del software de programacin del microcontrolador Basic ATOM. Suministrarle un conjunto de ejemplos e instrucciones de utilizacin que harn de su experiencia con el SDM-ATM-28-B todo un xito. Antes de continuar, tomaremos un tiempo para revisar el contenido del material que acompaa a su sistema: 01 Tarjeta de desarrollo SDM-ATM-28-B. 01 Microcontrolador PIC 16F876 ATOM. 01 Cable de programacin, extensin serial DB9 Hembra - Macho (opcional). 01 Transformador de 6-12 Vdc (opcional). 01 CD con programa de instalacin y documentacin adicional. 01 Copia en CD de este manual. Contenido del CDROM. Programa de instalacin del SDM-ATM-28-B (incluye: instalador del software de compilacin de Basic Micro para el ATOM, Manual de sintaxis del Microcontrolador Basic ATOM (Ingls), Manual de usuario del SDM-ATM-28-B (Espaol)). Programa de instalacin del software MicroGUI (Demo 30 das). Especificaciones del PIC16F876 (Microchip) en Ingles. Cdigos de ejemplo y esquemticos.

Requerimientos mnimos del computador. Procesador Pentium 266 Mhz o superior con Windows 9x, 2000, NT4 o XP. Unidad de CDROM. Puerto COM de comunicaciones. Si el computador no tiene un puerto serial disponible, puede usarse un adaptador USB/Serial. Conexin a Internet (opcional). Caractersticas del sistema SDM-ATM-28-B. El sistema de desarrollo SDM-ATM-28-B, es una herramienta poderosa, slida y bien construida, pensada para resistir un trato duro y an as brindar un acabado profesional; ya sea instalada en un protoboard durante el proceso de aprendizaje o como parte integral de una aplicacin final desarrollada por usted. Entre sus caractersticas resaltantes destacan: Posee 16 terminales de E/S digitales disponibles, etiquetados con los nombres P00 a P15. Tiene 4 terminales de E/S digitales o analgicas etiquetadas con los nombres AX0 a AX3. Una (01) salida analgica con altavoz piezoelctrico preconectado al pin P03. Cuatro (04) salidas digitales con LEDs preconectados a los terminales P04 a P07. Interfaz de programacin lista para conectar directamente al PC. Un Microcontrolador PIC 16F876 ATOM con su resonador de 20 Mhz incluido. Fuente de poder y regulador de 5 Vdc incluido que alimentan al protoboard. Pulsador de reset para reiniciar al microcontrolador. LED para indicar la alimentacin del sistema. LED para indicar la actividad del puerto serial durante la escritura y depuracin (debug) de los programas. Se conecta de forma sencilla a cualquier protoboard permitindole realizar un sin fin de experiencias. Puede programar al microcontrolador, luego retirarlo y colocarlo en la aplicacin final. De esta forma el SDM-ATM-28-B puede ser empleado para el desarrollo de aplicaciones comerciales, eliminando la necesidad de adquirir un hardware programador y su correspondiente software. Caractersticas del microcontrolador Basic ATOM. El microcontrolador PIC 16F876 ATOM posee la particularidad de programarse en un lenguaje de alto nivel con instrucciones similares al BASIC del PC. El tiempo requerido para aprender a programar y utilizar las caractersticas de este microcontrolador es considerablemente menor que otros lenguajes como el C o el terrible ensamblador. La programacin del PIC 16F876 ATOM permite llegar a niveles tan detallados como el lenguaje ensamblador, pudiendo manipularse directamente el contenido de los registros, e incluso de los bits de estos, dejando entender a cabalidad el funcionamiento de los recursos de hardware sin acudir a la abstraccin que brinda el lenguaje BASIC de alto nivel. Esto hace al microcontrolador PIC 16F876 ATOM un dispositivo til para todos, ya sean principiantes o expertos.

El ATOM IC-B incluido en el sistema SDM-ATM-28-B, est basado en el muy utilizado microcontrolador PIC 16F876, probado como uno de los PICs ms robustos y destacados de su gama. As, al utilizar un ATOM usted efectivamente est programando un PIC y tiene acceso a todos los recursos que ste brinda. Puede aprovechar sus conocimientos sobre estos fabulosos microcontroladores para sacarle el mximo beneficio a su ATOM y llevar sus aplicaciones a un nivel superior. Caractersticas importantes del Microcontrolador PIC 16F876 ATOM. Capacidades del Hardware: 384 bytes de memoria RAM. 8 k words de memoria de programa Flash re-programable. 256 bytes de EEPROM. Convertidor Analgico/Digital de 4 canales y 10 bits de resolucin. Un (01) USART (comunicacin serial). Dos (02) mdulos CCP (Capture/Compare/PWM). Tres (03) Timers o temporizadores (TMR0, TMR1 y TMR2). Hasta ocho (08) posibles fuentes de interrupcin. Capacidades del Software: Programado en lenguaje BASIC de alto nivel. Lenguaje de programacin y compilador gratuito (incluido en CD y actualizable va Internet). Comunicacin serial RS232 por software (en cualquier pin). PWM por software (en cualquier pin). Generacin de mltiples tonos y sonidos de alarma. Manejo directo de pantallas LCD alfanumricas. Medicin de pulsos y frecuencia. Manejo de los protocolos de comunicacin serial: 1-Wire de Dallas Semiconductors. I2C de Phillips Semiconductors. 3-Wire de Dallas-Maxim. SPI de Motorola. Aritmtica en punto flotante, nica en microcontroladores de 8 bits. Amigable IDE de programacin con depuracin (debug) en lnea. Permite ver el contenido de los registros y variables del microcontrolador mientras se ejecuta el programa. Uso de tablas, arreglos, modificadores de formato y de variable. Manejo de pulsadores e interruptores de forma fcil y eliminando rebotes. Manejo de motores servo y de paso mediante comandos especializados. Acceso a los registros internos del microcontrolador para lectura y/o escritura. Y muchas otras caractersticas que hacen de este uno de microcontroladores ms poderosos y a la vez sencillos de usar para casi cualquier aplicacin que usted pueda imaginar.

C O LO UL TU PIIT CA AP

IIN NS ST TA AL LA AC CII N ND DE EL L S SO OF FT TW WA AR RE E
El SDM-ATM-28-B, se acompaa de un CD de instalacin que contiene todos los elementos necesarios para su utilizacin. La instalacin del software es sumamente sencilla, con una interfaz para Windows bastante amigable. 1 2 3 Introduzca el CD etiquetado como SDM-ATM-28-B Software en la unidad de CDROM de su PC. Si el programa de instalacin no se inicia de forma automtica, utilice el explorador de Windows y haga doble clic sobre el archivo Instalar.exe. Siga las instrucciones en pantalla.

Una vez concluida la instalacin, dentro del Men de inicio/Programas/SDM-ATM-28-B, usted encontrar acceso directo a los siguientes archivos: BMAtom.exe (instalador del IDE del ATOM). MicroGUI.exe Manual Sintaxis ATOM. PIC 16F87X data sheet. DS18B20 data sheet. SDM-ATM-28-B Manual de Usuario y primeros pasos. Cdigos y programas de ejemplo.
Nota. Dentro del CD-ROM, encontrar el archivo MicroGUI.exe este programa le permitir desarrollar una serie de aplicaciones visuales en el computador por medio del microcontrolador. Sin embargo, esta versin es de 30 das gratis de uso; para emplearla pasado ese tiempo tendr que adquirir la licencia respectiva.

Para poder programar al microcontrolador ATOM incluido en el sistema SDM-ATM-28-B, deber instalar el entorno de programacin y desarrollo (IDE) suministrado por Basic Micro. Este software nos permitir escribir, compilar, depurar y descargar nuestros programas al microcontrolador. Haga clic en Men de Inicio/ Programas/SDM-ATM-28-B/ Instalar IDE ATOM y siga las instrucciones en pantalla.
Nota. La versin ms actualizada del software de programacin del microcontrolador ATOM puede ser encontrada en Internet en la direccin www.basicmicro.com.

Configuracin del entorno de programacin. Inicie el IDE haciendo clic dentro de Men de Inicio/Programas/ Basic Micro ATOM IDE 2.2/ATOM. Al hacer esto le aparecer el entorno de programacin (IDE) del ATOM, ver figura 2.1.

Figura 2.1. Entorno de programacin del ATOM.

En el men Tools, seleccione System Setup. Le aparecer un cuadro de configuracin como el mostrado en la figura 2.2. En el campo Port Setting indique el puerto COM de su computador utilizado para programar el microcontrolador. Ya est configurado y listo para usar el software de programacin del ATOM.
Figura 2.2. Configuracin del puerto de programacin/debug.

C O LO UL TU PIIT CA AP

D DE ES SIIS SC ST CR TE RIIP EM MA PC A CII N ND DE EL LS


Para describir funcionalmente al sistema SDM-ATM-28-B vamos a dividirlo en cuatro bloques operativos bien definidos: Interfaz de programacin. Fuente de alimentacin El microcontrolador. La regleta de conexiones y perifricos de salida. Interfaz de programacin. Se encarga de cambiar los niveles de tensin del puerto serial del computador (12 Vdc) o los niveles aceptados por el microcontrolador (0-5 Vdc). Est ubicada en la parte superior derecha del SDM-ATM-28-B ver figura 3.1
Interfaz de programaci n

Figura 3.1. Interfaz de programacin del SDM-ATM-28-B.

Los componentes que integran la interfaz de programacin son: Un (01) circuito integrado convertidor RS232/TTL ST232. Un (01) conector DB9 hembra marcado como CN1 Cuatro (04) condensadores 0,1 uF x 25 Voltios de tntalo Dos (02) condensador 0,1 uF x 10 Voltios cermico Un (01) diodo 1N4148. Una (01) resistencia de 4.7 k ohms. Una (01) resistencia de 10 k ohms Fuente de alimentacin. Esta parte de sistema se encarga de proporcionar los niveles de alimentacin requeridos por el microcontrolador y todos los circuitos conectados en el sistema de

desarrollo. Est ubicada en la parte inferior izquierda del SDM-ATM-28-B, segn se muestra en la figura 3.2

Fuente de Ali mentacin

Figura 3.2. Ubicacin de los elementos relacionados con la fuente de poder.

Los componentes que integran la fuente de alimentacin son: Un (01) circuito integrado regulador de 5 Voltios @ 1 Amp mx LM7805. Un (01) conector para transformador de 2,1 mm. Dos (02) condensadores 100 uF, 220 uF x 25 Voltios electroltico Un (01) condensador 0,1 uF x 25 Voltios de tntalo Un (01) diodo rectificador de 1Amp. Una (01) resistencia de 1k ohms. Un (01) diodo LED de color verde. Un (01) fusible de 500 ma Un (01) conector de salida que alimenta al protoboard El Microcontrolador. El microcontrolador que utiliza la tarjeta SDM-ATM-28-B es un PIC 16F876 ATOM, el cual, se presenta en un encapsulado de 28 pines tipo DIP. Se le ubica al centro del sistema y est acompaado de un pulsador de reset y un resonador de 20 Mhz. Todos los terminales de E/S se encuentran disponibles en la regleta de conexiones. La regleta de conexiones. Abarca toda la parte inferior del sistema y sirve de soporte al mismo. En ella se encuentran claramente identificados todos los pines del microcontrolador adems de los terminales de alimentacin VIN, +5V y GND. VIN corresponde al voltaje de entrada no regulado que suministra el transformador. +5V es una salida de 5 Vdc aunque puede utilizarse como una entrada de 5 Vdc si no se desea utilizar el regulador de tensin que incorpora el SDM-ATM-28-B. Nota: No se puede alimentar el sistema con una tensin de 5Vdc por +5V y conectarse un transformador de forma simultnea. Los perifricos. El SDM-ATM-28-B, cuenta con un grupo de 4 LEDs preconectados a los terminales P04 a P07. Estos no pueden ser removidos del sistema y reflejan en todo momento el estado de los pines mencionados. Los LEDs son indicadores visuales muy llamativos utilizados en casi todos los equipos electrnicos. El buzzer o altavoz piezoelctrico del SDM-ATM-28-B se encuentra conectado al terminal P03. Solo responder a las variaciones del estado del terminal pues tiene un condensador en serie con l que filtra la tensin DC.

Listado de componentes.
Cantidad 1 1 5 1 1 1 1 1 1 1 1 4 1 1 1 1 1 1 1 1 1 1 1 1 Referencia BUZZER C1 C2..C5,C3F C1F C2F CN1 CN2 D1 D1F F1 J1 L0L3 PON/PGM R1 R2 R3 R4R7 RST U1 U1F U2 U1B U2B XT-1 Altavoz piezoelctrico Capacitor 0.1uf @ 25 Volt cermico Capacitor Tntalo 0.1uf @ 35 Volt Capacitor 100uF 35 VDC Capacitor 220uF 16 VDC Conector DB9 Female Azul Conector 0.1 x 36 pines de extensin Diodo rectificador rpido 1N4148 Diodo rectificador 1Amp 1N4007 Fusible limitador SMD 500 ms Hold Trip 750 Jack conector para transformador de pared 2.1mm Led 5mm T 1 de alto brillo color rojo Led Bicolor 5mm T 1 3/4 difuso Resistencia SMD 1206 4.7 KOHM Resistencia SMD 1206 10. KOHM Resistencia SMD 1206 1 KOHM Resistencia SMD 1206 330 OHM SPST N.O. Pushbutton 6 mm ATOM Microcontroller DIP 28 ATOM28B-IC Regulador de voltaje tipo LM7805 SMD ST232CT Convertidor RS232 TTL Base 28 pines DIP .3" Base 16 pines DIP .3" Resonador 20 Mhz con condensador Descripcin

Nota. Lista sujeta a modificacin sin previo aviso. Algunos de los componentes de su tarjeta pueden diferir en la forma de montaje.

C O LO UL TU PIIT CA AP

P PR RIIM PA AS SO ME OS ER S RO OS SP
Vamos a comenzar a desarrollar actividades en nuestro sistema, para ello es necesario que ubique claramente cada uno de los componentes. Sistema de desarrollo SDM-ATM-28-B, ver figura 4.1 Cable de programacin (no incluido), figura 4.2 Transformador de alimentacin de 6-12 Vdc, centro positivo (no Incluido), figura 4.3. Placa experimentacin sin soldadura Protoboard (no incluido), figura 4.4

Figura 4.1. El SDM-ATM-28-B.

Figura 4.2. Cable de programacin.

Figura 4.3. El protoboard.

Figura 4.4. Transformador de pared.

10

Sobre la esquina superior del protoboard conecte firmemente el sistema SDM-ATM-28-B, segn se muestra en la figura 4.5.

Figura 4.5. protoboard.

Fijando

el

sistema

sobre

el

Entendiendo el funcionamiento del protoboard Un protoboard, es una herramienta que permite armar cualquier circuito electrnico sin necesidad de efectuar ninguna soldadura. Son utilizados en la experimentacin y prueba de circuitos, componentes y diseos. Los protoboards se caracterizan por tener una serie de puntos de contacto unidos entre s, segn lo mostrado en la figura 4.6. Las lneas horizontales se utilizan para transportar las seales de alimentacin (+5v y GND). Las lneas verticales se emplean para conectar los circuitos Figura 4.6. Entendiendo el protoboard. integrados y dems componentes. La separacin entre cada punto se ha estandarizado en 0,1 por lo que la mayora de lo componentes pueden colocarse deforma directa sobre el protoboard. La figura 4.6 muestra los puntos interconectados en un protoboard estndar y la manera de colocar los circuitos integrados para su utilizacin. Cuando conecte el microcontrolador ATOM a la tarjeta SDM-ATM-28-B. Es importante respetar la orientacin que debe tener el microcontrolador, para ello, el circuito integrado tiene una marca o muesca en su parte superior que indica la posicin del terminal nmero 1. La figura 4.7 le muestra la manera de identificar el pin 1 del ATOM y la forma correcta de colocarlo en la tarjeta de desarrollo, simplemente haga coincidir la muesca del circuito con la mostrada en la serigrafa de la tarjeta.

Figura 4.7. Identificacin del pin 1 del ATOM.

11

Precaucin. El microcontrolador PIC 16F876 ATOM es un dispositivo semiconductor sensible a las descargas electrostticas. Para evitarse inconvenientes, procure tocar alguna superficie metlica correctamente aterrada antes de manipular al microcontrolador. Conecte el cable de programacin al computador y seguidamente al puerto de programacin del SDM-ATM-28-B. Enchufe el cable del transformador al conector de alimentacin. Al concluir, debe lucir como se muestra en la figura 4.8. El diodo LED color verde llamado PON deber estar encendido, si esto no ocurre apague el sistema y verifique que los conectores estn firmemente unidos a la unidad de desarrollo. Precaucin. Jams conecte o retire un componente electrnico de un equipo o sistema energizado, esto podra destruir tanto al dispositivo en cuestin como a cualquier otra parte del equipo.

Figura 4.8. El SDM-ATM-28-B listo para trabajar

Vamos a escribir nuestro primer programa!


Inicialice el IDE haciendo clic sobre el icono correspondiente. Dentro del men File, elija la opcin New. En el cuadro de dialogo, seleccione MBasic file y presione OK. Teclee el nombre Primer_Programa cuando el editor se lo solicite. Transcriba el texto que aparece a continuacin.

'Primer_Programa.bas 'PROGRAMA PARA HACER PARPADEAR UN LED CONECTADO A P7 '-----------------------------------------------------------------------------Principal: HIGH P7 'Pin P07 va a estado "alto" y el LED se enciende PAUSE 500 'Espera de 500 ms para observar el encendido del LED LOW P7 'Pin P07 va a estado "bajo" y el LED se apaga PAUSE 500 'Espera de 500 ms para observar al LED apagado GOTO Principal 'Saltar a la etiqueta "Principal" para repetir el parpadeo '-----------------------------------------------------------------------------'FIN DEL PROGRAMA

Con el sistema SDM-ATM-28-B energizado, presione el botn Program de la barra de tareas. Si este no est disponible, puede hacer clic en Tools -> Program o presionar Ctrl + F11. Una vez hecho esto, aparecern las lneas Compiling... y Tokenizing..., las cuales, indican que el programa escrito en Basic no tiene errores de sintaxis. Aparecern frente a usted las ventanas mostradas en la figura 4.9 mientras se ensambla (derecha) y descarga el programa al ATOM (izquierda arriba). Tambin le aparecer una barra de progreso a medida que el software verifica que el programa ha sido descargado de manera correcta al microcontrolador, figura 4.9 izquierda abajo.

12

Figura 4.9. Proceso de compilacin, programacin y verificacin del ATOM.

El LED conectado a P7 comenzar a parpadear, permaneciendo 500 ms encendido y 500 ms apagado.

Felicitaciones!, usted acaba de programar un microcontrolador. En la parte inferior del IDE, aparecer una ventana similar a la mostrada en la figura 4.10 que contiene informacin del proceso de compilacin, as como, de los recursos del microcontrolador utilizados por el programa. Si la ventana de mensajes de salida no aparece haga clic en: View -> Toolbar->Output.
RAM usada por el sistema RAM usada por el Stack RAM usada por el programa Memoria RAM disponible Me moria FLASH usada por las libreras que incluye el programa Me moria FLASH usada por el programa Total de FLASH utilizada Total FLASH disponible

Lneas del programa

Figura 4.10. Mensajes de salida.

Detalles adicionales pueden ser encontrados en el manual de sintaxis del ATOM versin 3.0, pgina 20, el cual est incluido en el CD. Corrigiendo errores en el programa. Vamos a modificar el cdigo del primer programa de la siguiente manera:
'Primer_Programa.bas 'PROGRAMA PARA HACER PARPADEAR UN LED CONECTADO A P7 (CON ERRORES) '-----------------------------------------------------------------------------Principal: HIGH P07 'Pin P07 va a estado "alto" y el LED se enciende PAUSE 500 'Espera de 500 ms para observar el encendido del LED LOW P07 'Pin P07 va a estado "bajo" y el LED se apaga PAUSE 500 'Espera de 500 ms para observar al LED apagado GOTO Principals 'Saltar a la etiqueta "Principal" para repetir el parpadeo '-----------------------------------------------------------------------------'FIN DEL PROGRAMA

13

La ventana de informacin dir:


Error: FILE C:\PRIMER_PROGRAMA_ERROR.BAS(LINE 6) : [TOKEN :] : Unexpected token type

Esto evidencia la presencia de un error en la lnea 6. El tipo de error es indicado como Unexpectec token type y permite observar que se trata de un smbolo no identificado por el compilador. Para ir directamente a la lnea donde se ha detectado el error, haga doble clic sobre el mensaje correspondiente. Corrija el programa colocando P7 en lugar de P07 y trate de programar al microcontrolador. A medida que corrija los errores, le aparecern los mensajes mostrados en la figura 4.11.

Error en la lnea 6

Figura 4.11. Mensaje de error.

Utilizando los recursos del IDE: El debugger. La barra de herramientas User Tools contiene cuatro (04) botones que realizan determinadas funciones: Compile. Efecta la revisin de sintaxis y compilacin del programa. Program. Igual que Compile pero, transfiere el cdigo ejecutable al microcontrolador. Debug. Descarga el programa al microcontrolador en modo de depuracin. System Setup. Abre el cuadro de dialogo de configuracin del puerto de programacin.

14

El modo de depuracin es una herramienta que posee el microcontrolador ATOM para poder ver el contenido de los registros internos y de las variables del programa durante la ejecucin del programa. Cuando el ATOM esta haciendo debug, se puede controlar si se ejecutan las instrucciones continuamente o una por una, efectuar un reset cuando se desee, utilizar Break points, para detener el programa una vez alcanzado un punto y muchas otras caractersticas que hacen de esta una herramienta increblemente til. Sin embargo, cada instruccin es ejecutada a una velocidad muy inferior a la que alcanza el ATOM al ser programado, por ello, algunos comandos y caractersticas del microcontrolador (especialmente las interrupciones) no deben usarse al hacer debug. Para ejemplificar el uso del debug, escribiremos un programa que le ayudar a comprender todas las ventajas que tiene esta herramienta. Cree un nuevo archivo llamado Debugger.bas y transcriba el programa mostrado a continuacin.
'Debugger.bas 'ESTE PROGRAMA ES UN EJEMPLO DEL USO DEL DEBUGGER DEL MICROCONTROLADOR ATOM 'SECCION DE VARIABLES Y CONSTANTES '-----------------------------------------------------------------------------Dato VAR Byte 'Declaracin de una variable tipo byte (8 bits) '-----------------------------------------------------------------------------'CUERPO DEL PROGRAMA FOR Dato=0 TO 255 DEBUG [0,DEC Dato] NEXT 'Ciclo FOR desde 0 hasta 255 'Enviar el valor decimal de la variable Dato

END '-----------------------------------------------------------------------------'FIN DEL PROGRAMA

Haga clic sobre el botn Debug. Cuando el microcontrolador se encuentra en modo de depuracin, la pantalla se divide en cuatro partes bien definidas mostradas en la figura 4.12.

Barra de herramientas de depuracin Variables internas del microcontrolador

Cdigo del programa ani mado

Ter mi nal de comunicaciones

Figura 4.12. El IDE mientras se hace un debug.

15

La barra de herramientas de depuracin, contiene los botones para controlar la ejecucin del programa. La figura 4.13 muestra todas las funciones disponibles.
Ver contenido de las variables Ver contenido del programa de toda la RAM

Conectar/Desconectar El debugger

Ani mar

Reset

Ejecutar paso a paso

Saltar fuera de una subrutina

Auto actualizar

Poner/Quitar breakpoint

Correr

Pausa

Ejecutar paso a paso *

Correr hasta la posicin del cursor

Ver los registros

Ver el Stack

* Las subruti nas se ejecutan como si fueran una i nstrucci n

Figura 4.13. Barra de herramientas de depuracin (debug).

Seleccione el icono Ver variables y Auto Actualizar. El cdigo del programa animado, nos muestra resaltando con una lnea color verde la instruccin que se est ejecutando actualmente, de esta forma se pueden seguir con facilidad los saltos y bifurcaciones que toma el programa a medida que avanza. En la parte derecha de la pantalla, se podrn ver los registros de funcin especfica del microcontrolador, las variables del programa, el Stack o el contenido de la memoria RAM segn se desee. En la parte inferior de la pantalla, se encuentra un terminal de comunicaciones que permite visualizar variables y mensajes. Este se conecta al puerto COM utilizado para programar al ATOM de manera automtica. Para escribir y leer informacin en este terminal se utilizan las instrucciones DEBUG y DEBUGIN, respectivamente. Presione el icono Step Into y observe como aumenta el valor de la variable Dato. Este aumento se puede ver tanto en el terminal de comunicaciones como en el listado de variables del microcontrolador. Utilizando los recursos del IDE: El Osciloscopio. El software de desarrollo del microcontrolador ATOM permite graficar seales analgicas. Tiene algunas limitaciones pero es de gran ayuda, adems de ser una herramienta totalmente gratuita. Vamos a escribir un pequeo programa para graficar una seal en el osciloscopio. Transcriba el siguiente programa con el nombre Osciloscopio.bas.
'Osciloscopio.bas 'ESTE PROGRAMA MUESTRA COMO USAR EL OSCILOSCOPIO INCLUIDO EN EL IDE DEL ATOM 'SECCION DE VARIABLES Y CONSTANTES '-----------------------------------------------------------------------------Dato VAR LONG 'Declaracin de una variable tipo long (32 bits) Canal_01 CON $0E 'Canal 1 del osciloscopio '-----------------------------------------------------------------------------'CUERPO DEL PROGRAMA PAUSE 1000 Principal: FOR Dato=0 TO 255 SEROUT S_OUT,I9600,[Canal_01,Dato.Byte0,Dato.Byte1,Dato.Byte2,Dato.Byte3] 'Envo del dato al osciloscopio, primero el canal luego los 4 bytes PAUSE 50 NEXT GOTO Principal '------------------------------------------------------------------------------

16

Presione el botn Program. Para configurar y utilizar el osciloscopio, siga detalladamente los siguientes pasos: Seleccione Tools-> Oscilloscope. Ajuste Max Y = 255 y Min Y= 0. Coloque Min X = 0 y Max X = 1000. En el cuadro Timing , seleccione Point y ajuste X/point = 1. En el campo COM Port, seleccione el puerto utilizado para programar al ATOM y en Baud Rate coloque 9600. Presione Connect y comenzarn a graficarse los datos. La figura 4.14 muestra la grfica obtenida.

Figura 4.14. Grafico obtenido en el osciloscopio.

Tips para utilizar el osciloscopio: Dispone de hasta 16 canales de graficacin. Debe indicarse el canal antes de enviar el dato: $0E -> Canal 1, $1E-> Canal 16. Los datos se especifican como variables de 4 bytes. Se enva el Byte menos significativo primero. Si la variable es Byte o Word, se pueden enviar ceros para completar los 4 bytes. El canal 17 se utiliza para hacer graficas XY. Cuando se hace una grafica XY, se envan dos bytes para un canal y dos bytes para el otro. El siguiente ejemplo muestra como elaborar varias grficas de forma simultnea
'Osciloscopio_Multicanal.bas 'EJEMPLO DE GRAFICA MULTICANAL CON EL OSCILOSCOIPIO DEL IDE 'SECCION DE VARIABLES Y CONSTANTES '------------------------------------------------------------------------------

17

Dato Seno Cose Canal_01 Canal_02 Canal_03

VAR Byte VAR LONG VAR LONG CON $0E CON $0F CON $10 'Canal 1 del osciloscopio 'Canal 2 del osciloscopio 'Canal 3 del osciloscopio

'-----------------------------------------------------------------------------'CUERPO DEL PROGRAMA PAUSE 1000 Principal: FOR Dato = 0 TO 255 Seno = SIN Dato Cose = COS Dato SEROUT S_OUT,I9600,[Canal_01,Dato,0,0,0] SEROUT S_OUT,I9600,[Canal_02,Seno.Byte0,Seno.Byte1,Seno.Byte2,Seno.Byte3] SEROUT S_OUT,I9600,[Canal_03,Cose.Byte0,Cose.Byte1,Cose.Byte2,Cose.Byte3] PAUSE 50 NEXT GOTO Principal '------------------------------------------------------------------------------

Figura 4.15. Creando grficas del mltiples variables.

En la pgina de Internet www.basicmicro.com, se encuentra disponible una nota de aplicacin que describe el uso de este osciloscopio.

18

C O LO UL TU PIIT CA AP

M MA AN EN NT NE TR EJ RA JO AD OD DA AS DE SY EE Y S SA AL LIID DA AS S
Un microcontrolador, es un dispositivo ideado para conectarse con una serie de perifricos y dirigirlos para realizar una funcin especfica. Los perifricos pueden ser un banco de luces, un grupo de relevadores (relay), una serie de actuadores, un conjunto de sensores y detectores, es decir, casi cualquier elemento que permita realizar una determinada accin. De acuerdo a su naturaleza, existen dos tipos de perifricos: los de entrada y los de salida. Un perifrico de entrada se caracteriza por entregar informacin al microcontrolador, son ejemplo de estos, los pulsadores, interruptores, potencimetros, dispositivos sensores, entre otros. Por su parte, un perifrico de salida recibe la informacin y generalmente, sirve como medio de visualizacin para sta, los LEDs, Displays de 7 segmentos, pantallas LCD, relevadores, motores y en general todos los actuadores, son perifricos de salida. Al ser un microcontrolador un dispositivo electrnico, es evidente que todo el intercambio de informacin entre ste y sus perifricos tiene que hacerse por medio de seales elctricas. De la transmisin y/o recepcin de estas seales se encargan los terminales de entrada/salida del microcontrolador. El microcontrolador ATOM de la tarjeta de desarrollo SDM-ATM-28-B se presenta en un encapsulado DIP de 28 terminales, con la ayuda de la figura 5.1 entenderemos la funcin de cada uno de ellos.

Figura 5.1. Terminales de conexin del microcontrolador ATOM.

19

Funcin de los terminales del microcontrolador ATOM. Los pines GND y VDD proporcionan la energa necesaria para el funcionamiento del microcontrolador. El nivel del voltaje de estos terminales debe ser 0 Vdc y 5 Vdc, respectivamente. El terminal /RES es utilizado para reiniciar al microcontrolador. Los terminales OSC1 y OSC2 se emplean para conectar el resonador de 20 Mhz que requiere el ATOM para poder trabajar. El terminal SIN/SOUT es de entrada/salida digital y se encuentra conectado a la interfaz de programacin del SDM-ATM-28-B. Una vez programado el ATOM, puede ser usado como puerto de comunicaciones. Los terminales AX0..AX3, son entradas/salidas digitales y tambin sirven de canales de entrada al convertidor analgico/digital. Los terminales P0..P15, son entradas/salidas digitales. Todos los terminales de E/S del microcontrolador ATOM, operan en niveles TTL/CMOS compatible, esto significa, que las seales elctricas llevadas a estos pines, deben estar comprendidas entre 0 Vdc y 5 Vdc. La corriente de salida entregada por cada pin no debe exceder los 25 mA. Mayores detalles de las caractersticas elctricas del ATOM pueden verse en las hojas tcnicas del PIC 16F87X incluidas en el CD. Nota: Los terminales de entrada/salida digital pueden usarse en todos los comandos e instruccin de uso general del lenguaje de programacin del microcontrolador ATOM. Algunos comandos especiales, que requieren utilizar recursos de hardware del microcontrolador slo operan sobre pines especficos. La mayora de las instrucciones de BASIC, se encargan de definir si los pines utilizados son entradas o salidas, sin embargo, existen casos en los cuales debemos manipular directamente los pines del microcontrolador, por ejemplo, cuando se quiere accionar varias salidas a la vez. Al inicializar el microcontrolador ATOM, todos los pines son definidos como entradas. Las entradas pueden ser ledas a travs de los registros de 16 bits INS u OUTS. El registro de control DIRS, permite definir los pines como entradas (colocando un 1) o como salidas (colocando un 0). Las instrucciones INPUT y OUTPUT operan directamente sobre el registro DIRS y permiten darle legibilidad al programa. Veamos el siguiente ejemplo.
'SALIDAS.bas 'ESTE PROGRAMA ES UN EJEMPLO DE COMO MANEJAR LAS SALIDAS DIGITALES Y GENERAR 'UNA SALIDA ANALOGICA (SONIDO) CON EL SISTEMA SDM-ATM-28-B. '-----------------------------------------------------------------------------DIRB = $0 'Define los pines desde P4 hasta P7 como salidas OUTPUT P3 'Define el terminal P3 como salida digital '-----------------------------------------------------------------------------Principal: FOR OUTB=0 TO $F 'mostrar un conteo en los LEDS del SDM-ATM-28-B PAUSE 200 'Espera de 200 ms para ver el conteo NEXT SOUND P3,[150\5500] 'Tono emitido por P3 SOUND P3,[250\3000] GOTO Principal 'Repetir indefinidamente '------------------------------------------------------------------------------

20

Mayores detalles de la organizacin de los registros DIRS, OUTS e INS se encuentran en el Manual de Sintaxis del ATOM, pgina 40, incluido en el CD. En el ejemplo anterior, observamos como manipular dos perifricos de salida de uso frecuente, los LEDs y el buzzer. Los LEDs emiten una llamativa luz que sirve de indicador en casi todos los dispositivos electrnicos. Los buzzers o altavoces piezoelctricos son un excelente medio para producir seales sonoras de alarma o notificacin, por ejemplo, los telfonos celulares utilizan estos dispositivos para emitir los tonos de alerta de la mensajera de texto, el repique que acompaa a una llamada entrante, etc. Entradas y salidas digitales. Cuando se utilizan perifricos como interruptores, pulsadores y otros tipos de conmutadores electro-mecnicos debe hacerse con especial cuidado para evitar el funcionamiento errtico del microcontrolador. Supongamos que se desea modificar el programa Salidas.bas para lograr que el conteo sea controlado a travs de un pulsador y no de forma automtica. De esta manera, cada vez que se oprima el pulsador se aumentar en una unidad la cuenta. Conecte un pulsador al terminal P0 como lo muestra la figura 5.2. Programe al microcontrolador con el siguiente cdigo.
Figura 5.2. Conexin de un pulsador. 'ENTRADAS.bas '-----------------------------------------------------------------------------DIRB = $0 'Define los pines desde P4 hasta P7 como salidas INPUT P0 'Define el terminal P0 como entrada digital OUTB = $0 'Iniciar la cuenta en cero, todos los LEDS apagados '-----------------------------------------------------------------------------Principal: IF IN0 = 0 THEN 'Si el pin IN0 -> P0 esta en estado bajo, el pulsador OUTB = OUTB + 1 'esta presionado y se debe aumentar el conteo ENDIF GOTO Principal 'Repetir indefinidamente '------------------------------------------------------------------------------

La conexin utilizada en este ejemplo, se denomina activa baja por que al oprimirse el pulsador aparece un cero 0 en el pin correspondiente. Oprima repetidas veces y observe que el conteo no es uniforme, ni ordenado, sino que parece aleatorio. Esto se debe a la presencia del rebote. Este es un fenmeno asociado a los dispositivos que utilizan contactos electromecnicos y se debe a las rugosidades propias del elemento metlico de contacto. Vamos a modificar el programa para eliminar el rebote.
'ENTRADAS_2.bas 'ESTE PROGRAMA MANEJA UNA ENTRADA DIGITAL POR MEDIO DE UN PULSADOR Y ELIMINA 'EL REBOTE POR RETARDO DE PROGRAMACION '-----------------------------------------------------------------------------'INICIALIZACION DEL PROGRAMA DIRB = $0 'Define los pines desde P4 hasta P7 como salidas INPUT P0 'Define el terminal P0 como entrada digital OUTB = $0 'Iniciar la cuenta en cero, todos los LEDS apagados '------------------------------------------------------------------------------

21

Principal: IF IN0 = 0 THEN PAUSE 50 IF IN0 = 0 THEN OUTB = OUTB + 1 ENDIF WHILE IN0=0 PAUSE 1 WEND ENDIF

'Verificar si se oprimi el pulsador 'Esperar que el pin se estabilice 'Realmente se oprimi el pulsador? 'Aumentar la cuenta 'Esperar hasta que el pulsador sea liberado 'y el pin est en alto

GOTO Principal '------------------------------------------------------------------------------

Sin embargo, existe una instruccin de BASIC que nos permite trabajar directamente con interruptores y pulsadores, se llama BUTTON. El siguiente programa es un ejemplo de cmo usar esta instruccin.
'ENTRADAS_3.bas 'ESTE PROGRAMA UTILIZA LA INSTRUCCION BUTTON PARA MANEJAR UN PULSADOR QUE 'CONTROLA UN CONTEO VISUALIZADO EN LOS LEDS DEL SDM-ATM-28-B 'SECCION DE VARIABLES Y CONSTANTES '-----------------------------------------------------------------------------Edo_Activo CON 0 'Estado lgico que ocurre al presionar el pulsador Anti_Rebote CON 250 'Tiempo de espera para eliminar el rebote Auto_Repeat CON 250 'Tiempo antes de comenzar las auto-repeticiones P0_WS VAR Byte 'Var. de trabajo del BUTTON para la auto-repeticin '-----------------------------------------------------------------------------'INICIALIZACION DEL PROGRAMA DIRB = $0 'Define los pines desde P4 hasta P7 como salidas OUTB = $0 'Iniciar la cuenta en cero, todos los LEDS apagados '-----------------------------------------------------------------------------Principal: BUTTON P0,Edo_Activo,Anti_Rebote,Auto_Repeat,P0_WS,1,Pulsador_Presionado PAUSE 1 GOTO Principal Pulsador_Presionado: OUTS.NIB1 = OUTS.NIB1 + 1 'Incrementar la cuenta GOTO Principal '------------------------------------------------------------------------------

Adicionalmente, hemos visto otra manera de direccionar al registro OUTS; decir OUT.NIB1 es exactamente igual a OUTB. Se ha utilizado en este caso, un modificador de variable para tener acceso a una parte de la variable OUTS. Entradas Analgicas: El Conversor Analgico/Digital. Un conversor analgico/digital (ADC) es un dispositivo que convierte una seal analgica o continua en una representacin digital. Los ADCs le permiten a los equipos digitales como microcontroladores o computadores medir y obtener informacin de las variables del mundo real como temperatura, presin, fuerza, resistencia, voltaje, etctera. El ATOM posee un modulo ADC con una resolucin de 10 bits y cuatro canales de entrada que lo hacen bastante adecuado para muchas aplicaciones. Los terminales AX0 a AX3 dan acceso a los cuatro canales de conversin. Conecte un potencimetro de 10 k al pin P0, segn se muestra en la figura 5.3.

22

Figura 5.3. Seal analgica conectada en AX0.

Vamos a correr el programa ADC.bas en modo de depuracin.


'ADC.bas 'EJEMPLO DEL CONVERSOR ANALOGICO/DIGITAL 'SECCION DE VARIABLES Y CONSTANTES '-----------------------------------------------------------------------------Valor_Digital VAR Word 'Hora del reloj Reloj_ADC CON 2 'Usar el reloj del sistema / 32 para el ADC '-----------------------------------------------------------------------------Principal: ADIN AX0,Reloj_ADC,AD_RON,Valor_Digital 'Convierte la seal conectada en AX0 y guarda el valor en la variable 'Valor_Digital. Como el resultado es de 10 bits hay que darle formato para 'colocarlo en una variable de 16 bits, con AD_RON los 6 MSbits se llenan con 0 GOTO Principal '------------------------------------------------------------------------------

Oprima sobre los iconos Ver variables y Auto Actualizar, del debugger. Ver figura 4.13. Corra el programa con la opcin Animate y gire el potencimetro para ver los valores que arroja la conversin. Otras caractersticas del ADC: Se pueden usar los cuatros canales del ADC de modo alternado (multiplexado), no de modo simultaneo. El terminal AX3 puede usarse como referencia de voltaje desde 1 Vdc hasta 5Vdc, esto permite reducir la resolucin en voltios (cada valor digital corresponde a un menor voltaje). Con 10 bits se logran 1023 pasos o posibles valores para el resultado de la conversin. Con una referencia de 5Vdc cada paso corresponde a unos 5 mV. Utiliza el algoritmo de aproximaciones sucesivas, que arroja una buena relacin de velocidad/exactitud. El reloj puede seleccionarse para lograr conversiones de mayor velocidad o de mayor precisin, segn se requiera.

23

C O LO UL TU PIIT CA AP

IIN NT OT TR TE RO ER OS RR S RU UP PC CIIO ON NE ES SY YO R RE EC AV VA CU AN UR NZ RS ZA SO AD OS DO SA OS S
El concepto de interrupcin es aplicado en nuestras vidas diarias de manera constante. Por ejemplo, cuando estamos hablando con una persona y repica el telfono celular, dejamos momentneamente detenida nuestra conversacin, recibimos y atendemos la llamada; y luego continuamos hablando. Esto es exactamente lo que significa una interrupcin, un evento que ocurre ante alguna causa y que debe ser atendido de manera especfica a la mayor brevedad posible. Los computadores y microcontroladores modernos, utilizan el mecanismo de interrupcin para realizar tareas especficas sin necesidad de agotar recursos del procesador de manera ineficiente. Por lo general, la interrupcin sirve como seal de indicacin de algn dispositivo perifrico para avisar que ha terminado una labor o que se ha presentado alguna condicin, anormal o no, relacionada con su operacin y que es necesaria para el funcionamiento del programa. El microcontrolador ATOM posee varias fuentes de interrupcin, siendo las ms importantes: Interrupcin Externa (EXTINT). Se presenta cuando el terminal P0 cambia de estado. Esta interrupcin responde a un determinado flanco de la seal. Interrupcin del Puerto B (RBINT). Se produce cuando alguno de los terminales de P4 a P7 cambia su estado. Esta interrupcin responde a los niveles lgicos no al flanco. Timer 0 (TMR0INT). Los microcontroladores poseen temporizadores o timers que permiten efectuar muchas labores como: conteo de pulsos, generacin de bases de tiempo, ejecucin peridica de segmentos del programa, medicin de la duracin de pulsos, entre otras cosas. El timer 0 es un registro de 8 bits con un pre-escalador de 8 bits que se puede conectar al reloj del sistema o a un reloj externo mediante el terminal RA4 (SIN/SOUT). Timer 1 (TMR1INT). Interrupcin generada al desbordarse un registro de 16 bits llamado TMR1. Puede utilizarse con el oscilador del ATOM o con un oscilador externo conectado a P8. Timer 2 (TMR2INT). Interrupcin por desbordamiento de un registro de 8 bits con pre y post escalador. Interrupcin del ADC (ADINT). Ocurre cuando el conversor analgico/digital incluido en el ATOM termina de efectuar una conversin. Interrupcin por puerto serial (RCINT). Esta interrupcin indica cuando ha llegado un dato al USART del ATOM.

24

Modulo CCP1 (CCP1INT). Los mdulos de CCP del ATOM pueden ser configurados para realizar dos acciones: captura y comparacin. La captura permite tomar el valor que tiene el Timer1 al momento de producirse una determinada transicin (paso de alto o bajo, o viceversa) en el pin correspondiente. La comparacin, activa una interrupcin cuando el valor del TMR1 coincide con un valor deseado. Al ocurrir una interrupcin por comparacin, se pueden desatar otros eventos de manera simultnea como: cambiar el estado de un pin (CCP1 o CCP2), borrar el contenido del TMR1 o iniciar la conversin analgica/digital. El terminal CPP1 corresponde a P10. Modulo CCP2 (CCP2INT). Funciona igual que el CCP1INT pero utilizando el terminal P9.

Definiciones importantes. Antes de comenzar con los ejemplos, es necesario definir algunos conceptos fundamentales relacionados con las interrupciones: Fuente de interrupcin. Recurso, elemento o dispositivo que est en capacidad de producir una interrupcin. Interrupcin. Es el evento ocasionado y que debe ser atendido. Rutina de interrupcin (ISR). Es el segmento de cdigo que se ejecuta al ocurrir la interrupcin y que debe observar el manejo de la misma. Por ejemplo, guardar algunas variables, efectuar una accin de correccin, emitir algn tipo de indicacin o alarma, etctera. Habilitacin de la interrupcin. Para que la interrupcin pueda ocurrir, hay que indicar que la fuente de interrupcin deseada este activa. Interrupciones recurrentes. Son aquellas que pueden ocurrir dentro de su propia ISR. El microcontrolador ATOM no permite este tipo de interrupciones, de ocurrir, conducen a que se quede colgado teniendo que producirse un reset para salir de esta condicin. Interrupciones anidadas. Dos fuentes de interrupcin pueden, de forma simultanea o no, producir una interrupcin. En caso de ser simultaneas, el sistema elegir aquella que tenga mayor prioridad, si no existe una prioridad pre-establecida, se atender de maneja arbitraria una u otra. Puede darse el caso de estar atendiendo una interrupcin y producirse otra. La nueva interrupcin ser atendida primero y luego se continuara procesando la primera. El ATOM acepta este tipo de interrupciones, pero, su uso debe limitarse a usuarios experimentados y concientes de las limitaciones propias del microcontrolador, ya que, tal practica puede generar un funcionamiento bastante inestable y hasta errtico. Informacin adicional puede ser encontrada en el Manual de Sintaxis del microcontrolador ATOM captulo 11 y el data sheet del PIC16F87X, ambos incluidos en el CD. Materiales necesarios. Un (01) Sistema de desarrollo SDM-ATM-28-B. Un (01) Protoboard. Tres (03) Pulsadores N.O. Tres (03) Resistencias de 10k. Dos (02) Potencimetro de 10k. Una (01) Resistencia de 470 . Un (01) Diodo LED. Un (01) Termmetro digital DS18B20.

25

Uso de la interrupcin externa EXTINT. Esta interrupcin es particularmente til, ya que, permite detectar cuando ocurren flancos ascendentes o descendentes de una seal digital. Esto es comnmente empleado para lograr la sincronizacin entre sistemas diferentes y para atender eventos de importancia como condiciones de alarma o de falla. En nuestro ejemplo, tendremos un pulsador conectado al terminal P0 del ATOM y aumentaremos un contador cada vez que se libere el pulsador. Cada vez que se oprime el pulsador, el estado de un LED conectado a P7 deber cambiar. Ciertamente, esto se puede hacer de muchas maneras sin requerir de una interrupcin; sin embargo, veremos que la utilizacin de la interrupcin nos permite liberar al programa principal de toda responsabilidad en el manejo del contador. En efecto, el programa principal de nuestro ejemplo, manejar otro contador que nada tiene que ver con el pulsador conectado a P0. A medida que sus programas y proyectos crezcan en dimensiones y envergadura, esta independencia entre los diferentes segmentos de cdigo que realizan determinada labores, ser algo que usted buscar de forma casi desesperada. Conecte el pulsador segn se muestra en la figura 6.1. Cargue en el IDE del ATOM el programa EXTINT.bas que se encuentra en el CD.

SETEXTINT EXT_L2H ONINTERRUPT EXTINT,EXT_ISR ENABLE EXTINT VECES VAR BYTE TEMP VAR BYTE CLEAR HIGH P7 Principal: TEMP = TEMP + 1 Goto Principal EXT_ISR: PAUSE 20 IF IN0=1 THEN TOGGLE P7 VECES = VECES+1 DEBUG ["NRO ",DEC VECES,13] ENDIF RESUME

'Interrumpir en el paso de bajo a alto 'Cuando ocurra la int. ir a EXT_ISR 'Habilitar la interrupcin 'Cantidad de veces que se presiona el pulsador 'Variable temporal de uso general 'Inicializar todas las variables en cero 'Encender el LED 'Programa principal

'Rutina que se ejecuta cuando ocurre la INT. 'Pausa para eliminar el rebote 'Verificar que se liber el pulsador 'Cambiar el estado del LED 'Incremento del contador 'Muestra el valor de la cuenta 'Retorno al programa principal

Presione CTRL + F12 para correr el programa en modo de depuracin. Oprima el botn Animate o CTRL + F5. Oprima el pulsador en varias ocasiones; vea como el programa se mantiene ejecutando las pocas instrucciones del lazo principal y cuando usted libera al pulsador se produce el aumento de la cuenta y el cambio de estado del LED L0 del sistema SDM-ATM-28-B. Del ejemplo vemos claramente que:

26

Antes de activar la interrupcin, hay que configurar al microcontrolador para informarle cual es la condicin deseada. Se debe especificar la ubicacin de la rutina de servicio de interrupcin ISR, mediante la directiva ONINTERRUPT. Habilitar la interrupcin para que pueda ocurrir. Una vez que se ejecute la ISR, el retorno al programa principal se debe hacer con la instruccin RESUME.

Interrupcin por desbordamiento de un Timer. Este recurso, es utilizado cuando se requiere que el programa realice una determinada accin cada cierto tiempo. En este ejemplo se utilizar el Timer 1 para construir un reloj digital. El ajuste de la hora, los minutos y segundos se har en el programa principal y como medio de visualizacin se utilizar uno de los terminales de comunicacin que ofrece el IDE del ATOM. Utilizando el esquema de la figura 6.1, conecte tres pulsadores a los pines P0, P1 y P2. Con P2 se ajusta la hora, P1 los minutos y P0 los segundos.
'Timer_1.bas 'RELOJ DIGITAL UTILIZANDO INTERRUPCION DEL TIMER 1 SETTMR1 TMR1INT8 'Ajustar reloj interno con pre-escaler 1:8 ONINTERRUPT TMR1INT,ISR_TMR1 'Nombre de la rutina de interrupcin ENABLE TMR1INT 'Habilitar interrupcin del TMR1 'SECCION DE VARIABLES Y CONSTANTES '-----------------------------------------------------------------------------Horas VAR Byte 'Hora del reloj Minutos VAR Byte 'Minutero del reloj Segundos VAR Byte 'Segundero del reloj WSP0 Var Byte 'Esp. trab. del pulsador WSP1 Var Byte 'Esp. trab. del pulsador WSP2 Var Byte 'Esp. trab. del pulsador IntCuenta VAR Nib 'Var. que almacena las veces que interrumpe el TIMER 1 '-----------------------------------------------------------------------------IntCuenta = 0 'Inicializacin de variables y del programa RESETTMR1 7000 PAUSE 200 'CUERPO DEL PROGRAMA Principal: SEROUT S_OUT,I9600,[0,DEC Horas,":",DEC Minutos,":",DEC Segundos] 'Actualizar el reloj en la pantalla BUTTON P2,0,10,20,WSP2,1,Set_Hora 'Incrementar el contador de horas BUTTON P1,0,10,20,WSP1,1,Set_Minuto 'Incrementar el contador de minutos BUTTON P0,0,10,20,WSP0,1,Set_Segundo 'Incrementar el contador de segundos GOTO Principal Set_Hora: Horas = Horas + 1 IF Horas >= 24 THEN Horas = 0 ENDIF Goto Principal Set_Minuto: Minutos = Minutos + 1 IF Minutos >= 60 THEN Minutos = 0 ENDIF Goto Principal 'Al presionar el pulsador conectado en P2 se salta a 'esta parte del programa donde se incrementa el 'contador de horas

'Al presionar el pulsador conectado en p1 se ajusta 'el minutero de nuestro reloj digital

27

Set_Segundo: Segundos = Segundos + 1 IF Segundos >= 60 THEN Segundos = 0 ENDIF Goto Principal

'En este ejemplo hemos utilizado el comando BUTTON 'para manejar los pulsadores, es la forma ms fcil 'de trabajar con conmutadores e interruptores meca'nicos. Se elimina el rebote y puede hacerse auto'repeticiones de la tecla pulsada

'SUBRUTINAS '-----------------------------------------------------------------------------'Esta rutina se ejecuta aprox. cada 100 ms y es la base de tiempo del reloj ISR_TMR1: RESETTMR1 7000 'Reiniciar el TIMER 1 IntCuenta = IntCuenta + 1 'Incrementar el contador de control TOGGLE P7 'Cambiar el estado del LED con. en P7 IF IntCuenta >= 10 THEN 'Verificar si ya transcurri un segundo IntCuenta = 0 Segundos = Segundos + 1 IF Segundos >= 60 THEN 'Verificar si transcurri un minuto Segundos = 0 Minutos = Minutos + 1 IF Minutos >= 60 THEN 'Verificar si paso una hora Minutos = 0 Horas = Horas + 1 IF Horas >= 23 THEN 'Verificar si termino el da Horas = 0 ENDIF ENDIF ENDIF ENDIF RESUME '------------------------------------------------------------------------------

Programe al microcontrolador presionando CTRL + F11. Para ver el reloj funcionando, siga los siguientes pasos: 1. En la ventana de mensajes de salida, presione sobre la pestaa Terminal 1. 2. Ajuste la velocidad en 9600 bps. 3. Seleccione el puerto COM utilizado para programar al ATOM. 4. Presione el botn Connect. 5. Observe la hora en el cuadro de mensajes de salida.

2 3 5 1 4

Ajuste la hora utilizando los pulsadores conectados a P0, P1 y P2. En el programa Timer_1.bas, la rutina ISR_TMR1 se ejecuta cada vez que el Timer 1 del microcontrolador ATOM se desborda. Esto ocurre cuando la cuenta alcanza el valor de 65535 y como se reinicia en 7000, el Timer contar 58535 pulsos. Cada pulso tiene una duracin de 0,2 us x Pre-escalador; con la instruccin SETTMR1 TMR1INT8 se ajusta el pre-escalador en 8. De esta forma, cada 93,66 ms tendremos una interrupcin y no cada 100ms como podra pensarse. Esto se debe, a que en la mayora de los casos no se puede interrumpir cuando se est ejecutando una instruccin de BASIC,

28

recuerde que estas pueden ser bastante complejas y demorar un tiempo considerable en su ejecucin. La PWM por hardware. La PWM (Pulse Width Modulation), es una tcnica de modulacin que en su forma ms sencilla consiste en generar un tren de pulsos de una frecuencia fija donde es variado el tiempo que dura la seal en estado alto. Las seales de PWM son frecuentemente utilizadas para variar la tensin aplicada a motores DC, la intensidad luminosa de una lmpara e incluso en los sistemas de alimentacin ininterrumpida (UPS) para generar el voltaje alterno AC a partir de las bateras DC. Uno de los recursos con los que cuenta el microcontrolador ATOM, es realizar dos PWM por hardware utilizando la instruccin HPWM. Esta PWM tiene una resolucin mxima de 10 bits, esto quiere decir, que se pueden obtener hasta 1023 anchos diferentes para el pulso alto de la seal. Una vez iniciada, la PWM por hardware se seguir generando como una tarea en segundo plano, sin consumir recursos adicionales de programacin del microcontrolador. De esta forma, podremos destinar el grueso del programa a realizar otras labores y slo cuando sea necesario cambiar algn parmetro, ejecutar nuevamente la instruccin HPWM. Para este ejemplo, tendr que conectar un LED al pin P10 del microcontrolador ATOM, siguiendo el esquema mostrado en la figura 6.2. Al correr el programa, el LED comenzar a encenderse con poco brillo y poco a poco ir aumentando su luminosidad hasta encenderse al mximo.
Figura 6.2. Conexin del LED al CCP1. 'HPWM.bas 'ESTE PROGRAMA CONTROLA EL BRILLO DE UN LED CONECTADO A P10 POR HPWM 'SECCION DE VARIABLES Y CONSTANTES '-----------------------------------------------------------------------------Periodo VAR WORD 'Periodo de la seal de PWM Duty VAR WORD 'Duracin del pulso alto de la PWM HPIN0 CON 0 'Definicin del pin de trabajo CPP1 --> P10 '-----------------------------------------------------------------------------Periodo = 8000 'Periodo de 400us -> frecuencia PWM = 2.5 KHZ Principal: FOR Duty = 0 TO 7000 STEP 500 HPWM HPIN0,Periodo,Duty PAUSE 250 NEXT FOR Duty = 7000 TO 0 STEP -500 HPWM HPIN0,Periodo,Duty PAUSE 250 NEXT GOTO Principal '-----------------------------------------------------------------------------'Genera una PWM de ciclo til variable desde 'cero hasta 87,5% (350 us). Cada paso dura '250 ms y as veremos como se enciende el LED 'con intensidad creciente 'Ahora veremos como se va apagando lentamente 'el LED hasta quedar completamente apagado

Tips al momento de utilizar la HPWM: El periodo de la seal se calcula como PWM per = Periodo 0.05 s . El tiempo que dura el pulso en alto se determina como: THIGH = Duty . 0.05s.

29

La base de tiempo del HPWM es el Timer 2, por lo tanto, no puede ser empleado para otras funciones (por ejemplo, Capture o Compare). No es conveniente que la frecuencia de la PWM supere los 20 Khz, pues se pierde la resolucin de 10 bits. Si se generan dos seales de HPWM independientes por P9 y P10, ambas tendrn la misma frecuencia aunque el ciclo til sea diferente.

Combinando varias funciones. En este ejemplo, utilizaremos los diferentes recursos del ATOM. A la vez, Para ello, se requiere realizar lo siguiente: Conectar un potencimetro de 10k al pin AX0 , como en la figura 5.3. Conectar otro potencimetro de 10 k al pin AX1. Unir los terminales P8 y P10 con un cable. Nuestro objetivo en este caso, ser utilizar los potencimetros para variar el perodo y el ciclo til de la seal de HPWM generada en P10. El terminal P8 y el comando PULSIN, nos permitirn medir la onda de salida y ver como responde esta ante nuestros ajustes. Descargue al microcontrolador ATOM del sistema de desarrollo SDM-ATM-28-B, el siguiente programa.
'ESTE PROGRAMA MUESTRA COMO USAR LA INTERRUPCION DEL TMR0 Y EL HPWM 'CONFIGURACION DE LA INTERRUPCION DEL TMR0 SETTMR0 TMR0INT256 ONINTERRUPT TMR0INT, TMR0_ISR ENABLE TMR0INT 'SECCION DE VARIABLES Y CONSTANTES '-----------------------------------------------------------------------------Periodo VAR WORD 'Periodo de la PWM generada Ciclo_Util VAR WORD 'Pulso en alto de la PWM generada Thigh VAR WORD 'Medicin del pulso alto Tlow VAR WORD 'Medicin del pulso bajo Pwmp VAR WORD 'Medicin del periodo de la PWM Freq VAR LONG 'Medicin de la frecuencia de la PWM HPIN0 Alto Bajo CON 0 CON 1 CON 0 'CPP1 --> P10

'-----------------------------------------------------------------------------'PROGRAMA PRINCIPAL DO PULSIN P8,Alto,Thigh 'Mide el pulso alto en us PULSIN P8,Bajo,Tlow 'Mide el pulso bajo en us Pwmp = Tlow + Thigh 'Calcula el periodo en us Freq = 1000000/Pwmp 'Calcula el periodo en Hz SEROUT S_OUT,I9600,[0,"TH=",DEC Thigh\5," uS TL=",DEC Tlow\5," uS PER="] SEROUT S_OUT,I9600,[DEC Pwmp\5," uS FREQ=",DEC Freq\6," Hz"] 'Muestra el resultado de la medicin PAUSE 150 'Repite cada 150 ms WHILE (1) 'SUBRUTINAS '-----------------------------------------------------------------------------'Esta rutina se ejecuta aprox. cada 14 ms. en ella se hace la lectura de los 'dos potencimetros y se actualiza la configuracin de la PWM TMR0_ISR: ADIN AX0,2,AD_RON, Periodo ADIN AX1,2,AD_RON, Ciclo_Util

30

Periodo= Periodo*16 + Periodo */ $03C0 Ciclo_Util = Ciclo_Util * 16 + Ciclo_Util */ $03C1 HPWM HPIN0,Periodo,Ciclo_Util RESUME '------------------------------------------------------------------------------

Conecte el Terminal 1 al puerto COM de programacin, aparecer en este terminal de comunicaciones algo similar a lo mostrado en la figura 6.3.

Figura 6.3. Ejecucin del programa

El programa principal de este ejemplo hace tres cosas sencillas: Mide el tiempo en estado alto y en bajo de la seal aplicada a P8. Calcula el periodo y la frecuencia de esa seal. Lo muestra en la PC. Por su parte durante la interrupcin del Timer 0: Se mide las dos seales de los potencimetros. Se calculan los parmetros Periodo y Ciclo_Util para la HPWM. Se ejecuta o inicia la HPWM. Finalmente, vemos como es posible combinar varios recursos para hacer un programa bastante sencillo que efecta una labor relativamente compleja. Utilizando el programa MicroGUI. Cada da aparecen en el mercado nuevos programas de aplicacin que realzan y potencian las aplicaciones desarrolladas con los microcontroladores. Ejemplo de ello, es el software MicroGUI, el cual, permite al usuario construir una interfaz interactiva de control e instrumentacin en el computador y conectarla a cualquier microcontrolador. El programa incluye una serie de instrumentos y dispositivos virtuales que pueden ser usados, controlados y dirigidos por el microcontrolador a travs del puerto serial del computador de una forma muy sencilla. El sistema de desarrollo SDM-ATM-28-B, no posee un grupo de pulsadores que permita simular entradas digitales. En este ejemplo, utilizaremos los interruptores y pulsadores que nos brinda el programa MicroGUI para controlar el encendido/apagado de los LEDs del SDM-ATM-28-B. Descargue al microcontrolador ATOM el programa Micro_01.bas mostrado a continuacin.
'Micro_01.bas 'ESTE PROGRAMA SE UTILIZA JUNTO CON EL ARCHIVO Micro_01.prj Y EL PROGRAMA 'MICROGUI Y PERMITE CONTROLAR EL ESTADO DE LOS LEDS DE LA TARJETA SDM-ATM-28-B 'DESDE EL COMPUTADOR. ES UN EJEMPLO DE COMO AMPLIAR LAS CAPACIDADES DEL SISTEMA 'POR MEDIO DE HARDWARE VIRTUAL RESIDENTE EN UN PC. 'SECCION DE VARIABLES Y CONSTANTES '-----------------------------------------------------------------------------Leer_Pines CON $81 'Comando del MicroGUI para leer el estado de los pines Escribir_Pines CON $A1 'Escribe un nuevo valor para los pines en el MicroGUI

31

Leer_Slider CON $84 'Comando para leer el "Slider" que controla el tono Edo_de_Pines VAR Word 'Var. que almacena el edo de los pines P0 a P15 Barra_Slider VAR Byte 'Var. que almacena la posicin del "slider" Temp VAR Byte 'Var. Temporal '-----------------------------------------------------------------------------'INICIALIZACION DEL PROGRAMA PAUSE 500 'Pausa de inicializacin que ayuda a sincronizar con el MicroGUI DIRB = $0 'Definir P4 a P7 como salidas '-----------------------------------------------------------------------------Principal: 'Leer los switches en la interfaz del MicroGUI y guardarlo en la var. SEROUT S_OUT,I9600,[Leer_Pines ] SERIN S_IN ,I9600,[Edo_de_Pines.byte0,Edo_de_Pines.byte1] 'Colocar en los LEDs L0..L2 el estado de los interruptores OUTB = Edo_de_Pines.Nib2 'Ajustar la variable para actualizar los LEDs en la pantalla del PC Edo_de_Pines.Nib1=Edo_de_Pines.Nib2 'Actualizar el estado de los LED en la PC SEROUT S_OUT,I9600,[Escribir_Pines] SEROUT S_OUT,I9600,[Edo_de_Pines.byte0,Edo_de_Pines.byte1] SERIN S_IN ,I9600,[Temp] SEROUT S_OUT,I9600,[Leer_Slider] 'Leer pos. del "slider" y guardarlo en la SERIN S_IN ,I9600,[Barra_Slider] 'variable Barra_Slider. SOUND P3,[500 \Barra_Slider * 50] 'Generar un tono en el buzzer Goto Principal '-----------------------------------------------------------------------------'FIN DEL PROGRAMA

Inicialice el software MicroGUI haciendo clic en: Menu Inicio/ Programas/MicroGUI/ MicroGUI.exe. Seleccione Projects Open.. y busque dentro del directorio de instalacin del software que acompaa al SDM-ATM-28-B o en el CDROM, el archivo Micro_01.prj. Le aparecer la interfaz mostrada en la figura 6.4. En el men Comm, seleccione el puerto COM que utiliz para programar al ATOM. Presione sobre el icono Connect to Micro mostrado en la figura 6.5. Presione el pulsador de reset RST del sistema SDM-ATM-28-B para garantizar la sincrona entre el microcontrolador y el MicroGUI. Oprima los interruptores S0,S1,S2 y S3 y observe el estado de los LEDs L0,L1,L2 y L3. Deslice el slider colocado en nuestra interfaz y escuche el sonido emitido por el buzzer del sistema de desarrollo. Ahora desde su PC, usted controla el comportamiento de la tarjeta SDM-ATM-28-B.

Figura 6.5. Conectado el microcontrolador.

Figura 6.4. Interfaz de control de entradas y salidas digitales con el MicroGUI.

32

Trabajar con el MicroGUI es bastante simple, cada objeto que aparece en la pantalla responde a un cierto comando para leer su contenido y/o para escribir en l. En el ejemplo se muestra como leer los interruptores con el comando Leer_Pines, escribir en los LEDs de la pantalla con Escribir_Pines y como leer una barra de deslizamiento slider. Algunas otras caractersticas del MicroGUI son: Seleccionando el men Setup se pueden aadir o quitar elementos de la interfaz. El nmero de elementos disponibles es variable y est limitado. En el modo Learning aparecen dispositivos de uso comn en la enseanza de sistemas digitales, tales como: displays de 7 segmentos, pantalla LCD, teclado alfanumrico, registros de desplazamiento, motores de paso, etc. En el modo de operacin normal aparecen controles y objetos grficos comnmente utilizados en aplicaciones de instrumentacin y control, como: termmetros, indicadores de aguja, displays numricos de hasta 5 dgitos, sliders, DIP switchs, barras de progreso, etc. Todos los elementos de hardware como switchs, LEDs, motores de paso, displays de 7 segmentos se asocian con los pines del microcontrolador. Se incluye un osciloscopio donde se pueden graficar seales digitales (hasta 16) y analgicas (mx. 4). Un ejemplo avanzado. Para concluir vamos a desarrollar un ejemplo relativamente complejo donde su microcontrolador har las siguientes tareas: Medir la temperatura del ambiente mediante un termmetro digital DS18B20 (tecnologa 1-Wire) de Dallas Semiconductors. Mostrar la temperatura en los siguientes dispositivos virtuales de MicroGUI: Un termmetro con 0.5C de resolucin. Un indicador de analgico de aguja con 1C de resolucin. Un display numrico con la mayor resolucin posible (3 dgitos decimales) Medir solo cuando un interruptor le indique hacerlo. Constantemente verificar si existe algn dispositivo 1-Wire conectado y lo indicar tanto en la pantalla como en el sistema de desarrollo. Conecte el termmetro segn se muestra en la figura 6.6. Observe que no llega ningn cable de alimentacin al termmetro, este forma de entregar energa a los circuitos integrados es utilizada por los componentes 1Wire de Dallas Semiconductors y se denomina Alimentacin Parsita
Figura 6.6. Conexin del DS18B20.

Programe al microcontrolador ATOM con el siguiente cdigo.


'Micro_02.bas 'ESTE PROGRAMA SE UTILIZA JUNTO CON EL ARCHIVO Micro_02.prj Y EL PROGRAMA 'MICROGUI. PERMITE MEDIR LA TEMPERATURA POR MEDIO DEL TERMOMETRO DIGITAL 'DS18B20 DE DALLAS SEMICONDUCTORS, MOSTRARLA EN LOS INDICADORES DEL 'MicroGUI Y GRAFICARLA EN EL OSCILOSCOPIO QUE INCLUYE ESTE SOFTWARE '-----------------------------------------------------------------------------'CONSTANTES Y VARIABLES PARA EL 1-WIRE NRB CON 0 'No hacer Reset. Modo de 8 bits RBB CON 1 'Efectuar Reset antes de enviar los datos. Modo de 8 bits Read_ROM CON $33 'Leer serial del dispositivo 1-Wire Skip_ROM CON $CC 'Omitir comandos de ROM

33

Mide_Temp Leer_Temp Copiar_SP OWD OWBuscar OWCon Temp Index Dev_Id

CON CON CON CON CON CON VAR VAR VAR

$44 'Efectuar la medicin de la temperatura con el DS18B20 $BE 'Leer el resultado de la ltima medicin de temp. $48 'Copiar la memoria scratchpad en la EEPROM del DS18B20 P0 'Terminal de datos del bus 1-Wire P6 'Indica que se est tratando de encontrar al disp. 1-Wire P7 'Este pin indicara si el dispositivo 1-Wire ha sido conectado Word 'Temperatura medida por el DS18B20 BYTE 'Var. de uso general Byte (8) 'Arreglo que almacena el serial del disp. 1-Wire

'CONSTANTES Y VARIABLES PARA EL MICROGUI Conf_Osc CON $B3 'Comando para configurar el osciloscopio Canal_ON CON $00 'Canal analgico activado Canal_OFF CON $FF 'Canal analgico desactivado Grafica_Datos CON $B4 'Comando para graficar los datos en el osciloscopio Escribe_Medidor CON $AA 'Comando para escribir en el "Indicador Analgico" Escribe_Termo CON $AB 'Comando para escribir en el termmetro "Termo" Escribe_Display CON $A8 'Escribe la temp. en el display Leer_Pines CON $81 'Comando del MicroGUI para leer el estado de los pines Escribir_Pines CON $A1 'Escribe un nuevo valor para los pines en el MicroGUI Edo_de_Pines VAR Word 'Var. que almacena el edo de los pines P0 a P15 Temporal VAR Byte 'Var. Temporal Tempaux VAR LONG 'Var. aux. para manejar display con decimales '-----------------------------------------------------------------------------CLEAR 'Inicializar en cero todas las variables PAUSE 1000 'Pausa de inicializacin que ayuda a sincronizar con el MicroGUI GOSUB Set_Termo_OW 'Rutina para configurar al DS18B20 'Configurar el osciloscopio del MicroGUI para graficar un solo canal analgico SEROUT S_OUT,I9600,[Conf_Osc,Canal_ON,Canal_OFF,Canal_OFF,Canal_OFF] SERIN S_IN ,I9600,[Temporal] LOW OWCon 'Indicar que el disp. 1-Wire no est conectado LOW OWBuscar 'No se est buscando el termmetro Principal: SEROUT S_OUT,I9600,[Leer_Pines ] 'Leer estado del interruptor SERIN S_IN ,I9600,[Edo_de_Pines.byte0,Edo_de_Pines.byte1] WHILE (Edo_de_Pines.Bit0 = 1) 'Esperar hasta que el interruptor "Medir" LOW OWCon 'se active para iniciar la medicin LOW OWBuscar GOSUB Actualizar 'Actualizar estado del LED en la pantalla SEROUT S_OUT,I9600,[Leer_Pines ] 'Leer estado del interruptor SERIN S_IN ,I9600,[Edo_de_Pines.byte0,Edo_de_Pines.byte1] WEND GOSUB GET_ID 'Leer serial de disp. 1-Wire para ver si est conectado GOSUB Actualizar 'Actualizar LED en pantalla IF Edo_de_Pines.Bit7 = 1 THEN 'Si se detecta el disp. 1-Wire medir la GOSUB Lee_Temp_1W 'temperatura y ajustar el resultado para Tempaux = (Temp*1000)/16 'desplegarlo en el MicroGUI. Temp = Temp/8 ELSE Temp= 0 Tempaux = 0 TOGGLE OWBuscar 'Parpadear LED para indicar que no se encontrado el disp. ENDIF GOSUB Set_Termo 'Actualizar el valor de la temperatura en el termmetro Temp = Temp/2 'Ajustar para el medidor analgico GOSUB Set_Medidor 'Actualizar el indicador analgico de temp. GOSUB Set_Display 'Actualizar el display GOSUB Plot_Temp 'Graficar en el osciloscopio GOTO Principal 'SUB-RUTINAS '-----------------------------------------------------------------------------'Rutina para leer temperatura medida por el DS18B20 Lee_Temp_1W: OWOUT OWD,RBB,[Skip_ROM,Mide_Temp]

34

HIGH OWD PAUSE 750 OWOUT OWD,RBB,[Skip_ROM,Leer_Temp] OWIN OWD,NRB,[Temp.BYTE0,Temp.BYTE1] RETURN 'Rutina para leer el serial del dispositivo 1-Wire GET_ID: OWOUT OWD,RBB,No_Dev,[Read_ROM] FOR Index=0 TO 7 'Si se encontr el disp se guarda el serial OWIN OWD,NRB,[Dev_Id(Index)] NEXT HIGH OWCon 'Indicar 1-Wire conectado LOW OWBuscar 'Indicar que ya no se busca el disp. RETURN 'Regresar al programa principal No_Dev: LOW OWCon GOSUB Set_Termo_OW RETURN 'Cdigo que se ejecuta si se pierde la comunicacin con 'el 1-Wire. Se apaga el LED de conexin y se enva a re'configurar el termmetro

'Actualiza el estado del LED en el MicroGUI Actualizar: Edo_de_Pines = INS 'Actualizar los LEDs del SDM-ATM-28-B SEROUT S_OUT,I9600,[Escribir_Pines] 'Comando para escribir en el MicroGUI SEROUT S_OUT,I9600,[Edo_de_Pines.Byte0,Edo_de_Pines.Byte1] SERIN S_IN ,I9600,[Temporal] RETURN 'Actualiza el contenido del termmetro en el MicroGUI Set_Termo: SEROUT S_OUT,I9600, [Escribe_Termo] 'Comando para escribir en el termmetro SEROUT S_OUT,I9600,[Temp.LowByte] 'Dato a escribir SERIN S_IN ,I9600,[Temporal] RETURN 'Actualiza el contenido del indicador de aguja en el MicroGUI Set_Medidor: SEROUT S_OUT,I9600,[Escribe_Medidor] SEROUT S_OUT,I9600,[Temp.LowByte,Temp.HighByte] SERIN S_IN ,I9600,[Temporal] RETURN 'Actualiza el contenido del display que muestra la temp. con 3 dec. de resoluc. Set_Display: SEROUT S_OUT,I9600,[Escribe_Display] SEROUT S_OUT,I9600,[Tempaux.Byte0,Tempaux.Byte1] SERIN S_IN ,I9600,[Temporal] RETURN 'Grafica la temperatura en el osciloscopio Plot_Temp: SEROUT S_OUT,I9600,[Grafica_Datos,Temp.LowByte] SERIN S_IN ,I9600,[Temporal] RETURN 'Configurar el termmetro 1-Wire para medir con la resolucin ms alta Set_Termo_OW: OWOUT OWD,RBB,[Skip_ROM,$4E,$01,$E0,%01111111] 'Escribe config. en scratchpad OWOUT OWD,RBB,[Skip_ROM,Copiar_SP] 'Copia scratchpad en EEPROM RETURN '------------------------------------------------------------------------------

Abra el archivo Micro_02.prj con el programa MicroGUI. Presione Connect to Micro. Oprima el pulsador RST del SDM-ATM-28-B. Oprima el icono Scope, que est junto Connect to Micro, para mostrar el osciloscopio. En la interfaz, ubique el interruptor Medir y comience a medir la temperatura.

35

Conecte y desconecte el terminal de datos del DS18B20 (el cable que va al pin P00) y observe la indicacin en el computador.

La figura 6.7 muestra la medicin de temperatura que estamos efectuando.

Figura 6.7. Midiendo una temperatura.

Nota: Describir el funcionamiento del DS18B20 y de los dispositivos 1-Wire escapa totalmente de los objetivos de este manual, para mayores detalles de la operacin de este componente puede consultar el data sheet incluido en CD ROM.

Consideraciones finales Los microcontroladores han revolucionado al mundo en los campos de la educacin, ingeniera, robtica, instrumentacin y medicin de todo tipo de variables, sistemas automticos de control, industria automotriz, comunicaciones, es decir, en casi todos los campos de la ciencia estn presentes estos verstiles y sorprendentes dispositivos. Usted ha comenzado con buen pie, adquiriendo un microcontrolador y un sistema de desarrollo de excelente calidad, que realmente funcionan y le permiten que sus aplicaciones e ideas trabajen rpidamente; por ello, ms que darle las gracias por elegir nuestros productos y seguirnos a lo largo de las pginas de este manual, queremos decirle:

Felicitaciones!...

36

Solucin de problemas frecuentes.


Problema. Al conectar el transformador el LED verde no enciende.
Causa Posible. Solucin.

Transformador defectuoso de muy poca corriente de salida. Transformador inadecuado con centro negativo. El regulador 7805 se encuentra en cortocircuito. El regulador 7085 fue sobrecargado (se calienta y luego se apaga el LED).

Cambie el transformador por uno en buenas condiciones o de mayor capacidad de corriente en su salida. Invierta los cables del transformador en un punto anterior al conector que entra en el SDM-ATM-28-B. Desconecte cualquier componente o cable conectado a los terminales identificados como +5V y GND. Desconecte la causa de la sobrecarga, retire la alimentacin del sistema y espere 3 min antes de volver a conectarla.

Problema. Cuando se trata de programar el microcontrolador o de compilar el programa se obtiene un mensaje de error.
Causa Posible. Solucin.

Tiene errores en la sintaxis del programa. Ha ocurrido un error no definido en el IDE en el momento de la compilacin. Ha ocurrido un error dentro del compilador.

Busque la lnea a la que corresponde el error y compare su sintaxis con la mostrada en el Manual de Sintaxis del microcontrolador ATOM. Reinicie el IDE, si persiste reinicie el PC. Reorganice el cdigo de su programa y reintntelo.

Problema. Aparece un cuadro de dialogo con el mensaje ATOM must be connected to compile/program/debug
Causa Posible. Solucin.

El sistema no se encuentra alimentado o el voltaje es inadecuado. El cable serial no esta conectado, esta defectuoso o no es el adecuado. El puerto COM no ha sido seleccionado correctamente o est ocupado por otra aplicacin. El circuito integrado ST232CN est conectado o daado. El pulsador de RST est presionado. mal

El microcontrolador ATOM ha sido retirado de su base, se encuentra mal colocado o est daado.

Verifique que transformador de alimentacin est conectado firme y correctamente. Mida el voltaje de salida entre +5V y GND, debe estar entre en 5 Vdc 10%. Conecte firmemente el cable tanto al lado del computador como del SDM-ATM-28-B. Asegrese de estar usando un cable DB9-DB9 de extensin y no del tipo cruzado. Utilice el administrador de dispositivos de Windows para hallar los puertos COM disponibles para la programacin y corrija la seleccin del puerto. Reinicie el computador. Revise que el ST232CN est colocado firme y correctamente sobre su base. Si se calienta, reemplcelo por uno nuevo. Libere cualquier objeto que pudiera estar haciendo contacto con el pulsador. Verifique que el ATOM se encuentra en su base. Verifique la posicin del terminal #1 del ATOM con respecto a la base. Presione ligeramente al microcontrolador. Reemplace el microcontrolador.

Problema. Los circuitos conectados en el protoboard parecen no funcionar y el microcontrolador se reinicia.


Causa Posible. Solucin.

El sistema no est entregando energa al protoboard. El fusible de proteccin de SDM-ATM-28-B se ha disparado y el voltaje entregado al protoboard es 0 voltios.

Verifique que el LED PON est encendido y mida el voltaje de salida entre los terminales +5V OUT y GND. El SDM-ATM-28-B, incluye un fusible trmico reseteable para su proteccin, desconecte todos los dispositivos conectados a la salida de +5V OUT y espere unos segundos hasta que el fusible se re-arme automticamente.

37

Si la causa del cortocircuito o sobrecarga se ha disipado, podr seguir trabajando.

Sitios de inters en la RED.


www.roso-control.com. La pgina de nuestra compaa, donde encontrar informacin de otros productos y excelente bibliografa sobre microcontroladores entre otras cosas. www.basicmicro.com. La pgina del fabricante del microcontrolador ATOM. All encontrar informacin, manuales, notas de aplicacin y ejemplos de utilizacin del ATOM y de otros microcontroladores desarrollados por esta empresa.

Productos desarrollados o distribuidos por ROSO Electric Supply


Sistema de Desarrollo para microcontroladores modelo SDM-ATM-28-B.
Interfaz de programacin serial RS232C lista para conectar directamente al PC. Fuente de poder y regulador de 5v que alimentan al protoboard con proteccin por fusible. Se conecta de forma sencilla a cualquier protoboard estndar. Pulsador de reset para reiniciar al microcontrolador. LED para indicar la alimentacin del sistema. LED para indicar la actividad del puerto serial. 16 terminales de E/S digitales disponibles, etiquetados con los nombres P00 a P15. 4 terminales de E/S digitales o analgicas etiquetadas con los nombres AX0 a AX3. Salida analgica con altavoz piezoelctrico preconectado al pin P03. Cuatro (04) salidas digitales con LEDs preconectados a los terminales P04 a P07. Microcontrolador ATOM IC-B con resonador de 20 Mhz incluido. El SDM-ATM-28-B puede ser empleado como programador del microcontrolador ATOM.

38

Mdulos de comunicacin Inalmbrica.


Disponibles en frecuencia 433 Mhz, 428 Mhz y 315 Mhz. Conexin sencilla y buen alcance. Un mdulo para transmitir y otro para recibir. Utilizan un solo pin del microcontrolador para enviar o recibir los datos. Operan con datos en forma serial desde 300 bps hasta 4700 bps. Usted construye su propio protocolo. Bajo consumo en modo Stand By. Incluye un LED para indicar la transmisin de los datos. Ideales para cientos de aplicaciones.

Microcontroladores ATOM IC-B (chip intrprete).

Ideal para sus aplicaciones comerciales y de productos finales. Pueden programarse con cualquiera de nuestros mdulos de desarrollo. Incluye el resonado de 20 Mhz. Incluye CD ROM con software de programacin y manual de sintaxis (pedido de 5 o ms unidades). Obtenga el mayor rendimiento con el menor costo.

39

Sistema de Desarrollo para microcontroladores modelo SDM-ATM28-USB.


Interfaz de programacin USB, lista para conectar directamente al PC . No requiere de transformador de alimentacin. Se conecta de forma sencilla a cualquier protoboard estndar. Alimenta al protoboard directamente desde la tarjeta (350 mA mx). LED para indicar la alimentacin del sistema. LED para indicar la actividad del puerto de programacin. Pulsador de reset para reiniciar al microcontrolador. Todos los terminales de entradas/salida disponibles en el protoboard. Altavoz piezoelctrico con entrada disponible para conectar a cualquier pin. Entrada analgica por medio de potencimetro. Pantalla LCD de 2x16 preconectada y lista para trabajar. Cuatro (04) entradas digitales con pulsadores conectadas a los pines AX0..AX3. Cuatro (04) salidas digitales con LEDs preconectados a los terminales P12 a P15. Microcontrolador ATOM IC-B con resonador de 20 Mhz incluido. Memoria EEPROM I2C de 256 Kbits. Reloj de tiempo real (RTC) I2C con salida de onda cuadrada y entrada para batera de respaldo El SDM-ATM-28-USB puede ser empleado como programador del microcontrolador ATOM y para desarrollar sus propios productos con conexin USB.

40

You might also like