Sie sind auf Seite 1von 20

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 PRACTICA N0. 10 NOMBRE DE LA PRÁCTICA Microcomputadora con el

PRACTICA N0. 10

Microprocesadores El MICROCONTROLADOR 8051 PRACTICA N0. 10 NOMBRE DE LA PRÁCTICA Microcomputadora con el 8051 OBJETIVO
Microprocesadores El MICROCONTROLADOR 8051 PRACTICA N0. 10 NOMBRE DE LA PRÁCTICA Microcomputadora con el 8051 OBJETIVO

NOMBRE DE LA PRÁCTICA

Microcomputadora con el 8051

OBJETIVO ESPECÍFICO:

Conocer las componentes y la programación de un Microcontrolador 8051

INTRODUCCIÓN:

SISTEMAS BASADOS EN MICROCONTROLADOR

Un sistema de computadora basado en microcontrolador es diferente funcionalmente a un sistema basado en un microprocesador. El primero se utiliza de una forma más eficiente en un sistema que ejecuta un programa dedicado (o fijo) repetitivamente sin la necesidad de ser reprogramado. A un microcontrolador con frecuencia es llamado computadora en un “chip”. El nombre anterior se le otorga ya que contiene todos los componentes de un sistema de computadora (bus, CPU, memoria y puertos E/S) en un solo circuito integrado. APLICACIONES TIPICAS DE LOS MICROCNTROLADORES Ejemplos en los cuales se incluye el uso de programas fijos repetitivos son los siguientes:

• Videograbadoras

• Máquinas contestadoras

• Instrumentación médica

• Automóviles

• Hornos de micro-ondas

• Básculas digitales

• Bombas de gasolina

• Cajeros automáticos

EL MICROCONTROLADOR 8051 El 8051 fue creado por INTEL en 1981 y tiene las características siguientes:

o

CPU de 8 bits

o

Procesador Booleano con el cual puede realizar operaciones bit a bit

o

128 bytes de RAM interna

o

4 Kbytes de memoria de programa interna (ROM)

o

5 fuentes de interrupción con 2 niveles de prioridad

(ROM) o 5 fuentes de interrupción con 2 niveles de prioridad Carlos E. Canto Quintal M.C.
(ROM) o 5 fuentes de interrupción con 2 niveles de prioridad Carlos E. Canto Quintal M.C.

Carlos E. Canto Quintal M.C.

- 102 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 o 32 bits de entrada/salida direccionables bit a bit o

o

32 bits de entrada/salida direccionables bit a bit

o

1 puerto serie Full dúplex (UART)

o

2 Contadores-Temporizadores de 16 bits programables

o

1 oscilador para las señales de reloj

o

Posibilidad de direccionar hasta 64Kbytes de memoria de programa externa

o

Posibilidad de direccionar hasta 64Kbytes de memoria de datos externa

o

varias velocidades desde 12MHz

Posteriormente han sido desarrolladas otras versiones del 8051 con distintas características de RAM, ROM, etc

ARQUITECTURA INTERNA DEL 8051

Entradas a contadores Entradas a contadores Interrupciones externas Interrupciones externas 128 128 128 128 bytes
Entradas a contadores
Entradas a contadores
Interrupciones externas
Interrupciones externas
128
128
128
128
bytes
bytes
bytes
bytes
Controlador
Controlador
Controlador
Controlador
4K
4K
4K
4K
RAM
RAM
de
de
RAM
RAM
de
de
ROM
ROM
Timer0
Timer0
ROM
ROM
Timer0
Timer0
interrupciones
interrupciones
SFR
SFR
interrupciones
interrupciones
Timer1
Timer1
Timer1
Timer1
Interrupciones
Interrupciones
internas
internas
8051
8051
8051
8051
CPU
CPU
CPU
CPU
Control
Control
Control
Control
OSC
OSC
OSC
OSC
4
Puertos E/S
Puertos E/S
Puerto serie
Puerto serie
4 4
4
Puertos E/S
Puertos E/S
Puerto serie
Puerto serie
del bus
del bus
del bus
del bus
(32 líneas)
(32 líneas)
(32 líneas)
(32 líneas)
RD
RD
WR
WR
TxD
TxD
RxD
RxD
P0
P0
P2
P2
P1
P1
P3
P3

Bus de datos/direcciones

Bus de datos/direcciones

LA DISTRIBUCIÓN DE MEMORIA DEL 8051 El 8051 está diseñado en base a lo que se conoce como Arquitectura Hardvard. Dicha arquitectura divide el espacio total de memoria en dos áreas distintas: de código o de programa y de datos.

MEMORIA DE CODIGO O DE PROGRAMA. El 8051 tiene 4096 bytes de memoria de código interna. El rango se puede incrementar, usando memoria externa, hasta un total de 64 KB.

MEMORIAMEMORIAMEMORIA DEDEDE PRPRPROGRAMAOGRAMAOGRAMA DELDELDEL 805180518051

FFFF

FFFF

1000 1000

0FFF

0FFF

0000 0000

60 60 K K 60 60 K K Bytes Bytes Bytes Bytes Externa Externa Externa
60
60
K
K
60
60
K
K
Bytes
Bytes
Bytes
Bytes
Externa
Externa
Externa
Externa
&
4K Bytes
4K Bytes
4K Bytes
4K Bytes
Interna
Interna
Interna Interna
FFFF FFFF El tamaño de la memoria de programa externa puede ampliarse hasta 64kbytes. 64
FFFF
FFFF
El tamaño de la memoria de programa
externa puede ampliarse hasta
64kbytes.
64
64
K
K
64
64
K K
Bytes
Bytes
Bytes
Bytes
Externa
Externa
O
Externa Externa
0000
0000
Los primeros 4k (8 K para el
8052 ) pueden residir en el

chip.

0000 0000 Los primeros 4k (8 K para el 8052 ) pueden residir en el chip.
0000 0000 Los primeros 4k (8 K para el 8052 ) pueden residir en el chip.

Carlos E. Canto Quintal M.C.

- 103 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 MEMORIA DE DATOS INTERNA. La capacidad de memoria de datos

MEMORIA DE DATOS INTERNA. La capacidad de memoria de datos interna es de 256 bytes. La mitad baja, 128 bytes, se usa para almacenamiento por el programa de variables de datos. La parte superior se reserva para los Registros de Funciones Especiales (SFR).

MemoriaMemoria dede DatosDatos InternaInterna

128 bytes

Más altos

128 bytes

Más bajos

FFH Accesible Accesible Solo Solo con con Direccionamiento Direccionamiento Accesible Accesible solo solo con con
FFH
Accesible Accesible
Solo Solo con con
Direccionamiento Direccionamiento
Accesible Accesible solo solo con con
Direccionamiento Direccionamiento
Directo Directo
Indirecto Indirecto
80H
7FH
Accesible Accesible con con
Direccionamiento Direccionamiento
Directo Directo e e Indirecto Indirecto
Registros de
00H
Función
Especial

Puertos Bits de status y control Registros de Timers Stack pointer Acumulador Etc.

REGISTROS DE FUNCIONES ESPECIALES. Los SFRs se usan para almacenar los valores, en bytes, que controlan la operación del 8051. Aquellos registros cuya dirección es divisible por 8 se puede direccionar por bit. El espacio de memoria para los SFRs está contenido de los bytes 128 (80H) al 255 (FFH). Este espacio de memoria es accesible solo a través de direccionamiento directo. Algunas de las direcciones en el espacio de SFRs son direccionables tanto en forma de byte como de bit. Así que otras solo son direccionables en forma de byte. Estos registros tienen valores que el 8051 utiliza conforme ejecuta instrucciones.

