interfase para televicion y convercion de la tv en diversos instrumentos si te agrada dale like y...

17
Saber Electrónica 3 Interfase Gráfica para TV Convierta su TV en Multímetro, Osciloscopio o Cualquier Otro Instrumento Electrónico ARTÍCULO DE T APA Para un técnico en electrónica, contar con instrumentos de prueba adecuados se convierte en un factor muy im- portante a la hora de reparar equipos electrónicos. ¡Imagínese tratar de reparar una fuente de alimentación sin un voltímetro! El instrumento de prueba más usual es el multímetro, el cual puede medir volts, resistencia, corriente e inclusive algunos pueden medir capacitancia, frecuencia, transisto- res y temperatura. Los hay de muy variados precios, de aguja o digitales. Otro instrumento útil, pero de costo re- lativamente elevado, es el osciloscopio, de los cuales hay analógicos o digitales, de uno o más canales. El oscilos- copio es indispensable cuando se trata de analizar seña- les que fluctúan en el tiempo, como pulsos digitales, señales de audio e inclusive señales de RF. Para analizar señales digitales se usa un analizador de estados lógicos, el cual es semejante al oscilosco- pio con la diferencia que despliega señales lógicas (uno o cero) y además tiene como mínimo 8 canales. Estos dos últimos instrumentos no son frecuentes entre los aficionados a la electrónica principalmente debido a su costo, sin embargo son instrumentos muy útiles. Desde su creación, Saber Electrónica se ha caracterizado por ofrecer a sus lectores la posibilidad de aprender electrónica mediante la publicación de artículos con proyectos útiles, de bajo costo y cuyos ele- mentos son fáciles de conseguir. En los últimos años el uso de microcontroladores en proyectos de elec- trónica se ha vuelto una práctica común, debido a su bajo costo y versatilidad. Continuando con esta línea, se propone el uso de una tarjeta de interfase para televisión con capacidades gráficas con el fin de usarla para diseñar equipo de instrumentación de alta calidad y bajo costo. En la ac- tualidad existe una gran cantidad de instrumentos virtuales, los cuales utilizan una PC para procesar da- tos y desplegar gráficas vistosas, sin embargo no siempre se requiere de tal capacidad. De sobra sabe- mos que basta un simple display de cuarzo para cubrir las necesidades de despliegue de incontables ins- trumentos. La interfase que proponemos se conec- ta a cualquier televisión o monitor con entrada de video para obtener así un display de alta resolu- ción con varios tonos de gris. Además, la tarjeta es inteligente y puede procesar señales digita- les para facilitar mostrar en la pantalla múlti- ples controles, imágenes y caracteres, inclu- so tiene integradas instrucciones para simu- lar un display de cuarzo. Autor: Ing. Luis Roberto Rodríguez e-mail: [email protected]

Upload: fransisco-glez

Post on 25-Nov-2015

13 views

Category:

Documents


1 download

DESCRIPTION

otra contribucion mas para usted y esta vez se trata de una interface para convertir su televicion en un ociloscopio etc, etc.

