Aplicaciones prácticas con el microcontrolador AT89C2051 para laboratorio de sistemas digitales Sánchez Soler, Alejandro EPSEVG Enero 2008 Resumen El proyecto trata de renovar el material didáctico de la asignatura laboratorio de sistemas digitales (LSDI).Se han realizado y actualizado los diseños de varios circuitos para usar cómo prácticas de esta asignatura, se han realizado las placas de circuito impreso correspondientes y se han montado los componentes electrónicos para estas placas. También se ha realizado el diseño e implementación de dos programadores para el microcontrolador AT89C2051, uno en serie y otro paralelo. deberá gestionar las lecturas de los canales analógicos del conversor analógico-digital, así como gestionar la visualización de los valores leídos en la tres columnas de diodos led. Por último se ha querido recrear el efecto de un contadordescontador con cuatro dígitos de siete segmentos usando un microcontrolador 89C2051 o 89S2051. En esta práctica se usarán dos teclas para contar y descontar y se gestionará el visualizador de siete segmentos para que se vea la cantidad contada de forma correcta. II. Implementación I. Introducción Para que los alumnos puedan grabar los microcontroladores sin necesidad de ir al centro de cálculo de la universidad se ha diseñado un programador paralelo, sencillo y de muy bajo coste, que luego podrán utilizar para sus propios diseños. Este programador se puede usar para los microcontroladores 89C2051 y 89C4051 de bajo coste y disponibles comercialmente, que se usan en esta asignatura. Al mismo tiempo, se ha diseñado un programador serie, también muy sencillo y de bajo coste, que se puede conectar a algunas placas que se usaran en las prácticas del laboratorio. Con este programador se pueden grabar los microcontroladores del tipo 89SXX del fabricante Atmel [6] sin necesidad de extraer el microcontrolador de las placas electrónicas. Además de estos programadores, se han realizado cuatro diseños para los microcontroladores 89C2051 y 89S2051 que se utilizaran como prácticas de laboratorio de la asignatura LSDI. El primer diseño consiste en un circuito para el 89C2051 con ocho diodos led para efectuar un efecto visual de leds encendidos y que es habitual de la asignatura. El siguiente diseño consiste en la gestión por un microcontrolador 89C2051 o 89S2051 de una matriz de 7x5 leds que se proporciona en un solo dígito. Esta práctica está destinada a efectuar un contador- descontador numérico que se ha de controlar correctamente para que se vean los números decimales correctamente en el dígito matricial. El tercer diseño consiste la recreación del efecto de un vumeter en una estructura formada por tres columnas y siete filas de diodos led. Esta práctica contiene un conversor analógico-digital ADC0834 de 8 bits y cuatro canales, para leer tensiones analógicas de entrada y mostrarlas en las columnas de diodos led. En esta práctica se puede usar un microcontrolador 89C2051 o 89S2051. El microcontrolador Para diseñar las prácticas se utiliza el programa OrCAD, versión estudiante, para realizar los esquemáticos, el diseño y trazado de las pistas de circuito impreso. Las placas de circuito impreso se hacen mediante la fresadora LPKF C30 del LGEU que la universidad pone a disposición para los proyectistas final de carrera. Fig. 1. Fresadora LPKF Con esta fresadora se consigue un mejor resultado que si, por lo contrario, se hubieran insolado estas placas, ya que la fresadora tiene una resolución mucho mayor y permite hacer circuitos impresos de menor tamaño y de mayor calidad. Por otro lado, se emplean resistencias y condensadores SMD en el diseño, lo que permite reducir bastante el tamaño de las placas realizadas. III. Programador paralelo Los microcontroladores normalmente vienen de fábrica con la memoria borrada (contenido de array todo a unos, FFH) y listo para ser programado. Hay dos tipos de modelos a tener en cuenta para el programador y que se usan en la asignatura: los microcontroladores 89C2051, 89C4051 y 89C52, que precisan de una tensión de 12 voltios y de 5 voltios para ser programados, y los de la gama 89SXX que tan sólo precisan de una tensión de 5 voltios. El microcontrolador más usado en la asignatura es el AT89C2051, por su disponibilidad y bajo coste, 1,4€. Para este microcontrolador se emplea el siguiente programador paralelo que es el más sencillo que se puede realizar . descargar en versión simplificada de la misma página web de Keil. IV. Programador serie Este gravador programa vía serie, mediante pocos hilos, una determinada gama de microcontroladores de la familia 8051. En la asignatura se usa el microcontrolador AT89S2051, compatible con el anterior AT89C2051, y que se puede programar vía serie con un protocolo SPI (Serial Paralel Interface). El método de programación vía serie se denomina “In-System Programming” (ISP), con esto se refiere a que no es necesario extraer el microcontrolador de la placa de circuito impreso para programarlo. Fig. 2. Fotografía del programador U1 LM7805/TO 1 VIN VOUT 3 5V C1 + 10 uF GND 1 2 3 U2 1 J1 2 D2 DB10 3 DB16 6 2 CON3 GND DB17 2 GND GND 7 R1 8 330 9 11 DB1 GND R2 1k 3 GND 20 GND P3.3/INT1 P1.0/AIN0 P3.4/T0 P1.1/AIN1 P3.5/T1 P1.2 P3.7 P1.3 XTAL1 P1.5 XTAL2 P1.6 GND 1 D3 12V R3 2k7 5V 10 RST/VPP P1.7 12 DB2 13 DB3 14 DB4 15 DB5 16 DB6 17 DB7 18 DB8 19 DB9 2 C4 + 100 uF 4 12V C3 + 10 uF GND P3.2/INTO 1 VOUT 1 VIN VCC P3.1/TXD P1.4 C2 1 nF U3 LM7812/TO 1 5 AT89C2051 P3.0/RXD El conector usado en las aplicaciones para poder programar se ha diseñado diferente al estándar de la casa Atmel, ya que este tiene 10 pines, los cuales tan sólo son necesarios 6 pines. La distribución de señales dentro del conector de 6 pines se muestra a continuación. 2 2 Q1 GND R4 10k DB14 BC547 R5 Fig .5 Conector ISP 3 GND 330 GND P1 13 25 12 24 11 23 10 22 9 21 8 20 7 19 6 18 5 17 4 16 3 15 2 14 1 GND R6 10k DB10 1 5V Q2 2 R7 10k DB17 DB9 DB8 3 BC547 DB7 GND DB6 DB5 DB17 DB4 DB16 DB3 DB15 DB2 DB14 DB1 El circuito necesario para el programador serie es muy sencillo y precisa tan sólo de cuatro puertas lógicas AND que proporciona un único circuito integrado 74LS08 que se muestra en la siguiente figura. VCC J5 +5V 1 GND Conector DB25 para placa entre ranura 1 CON1 D2 CONNECTOR DB25 2 J7 GND 1 2 Fig.3 Esquemático del programador El programador se conecta al ordenador a través del puerto paralelo, del tipo DB25, que utiliza ocho líneas de datos para la comunicación con el ordenador personal, cinco líneas de control y la masa, tal y como muestra en la siguiente figura: J8 3 14 15 16 17 18 19 20 21 22 23 24 25 R1 U1A 1 J4 3 RESET 2 330 1 CON1 J6 74LS08 4 1 CON1 5 GND 6 7 8 U1B 4 CON14A25 J1 6 MOSI 5 1 CON1 74LS08 9 10 GND U1C 11 9 12 10 J3 8 CLK 1 CON1 13 74LS08 CON1A13 U1D 12 11 J2 MISO 13 1 CON1 74LS08 Fig .6 Esquemático programador serie El software utilizado es gratuito y lo proporciona el mismo fabricante del microcontrolador Atmel. Este es de muy fácil uso y eficaz. El usuario tan sólo ha de escoger el modelo del microcontrolador a programar y la función que se quiere realizar (borrado, programación y lectura). Fig. 4 Patillaje del conector DB25 El software que acompaña al programador es el py2051.exe muy sencillo de utilizar mediante la ventana MS-DOS. Es un programa que necesita un archivo para programar con el formato *.hex que se genera mediante el entorno de desarrollo para microcontroladores de la familia compatible de Intel 51, Keil microvisión [7], disponible en el laboratorio L103 y L105 de la universidad, y que se puede Fig .7 Imagen del software V. Práctica coche Fantástico Esta es una práctica habitual de la asignatura que consta de ocho diodos led situados en una fila controlados por el microcontrolador AT89C2051. Los diodos led se encienden mediante el microcontrolador que permite una corriente entrante de hasta 25mA, para un máximo de 4 led simultáneos. Al ser la corriente entrante, los diodos se encienden mediante un “0” lógico en uno de los pines del microcontrolador. Fig. 10 Esquema circuital de la matriz de 7x5 diodos led Fig. 8 Circuito simplificado de la práctica La aplicación consta de dos pulsadores con los que se puede añadir un grado mayor de dificultad al código a realizar por los estudiantes de la asignatura. Con estas teclas se pueden hacer opciones para cambiar los tiempos de refresco, el sentido de encendido de los diodos, etc., que enriquecen el desarrollo de la práctica para los estudiantes. Esta práctica consta además de cinco teclas y de un zócalo para conectar una memoria EEPROM serie. El estudiante debe hacer un programa capaz de gestionar la matriz de diodos led para que se vean correctamente los caracteres alfanuméricos y usar las teclas para interaccionar con el microcontrolador. Fig. 11 Fotografía de la práctica Fig. 9 Fotografía de la práctica VII. Práctica vumeter En la aplicación se ha añadido una memoria adicional EEPROM I2C para posteriores utilizaciones que están fuera del alcance de este proyecto, pero qué de todos modos enriquece el abanico de posibilidades que ofrece esta práctica. VI. Práctica matriz de LEDs Esta práctica consiste en la gestión de una matriz de diodos led formada por siete filas y cinco columnas: Se ha denominado así a esta práctica porque se quiere simular el funcionamiento de un vumeter de sonido, es decir una barra de leds que se enciende de tal forma que indica el volumen de la señal de sonido. En este caso, se entrará a la placa con una señal de tensión cualquiera procedente de un generador de señal del laboratorio. La señal analógica se convertirá a digital a través de un conversor analógico digital, ADC0834, y que se procesará mediante un microcontrolador AT89C2051, o bien, AT89S2051. El conversor analógico-digital es un conversor de aproximaciones sucesivas de ocho bits y cuatro canales de entrada, y que se controla via serie con un protocolo proporcionado por el fabricante. IX. Conclusiones Fig .12 Patillaje del conversor AD0834 El vumeter esta formado por 21 diodos led en una disposición de tres columnas por siete filas. Con ello será suficientes para recrear el efecto deseado. El microcontrolador debe hacer el protocolo serie indicado para que el ADC0834 inicie una conversión y procesar el dato dado por el conversor para situarlo convenientemente en las barras de diodos led. En este proyecto final de carrera se han realizado dos programadores sencillos y de bajo coste, uno del tipo paralelo para el AT89C2051 y otro serie para el AT89S2051, y cuatro prácticas para el laboratorio de la asignatura LSDI. Todo este material es de gran utilidad para los estudiantes que van a realizar esta asignatura, ya que los programadores los pueden realizar ellos mismos para su uso particular en sus propios diseños o para otras asignaturas de la carrera. En este proyecto además se han realizado cuatro diseños, con sus respectivas implementaciones, destinados a soportar las prácticas de la asignatura de LSDI. Como conclusión final me queda por decir que gracias a este proyecto he podido aplicar parte del conocimiento adquirido a lo largo de mis estudios y he obtenido una experiencia que recordaré durante mucho tiempo. Referencias [1] Matas Alcalá J., Ramos Lara R. ,“Microcontroladores MCS-51 y MCS-251”, Editorial Edicions UPC, Barcelona, 2001. [2] F.J.Benedito Lluch, J.M. Manzanaque Plaza, J. Murgui Rodríguez, “Diseño de circuitos electrónicos asistido por ordenador con OrCAD Release 9.x 2ª parte”, Editorial Moliner 40 . Fig .13 Fotografía de la práctica VIII. Práctica Suturno En esta práctica se pretende realizar un contadordescontador a través de cuatro dígitos de siete segmentos usando el microcontrolador AT89C2051 o AT89S2051. Por medio del microcntrolador se podrá gobernar el contador, en el cual debe incrementar, o decrementar, una unidad cada vez que se pulse una de las teclas disponibles para esa función. En la imagen siguiente se puede apreciar los diferentes conectores, el pulsador de reset, así cómo el pin GND para conectar una sonda del osciloscopio si es necesario. Fig .14 Fotografía aplicación [3] Odant, Bernat “ Microcontrolador 8051 y 8052 ” Editorial Madrid Paraninfo, 1995. [4] “Guia lingüística pràtica: Disseny i elaboració de materials docents” del Servei de Terminologia de la UPC, 1997. Llengües i [5] “Guia de utilización LPKF” Centro de cálculo EPSEVG [6] www.atmel.com [7] www.keil.com [8] http://es.geocities.com/siderio_orion/Orcad/GuiaOrC2.htm#LPlus [9] https://upcommons.upc.edu/ [10] www.ondaradio.es