MEMORIA DIRECCIONABLE POR BIT. Aparte de los SFRs direccionables por bit, también se pueden direccionar 16 bytes de memoria interna de datos de esta manera. Esto le permite al programador manipular los datos en un sentido bit a bit, lo cual es una de las características más sobresalientes del 8051. MEMORIA EXTERNA DE DATOS. Si se requiere de más memoria para almacenamiento de datos, el 8051 puede direccionar en forma externa un adicional de 64 KB de RAM.

FFFFH

1000H

0FFFH

0000H

Relación Relación de de áreas áreas de de almacenamiento almacenamiento en en el el µC µC

8051 8051

Externa Externa Interna Interna o o externa externa
Externa Externa
Interna Interna o o
externa externa

FFFFH

Externa Externa
Externa Externa

El 8051 tiene espacios de direcciones separados para memoria de programa y memoria de datos.

separados para memoria de programa y memoria de datos. FFH 80H 7FH 00H 0000H Memoria de

FFH

80H

para memoria de programa y memoria de datos. FFH 80H 7FH 00H 0000H Memoria de Memorias

7FH

00H

0000H

Memoria de

Memorias de

Espacio de Registros

Memorias de Datos

programas

Datos Interna

de Función Especial SFR

Externa

Datos programas Datos Interna de Función Especial SFR Externa Carlos E. Canto Quintal M.C. - 1
Datos programas Datos Interna de Función Especial SFR Externa Carlos E. Canto Quintal M.C. - 1

Carlos E. Canto Quintal M.C.

- 104 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 DIAGRAMA FUNCIONAL DE PINES DEL 8051 El 8051 se encuentra

DIAGRAMA FUNCIONAL DE PINES DEL 8051

El 8051 se encuentra disponible en un encapsulado tipo DIP de 40 pines. Sus

PUERT0 3

PUERT0 3

VCC VCC RST/VPO RST/VPO VSS VSS XTAL1 XTAL1 XTAL2 XTAL2 EA/VDD EA/VDD ALE/PROG ALE/PROG PSEN
VCC
VCC
RST/VPO
RST/VPO
VSS
VSS
XTAL1
XTAL1
XTAL2
XTAL2
EA/VDD
EA/VDD
ALE/PROG
ALE/PROG
PSEN
PSEN
8031
8031
RXD
RXD
8031
8031
TXD
TXD
INT0
INT0
INT1
INT1
T0
T0
T1
T1
WR
WR
RD
RD

PUERT0 0

PUERT0 0

PUERT0 1

PUERT0 1

PUERT0 2

PUERT0 2

RD RD PUERT0 0 PUERT0 0 PUERT0 1 PUERT0 1 PUERT0 2 PUERT0 2 FUNCIONES ALTERNAS

FUNCIONES ALTERNAS DE LOS PUERTOS DEL 8051 Cada uno de los puertos de E/S tiene una función alternativa que le permite mayor versatilidad al 8051. El Puerto 0 sirve para multiplexar la parte baja de direcciones y al bus de datos durante el acceso a código y memoria de datos externos. El Puerto 1 tiene funciones alternativas solo en el 8052. Los bits 0 y 1 sirven como T2 y T2EX respectivamente. El Puerto 2 emite el byte de la parte alta de direcciones durante el acceso a memoria, de código o datos, externa que utiliza direcciones de 16 bits. El puerto 3 tiene las funciones listadas en seguida:

P3.0

RXD (Entrada de puerto serie)

P3.1

TXD (Salida de puerto serie)

P3.2

INT0 (Interrupción externa 0)

P3.3

INT1(Interrupción externa 1)

P3.4

T0 (Entrada para temporizador 0)

P3.5

T1 (Entrada para temporizador 1)

P3.6

WR (pulso de escritura para memoria ext.)

P3.7

RD (pulso de lectura para memoria ext)

MIEMBROS Y PRODUCTOS DE LA FAMILIA MCS-51

Los tres miembros originales de la familia son el 8031, 8051 y 8751, en seguida se describen sus características.

8031 y 8051.

• Estos dispositivos proveen una solución efectiva en costo para aquellas

aplicaciones de control que requieren de hasta 64 KB de código y/o 64 KB de almacenamiento. El 8031 contiene:

• 128 bytes de memoria de datos de lectura/escritura

• 32 líneas de E/S bidireccional (4 puertos)

• dos contadores/temporizadores de 16 bits

• Una estructura de interrupciones con dos niveles de prioridad y cinco fuentes

• Puerto serie de E/S programable

• Oscilador integrado con circuitería de reloj

serie de E/S programable • Oscilador integrado con circuitería de reloj Carlos E. Canto Quintal M.C.
serie de E/S programable • Oscilador integrado con circuitería de reloj Carlos E. Canto Quintal M.C.

Carlos E. Canto Quintal M.C.

- 105 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 El 8051 tiene todas las características del 8031 más 4

El 8051 tiene todas las características del 8031 más 4 KB de memoria de código de solo lectura, no volátil. El 8751 es una versión EPROM del 8051, tiene todas las características del 8031 más 4 KB de memoria de código de solo lectura, programable y borrable.

VERSIONES CHMOS Los dispositivos anteriores se encuentran disponibles en una versión CHMOS de ahorro de energía: 80C31, 80C51 y 87C51 respectivamente. Estos dispositivos CHMOS operan a una velocidad mayor, tiene una mayor densidad de transistores y consumen menos potencia que los dispositivos previamente listados. Cada uno de estos componentes tiene la misma funcionalidad que su equivalente estándar más dos modos seleccionables mediante programación que reducen el consumo de potencia: Espera (Idle) y Potencia Baja (Power Down). Estos modos hacen de dichos componentes ideales para aplicaciones operadas por batería.

MODO DE ESPERA (IDLE) Este modo congela al CPU mientras que permite que continúen funcionando la memoria RAM, contadores, puerto serie y sistema de interrupciones.

MODO DE POTENCIA BAJA Este modo protege el contenido de memoria RAM, pero congela el oscilador, causando que todas las demás funciones del chip no operen.

Miembros de la subfamilia 8052 y 80C51FA El 8032 y el 8752 son productos subfamiliares del 8052. El 83C51FA y el 87C51FA son miembros del 80C51FA así como el 83C51FB y el 87C51FB son miembros de la subfamilia del 80C51FB.

8032, 8052 y 8752. El 8052 tiene 8 KB de ROM programada de fábrica y el 8032 es una versión sin ROM del 8052, mientras que el 8752 tiene 8 KB de memoria de programa EPROM. Sus características se listan en seguida:

• 256 bytes de memoria de datos de lectura/escritura

• 32 líneas bidireccionales de E/S (4 puertos)

• 3 temporizadores/contadores de 16 bits

• Estructura de interrupciones con dos niveles de prioridad y seis fuentes originadoras.

• Puerto serie programable de E/S

• Oscilador integrado con circuitería de reloj

83C51FA, 80C51FA y 87C51FA