TRANSCRIPT

  • Saber Electrnica

    3

    Interffasse Grffica ppara TVConvierta su TV en Multmetro, Osciloscopio

    o Cualquier Otro Instrumento Electrnico

    ARTCULO DE TAPA

    Para un tcnico en electrnica, contar con instrumentosde prueba adecuados se convierte en un factor muy im-portante a la hora de reparar equipos electrnicos.Imagnese tratar de reparar una fuente de alimentacin

    sin un voltmetro!El instrumento de prueba ms usual es el multmetro, elcual puede medir volts, resistencia, corriente e inclusivealgunos pueden medir capacitancia, frecuencia, transisto-res y temperatura. Los hay de muy variados precios, deaguja o digitales. Otro instrumento til, pero de costo re-lativamente elevado, es el osciloscopio, de los cuales hayanalgicos o digitales, de uno o ms canales. El oscilos-copio es indispensable cuando se trata de analizar sea-les que fluctan en el tiempo, como pulsos digitales, seales de audio e inclusive seales de RF. Para analizar seales digitales se usa un analizador de estados lgicos, el cual es semejante al oscilosco-pio con la diferencia que despliega seales lgicas (uno o cero) y adems tiene como mnimo 8 canales.Estos dos ltimos instrumentos no son frecuentes entre los aficionados a la electrnica principalmentedebido a su costo, sin embargo son instrumentos muy tiles.Desde su creacin, Saber Electrnica se ha caracterizado por ofrecer a sus lectores la posibilidad deaprender electrnica mediante la publicacin de artculos con proyectos tiles, de bajo costo y cuyos ele-mentos son fciles de conseguir. En los ltimos aos el uso de microcontroladores en proyectos de elec-trnica se ha vuelto una prctica comn, debido a su bajo costo y versatilidad.Continuando con esta lnea, se propone el uso de una tarjeta de interfase para televisin con capacidadesgrficas con el fin de usarla para disear equipo de instrumentacin de alta calidad y bajo costo. En la ac-tualidad existe una gran cantidad de instrumentos virtuales, los cuales utilizan una PC para procesar da-tos y desplegar grficas vistosas, sin embargo no siempre se requiere de tal capacidad. De sobra sabe-mos que basta un simple display de cuarzo para cubrir las necesidades de despliegue de incontables ins-

    trumentos. La interfase que proponemos se conec-ta a cualquier televisin o monitor con entrada devideo para obtener as un display de alta resolu-cin con varios tonos de gris. Adems, la tarjetaes inteligente y puede procesar seales digita-

    les para facilitar mostrar en la pantalla mlti-ples controles, imgenes y caracteres, inclu-so tiene integradas instrucciones para simu-

    lar un display de cuarzo.

    Autor: Ing. Luis Roberto Rodrgueze-mail: [email protected]

  • INTRODUCCION

    Uno de los problemas con el que nos enfrentamos ala hora de disear algn aparato que requiera mostrar in-formacin es, precisamente, dnde la vamos a desplegar:

    En un display de cuarzo?, El display debe ser grfico o slo de caracteres?, Cul es el costo mximo del display que podemos

    usar?

    Un ejemplo que se me ocurri una vez, fue que se mepidi disear un contador de llamadas telefnicas, con lacaracterstica de mostrar en alguna pantalla las llamadasque se hicieron y quin las hizo (con claves distintas pa-ra cada usuario). A la hora de seleccionar el display nece-sitaba uno de varias lneas y con iluminacin. Despus derevisar varias opciones (la mayora de precio elevado),decid disear una interfase para televisin. El desplegargrficos y caracteres en una televisin ofrece varias ven-tajas:

    * Bajo costo (hay televisiones desde 20 dlares).* Se puede alcanzar gran resolucin (hasta 320 por

    240 pixeles).* Se puede conseguir fcilmente.* Posibilidad de desplegar colores.

    El proyecto ha culminado en una tarjeta de interfasepara televisin, la cual puede trazar grficos y caracteresen la pantalla.

    Con esta tarjeta podremos disear cualquier instru-mento que requiera desplegar grficos sin ms que en-viarle las instrucciones apropiadas al procesador grficoincluido.

    Algunos ejemplos posibles de construir son:

    * Multmetros digitales.* Frecuencmetros.* Trazadores de curvas de dispositivos semiconduc-

    tores.* Analizadores lgicos.* Osciloscopios digitales.* Sistemas de desarrollo com-

    pletos para microcontroladores.

    Y un largo etctera, con la imagi-nacin del aficionado o tcnico comolmite.

    La elaboracin del proyecto pro-porciona, adems, una excelenteoportunidad para aprender microcon-troladores, ya que los aparatos que

    utilizan la tarjeta de interfase necesitan invariablemente elcontrol de algn microcontrolador.

    PANTALLA PRINCIPAL DE LA INTERFASE

    La figura 1 muestra la pantalla principal al conectar laInterfase. La pantalla indica si se cuenta con las memo-rias opcionales tipo EEPROM. Como se puede apreciar,en este caso se cuenta con las dos unidades.

    Ejemplo de AplicacinLa figura 2 muestra un diagrama en bloques con un

    ejemplo simple de una aplicacin, en este caso un term-metro. El microcontrolador enva instrucciones a la tarje-ta grfica utilizando slo 3 lneas (D0, RJ y LR) y la tar-jeta enva la seal de video a una televisin para su des-pliegue.

    PRINCIPIOS DE FUNCIONAMIENTO

    Bsicamente, la idea es direccionar secuencialmenteuna memoria y convertir el dato de la localidad en turno

    Artculo de Tapa

    Saber Electrnica

    4

    Figura 1

    Figura 2

  • en un nivel de voltaje de video, con el fin de desplegarloen la pantalla de un televisor.

    El inicio del despliegue es en la esquina superior iz-quierda de la pantalla.

    Despus de direccionar cierto nmero de localidades(nmero de puntos por lnea horizontal) se detiene el di-reccionamiento de la memoria y se genera una seal lla-mada blanqueo, la cual en la pantalla es invisible.

    Despus de cierto tiempo de blanqueo se genera unpulso de sincrona horizontal, lo cual hace que se inicieen la televisin una nueva lnea. Al cabo de cierto tiempodespus del pulso de sincrona, se quita la seal de blan-queo y se contina con el direccionamiento de la memo-ria en la siguiente lnea.

    Este proceso se repite cierto nmero de veces (lneashorizontales) hasta que se llega a la parte baja en la de-recha de la pantalla, entonces se genera otro blanqueo yposteriormente se genera un pulso de sincrona vertical,lo cual hace que el trazo en la pantalla inicie de nuevo sutrayectoria en la parte superior izquierda de la pantalla.Este movimiento de arriba a la izquierda hasta abajo a laderecha en la pantalla se repite constantemente, varian-do la luminosidad del punto en la pantalla de acuerdo aldato contenido en la memoria.

    Despus de cada pulso vertical se reinicia el direccio-namiento de la memoria de video.

    ASPECTO FISICO DE LA TARJETA

    La figura 3 muestra una fotografa de la tarjeta IGTV,donde se pueden apreciar los dos microcontroladores uti-lizados, el ATMEL ATMega8515 y el PIC 16C55 . Debajodel PIC se puede apreciar la memoria RAM de video y ala izquierda dos memorias EEPROM de 8 patas cada una(en la foto slo se ha insertado una).

    Debajo del 8515 se aprecia el conector de interfaz, elcual es una base de 16 patas con la cual se comunica laIG con el mundo exterior.

    Arriba a la izquierda se puede observar el conectorRCA para la salida de video.

    El conector de arriba a la derecha es para la entradade alimentacin de 12 volts. A la izquierda del 8515 sepuede apreciar un interruptor analgico CMOS 4066.

    La tarjeta tiene, adems, la posibilidad de insertar unconector de entrada para un teclado estndar de PC,con el fin de usar entrada por teclado en los proyectosque as lo requieran, como ejemplo un sistema de desa-rrollo de microcontroladores, donde es necesario un edi-tor de texto.

    Tambin se han dispuesto 2 bases para memoriasEEPROM del tipo serie, con el objeto de disponer de me-moria no voltil en los proyectos que as lo requieran.

    CARACTERISTICAS DE LA INTERFAZ

    En realidad, la tarjeta es una verdadera microcompu-tadora con las siguientes caractersticas:

    * Entrada por teclado estndar de PC.* 32kbytes de memoria RAM (voltil).* Hasta 64kbytes de memoria EEPROM (no voltil).* Salida de video estndar para TV.* Resolucin de 228 x 216 pixeles con 16 tonos de

    gris.

    El procesador grfico utiliza menos de los 128kbytesde memoria RAM disponible, quedando cerca de 32kby-tes libres, los cuales pueden ser usados por el microcon-trolador externo en algn proyecto.

    No en todos los proyectos se requiere de un teclado ode memoria EEPROM, la tarjeta funciona sin la necesi-dad de estos elementos, los cuales pueden ser agrega-dos en el momento en que se hagan necesarios. Sin em-bargo, la memoria RAM de 32kbytes siempre estar dis-ponible, ya que forma parte de la memoria de video lacual est integrada en la tarjeta.

    COMUNICACION CON LA INTERFASE

    La tarjeta tiene un conector DIP de 16 patas, el cualse usa para la comunicacin entre el microcontrolador ex-terno y la IG (Interfase grfica).

    Bsicamente se usan slo 3 lneas (LR, D0 y RJ).La seal LR (Listo para Recibir) la enva la IG cuando

    est lista para recibir datos del mundo exterior. Las ins-trucciones se envan por D0 de manera sincrnica (sn-crona), los pulsos de reloj se envan a travs de RJ, loscuales son proporcionados por el microcontrolador exter-no.

    Obviamente los datos se envan en serie, ya que slohay una lnea (D0) para recibir las instrucciones.

    Artculo de Tapa

    Saber Electrnica

    6

    Figura 3

  • Las instrucciones se componen de uno o ms bytes,por ejemplo, para borrar la pantalla se debe enviar un 0,en cuyo caso la instruccin consta de un solo byte.

    Para dibujar un punto se debe enviar un 8 seguidode dos bytes indicando las coordenadas del punto X yY. Esta instruccin requiere de 3 bytes.

    Para ilustrar con un ejemplo, supongamos que desea-mos borrar la pantalla y luego dibujar un punto en el cen-tro (coordenadas 114, 108). Los bytes que debemos en-viar por D0 seran los siguientes:

    Byte 1 0 Instruccin borrar la pantalla.Byte 2 8 Instruccin dibujar un punto.Byte 3 114 Coordenada X del punto.Byte 4 108 Coordenada Y del punto.

    Despus de estas instrucciones, lo que veramos enla pantalla sera un punto en el centro de la misma. El co-lor del punto se establece con otra instruccin de 2 bytes.

    En la figura 4 se muestra la manera en que se envaun 8 a la IG:

    Como seala el dibujo, el dato lo lee la IG en cada su-bida del RJ, el cual es enviado por el microcontrolador ex-terno, junto con el dato.

    Se observa tambin que no se comienza a enviar elbyte hasta que LR est en estado lgico 1. Esta seal laproporciona la IG cuando est listapara recibir instrucciones.

    Mientras la IG procesa cada byterecibido, coloca LR en 0 para avi-sar que no se deben enviar ms by-tes. Al terminar de procesar el datorecibido, la IG avisa de nuevo queest lista para recibir ms datos colo-cando a 1 la seal LR.

    Es labor del microcontrolador ex-terno revisar el estado de LR antesde enviar cada byte.

    La IG es capaz de dibujar puntos,lneas verticales y horizontales, cua-dros, marcos, botones, caracteres,imgenes e inclusive tiene integradauna funcin para dibujar un displayde cuarzo de hasta 8 dgitos simple-mente enviando el cdigo en 3 bytesen formato binario. La IG se encargade hacer la conversin a decimal ydesplegar el valor en la pantalla si-mulando displays de cuarzo.

    Se ha incorporado un editor detexto de una lnea, el cual se contro-la con un teclado comn de PC, elcual se inserta en el conector mini-

    din de la tarjeta. Tambin se han implementado instruc-ciones para grabar y leer la memoria de video y aprove-char los 32kbytes (32K) libres en algn proyecto que re-quiera memoria RAM.

    En la figura 5 se muestra el diagrama en bloques denuestra interfase grfica, para explicar su funcionamientose supone que el lector posee un ligero conocimiento delas seales de televisin. Si requiere una explicacin msamplia se sugiere consultar la serie de artculos del ClubSaber Electrnica Aprenda TV color en 8 lecciones,donde se explica la generacin, tratamiento y desplieguede la seal de video (puede bajar gratuitamente este cur-so de nuestra web: www.webelectronica.com.ar, ha-ciendo click en el cono password e ingresando la clavequierotv). Sin embargo, para usar la tarjeta y disearequipo con ella, no se requiere gran conocimiento de las

    Artculo de Tapa

    Saber Electrnica

    8

    Figura 4

    Figura 5

  • seales de televisin, ya que la tarjeta slo espera ins-trucciones en forma de bytes y los circuitos internos seencargan del despliegue en la pantalla.

    La tarjeta consta de 2 microcontroladores, unPIC16C55 del conocido fabricante Microchip y otro de laserie Atmel (ATMega8515).

    El PIC16C55 se encarga de generar las seales detelevisin, las cuales son sincrona vertical, sincrona ho-rizontal y blanqueo.

    Adems el PIC se encarga de direccionar la memoriade video y avisar al procesador grfico (8515) cada vezque la memoria est libre (durante los periodos de blan-queo), con el fin de que el 8515 pueda tomar los buses dedatos y direcciones para guardar en la memoria de videolos datos a desplegar.

    Los bits de datos de la memoria (D0-D3) se llevan aun convertidor D/A, el cual convierte el dato en la locali-dad de la memoria en un nivel de voltaje que luego seaplica a la salida de video.

    El convertidor D/A de 4 bits genera, en la pantalla, unagama de grises de 16 tonos, ms que suficientes paracualquier propsito de instrumentacin (recuerde que porlo general el display de cuarzo slo tiene 2 tonos).

    La seal de video pasa a travs del interruptor anal-gico SW1, el cual es controlado por el PIC.

    Cuando se llega al final de cada lnea horizontal o ver-tical, el SW1 se abre y, al mismo tiempo se cierra el SW2,enviando a la salida el nivel de voltaje de blanqueo, elcual es ms negro que el negro en lo que a video se re-fiere, y en consecuencia es invisible en la pantalla.

    El 16C55 direcciona la memoria en orden creciente(0000-FFFF) y de acuerdo al dato almacenado en cadalocalidad, se presenta en la pantalla un punto de distintaluminosidad, proporcionado por el convertidor D/A.

    Sin embargo, hay tiempos muertos de la memoria la

    cual no es utilizada por el 16C55, estos perodos se co-nocen como blanqueo y se presentan antes y despus deiniciar cada lnea horizontal y antes y despus de cadapulso vertical.

    Es en estos instantes cuando el 8515 se apropia de lamemoria y escribe lo que debe desplegarse en la panta-lla. En cuanto el 16C55 vuelve a posesionarse de la me-moria, se contina con el barrido secuencial.

    No podemos escribir en la memoria cuando el PIC es-t presentando la seal en la pantalla, ya que alterara-mos el video al pretender que los 2 microcontroladoresescriban en la memoria al mismo tiempo.

    En cuanto el PIC enva la seal de blanqueo (abriendoSW1 y cerrando SW2), se indica al microcontolador 8515a travs de la seal Memoria Libre, que el bus de datos ydirecciones de la memoria RAM estn libres, esto debido aque el PIC coloca sus salidas en alta impedancia, para quepuedan ser manipuladas por el 8515 (IG).

    Durante la seal de blanqueo, el PIC adems de po-ner sus salidas de direcciones y datos en alta impedan-cia, genera las seales apropiadas de sincrona horizon-tal y/o vertical, las cuales consisten en pulsos negativosque a travs del diodo llevan la seal de video prctica-mente a tierra, obtenindose as el nivel bajo que se re-quiere para una sincrona en video.

    Como se observa en el diagrama en bloques, el 8515tambin controla la entrada del teclado (si existe) y lasmemorias EEPROM (si se han colocado).

    CONSTRUCCION

    En la figura 6 se puede apreciar el diagrama esque-mtico de la IG.

    En la figura 7 se observa la placa de ciruito impreso

    Artculo de Tapa

    Saber Electrnica

    10

    Lista de Materiales

    ResistenciasR1, R2, R15 - 1kR4, R7, R8, R11, R12 - 1.8kR18 - 2.7kR20, R21, R24, R25 - 3.3kR3, R5, R6, R9, R10, R17 - 3.6kR23 - 100R16 - 220R26 - 270R13, R14, R19 - 390R22 - 470

    Condensadores (todos en F)C8, C9, C10 - 0.1F - CermicoC3 - 10F - Electroltico x 25V

    C1, C2, C4, C5 - 15pf - CermicoC7 - 1000F - Electroltico x 25VC6 - 100F - Electroltico por 25V

    IntegradosU3 - ATMega8515 - Microcontrolador16MHzU1 - PIC16C55 - Microcontrolador20MHzU8 - 628128 - Memoria RAM 128KU4, U5 - AT24C256 EEPROM (Op-cionales)U2 - 4066 - Interruptor analgicoU6 - 7805 - Regulador de voltaje

    Diodos y transistoresD1 - LED de 5mm color rojo (Encendido)

    D2 - 1N914 - Diodo de uso generalQ1, Q2 - 2N2222 - Transistores

    ConectoresJ4 - Conector RCA - Salida VideoJ3 - Conector Teclado (Opcional)J1 - Conector programacin (Opcio-nal)U7 - Conector de alimentacin - Ba-nana Invertida

    VariosY2 - Cristal 16MHzY1 - Cristal 20MHzS1 - Interruptor de encendido (Opcio-nal)J2 - Conector DIP de 16 patas

  • Saber Electrnica

    11

    Interfase Grfica para TVFigura 6

  • del lado de loscomponentes (laplaca es doblefaz), la figura 8muestra el dorsode la placa decircuito impreso.En la figura 9 semuestra el dia-grama pictricopara la localiza-cin de los com-ponentes.

    J1 es un co-nector del tipodoble lnea de 6patas el cual seusa para progra-mar al 8515 ensitio. Esto gene-ralmente es paraactualizar el soft-ware y general-mente el usuariono lo necesita.

    En la pginaWEB de la revis-ta encontrar elcdigo fuentecompleto de losdos microcontro-ladores, as co-mo los archivosbinarios paragrabarlos direc-tamente con elp r o g r a m a d o radecuado. Pue-de bajar gratuita-mente toda la in-formacin y loscdigos, as co-mo el manual de uso de la placa de nuestra web: www-.webelectronica.com.ar, haciendo click en el conopassword e ingresando la clave graficatv.

    UN POCO DE SOFTWARE

    Recuerde que nuestra placa posee un microcontrola-dor que genera las seales de sincronismo de TV(PIV16C55), un programa que genera el entorno grficopara mostrar seales en el TV en escalas de grises y que

    representa a la verdaera interfase grfica IG. Por cues-tiones de espacio, nos vemos obligados a no transcribirel software de la Interfase grfica ya que por ms que lohagamos en letra pequea, ocupara varias pginas y nocreo que nadie pierda varias horas en el tipeo de dichoprograma. El programa se llama: IGTV.asm y el ejecuta-ble (que se debe grabar en el microcontrolador Atmel) sellama IGTV.hex. Para la comunicacin con la IG, es ne-cesario el uso de un microcontrolador. Este programapuede bajarlo de nuestra web en cualquiera de las dosversiones: assembler (asm) o hexadecimal (hex).

    Artculo de Tapa

    Saber Electrnica

    12

    Figura 7

    Figura 8

  • Por otra parte, el programa a grabar en el PIC16C55,encargado de generar las seales de TV, se denominapicigtv.asm y tambin lo puede bajar de nuestra web.

    Para la comunicacin con la IG, es necesario el usode un microcontrolador. En el caso de usar el popularPIC, en el listado 2 se muestra un ejemplo de una subru-tina para enviar un byte a la IG. En cada proyecto que se

    desarrolle, sim-plemente se in-tegra al cdigode las demssubrutinas.Dato es cual-quier registro li-bre del PIC, RJy D0 estn enRB0 y RB1.

    Algunos EjemplosVolviendo anuestro ejemplopara dibujar unpunto en el cen-tro de la panta-lla, el cdigo se-ra el siguiente:

    MOVLW 0 ; Instruccin Borrar Pantalla.CALL EnviarByte ; Enviar el Byte a la IG.MOVLW 8 ; Instruccin Dibujar Punto.CALL EnviarByte ; Enviar el Byte a la IG.MOVLW 114 ; Coordenada X del punto.CALL EnviarByte ; Enviar el Byte a la IG.MOVLW 108 ; Coordenada Y del punto.CALL EnviarByte ; Enviar el Byte a la IG.

    A continuacin se muestra la manera en que sepuede poner la pantalla en blanco.

    MOVLW 10 ; Instruccin Color de Fondo.CALL EnviarByte ; Enviar el byte a la IG.MOVLW 15 ; Color blanco ( 0=negro, 15 =blanco).CALL EnviarByte ; Enviar el Byte a la IG.CLRW ; Instruccin Borrar Pantalla.CALL EnviarByte ; Enviar el Byte a la IG.

    En el caso anterior, al enviar la instruccin BorrarPantalla (Enviando un Cero), la pantalla se llena-r con el color de fondo, el cual en el ejemplo es15 (color blanco). Aunque los ejemplos anterioresson muy simples, esto dar una idea de lo fcilque es manejar la Interfase Grfica.

    PROYECTOS

    A continuacin se describen algunos de los pro-yectos que se llevarn a cabo en las prximas edi-ciones de la revista:

    Saber Electrnica

    13

    Interfase Grfica para TV

    Figura 9

  • MEDIDOR DE CONDENSADORES DIGITAL: Coneste primer proyecto podremos medir condensadoresdesde 1pf hasta 40F en 3 escalas.

    GENERADOR DE FUNCIONES: Con este proyectocrearemos un generador de seales digital, el cual pro-porcionar salidas de forma de onda cuadrada, sierra,triangular y senoidal.

    ANALIZADOR DE ESTADOS LOGICOS: Construire-mos un analizador digital de estados lgicos de 8 canalesexpandible a 24. Con este instrumento podremos captu-rar la secuencia de seales digitales para, posteriormen-te, analizarlas de manera visual mediante su representa-cin grfica en la pantalla.

    OSCILOSCOPIO DIGITAL: Construiremos varios ti-pos de osciloscopios, comenzaremos con uno sencillo deun solo integrado (s, estimado lector, ley usted bien...un solo integrado!), sin embargo ser capaz de mostrarperfectamente seales de audio en su televisor.

    Posteriormente realizaremos otros de alta frecuenciay de altas prestaciones.

    Aunque el costo de estos instrumentos puede llegar aser elevado, nosotros los construiremos a un precio real-mente reducido, de tal forma que ser accesible a todoslos lectores de SABER ELECTRONICA.

    Estos instrumentos son slo una pequea muestra delo que es posible construir con la tarjeta IGTV.

    Posteriormente se construirn diversos instrumentosen base a las sugerencias de los lectores y conforme sur-jan necesidades de equipo especial, tal como instrumen-tos de prueba para electrnica del automvil e inclusosencillos video-juegos.

    Cabe aclarar que todos los proyectos que se constru-yan estarn disponibles en forma de kits. A continuacinvamos a establecer nuestro lema para todos los proyec-tos, el cual ser: BAJO COSTO Y PIEZAS FACILES DECONSEGUIR

    *********************************************************

    MONTAJEPrimer Proyecto - RELOJ DIGITAL

    A continuacin se explicarn las instrucciones msimportantes de la interfase. Luego disearemos un relojdigital paso a paso para poner en prctica tales instruc-

    ciones. Para este proyecto inicial necesitaremos la tarje-ta IGTV, un microcontrolador PIC16F84, una tarjeta deexperimentos y algunas piezas.

    Con este sencillo proyecto aprender algunas instruc-ciones bsicas y le aseguramos que pronto adquirir talconocimiento acerca de la IG que en poco tiempo comen-zar a disear su propio equipo.

    Sin embargo, si su deseo es aprovechar los kits quese pondrn a su disposicin, de igual forma se ver ustedbeneficiado de la versatilidad de la IGTV.

    EQUIPO NECESARIOPara trabajar desarrollando proyectos con la IG nece-

    sitar de algunos recursos, los cuales se enumeran acontinuacin:

    1) Una PC con Windows 98SE o superior.2) El sistema de desarrollo MPLAB IDE de Microchip,

    el cual es proporcionado gratuitamente en la pgina WEBde dicha compaa.

    3) Un programador de microcontroladores PIC.4) Una tarjeta IGTV.5) Subrutinas y macros especiales para la programa-

    cin.6) Una Televisin con entrada de video (si es con pan-

    talla de 5 pulgadas mejor).

    Es necesario aclarar que se puede utilizar cualquier ti-po de microcontrolador y no necesariamente PIC (la IGtiene incluso un microcontrolador Atmel), sin embargo, losPIC son populares y existen muchos programadores debajo costo y fciles de utilizar por lo que hemos decididoemplear este tipo de microcontroladores en los proyectos.

    Hemos desarrollado tambin una serie de subrutinasy macros para facilitar la escritura de los programas deaplicacin.

    Estas subrutinas contienen macros que facilitan utili-zar las instrucciones de la IG, ya que para llamarlas sehace uso de una instruccin menos abstracta y con par-metros incluidos, por ejemplo, para borrar la pantalla sim-plemente se escribe BORRAR PANTALLA en lugar deMOVLW 0 seguido de una llamada a la subrutina EN-VIAR_BYTE.

    Dichas subrutinas, junto con el manual, estn disponi-bles gratuitamente en la pgina WEB del Club Saber Elec-trnica (ingrese a www.webelectronica.com.ar, haga clicken el cono password e ingrese la clave graficatv). Porsupuesto, usted puede desarrollar sus propias macros ysubrutinas, sin embargo aconsejamos no reinventar el hi-lo negro y utilizar las que ya hemos desarrollado.

    SUBRUTINAS Y MACROS ESPECIALESSi estas subrutinas no las tiene, deber bajarlas de la

    pgina WEB sin cargo, con la clave graficatv, sin em-

    Artculo de Tapa

    Saber Electrnica

    14

  • bargo, al adquirir la IG en forma de kit, stas se propor-cionan en el disco adjunto, el cual tambin contiene elmanual. Dichas subrutinas son:

    ComIG.asm: Comunicacin con la IG.MacrosIG.asm: Macros que facilitan enviar instruc-

    ciones a la IG.TablasDatos.asm: Subrutinas que facilitan enviar da-

    tos y textos a la IG.

    PLANEANDO NUESTRO PRIMER PROYECTOAntes de ponernos a teclear cdigo debemos planear

    la presentacin de nuestro primer proyecto.Disearemos un reloj digital, el cual mostrar en la

    pantalla un display de cuarzo simulado con las horas, mi-nutos y segundos. Tendr dos botones de control paraajustar las horas y los minutos: HOR y MIN.

    Al presionar el botn MIN se incrementarn los mi-nutos y se pondrn en cero los segundos. No tiene casoponer un botn para ajustar los segundos.

    Dibujaremos un pequeo cono en forma de reloj en laesquina superior izquierda y trazaremos dos barras supe-riores con texto. La primera dir SABER ELECTRONICASIMTV y la segunda dir RELOJ DIGITAL. (Bueno, enrealidad usted puede poner el texto que desee).

    PRINCIPIOS DE FUNCIONAMIENTO DE UN RELOJEn el momento en que empezamos el diseo de un

    reloj lo primero que se nos viene a la mente es: de dn-de vamos a sacar la referencia del tiempo?.

    Para esto existen bsicamente 3 opciones:

    a) Un oscilador con RC.b) Un oscilador con cristal.c) Una seal de lnea.

    La primera opcinfrancamente ni debe-mos considerarla, yaque un oscilador sim-ple RC aunque lo im-plementemos con re-sistencia y condensa-dor de precisin noproporcionara la es-tabilidad de la fre-cuencia necesaria pa-ra un reloj.

    La segunda op-cin parece ms via-ble, podramos inclu-so utilizar el cristal delmismo microcontrola-

    dor y utilizar el timer interno para generar un pulso cadasegundo como referencia, sin embargo el software secomplicara un poco. Por lo tanto, slo nos queda la ter-cera opcin y es la que usaremos, esto es, tomaremos lafrecuencia de la lnea de AC, la cual es de 60Hz 50Hz(dependiendo de la red local) de razonable precisin y lausaremos como nuestra referencia de tiempo.

    Cmo lo haremos?Emplearemos el siguiente algoritmo simple: Introduci-

    remos los pulsos de 60Hz (50Hz) al timer interno del PICy generaremos una interrupcin cada 60 (50) pulsos, es-to es, cada segundo. En la subrutina de interrupcin in-crementaremos los segundos, si los segundos son 60,pondremos en cero los segundos e incrementaremos losminutos, si los minutos son 60, pondremos en cero los mi-nutos e incrementaremos las horas. Si las horas son 24,pondremos las horas en cero.

    Lo anterior es para actualizar la hora cada segundo.Para el funcionamiento de los interruptores simplementeverificaremos en el programa principal si han sido presio-nados, en caso de ser as se incrementarn los minutoso las horas, dependiendo del interruptor presionado.

    Bien, ya basta de explicaciones y premisas, pong-monos a trabajar.

    MANOS A LA OBRA!Para este primer proyecto simple con la IG, debere-

    mos armar un pequeo circuito en la tarjeta de experi-mentos, para lo cual necesitaremos los siguientes ele-mentos:

    a) 1 microcontrolador PIC16F84.b) 1 cristal de 3.579545MHz.c) 2 condensadores de 15pF.

    Saber Electrnica

    15

    Interfase Grfica para TV

    Figura 10

  • d) 2 mini-interruptores tipo push para circuito impreso.e) 1 Diodo zener de 5.1V x 1W.f) 1 Transformador de 110V (220V) a 6V.g) 1 resistencia de 2.2k.h) Tarjeta para experimentos Protoboard.

    Con estas piezas arme el circuito de la figura 10. Esprobable que no se necesiten los condensadores del cris-tal ya que la tarjeta de experimentos posee suficiente ca-pacitancia parsita entre sus terminales como para iniciary mantener las oscilaciones; sin embargo, cuando el cir-cuito se arma en un circuito impreso los condensadoresse hacen necesarios.

    A continuacin se muestra paso a paso lo que deberhacer para preparar su PC. Partiremos del hecho de queya tiene instalado el programa de Microchip MPLAB IDEy de que ya tiene las subrutinas especiales.

    1) Cree un subdirectorio para sus proyectos en la PCy nmbrelo como usted desee (por ejemplo IGTV).

    2) Dentro de este subdirectorio cree otro con el nom-bre Comunes. Es en este subdirectorio donde colocare-mos las subrutinas que sern comunes a todos los pro-yectos.

    3) Coloque en Comunes las subrutinas ComIG.asm,MacrosIG.asm y TablasDatos.asm.

    4) Dentro del subdirectorio IGTV (o elnombre que haya elegido) cree otro con elnombre RelojDigital.

    5) Abra el programa MPLAB IDE.6) Presione Project > Project Wizard.7) Aparece Step One: Seleccione De-

    vice: PIC16F84A y presione Siguiente.8) Aparece Step Two: Verifique que

    Active Toolsuite sea Microchip MPASMToolsuite y que Toolsuite Contents seaMPASM Assembler(mpasmwin.exe).

    9) En el cuadro de edicin Locationaparece el subdirectorio por defecto delprograma mpasmwin.exe, deje este cuadroas y presione Siguiente.

    10) Aparece Step Three: En ProjectName introduzca ProyRelojDigital.

    En el cuadro de edicin Project Direc-tory presione el botn Browse y nave-gue hasta que aparezca el subdirectorioRelojDigital y seleccinelo. A continua-cin presione Siguiente.

    11) Aparece Step Four: Aqu puedeselecciona algn archivo para aadir a suproyecto, sin embargo en esta ocasin noseleccionar ninguno. Presione Siguien-te.

    12) Aparece el cuadro de dilogo Summary, el cualmuestra el resumen del proyecto que acaba de crear.Presione Finalizar.

    Aunque para este caso no es necesario crear un pro-yecto completo, lo hemos hecho de esta manera con elfin de mostrar al lector la manera en que se crea un pro-yecto en el ambiente de desarrollo MPLAB.

    PRECAUCION: Asegrese de que Default Radix seaDecimal. Esta opcin est en Project>Build Options>Pro-ject Pestaa MPASM Assembler

    ARCHIVO FUENTE

    Lo que hemos hecho con los pasos anteriores escrear un Workspace en donde agregaremos un archivofuente en ensamblador. Dicho archivo lo crearemos pre-sionando en el men del IDE File>New.

    Esto crea un archivo en blanco con el nombre por de-fecto untitled.

    Ahora comenzaremos a escribir el programa en stearchivo. Teclee el cdigo de la tabla 2.

    Observe que la palabra CONFIG est precedida de 2y no de un solo guin bajo.

    Artculo de Tapa

    Saber Electrnica

    16

  • Las 3 primeras lneas son comentarios, ya que estnprecedidas por el punto y coma (;).

    La cuarta lnea le indica al ensamblador que incluya elarchivo p16f84.inc el cual usa para encontrar definicio-nes de registros, puertos y otros datos relacionados conel PIC16F84.

    La siguiente lnea se usa para configurar el microcon-trolador respecto a algunas opciones como proteccin decdigo, tipo de cristal que se usar, etc.

    Enseguida deberemos apartar localidades de memo-ria para ciertas variables que necesitaremos en nuestroproyecto, para esto utilizaremos la directiva de ensambla-dor CBLOCK, la cual define una lista de nombres de lo-calidades comenzando en el nmero de localidad indica-da enseguida de CBLOCK.

    En el caso del PIC16F84, las localidades RAM quepodemos usar comienzan en el nmero 0x0C (12 en de-cimal).

    La lnea #DEFINE MODO_D0 es especial, la usa la su-brutina ENVIAR_BYTE para cambiar D0 a entrada o saliday define en qu bit de qu puerto est D0. Observe que eneste caso D0 est en el Puerto B en el Bit 1 (TRISB,1). Lasltimas lneas definen el nombre que se usar en 5 patasde los puertos del PIC. Estas son las lneas de comunica-cin con la IG y 2 interruptores. Observe en el diagrama lacoincidencia de LR, RJ y D0 de la base de 16 patas de laIG con las patas de los puertos del PIC.

    Antes de continuar debemos guardar nuestro archivo.Para esto, en el men presione File> Save As lo cualhace que aparezca el cuadro de dilogo para guardar.Cambie el nombre untitled a RelojDigital. El archivo seguardar con el nombre RelojDigital.asm en el subdirec-torio actual, el cual debe ser RelojDigital.

    Ahora deberemos agregar nuestro archivo al Works-pace que creamos. En la ventana ProyRelojDigital.mcwaparece una seccin titulada Source Files. Con el botnderecho del ratn presione esta seccin. Aparece un me-n contextual, seleccione Add Files y en el cuado dedilogo que aparece seleccione el archivo RelojDigital(de hecho es el nico que aparece en este momento). Alpresionar el botn Abrir este archivo se agrega a nues-tro Workspace en la seccin Source Files.

    Ahora s, ya tenemos guardado y agregado nuestroarchivo y podemos continuar.

    MACROS DISPONIBLESEn el archivo Macros.asm hemos creado varias ma-

    cros que simplifican la escritura y mejoran la legibilidaddel cdigo. A continuacin se indican algunas de estasmacros y su funcin:

    BORRAR_PANTALLA: La pantalla se borra llenn-dose del color actual del fondo.

    CURSOR X,Y: El cursor se mueve a la posicin indi-cada por X,Y. Las siguientes instrucciones grficas y detexto se dibujarn en la nueva posicin.

    DISPLAY_CUARZO Formato, Byte2, Byte1, Byte0:Dibuja un display de cuarzo y despliega el nmero indica-do por los 3 bytes.

    Formato indica si el nmero llevar signo, el nmerode dgitos visibles y la posicin del punto.

    Consulte el manual de la IG para una descripcin mscompleta (puede bajarlo de nuestra web).

    BRILLO Color: Cambia el color actual de dibujo al in-dicado por Color, el cual puede estar entre 0 y 15. (negroy blanco).

    BOTONES_CONTROL NumBotones: Dibuja boto-nes de control en la parte inferior de la pantalla. NumBo-tones indica cuantos botones se dibujarn. Pueden serhasta 5.

    CUADRO_LLENO X2,Y2: Dibuja un cuadro del colordel Brillo actual. X2,Y2 indican la esquina inferior derechay la esquina superior izquierda viene dada por el cursoractual.

    MARCO_ALTO_REL X2, Y2: Dibuja un marco resal-tado (alto relieve). Las coordenadas se interpretan de lamisma manera que en la macro anterior.

    TEXTO_FORMATO ndice: Enva texto con formato ala pantalla.

    Esta macro trabaja combinada con una tabla de texto,la cual debe definirse antes de llamar la macro. Indice esel offset del byte inicial que se enviar hasta que se en-cuentre el fin de la cadena, el cual es el nmero 255.

    Para una explicacin ms amplia del texto con forma-to consulte el manual (por cuestiones de espacio no lo re-producimos aqu, pero lo puede bajar gratuitamente denuestra web, siguiendo los pasos dados anteriormente).

    IMAGEN_2TONOS TamHor, TamVert, indice: Envauna imagen a la pantalla.

    Al igual que la macro de texto, es necesario que sedefina una tabla de datos para poder usar esta macro.

    TamHor y TamVert indica el nmero de pixeles hori-zontales y verticales de la imagen.

    Esta se dibujar en el cursor actual. Indice es el offseten la tabla de datos del byte inicial de los datos de la ima-gen.

    Aunque hay muchas ms macros, con las vistas has-ta ahora ser suficiente para nuestro primer proyecto.

    Saber Electrnica

    17

    Interfase Grfica para TV

  • TABLAS DE DATOSLa manera ms fcil para enviar un grupo de bytes a

    la IG consiste en agruparlos en una tabla y mediante unamacro enviarlos uno por uno a la tarjeta.

    La directiva DT (Define Table) define una tabla de va-lores que permite inclusive escribir caracteres en cdigoASCII, lo cual es apropiado para enviar textos. Existe unamacro para enviar texto y otra para enviar datos (los cua-les pueden ser una imagen). Para usar dicha macro sedebe proporcionar el offset en la tabla correspondiente alprimer byte que se enviar. No se preocupe si todo estole parece confuso, con una ojeada al cdigo del reloj seaclarar la manera en que se usan las tablas de datos.

    VECTORES DE INICIO E INTERRUPCION, INCLUSION DE ARCHIVOSMuy bien, ya tenemos nuestro circuito armado y tam-

    bin hemos tecleado las instrucciones bsicas de inicio

    del programa. Teclee, a continuacin, las lneas de la ta-bla 3.

    La directiva ORG 0x0000 indica la direccin dondecomenzar la ejecucin del programa despus de un re-set. Aqu se ha escrito una instruccin de salto a la etique-ta INICIO. Debido a que planeamos usar la interrupcindel timer, el vector de inicio de dicha interrupcin est enla localidad 0x0004, donde se ha escrito un salto a la eti-queta INT_TMR0.

    En cuanto se produzca una interrupcin del timer, seejecutarn las instrucciones a partir de la etiquetaINT_TMR0. A continuacin escribimos ORG 0x0005 quees donde iniciaremos nuestro cdigo de subrutinas.

    Observe las directivas INCLUDE las cuales le indicanal ensamblador incluir 3 subrutinas junto con las demsinstrucciones que integran el programa.

    CODIGO DE LAS TABLAS DE DATOS Y TEXTOSA continuacin crearemos las tablas de datos y textos.

    Teclee el cdigo de la tabla 4:La tabla de datos agrupa los valores de una imagen

    de 2 tonos de 16x16 pixeles la cual consiste en un peque-o reloj analgico. Consulte en su manual la instruccinIMAGEN 2 TONOS si requiere de una explicacin adicio-nal.

    La tabla de textos agrupa dos cadenas: la primerasimplemente tiene texto, sin embargo la segunda contie-ne caracteres de control. La tabla 5 muestra los distintoscdigos de control para texto con formato.

    Cuando la IG procesa los datos de la TABLA_TEX-TOS de la segunda lnea es-cribe RELOJ DIGITAL enla posicin del cursor actual,luego hay un carcter decontrol 8, lo cual significasaltar a las coordenadasdel botn de control, luegoviene un 1, esto es, el bo-tn 1, Luego la IG escribe HOR, lo cual lo hace dentrodel botn de control, ya queanteriormente le ordenamossaltar a este control. Algo semejante ocurre conel botn de control 2, dentrodel cual se escribe el texto: MIN. Luego viene el cdigo9, lo cual hace que de aho-ra en adelante al escribirtexto se redibuje el color delfondo. Si no hacemos esto,los caracteres del texto quedibujemos se muestran em-

    Artculo de Tapa

    Saber Electrnica

    18

  • palmados, ya que la IG no borrara el fondo (esto concier-ne a los segundos del display del tiempo).

    SUBRUTINA DE INTERRUPCION DEL TMR0Ahora escribiremos la subrutina que se llamar cuan-

    do el TMR0 genere una interrupcin, esto es, cada 60(50) pulsos. Escriba el cdigo de la tabla 6.

    Lo primero que debemos hacer al entrara la subrutina es borrar el bit de aviso de in-terrupcin del TMR0 (INTCON,2), ensegui-da debemos cargar el TMR0 con el valor196 (206 para 50 Hz), por qu?. Veamos:

    El timer interrumpe al PIC cada vez quehay un sobreflujo, la mxima cuenta es 255,en el siguiente pulso se cambia a 0, lo cualgenera la interrupcin. Si as lo dejamos, lasiguiente interrupcin sera dentro de 256pulsos, lo cual no es lo que deseamos, yaque necesitamos que cuente 60 (50) pulsosy no 256. Si cargamos al TMR0 con 196(206), entonces con 60 (50) pulsos ms seproduce el sobreflujo (196+60=256) y segenera la interrupcin, que es justo lo quedeseamos.

    Enseguida est el cdigo del pequeoalgoritmo que se expuso anteriormente.

    Observe el uso de la macro DIS-PLAY_CUARZO.Esta macro espera 3 bytes en bina-rio, lo cual puede mostrar un nmeromayor a 16 millones, sin embargosolo usamos un nmero menor que60 para cada display (Horas, minu-tos y Segundos) por lo tanto debe-mos enviar ceros en los bytes de va-lor superior. Para esto hemos defini-do un registro de nombre Cero, enel cual colocamos el valor de 0 y loenviamos en los dos bytes que no seusan.El registro FormPunto se usa paradefinir el formato de los nmeros deldisplay. Consulte su manual parauna explicacin amplia de este for-mato.Observe que si no se produce cam-bio en los minutos o las horas no serefresca el display respectivo.

    PRECAUCIONDISPLAY_CUARZO espera como

    argumentos registros, no valores numricos. Por ejemplo,si tecleamos DISPLAY CUARZO 160, 4, 2, 100, su ejecu-cin puede causar resultados inesperados, ya que la ma-cro enviara el contenido de la localidad 160, luego el dela localidad 100, luego el de la localidad 2 y por ltimo elde la localidad 4 no los valores numricos!.

    Saber Electrnica

    19

    Interfase Grfica para TV

  • Primero debe definir 4 registros, luego colocar enellos el formato del punto y los 3 bytes que desea desple-gar. Para usar la macro coloque los nombres de estos re-gistros en los argumentos.

    CODIGO PRINCIPALAhora escribiremos el cdigo principal del programa,

    el cual se ejecuta al encender el circuito (reset).Bsicamente lo que hacemos en esta parte del pro-

    grama es iniciar algunos registros, programar el registrode opciones y configurar los puertos y las interrupciones.

    Escriba el cdigo de la tabla 7.

    CONFIGURACION DE PUERTOSEl puerto A es configurado en modo entrada.El Puerto B se configura con B,0 como salida, ya que

    es RJ para la comunicacin con la IG. Al inicio los demsbits son entradas (incluyendo D0).

    REGISTRO DE OPCIONES (OPTION_REG)A continuacin el programa carga el registro de opcio-

    nes con el valor 0x28. Veamos qu sucede con esto:

    BIT USO Valor fijado Motivo0-2 Pre-escalador 0 0 0 No importa.3 Asignacin del pre-escalador 1 Al watch-dog.4 Modo Disparo TMR0 0 A la bajada. 5 Seal del TMR0 1 Entrada externa.6 Modo de interrupcin externa. 0 No importa.7 Resistencias pull-up. 0 Activado.

    Valor fijado es lo que se program en nuestro caso.Dado que el pre-escalador se asign al watch-dog, no im-

    porta el valor que usemos.El TMR0 cuenta los pulsos a la bajada, de acuerdo al

    bit 4.El bit 5 determina que la entrada del TMR0 sea del ex-

    terior (pata 3).El bit 6 se usa para la interrupcin externa. En nues-

    tro caso no se usa.El bit 7 activa o desactiva resistencias en el puerto B,

    las cuales estn internamente conectadas al VCC. Ennuestro caso las hemos activado para que no se necesi-te colocar resistencias al VCC en los interruptores (usa-mos las internas, llamadas pull-up).

    El valor fijado es el 00101000 (0x28 en hexadecimal).

    INICIANDO REGISTROSEl siguiente paso es iniciar algunas salidas y regis-

    tros. RJ y D0 se ponen en 0. Ponemos a cero los regis-tros horas, minutos y segundos de modo que al encendernuestro reloj comenzar en 00:00 00.

    Por ltimo configuramos el registro del formato paranuestros 3 displays.

    Aqu se indica la posicin del punto y el nmero de d-gitos visibles (2).

    La ltima instruccin hace invisible el punto del dis-play ya que no lo necesitamos y slo nos estorbara.

    DIBUJANDO EN LA PANTALLAPor fin! ahora comenzaremos a dibujar en nuestra

    pantalla. Teclee el cdigo indicado en la tabla 8.Lo primero que debemos hacer es borrar la pantalla,

    para esto utilizamos la macro BORRAR_PANTALLA. Lue-go dibujamos dos botones de control los cuales se dibu-jan automticamente en la parte inferior de la pantalla.

    Enseguida dibujamos dos barras detitulo en la parte superior de la pan-talla. Observe que se cambia el co-lor de Brillo a 0 (negro). Luego co-locamos el cursor en las coordena-das 22, 1 y dibujamos un CuadroLleno con las coordenadas de la es-quina inferior derecha en 226, 14, locual da como resultado una barrade color negro.De la misma manera dibujamos otrabarra un poco ms abajo pero de

    color claro (Brillo=10).

    ESCRIBIENDO TEXTOA continuacin escribiremos texto dentro de las barras

    de ttulos. Teclee el texto de la tabla 9:El texto en la barra superior ser de color claro (Bri-

    llo=10), ya que la barra es negra. Despus de colocar elcursor en la parte izquierda de la barra, ejecutamos la

    Artculo de Tapa

    Saber Electrnica

    20

  • macro TEXTO_FORMATO, la cual espera el offset de ini-cio en la tabla, el cual es 0, ya que iniciamos con el textoSABER .

    A continuacin cambiamos el color a uno ms oscuroy escribimos en la barra inferior. Note que el offset deTEXTO_FORMATO es 28, ya que comenzaremos a es-cribir a partir del carcter nmero 28 de la tabla de textos.

    DIBUJANDO EL ICONOAhora dibujaremos el icono de la aplicacin en la par-

    te superior izquierda de la pantalla. Teclee el cdigo de latabla 10.

    Primero colocamos el cursor en la parte superior iz-quierda (coordenadas 0, 0), luego enmarcamos nuestrocono con un pequeo marco realzado. Enseguida cam-biamos el brillo a un color oscuro (Brillo=3) y por ltimoejecutamos la macro IMAGEN_2TONOS, donde indica-mos que el tamao de la imagen ser de 16x16 puntoscon offset de 0.

    PREPARANDO EL DISPLAYA continuacin dibujaremos el recuadro donde pre-

    sentaremos nuestro display de cuarzo. Teclee el cdigode la tabla 11.

    Enmarcamos nuestro display con un recuadro en ba-jo relieve y luego dibujamos dos pequeos cuadros entrelas horas y minutos para darle un aspecto ms cercano aun reloj real de cuarzo. Con esto queda preparada la pan-talla para desplegar la hora.

    DESPLEGANDO LA HORA Y HABILITANDO INTERRUPCIONESA continuacin desplegaremos la hora actual, la cual

    ser 00:00 00, debido a que esta parte del programa seefecta al inicio, sin embargo se habilita la interrupcinpor TMR0 y a partir de este instante nuestro reloj co-menzar a funcionar. Teclee el cdigo de la tabla 12:

    MANEJANDO LOS INTERRUPTORESEn esta ltima parte del cdigo se verifica si se ha

    presionado alguno de los dos interruptores, si esto su-cede se acta en consecuencia incrementando los mi-nutos o las horas. Teclee el cdigo de la tabla 13.

    Observe que si se ha detectado un interruptor pre-sionado, inmediatamente se anulan las interrupciones,con el fin de procesar el cdigo de refresco del display.Porqu se deben anular las interrupciones? . Pregun-ta interesante...

    Saber Electrnica

    21

    Interfase Grfica para TV

  • Veamos: Si dentro del programa principal estamos en-viando instrucciones a la IG corremos el riesgo de que almismo tiempo ocurra una interrupcin. Si la subrutina deinterrupcin trata tambin de enviar datos a la IG, sta seconfundir ya que esperaba datos del programa principal yde pronto llegan datos de la subrutina de interrupcin. Es-to ocasionar la ejecucin aleatoria de instrucciones y lapantalla se corromper junto con el programa.

    Por este motivo se anulan las interrupciones y slodespus de refrescar el display respectivo (horas o minu-tos) se vuelven a activar.

    Es todo! hemos terminado de teclear el cdigo denuestro reloj digital.

    Bien, el ltimo paso es ensamblar nuestro programa,para esto seleccione en el men Project > Build All. Si notenemos errores, el ensamblador crear un archivo tituladoRelojDigital.HEX, el cual se usar para programar nues-tro PIC con algn programador disponible.

    Cabe aclarar que si Ud. no quiere seguir todos estospasos, en nuestra web, con el cdigo dado en este texto,podr encontrar el archivo RelojDigital.HEX que podrgrabar en el PIC para circuito de la figura 10, utilizandocualquiera de los programadores de PICs publicados enSaber Electrnica, como el Quark Pro 2, por ejemplo.

    Despus de crear nuestro archivo HEX, programamosel microcontrolador y lo insertamos en nuestra tarjeta deexperimentos. Al conectar el protoboard a la placa IG y laplaca al televisor, aparecer la pantalla de la figura 11.

    PROBANDO NUESTRO RELOJ

    Despus de encender la IG, lo primero que se ve en lapantalla es una imagen aleatoria, esto se debe a los valo-res indefinidos de la memoria RAM de video al momentode alimentarla. Al cabo de un segundo aparece la pantallade bienvenida, la cual se muestra en la figura 1.

    Despus de 4 segundos de mostrar sta pantalla, la IGcoloca LR en 1, indicando que est lista para recibir ins-trucciones. Es en este momento cuando nuestro reloj debecomenzar a funcionar. Despus de ponerlo a tiempo, laimagen en la pantalla ser semejante a la que se muestraen la figura 11.

    Esta es una aplicacin sin uso prctico, dado que seraun reloj caro y adems no se ha previsto el fallo de la ener-ga elctrica.

    Sin embargo, el objetivo principal de esta aplicacin hasido didctico, donde se ha mostrado el uso de algunasinstrucciones bsicas.

    Una buena prctica para el lector sera agregarle unaalarma.

    QUE SIGUE?

    En el siguiente artculo construiremos el primer equipode prueba prctico que utilizar la Interfase Grfica, un me-didor digital de condensadores, el cual usar slo 3 circui-tos integrados de bajo costo los cuales son un PIC16F84,un CMOS 4538 y un interruptor analgico CMOS 4066. Es-te instrumento ser capaz de medir condensadores desde1pF hasta 40F en 3 escalas.

    IMPORTANTEATMega8515 y AT90S8515

    Aunque Atmel ha descontinuado el AT90S8515, el nue-vo ATMega8515 tiene un modo de configuracin el cual es100% compatible con el anterior (AT90S8515).

    De hecho yo no tuve necesidad de cambiar una sola l-nea del cdigo fuente.

    En la opcin "Fuses" del programador simplemente semarca la casilla "AT90S4414/8515 compatibility mode;[S8515C=0]" y se obtiene dicha compatibilidad.

    Utilic un programador comercial modelo STK500.La ventaja del Mega es que puede trabajar a 16MHz, a

    diferencia del anterior, el cual es de 8MHz, sin embargoprcticamente no se ve afectada la IG con cualquiera delos 2. Por cierto, puse un cristal de 20MHz en el Mega ysorprendentemente trabaj sin problemas!

    PROGRAMADOR DE MICROCONTROLADORES ATMELPor razones de espacio, en este nmero no podemos

    publicar ningn programador (quemador) de microcontro-ladores Atmel, sin embargo Ud. puede bajar un circuito consu correspondiente impreso, programas e instrucciones deuso de nuestra web www.webelectronica.com.ar, hagaclick en el cono password e ingrese la clave graficatv.

    Artculo de Tapa

    Saber Electrnica

    22

    Figura 11