Aplicaciones prácticas con el microcontrolador AT89C2051 para

Anuncio
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
Descargar