El 8032, 8052 y 8752 también tienen sus versiones CHMOS: 83C51FA y FB, 80C51FA y FB y 87C51FA y FB, respectivamente. Estos dispositivos presentan características similares a los anteriores CHMOS. Los dispositivos FB son versiones compatibles con la serie FA, pero tienen 16 KB de ROM, además se incluye una nueva característica el Arreglo de Contador Programable.

ARREGLO DE CONTADOR PROGRAMABLE (PCA) Consiste de un contador de 16 bits y cinco módulos de 16 bit de comparación/captura. Estos últimos comparten los pines P1.2 a P1.7. Cada módulo

tiene su propio registro de modo, CCAPMn, que se utiliza para configurar el módulo

n.

 

Cada módulo puede programarse como:

Modulador de ancho de pulso (usado para conversión d/a)

Registro de comparación/captura (para medición muy precisa en tiempo real de ancho de pulso)

salida de alta velocidad

en tiempo real de ancho de pulso) • salida de alta velocidad Carlos E. Canto Quintal
en tiempo real de ancho de pulso) • salida de alta velocidad Carlos E. Canto Quintal

Carlos E. Canto Quintal M.C.

- 106 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 Adicionalmente, el módulo 4 se puede programar para actuar como

Adicionalmente, el módulo 4 se puede programar para actuar como un temporizador tipo Perro Guardián (Watchdog Timer). El PCA puede generar una interrupción cuando se programa como temporizador ó como registro de comparación/captura.

OTROS PARIENTES DE LA FAMILIA 8051 Existen otros componentes que han tomado la base del microcontrolador 8051 y le han sumado alguna otra funcionalidad. Estos componentes híbridos se conocen como proliferaciones. Los siguientes componentes utilizan la arquitectura del 8051 así como un controlador de comunicaciones serie en el caso del 8X44, un controlador de comunicaciones serie de alta velocidad en el 8XC152 y un controlador de periféricos en el 8XC452. Sumario de la Familia 8051

Nombre

Versión sin ROM

Versión EPROM

Bytes en ROM

Bytes enRAM

Timers

8051

8031

8751

4K

128

2

80C51

80C31

87C51

4K

128

2

8052

8032

8752

8K

256

3

83C51FA

80C51FA

87C51FA

8K

256

3

83C51FB

80C51FB

87C51FB

16K

256

2

83C152

80C152

87C152

8K

256

2

83C452

80C452

87C452

8K

256

2

8044

8344

8744

4K

192

2

TEMPORIZADORES/CONTADORES

El 8051 tiene dos temporizadores/contadores de 16 bits, cada uno de ellos puede operar en cuatro modos, dándole un rango amplio de opciones para resolver muchos problemas diferentes. Los registros de funciones especiales TL0 y TH0 son los bytes alto y bajo del temporizador/contador 0. El temporizador 1 está formado por TL1 y TH1. Cada uno puede programarse para usar ciclos de máquina (temporizador) ó señales externas en su pin de puerto (contador), como fuente de conteo.

fosc= fxtal fosc= fxtal fxtal fxtal Xtal1 Xtal1 Xtal1 Xtal1 fxtal / 12 fxtal /
fosc= fxtal
fosc= fxtal
fxtal
fxtal
Xtal1
Xtal1
Xtal1
Xtal1
fxtal / 12
fxtal / 12
Oscilador
Oscilador
Oscilador
Oscilador
: :
12
12
Conteo inicial
Conteo inicial
: :
12
12
interno
interno
Conteo inicial
interno
interno
Xtal2
Xtal2
Xtal2
Xtal2
C/T=0
C/T=0
timer
timer
CONTADOR
CONTADOR
CONTADOR
CONTADOR
TF0
TF0
CLK
CLK
OVF
OVF
TF0
TF0
C/T=1
C/T=1
contador
contador
Tx
Tx
Tx
Tx
Genera
Genera
Genera
Genera
Interrupción
Interrupción
Interrupción
Interrupción
GATE
GATE
C
C
C
/ T
/ T
/ T
GATE
GATE
C
C
C
/ T
/ T
/ T
TRx
TRx
TRx
TRx
INTx
INTx
INTx
INTx

Un temporizador cuenta hacia arriba desde su valor inicial hasta que llega a un sobreflujo. Al ocurrir se pone a uno la bandera correspondiente (TF0 ó TF1), y el conteo continúa. TF0 y TF1 se encuentran en el registro TCON.

TF1), y el conteo continúa. TF0 y TF1 se encuentran en el registro TCON. Carlos E.
TF1), y el conteo continúa. TF0 y TF1 se encuentran en el registro TCON. Carlos E.

Carlos E. Canto Quintal M.C.

- 107 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 REGISTRO PARA CONTROL DE LOS TEMPORIZADORES (TCON) Un

REGISTRO PARA CONTROL DE LOS TEMPORIZADORES (TCON)

8051 REGISTRO PARA CONTROL DE LOS TEMPORIZADORES (TCON) Un temporizador puede ser escrito ó leído en

Un temporizador puede ser escrito ó leído en cualquier momento. El bit TR0 es el interruptor de funcionamiento para el temporizador 0: si se pone a 1 se enciende el temporizador 0. TR1 hace lo mismo para el temporizador 1. Estos bits se pueden accesar en forma independiente.

Modo 0. (Contador de 8 bits con Pre-escalamiento de 5 bits) Este modo es el de omisión después de inicializar el procesador (reset). El byte bajo utiliza solo cinco bits para ejecutar un pre-escalamiento ó división por 32 en la fuente de conteo. Cada uno de sus sobreflujos suma una cuenta al byte alto. Se pueden programar tanto el byte alto como el bajo. Al escribir los valores iniciales adecuados se puede ajustar el sobreflujo sobre un rango de 1 a 8 K (1 uS a 8.19 mS con un reloj de 12 Mhz).

rango de 1 a 8 K (1 uS a 8.19 mS con un reloj de 12

Interrupciones de los temporizadores La bandera de sobreflujo para cada temporizador sirve también como el flip-flop de petición de interrupción para ese temporizador. Si el bit de habilitación de interrupción es uno (Etx para el temporizador x) y EA=1, la ejecución del programa saltará a la localidad del vector de interrupción del temporizador correspondiente (por supuesto que al finalizar de ejecutar la instrucción actual, y si no se esta dando servicio a otra interrupción de igual o mayor prioridad). El hardware limpia la bandera Tfx, cuando salta hacia la rutina de servicio de interrupción del temporizador x. El uso de una interrupción (en lugar de consulta) para disparar algún proceso después de un retardo requerido permite que se manejen otros procesos durante el retardo.

Modo 1. (Contador de 16 bits) En este modo, TLx se pone en cascada con THx, dando un rango máximo de conteo de 64 K, ó 65 ms (a 12 Mhz). Si se escriben valores iniciales en THx y Tlx, la cuenta antes del sobreflujo puede ajustarse tan baja como una.

y Tlx, la cuenta antes del sobreflujo puede ajustarse tan baja como una. Carlos E. Canto
y Tlx, la cuenta antes del sobreflujo puede ajustarse tan baja como una. Carlos E. Canto

Carlos E. Canto Quintal M.C.

- 108 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 Se puede utilizar para el conteo ya sea ciclos de

Se puede utilizar para el conteo ya sea ciclos de máquina ó la entrada externa. La bandera de sobreflujo se puede utilizar para consultarse ó para generar una

se puede utilizar para consultarse ó para generar una interrupción. Modo 2. (Contador de 8 bits

interrupción.

Modo 2. (Contador de 8 bits con auto-recarga) En este modo el conteo se hace solo por Tlx (ocho bits). THx se carga por el programa con un valor que el hardware cargará en TLx cada vez que exista sobreflujo. La cuenta antes del sobreflujo se puede seleccionar entre uno y 256 (cargar 0 para obtener una cuenta de 256). Se puede utilizar para el conteo ya sea ciclos de máquina ó la entrada externa. La bandera de sobreflujo se puede utilizar para consultarse ó para generar una interrupción.

para consultarse ó para generar una interrupción. Modo 3: caso especial. Este es el único modo

Modo 3: caso especial.

Este es el único modo en el que los dos temporizadores se comportan de una forma diferente el uno del otro. Al colocar el temporizador 0 en modo 3 se divide en dos unidades de ocho bits: TL0 se convierte en un contador/temporizador de 8 bits y TH0 en un temporizador únicamente de 8 bits (no usa el pin externo de entrada). TL0 utiliza el bit de puesta en marcha, la bandera de sobreflujo y el pin externo de entrada del temporizador 0. TH0 utiliza el bit de puesta en marcha y la bandera de sobreflujo del temporizador 1 (incluyendo el vector de interrupción asociado). El temporizador 1 corre libremente si se encuentra en los modos 0, 1 ó 2 cuando el temporizador 0 se pone en modo 3. El temporizador 1 se desactiva al ponerlo en modo 3.

0 se pone en modo 3. El temporizador 1 se desactiva al ponerlo en modo 3.
0 se pone en modo 3. El temporizador 1 se desactiva al ponerlo en modo 3.

Carlos E. Canto Quintal M.C.

- 109 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 DISPARO DE LOS TEMPORIZADORES. Cada temporizador tiene un bit en
Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 DISPARO DE LOS TEMPORIZADORES. Cada temporizador tiene un bit en

DISPARO DE LOS TEMPORIZADORES.

Cada temporizador tiene un bit en el registro TMOD que es el control de disparo. Al inicio el bit es 0, el disparo se encuentra apagado, y los temporizadores se activa y desactivan como ya se ha descrito. Cuando el bit de disparo (gate) se pone a uno, el temporizador se activa solo cuando tanto su bit de puesta en marcha (Trx) y su correspondiente entrada externa de interrupción se encuentran en uno. Esto le permite al temporizador medir la duración de pulsos aplicados a su entrada (pin) de interrupción en términos de la fuente de conteo del temporizador. También, la misma entrada continuará disparando la interrupción externa correspondiente, si se encuentra habilitada. La rutina de servicio de interrupción puede leer (y poner a cero) la cuenta acumulada mientras la señal permaneció en alto. El registro TMOD selecciona las opciones.

TMOD es el registro de selección de MODo de los temporizadores; es un SFR que se encuentra en la dirección 89H. Su cuatro bits más significativos seleccionan las opciones para el temporizador 1, y los cuatro bits más bajos hacen lo mismo para el temporizador 0. Este registro no se puede accesar por bits. Los bits 0 y 1 de cada nibble seleccionan el modo (0, 1 ,2 ó 3) para cada temporizador. El bit 2 selecciona si el temporizador cuenta ciclos de máquina (bit=0) ó cuenta pulsos externos (bit=1). El bit 3 es el control de disparo para el temporizador: un 1 activa el modo de disparo. En la función de “contador”, el registro TLx se incrementa en respuesta a una transición de 1 a 0 en el pin externo de entrada Tx. La razón máxima de conteo es 1/24 de la frecuencia del cristal.

TMOD

máxima de conteo es 1/24 de la frecuencia del cristal. TMOD PUERTO SERIE Carlos E. Canto

PUERTO SERIE

máxima de conteo es 1/24 de la frecuencia del cristal. TMOD PUERTO SERIE Carlos E. Canto
máxima de conteo es 1/24 de la frecuencia del cristal. TMOD PUERTO SERIE Carlos E. Canto

Carlos E. Canto Quintal M.C.

- 110 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 El puerto serial es un puerto “FULL DUPLEX” , lo

El puerto serial es un puerto “FULL DUPLEX” , lo cual significa que puede transmitir y recibir datos simultáneamente . El receptor contiene un almacén “Buffer”, que le permite comenzar a recibir un segundo dato sin necesidad de que el primero haya sido completamente leído del registro Buffer. Sin embargo si el primer byte permanece sin ser leído hasta el final de la recepción del segundo dato, éste se perderá. Tanto el dato recibido como el transmitido son depositados en el registro SBUF del SFR (espacio de funciones especiales).

REGISTRO DE CONTROL DEL PUERTO SERIAL SCON

El puerto Serie puede ser operado en 4 modos diferentes que son especificados con los bits SM0 y SM1 del registro de Control del Puerto Serie (SCON)

SM0 y SM1 del registro de Control del Puerto Serie (SCON) SMO SCON.7 Especifica el modo

SMO

SCON.7

Especifica el modo de control del puerto serie.

SM1

SCON.6

Especifica el modo de control del puerto serie.

SM2

SCON.5

Habilita la comunicación del tipo "multiprocesador"

REN

SCON.4

utilizado en los modos 2 y 3. En estos modos, si SM2 = 1, RI no es activado si el noveno dato recibido (RB8) es 0. En modo 1, RI no es activado si no se recibe un bit de stop. En el modo 0, SM2 será 0. Establece la recepción serie, cuando REN = 0 se desactiva la recepción ( por software ).

TB8

SCON.3

Almacena el noveno bit que será transmitido en los

RB8

SCON.2

modos 2 y 3 . Es el noveno bit que fue recibido en los modos 2 y 3 .

TI

SCON.1

En el modo 1, si SM2 = 0, RB8 es el bit de stop recibido. En el modo 0 RB8 no es usado. Bandera de interrupción de la transmisión. Activada por

RI

SCON.0

hardware al final del octavo bit en el modo 0, o al principio del bit de stop en los otros modos. Debe ser limpiado por software. Bandera de interrupción de la recepción. Activada por hardware al final del octavo bit en el modo 0, o al medio tiempo de trasmitido el bit de stop en los otros modos.Debe ser limpiado por software.

de stop en los otros modos.Debe ser limpiado por software. MODOS DE OPERACIÓN DEL PUERTO SERIE

MODOS DE OPERACIÓN DEL PUERTO SERIE

El UART del 8051 puede ser operado en un modo síncrono y 3 modos asíncronos

EL MODO 0. Los datos seriales que entran o salen a través de RxD o TxD respectivamente, lo hacen mediante 8 corrimientos, con una frecuencia de transmisión (Baud Rate) fija

8 corrimientos, con una frecuencia de transmisión (Baud Rate) fija Carlos E. Canto Quintal M.C. -
8 corrimientos, con una frecuencia de transmisión (Baud Rate) fija Carlos E. Canto Quintal M.C. -

Carlos E. Canto Quintal M.C.

- 111 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 de de 1/12 de la frecuencia del oscilador. La figura

de de 1/12 de la frecuencia del oscilador. La figura Modo 0.

muestra el Puerto Serie en

La transmisión es iniciada por cualquier instrucción que utilice SBUF como registro de “Destino”, v.gr. MOV SBUF,A .

Para que la recepción pueda ser iniciada se debe cumplir

RI=0.

la condición REN=1 y

Bus interno de datos Bus interno de datos Bus interno de datos Bus interno de
Bus interno de datos
Bus interno de datos
Bus interno de datos
Bus interno de datos
“1”
“1”
RXD
RXD
RXD
RXD
escritura
escritura
DATO TRANSMITIDO
DATO TRANSMITIDO
al SBUF
al SBUF
Buffer serial
Buffer serial
D D
Q Q
Buffer serial
Buffer serial
SBUF
SBUF
clk
clk
SBUF
SBUF
MSB
MSB
LSB
LSB
estados S6
estados S6
Detector de cero
Detector de cero
Detector de cero
Detector de cero
de los
de los
ciclos de
ciclos de
máquina
máquina
TXD
TXD
TXD
TXD
start
start
TI
TI
shift
shift
Control TX
Control TX
Control TX
Control TX
reloj
reloj
enviar
enviar
Shift clk
Shift clk
RELOJ DE SINCRONÍA
RELOJ DE SINCRONÍA
Señal de interrupción
Señal de interrupción
Señal de interrupción
Señal de interrupción
CON RECEPTOR
CON RECEPTOR
del puerto serial
del puerto serial
del puerto serial
del puerto serial
RI
RI
Control RX
Control RX
Control RX
Control RX
recibir
recibir

La recepción es iniciada por la detección de un transiente negativo (de 1 a 0) en la línea RxD, la cual es muestreada a una frecuencia de 16 veces la frecuencia de “Baud Rate” que ha sido establecida. Cuando un transiente es detectado el divisor entre 16 es inmediatamente reestablecido y 1FFH es escrito en la entrada del registro de corrimiento.

OPERACIÓN SERIE ASÍNCRONA

Los modos de comunicación serie del 8051 pensados para comunicación entre procesos ó entre sistemas son asíncronos. Esto significa que el dispositivo transmisor envía datos solos, sin una señal de sincronización. Tramas de datos:

El puerto serie del 8051 puede utilizar tramas de datos que contengan ya sea 8 ó 9 bits de datos. El UART siempre le suma un bit de inicio, que es bajo, y un bit de paro, que es alto. El UART pone la línea de salida serial a un alto siempre que no

LíneaLínea ociosaociosa 88 bitsbits dede datosdatos 0 b0 b1 b2 b3 b4 b5 b6 b7
LíneaLínea ociosaociosa
88 bitsbits dede datosdatos
0
b0
b1
b2
b3
b4
b5
b6
b7
111
Bit de parada
BitBit dede arranquearranque

se está enviando ninguna trama.

El programa debe iniciar la transmisión de cada trama que se vaya a enviar (por ende controla el tiempo de retardo entre las tramas enviadas). Pero el UART maneja la transmisión bit a bit (y la recepción), sin involucrar a la CPU.

la transmisión bit a bit (y la recepción), sin involucrar a la CPU. Carlos E. Canto
la transmisión bit a bit (y la recepción), sin involucrar a la CPU. Carlos E. Canto

Carlos E. Canto Quintal M.C.

- 112 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 El registro de corrimientos de transmisión recibe una “onda

El registro de corrimientos de transmisión recibe una “onda cuadrada” del generador de baudaje. Cada bit de dato en una trama (incluyendo los bits de inicio y paro) se aplica al pin TXD por 16 de estos pulsos. El circuito de recepción (si está habilitado) espera una transición de bajada que señale el comienzo de un bit de inicio y con esto una nueva trama. Utiliza los pulsos de su generador de baudaje para determinar cual debería ser el centro de cada bit esperado. Toma tres muestras alrededor de este punto, y recorre este valor, basándose en dos de tres de dichas muestras.

este valor, basándose en dos de tres de dichas muestras. SBUF: El registro (buffer) del puerto

SBUF: El registro (buffer) del puerto serie.

SBUF=fuente copia el dato de fuente al registro de corrimiento de transmisión de datos y, también, es el comando de inicio de transmisión; el registro de transmisión es de solo escritura. destino =SBUF lee el dato del registro de recepción; el cual es de solo lectura.

Los dos registros de datos del puerto serie, uno para transmitir y otro para recibir, tienen el mismo nombre, SBUF, y la misma dirección, 99H en el espacio de SFR. Cual de ellos se accesa, se especifica por el hecho de que si se lee ó se escribe. Los circuitos de transmisión y recepción son independientes, así que la transmisión y recepción pueden proceder en forma simultánea (full duplex) mientras que el CPU maneja un tercer proceso. El modo del puerto serie y otras opciones se seleccionan al ajustar bits en el byte de control, el cual se denomina SCON (98H en el espacio SFR). Que también contiene al bit que habilita la recepción serie de datos.

MODOS ASÍNCRONOS

al bit que habilita la recepción serie de datos. MODOS ASÍNCRONOS Carlos E. Canto Quintal M.C.
al bit que habilita la recepción serie de datos. MODOS ASÍNCRONOS Carlos E. Canto Quintal M.C.

Carlos E. Canto Quintal M.C.

- 113 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 El 8051 provee tres modos serie de comunicación asíncrona para

El 8051 provee tres modos serie de comunicación asíncrona para interfaz con otros procesadores ó sistemas. En los tres modos, el circuito de transmisión se encarga de generar un bit de inicio y un bit de paro.

Modo 1: Dato de 8 bits con velocidad variable.

Se transmiten por la línea (TxD) o se reciben por línea (RxD) 10 bits. Un bit de inicio (Start bit de nivel 0 lógico). En recepción el bit de Fin (Stop), se almacena en RB8 de SCON, si SM2=0. El Baud Rate (frecuencia de transmisión o recepción) es variable. Se utiliza el temporizador 1 como parte del generador de baudaje, así que programándolo con diferentes valores de recarga, el baud-rate puede ajustarse de 122 a 62500 bits por seg (bps), con un cristal de 12 Mhz. (Esto asume usar el temporizador 1 en modo 2, para autorecarga). Se puede duplicar el baud-rate al poner en uno el bit SMOD del registro PCON. El uso del octavo bit (así como de los otros siete) se controla por el programa para ajustarse a la aplicación. En algunos protocolos se utiliza para el bit de paridad, algunas veces como un segundo bit de paro, etc.

Modo 2: Dato de 9 bits con velocidad fija. 11 bits son transmitidos (TxD) o recibidos (RxD), un bit de inicio (Start bit de nivel 0 lógico), 8 bits de datos, un noveno bit de datos programable, en la transmisión es TB8, en la recepción es RB8 de SCON, y un bit de Fin (Stop bit). Su Baud Rate es de 1/32 o 1/64 de la frecuencia de oscilación. Es igual al modo 3, a excepción de que no se utiliza el temporizador 1 como parte del generador de baud-rate. Así el temporizador 1 puede utilizarse en otras cosas a expensas de un baud-rate fijo, lo cual no es un problema para la comunicación entre varios 8051s. En los modos 2 y 3 el noveno bit se puede utilizar para distinguir entre una trama de datos y una de dirección en una comunicación multiprocesadores.

Modo 3: Dato de 9 bits con velocidad variable. 11 bits son transmisión (TxD) o recibidos (RxD), en la misma forma que el modo 2, sólo que aquí la frecuencia de transmisión/recepción (Baud Rate) es variable. Se utiliza el Timer 1 para generar el Baud Rate. En los 4 modos, la transmisión es inicializada cuando SBUF es utilizado como registro destino. La recepción en el modo 0 comienza cuando RI=0, en los otros modos, cuando se detecta el bit de inicio (START) si REN=1.

Trabaja como el modo 1, excepto que en lugar de ocho, se transmiten o reciben nueve bits de datos. Los ocho bits bajos van o vienen del SBUF, pero el noveno tiene dos espacios en SCON: TB8 para la transmisión y RB8 para la recepción. Este último bit puede utilizarse para ajustarse a protocolos especiales. Por ejemplo el TTY estándar requiere de dos bits de paro, un bit de paridad y siete bits de datos.

Programación del puerto serie

Para programar el puerto serie, se debe seleccionar el modo y baud-rate apropiado para la aplicación, calcular el valor de recarga necesitado para el temporizador y finalmente programar el SCON y temporizador 1. Después de escoger entre un esquema de encuesta contínua (sondeo) ó manjeo de interrupción, se escribe el programa para el proceso de transmisión/recepción.

Generación del baud-rate.

MODO

FORMULA

CON CRISTAL DE 12 MHz

0

Baud rate=Osc/12

1 Mbps

FORMULA CON CRISTAL DE 12 MHz 0 Baud rate=Osc/12 1 Mbps Carlos E. Canto Quintal M.C.
FORMULA CON CRISTAL DE 12 MHz 0 Baud rate=Osc/12 1 Mbps Carlos E. Canto Quintal M.C.

Carlos E. Canto Quintal M.C.

- 114 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 1, 3 Baud rate=Osc/( 12*2*16*(256-TH1) ) 31250/(256-TH1) bps

1, 3

Baud rate=Osc/( 12*2*16*(256-TH1) ) 31250/(256-TH1) bps

2

Baud rate= Osc*2SMOD/64

187.5 Kbps

Para los modos 1, 2 y 3 el baud-rate se duplica si el bit siete de PCON (SMOD) se pone a uno.

SCON: El control del puerto serie.

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

SM0, SM1: seleccionan el modo de operación. SM2: Deshabilita la recepción de tramas para las cuales el bit 8 es cero. REN: Habilita y deshabilita la recepción de datos. TB8: Determina el estado del noveno bit transmitido en modo UART de 9 bits. RB8: Indica el estado del noveno bit recibido. TI: Se pone a uno, por el circuito, cuando se esta transmitiendo. RI: Se pone a uno, por el circuito, cuando se ha recibido un byte. Debe limpiarse por software.

INTERRUPCIONES

La estructura de interrupciones del 8051 provee una herramienta poderosa que permite al CPU el manejar un número de procesos diferentes “concurrentemente”, siempre y cuando cada proceso necesite solo una fracción del tiempo del CPU. Concurrentemente significa manejar cada proceso con un tiempo de respuesta lo suficientemente rápido, de tal forma que el proceso funcione tan bien como si tuviera un procesador dedicado para él. Esto es, el trabajo para diferentes procesos se realiza en realidad

secuencialmente pero parece serlo en paralelo. El 8051 provee interrupciones para los periféricos y también dos interrupciones de fuentes externas.

• La función de las Interrupciones de Hardware

• Estructura de Interrupciones del 8051

• Ejemplos de Utilización de Interrupciones

• Latencia de una Interrupción

• Opciones para las Interrupciones Externas

La función de las Interrupciones de Hardware

Esta sección muestra un ejemplo de como una interrupción puede ahorrar tiempo del CPU, y permitir lo que parece ser “procesamiento paralelo”. Se discute el sistema general para las interrupciones de hardware utilizado por los microprocesadores y lo compara con el mecanismo de una subrutina.

ENTRADA/SALIDA MANEJADA POR INTERRUPCIONES

Muchos dispositivos de Entrada/Salida (impresoras, modems, etc) requieren solo de una pequeña fracción de tiempo de CPU para servicio. Si, por ejemplo, se inicializa un dispositivo como una impresora, que requiere miles de ciclos de máquina para imprimir cada caracter, podría enviar una señal que indique cuando está lista para recibir otro caracter. El 8051 podría “consultar” (polling) el pin de un puerto que se encontraría conectado a la señal de “listo” de la impresora, pero de esta forma el 8051 estaría gastando miles de instrucciones entre el envío de cada caracter. Si la línea de “listo” (ready) se conecta a una entrada de interrupción externa, el 8051 puede ocuparse de otros procesos hasta que la impresora se encuentre lista para otro caracter. Entonces, se interrumpe al 8051, la ejecución salta a la rutina

caracter. Entonces, se interrumpe al 8051, la ejecución salta a la rutina Carlos E. Canto Quintal
caracter. Entonces, se interrumpe al 8051, la ejecución salta a la rutina Carlos E. Canto Quintal

Carlos E. Canto Quintal M.C.

- 115 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 de servicio de interrupción (ISR) apropiada, la cual envía el

de servicio de interrupción (ISR) apropiada, la cual envía el siguiente caracter y la ejecución regresa a cualquiera que sea el proceso que fue interrumpido. Se le da servicio a la impresora (casi exactamente) tan rápido como si el CPU solo estuviera dedicado a ella; pero otros procesos también se están ejecutando concurrentemente.

ESTRUCTURA DE INTERRUPCIONES DEL 8051 Fuentes de Interrupción y Vectores. Para cada fuente de interrupción el hardware tiene una dirección de código en particular (vector de interrupción) que carga en el Contador de Programa (PC) cuando se actúa en dicha interrupción.

de Programa (PC) cuando se actúa en dicha interrupción. La primera instrucción de la ISR para

La primera instrucción de la ISR para esa interrupción debe estar en la localidad de ese vector. Ya que solo se tienen 8 bytes entre los vectores, con frecuencia se utiliza una instrucción JMP para ir a otra área de memoria de código. Las siguientes sentencias asumen que todas las interrupciones se encuentran habilitadas.

* Interrupción externa 0 (función alternativa de entrada para la terminal P3.2, tambien llamada INT0) causa el salto de ejecución hacia la 03H.

* La interrupción del Temporizador 0 causa el salto de ejecución a la 0BH.

* Interrupción externa 1 (función alternativa de entrada para la terminal P3.3, también llamada INT1) causa el salto de ejecución hacia la 1BH.

* La interrupción del Temporizador 1 causa el salto de ejecución a la 1BH.

* La interrupción del puerto serie (entrada ó salida) causa el salto de ejecución a la 23H

* La interrupción del Temporizador 2 causa el salto de ejecución a la 2BH, solo disponible en el 8052 y 80C51FA.

* La interrupción del Arreglo Programable de Contadores causa el salto de

ejecución a la 33H; solo disponible en el 80C51FA.

* La reinicialización del micro (Reset) causa un salto en la ejecución a la 00, así como la inicialización de la mayoría de los SFR. Se puede pensar como una interrupción especial externa con vector en 0, y el programa completo como una ISR.

Secuencia de Procesamiento de una Interrupción Cuando ocurre una petición de interrupción, siempre debe terminar la instrucción que actualmente se este ejecutando antes de que el hardware pueda saltar hacia la ISR.

El hardware procede con las siguientes pruebas antes de que termine la instrucción:

* Si la interrupción no se encuentra habilitada individualmente ( por su bit en el

SFR IE), se ignora la petición de interrupción y la ejecución se continúa en forma secuencial.

de interrupción y la ejecución se continúa en forma secuencial. Carlos E. Canto Quintal M.C. -
de interrupción y la ejecución se continúa en forma secuencial. Carlos E. Canto Quintal M.C. -

Carlos E. Canto Quintal M.C.

- 116 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 * Si las interrupciones no están habilitadas globalmente (con

* Si las interrupciones no están habilitadas globalmente (con el bit EA en el SFR IE), se ignora la petición de interrupción y la ejecución se continúa en forma secuencial.

* Cada interrupción se puede programar para tener ya sea prioridad alta (1) ó

baja (0, por omisión). Si la nueva interrupción no es de más alta prioridad, que cualquiera que se esté ejecutando, se ignora hasta que se complete la interrupción

actual.

* Si la nueva interrupción pasa todas las pruebas de arriba, el hardware coloca la

dirección de regreso en la pila (Stack), carga el PC con el vector de interrupción correspondiente e inicia la ejecución de su ISR. Registros de Prioridad de Interrupciones Existe un registro de hardware para cada prioridad (alta ó baja), cuya salida única se pone a uno cuando una interrupción de esa prioridad se está ejecutando. Esto previene que otra interrupción de la misma prioridad, ó menor, interrumpa a la ISR que se encuentre ejecutando actualmente. Una interrupción de alta prioridad se puede ejecutar dentro de una ISR de baja prioridad. La instrucción RETI realiza un RET y también limpia el registro de más alta prioridad que actualmente se encuentre activo. Al colocar RETI al final de cada ISR normalmente es suficiente para hacer que trabaje el sistema de prioridad tal y como se especificó.

Registro de Prioridades de las Interrupciones (IP: Interrups Priority Register)

de las Interrupciones (IP: Interrups Priority Register) Bits de Control de Interrupciones El SFR de Control

Bits de Control de Interrupciones El SFR de Control de Habilitación de Interrupciones (IE, 0A8H) contiene el bit de Habilitación Global (EA), que se debe activar para que se permita cualquier interrupción. También se tienen los bits de habilitación individual para cada una de las cinco interrupciones en el 8051 (seis en el 8052 y siete en el 80C51FA). Para que cualquier interrupción pueda ser permitida, su bit individual de habilitación y el de EA deben estar activos. El registro IE se puede accesar por byte ó por bit.

Registro habilitador de las Interrupciones (IE: Interrupts Enable Register)

de las Interrupc iones (IE: Interrupts Enable Register) El SFR de Control de Prioridad de Interrupciones

El SFR de Control de Prioridad de Interrupciones (IP, 0B8H) contiene el bit de selección de prioridad para cada interrupción individual. Un cero selecciona prioridad baja y un uno prioridad alta. Se puede accesar por byte ó por bit. Si dos ó más interrupciones de la misma prioridad hacen petición al mismo tiempo, y estan habilitadas; una secuencia de muestreo interna predefinida determina a cual se le da el servicio primero. Dicha secuencia de prioridad es la siguiente, de la más alta a más baja:

Dicha secuencia de prioridad es la siguiente, de la más alta a más baja: Carlos E.
Dicha secuencia de prioridad es la siguiente, de la más alta a más baja: Carlos E.

Carlos E. Canto Quintal M.C.

- 117 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 Externa 0, Temporizador 0, Externa 1, Temporizador 1, (PCA),

Externa 0, Temporizador 0, Externa 1, Temporizador 1, (PCA), Serie, T2

OPCIONES PARA LA INTERRUPCIÓN EXTERNA Las dos interrupciones externas se pueden programar en forma separada para que sean sensibles al nivel ó al cambio. Cada tipo tiene sus beneficios; cual es el mejor depende de las necesidades de la aplicación.

Sensado por nivel:

Una interrupción externa que se programa con este tipo, envía una petición al circuito principal de interrupciones cuando (y mientras) en su terminal se lea un 0 lógico. La ISR se debe de asegurar que el dispositivo que realiza la petición ponga en 1 la terminal (ó debe deshabilitar la interrupción) para que evite el que se reentre a la ISR justo después de la instrucción RETI. El sensado por nivel facilita el manejo de fuentes múltiples con una sola terminal de interrupción, colocando en las terminales de otro puerto cada fuente diferente. La ISR consultará dichas terminales del puerto para identificar la fuente de interrupción. Con este método la petición de interrupción puede pasar desapercibida (olvidada) por el 8051 si la fuente se desactiva cuando no se encuentra disponible. Esto algunas veces es bueno.

Sensado por Cambio:

Una interrupción externa programada con este tipo se consulta una vez por cada ciclo de máquina. Si con muestras sucesivas se nota que ha ocurrido una transición de bajada (cambio de uno a cero), se activa una bandera (IE0 ó IE1). Esta bandera señala al circuito principal de interrupciones hasta que el hardware llama a la ISR requerida y al mismo tiempo limpia la bandera. Este modo "recuerda" una petición de interrupción, si es que la señal externa regresa a uno antes de que se le de servicio a la interrupción. También, si la señal permanece en cero (activa) después de que la ISR ha terminado, no ocasionará otra interrupción no deseada.

Bits de Banderas y Control. La parte baja del SFR Control del Temporizador (TCON, 88H) se dedica para las interrupciones externas. Los bits IT0 e IT1 controlan el tipo de activación para la INT0 e INT1 respectivamente. Un cero (por omisión) selecciona sensado por nivel, un uno sensado por cambio. Los bits IE0, IE1 son las banderas para INT0 e INT1. Mientras IEn este activada, el circuito principal de interrupciones estará recibiendo una petición de salto a la ISR de la INTn.

estará recibiendo una petición de salto a la ISR de la INTn. Carlos E. Canto Quintal
estará recibiendo una petición de salto a la ISR de la INTn. Carlos E. Canto Quintal
estará recibiendo una petición de salto a la ISR de la INTn. Carlos E. Canto Quintal

Carlos E. Canto Quintal M.C.

- 118 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 Almacenado temporal y restablecimiento de datos. Cuando un

Almacenado temporal y restablecimiento de datos. Cuando un programa llama a una subrutina, típicamente tiene datos en algunos registros y/o en los SFR que necesita utilizar después de que la subrutina haga su trabajo. Si la subrutina también va a utilizar algunos de ellos, ya sea el programa que llama o la subrutina debe almacenar y restablecer los valores originales. Para ello se puede utilizar el stack mediante las instrucciones PUSH y POP descritas en seguida:

PUSH dirección directa

SP=SP+1

el byte contenido en la dirección directa se escribe en el stack.

POP dirección directa

el contenido de la parte alta del stack se escribe a la dirección directa

SP=SP-1

Conmutación de bancos. Los programas pueden utilizar el direccionamiento por registro de una manera eficiente conmutando entre cuatro bancos separados de registros para uso del programa principal y hasta tres subrutinas.

Colocar las variables utilizadas con mayor frecuencia en los registros para ahorrarse un byte siempre que el programa las accesa

Los cuatro bancos de ocho bytes le permiten a las subrutinas el usar registros para sus variables de uso frecuente. Se almacenan y restablecen los registros del programa que llama, conmutando entre bancos.

El banco de registros que se encuentra activo se selecciona mediante dos bits (RS0, RS1) del registro PSW. El banco seleccionado por omisión es el banco 0.

CY CY CY CY AC AC AC AC F0 F0 F0 F0 RS1 RS1 RS1
CY
CY
CY
CY
AC
AC
AC
AC
F0
F0
F0
F0
RS1
RS1
RS1
RS1
RS0
RS0
RS0
RS0
OV
OV
OV
OV
P
P
P
CY
CY
CY
CY
AC
AC
AC
AC
F0
F0
F0
F0
RS1
RS1
RS1
RS1
RS0
RS0
RS0
RS0
OV
OV
OV
OV
P P
P
P
P
a
a a
RS0 RS0 RS0 RS0 OV OV OV OV P P P P P a a a
RS0 RS0 RS0 RS0 OV OV OV OV P P P P P a a a

PSW.0

PSW.0

PSW.0

PSW.7

PSW.7

Paridad del acumulador

Paridad del acumulador

Paridad del acumulador

Bandera de acarreo

Bandera de acarreo

activada por Hardware

activada por Hardware

activada por Hardware

recibe el acarreo

recibe el acarreo

1 si contiene un

1 si contiene un

1 si contiene un

producido por los bits 7 en

producido por los bits 7 en

número impar de 1´s,

número impar de 1´s,

número impar de 1´s,

las operaciones de la ALU

las operaciones de la ALU

sino se pone a 0

sino se pone a 0

sino se pone a 0

PSW.6

PSW.6

Bandera de acarreo

Bandera de acarreo

PSW.1

PSW.1

PSW.1

auxiliar recibe el acarreo

auxiliar recibe el acarreo

Bandera Definida por el

Bandera Definida por el

Bandera Definida por el

producido por los bits 3 en

producido por los bits 3 en

Usuario

Usuario

Usuario

la adición de operandos

la adición de operandos

PSW.2

PSW.2

PSW.2

PSW.5

PSW.5

Bandera de Sobreflujo,

Bandera de Sobreflujo,

Bandera de Sobreflujo,

Bandera de Status de

Bandera de Status de

se activa con

se activa con

se activa con

propósito General

propósito General

operaciones aritméticas

operaciones aritméticas

operaciones aritméticas

PSW.4

PSW.4

PSW.3

PSW.3

PSW.3

Bit1 selector de Banco

Bit1 selector de Banco

Bit 0 selector de Banco

Bit 0 selector de Banco

Bit 0 selector de Banco

de Registro

de Registro

de Registro

de Registro

de Registro

Banco

RS1

RS0

Localidades

0

0

0

0-7

1

0 1

 

8-FH

2

1 0

 

10-17H

3

1

1

18-1FH

MATERIAL Y EQUIPO UTILIZADO:

CI

Atmel 89C52

CI

Max232 (o Dallas DS275)

Y EQUIPO UTILIZADO: CI Atmel 89C52 CI Max232 (o Dallas DS275) Carlos E. Canto Quintal M.C.
Y EQUIPO UTILIZADO: CI Atmel 89C52 CI Max232 (o Dallas DS275) Carlos E. Canto Quintal M.C.

Carlos E. Canto Quintal M.C.

- 119 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 Regulador 7805 Cristal piezo-eléctrico de 11.0592 Mhz 1

Regulador 7805 Cristal piezo-eléctrico de 11.0592 Mhz

1

Condensador de 470 µF

6

condensadores de 1µF

Resistencia de 8.2 KConector DB-9 Plug del eliminador de baterias usado Tarjeta de PCB

1

74LS244

8

LED´s

8

resistencias de 330

4

conectores de 8 bits

Push-button NA Cautín Soldadura Osciloscopio o analizador lógico

CORRELACIÓN CON TEMAS DEL PROGRAMA VIGENTE:

Con esta práctica se cubre algunos de los aspectos de la unidad III:

Microcntroladores

METODOLOGÍA (DESARROLLO DE LA PRÁCTICA):

I.-Para conocer a fondo la arquitectura, la programación y la aplicación los microcontroladores de la familia 8051, el alumno diseñará e implementará en circuito impreso (PCB) un sistema basado en el microcontrolador de Atmel 89C52. Para el diseño de la tarjeta impresa, se recomienda una distribución como la mostrada en la figura. Incluya un regulador 7805 para que pueda ser alimentado con un eliminador de baterías de 9 ó 12 v. También incluya un MAX232 para poder conectar su tarjeta a otro equipo con el estándar RS232 como por ejemplo una PC

Dc Dc in in Plug Plug Reset Reset 7805 78057805 MAX232 MAX232MAX232 P0 P0 P1
Dc
Dc
in
in
Plug
Plug
Reset
Reset
7805
78057805
MAX232
MAX232MAX232
P0
P0
P1
P1
89C52
89C52
89C52
89C52
P3
P3
P2
P2
Cristal de
Cristal de
11.0592
11.0592
Mhz
Mhz
DB-9Conector
DB-9DB-9ConectorConector

II.-Ya que la tarjeta esté ensamblada, usando un analizador lógico o un osciloscopio el alumno, observará la señal obtenida en la terminal ALE del del AT89C52. Si la frecuencia de la señal obtenida es del orden de 2 MHZ, entonces la tarjeta funciona correctamente.

III.-Se le conecta al puerto P1 un buffer octal 3-state 74LS244 para poder manejar un LED con cada bit del puerto.

IV.-Se implementará un programa y se cargará en la memoria Flash del microcontrolador (usando un Programador ) que debe realizar los siguiente:

microcontrolador (usando un Programador ) que debe realizar los siguiente: Carlos E. Canto Quintal M.C. -
microcontrolador (usando un Programador ) que debe realizar los siguiente: Carlos E. Canto Quintal M.C. -

Carlos E. Canto Quintal M.C.

- 120 -

Laboratorio de Microprocesadores

El MICROCONTROLADOR 8051

Laboratorio de Microprocesadores El MICROCONTROLADOR 8051 Al momento de resetear la tarjeta, se prende el LED

Al momento de resetear la tarjeta, se prende el LED en el bit menos significativo, un tiempo después se apaga y prende el siguiente y así sucesivamente, produciendo así corrimiento de encendido y apagado de LED´s Una vez que el funcionamiento del sistema sea satisfactorio, el alumno contará con una tarjeta para realizar las dos prácticas siguientes, eliminando así los riesgos inherentes al implementar el sistema en protoboard.

SUGERENCIA DIDÁCTICA:

I.- investigue acerca de los miembros de la familia de microcontroladores 8051 tanto de Intel como de otros fabricantes.

II.- Implemente y cargue otros programas de prueba al sistema implementado III.- Estudie la posibilidad de implementar su propio programador del Microcontrolador ATMEL 89C52 y toda la parentela.

IV.-Investigue y compare las ventajas de los Microcontroladores Programables en Sistema (ISP: In System Programming) como el AT89S52 y otros.

REPORTE:

I.- incluya en su reporte el layout de su tarjeta II.-incluya un resumen sobre su investigación realizada III.-sus comentarios y conclusiones

BIBLIOGRAFÍA:

http://www.8052.com

Manual del Atmel 89C52

Manual del Max2322

8 bit Embedded microcontrollers Intel

TTL Data Book TI

Max2322 • 8 bit Embedded microcontrollers Intel • TTL Data Book TI Carlos E. Canto Quintal
Max2322 • 8 bit Embedded microcontrollers Intel • TTL Data Book TI Carlos E. Canto Quintal

Carlos E. Canto Quintal M.C.

- 121 -