Vous êtes sur la page 1sur 87

Microprocesadores y Microcontroladores. Unidad I

Microprocesadores y Microcontroladores . Unidad I Contenido: 1 Portada. 2 Temario. 3 Manual del Curso. 4

Contenido:

1 Portada.

2 Temario.

3 Manual del Curso.

4 Anexos

Objetivos del Curso

El estudiante adquirirá los conocimentos básicos acerca de los Microprocesadores y Microcontroladores.

Realizar Primeras prácticas de control y prueba.

Practicas

Práctica 1 “Operaciones de lectura y escritura en los puertos del Microprocesador.”

Práctica 2 “Operaciones de lectura y escritura en los puertos del 8255.”

Practica 3 “Lectura por un puerto y contenido de la lectura por el LCD.”

Practica 4 “Adquisición de datos mediante ADC 0804”

Practica 5 “Lectura en LCD de un medidor de voltajes.”

Practica 6 “Control de Interrupciones”

Practica 7 “Control del Teclado.”

Practica 8 “Probador de Timer Counter”

Practica 9 “Medidor de RPM.”

Proyecto Final Control de un proceso Industrial.

Presentación del software y equipo para el desarrollo de aplicaciones

Introducción

El Macroensamblador:

Operaciones del editor.

Operaciones de ensamblado.

Operaciones de Encadenado.

Operaciones de Simulación

Ejecución de programas en el Microprocesador.

M.C. Eduardo Sánchez Arellano.

Indice General Unidad 1 Microprocesadores

1.1

Introducción a los Microprocesadores

4

1.1.1 Definición del Microprocesador

4

1.1.2 Diferencia entre el Microprocesador y Microcontrolador

5

1.1.3 Tipo de Microprocesador según su velocidad y ancho de

6

1.2

Arquitectura de los

7

1.2.1 A través de diagrama a bloques

7

1.2.2 Arquitectura externa del microprocesador (terminales)

14

1.3 Conexión del Microprocesador con Dispositivos

1.3.1 Memoria

17

18

1.3.1.1 Organización de la Memoria en el Microcontrolador 89C51

18

1.3.1.2 Memoria de Programa Eprom ó Flash

20

1.3.1.3 Memoria de Datos (Ram)

24

1.3.1.4 Área de Direccionamiento Directo é

24

1.3.1.5 Área de Registros ó Funciones

25

1.3.2 Perifericos

28

1.3.2.1 Interfase Periferica Programable PPI 8255

28

Funcionamiento y Control del Displey de Cristal Líquido (LCD)

38

1.3.2.2

Interrupciones (Intel)

45

Tipos de

45

Niveles de Prioridad

46

1.4 Lenguaje Ensamblador del Microprocesador

49

1.4.3

Modos de Direccionamiento

50

1.4.5

Conjunto de Instrucciones

56

1.5

1.4.5.1 Instrucciones de Transferencia de

57

1.4.5.2 Instrucciones Aritmeticas

64

1.4.5.3 Instrucciones Logicas

66

1.4.5.4 Instrucciones Booleanas

68

1.4.5.5 Instrucciones de Salto

71

1.4.5.6 <<SET>> de Instrucciones Familia –51

76

Temporizadores y Contadores (Intel)

83

1.5.1 introducion:

83

1.5.2 Timer 0 (T0) Y Timer 1 (T1)

83

M.C. Eduardo Sánchez Arellano.

1.1 Introducción a los Microprocesadores

1.1.1 Definición del Microprocesador.

Antes de comenzar a analizar los microprocesadores modernos, se debe primero entender qué fue lo que paso con estos dispositivos en los primeros años.

La primera computadora digital electrónica fue construida por un equipo dirigido por los ingenieros John Mauchly y John Eckert, de la universidad de Pennsylvania, en 1946. Esta máquina electrónica fue llamada ENIAC (Electronic Numerical Integrator and Computer), tenía más de 18000 bulbos y consumía 200 Kw.

Tiempo después, cuando se integró a este equipo el Ing. y matemático Húngaro, naturalizado norteamericano, John Von Neumann fue diseñada una nueva computadora llamada EDVAC (Electronic Discrete Variable Automatic Computer). Las ideas de Von Neumann resultaron tan fundamentales para su desarrollo, que es considerado el padre de las computadoras.

Estas ideas consistieron en permitir que en la memoria coexistieran datos con instrucciones para que la computadora pudiera ser programada por medio de software y no por medio de hardware. Alrededor de este concepto gira toda la evolución de la industria y la ciencia de la computación.

Más adelante, se utilizaron los transistores y los componentes electrónicos de estado sólido para construir las poderosas computadoras de la década de 1960. Con el advenimiento, de los circuitos integrados se llegó al perfeccionamiento del microprocesador.

Evolucion de los Microprocesadores.

El microprocesador de 4 bits En 1969, Intel Corporation y el talento creativo de Marcian E. Hoff lanzaron el primer microprocesador: el 4004, de 4 bits. Este microprocesador, programable en un solo encapsulado era insuficiente, según las normas actuales, porque sólo direccionaba 4096 localidades de 4 bits en la memoria. El 4004 ofrecía sólo un conjunto de 45 instrucciones diferentes. Como consecuencia, el 4004 sólo se podía emplear en aplicaciones limitadas, como en los primeros juegos de vídeo y en controladores pequeños basados en microprocesadores. Cuando surgieron aplicaciones más complejas para el microprocesador, el 4004 resultó inadecuado.

M.C. Eduardo Sánchez Arellano.

El Microprocesador de 8 bits

Más tarde, en 1971, al percatarse que el microprocesador era un producto, viable para comercialización, Intel Corporation produjo el 8008, el primer microprocesador de 8 bits. El tamaño ampliado, de la memoria (16K * 8) y las instrucciones adicionales (un total de 48). Con este nuevo microprocesador se lograron aplicaciones más avanzadas. Conforme los ingenieros desarrollaban usos más demandantes para el microprocesador, la memoria y el juego de instrucciones del 8008 pronto limitaron su utilidad. Por tanto, en 1973, Intel Corporation introdujo el 8080, el primero, de los microprocesadores modernos de 8 bits. Pronto, otras empresas empezaron a lanzar sus propias versiones de los procesadores de 4 y de 8 bits. En la tabla 1-1 se enumera muchos de estos primeros microprocesadores.

AÑO

MICRO

COMENTARIOS

1969

Intel 4004

No fue un producto comercial.

1971

Intel 8008

Primer microprocesador de 8 bits.

1973

Intel 8080

Surge la industria de las microcomputadoras.

1974

Motorola 6800

Primer micro de Motorola.

1975

Zilog Z80

Aparece el sistema operativo CP/M.

1976

Intel 8085, Mostek 6502

Aparece Apple iniciando el auge de las microcomputadoras.

1978

Motorola 6809

Mejor microprocesador de 8 bit.

Tabla 1-1

1.1.2 Diferencia entre el Microprocesador y Microcontrolador

En el año de 1971 cuando surge el primer microprocesador de 8 Bit Intel, las técnicas de diseño de los equipos de instrumentación y control sufrieron un cambio. Los fabricantes de microprocesadores, conscientes de la importancia de este mercado, pusieron a disposición de los ingenieros una gran variedad de circuitos integrados complementarios los cuales constituyen, para cada fabricante, su familia. En el año de 1976, gracias al aumento en la densidad de integración, salió a la luz la primera computadora en un chip, es decir, se integraron junto con el microprocesador los subsistemas que anteriormente formaban unidades especializadas e independientes, pero unidas por las pistas de circuitos impresos con el microprocesador formando lo que se conoce como sistema mínimo. A este nuevo circuito integrado se le denominó MICROCONTROLADOR.

M.C. Eduardo Sánchez Arellano.

Figura 1.1 1.1.3 Tipo de Microprocesador según su velocidad y ancho de palabra. Microprocesador Año

Figura 1.1

1.1.3 Tipo de Microprocesador según su velocidad y ancho de palabra.

Microprocesador

Año

 

Bus

Bus Datos

 

Bus de

Coprocesador

Memoria

No.de Transist.

Interno

Direcciones

Caché

8088

1979

16

bits

8 bits

20

bits

8087

 

28 mil

8086

1978

16

bits

16

bits

20

bits

8087

 

29 mil

80286

1982

16

bits

16

bits

24

bits

80287

 

130

mil

386SX

1988

32

bits

16

bits

32

bits

80387SX

 

275

mil

386SL

1990

32

bits

16

bits

32

bits

80387SX

Externa

805

mil

386DX

1991

32

bits

32

bits

32

bits

80387

 

275

mil

486SX

1991

32

bits

32

bits

32

bits

80487SX

Incorporado

1,185 mil

486SL

1992

32

bits

32

bits

32

bits

80487SX

Incorporado

1,185 mil

486DX

1989

32

bits

32

bits

32

bits

Incorporado

Incorporado

1,200 mil

486DX2

1992

486DX con reloj interno de doble frec que el externo

 

1,250 mil

486DX4

1994

486DX con reloj interno de cuádruple frec que el externo

   

PENTIUM

1993

32

bits

64

bits

32

bits

Incorporado

2(Incorp)

3,100 mil

P6

1995

         

6,000 mil

 

Tabla 1.2

M.C. Eduardo Sánchez Arellano.

1.2 Arquitectura de los Microprocesadores.

1.2.1 A través de diagrama a bloques

El CPU (Unidad Central de Procesamiento) es el corazón de toda µP, es el encargado de decodificar las instrucciones, hacer más eficientes las operaciones aritméticas, y controlar algunas otras partes dela µP. Cuenta con cuatro partes básicas que hacen los “verdaderos cómputos”.

(1) Decodificador de Instruccion Acumulador. (ACC) (2) (4) Unidad Reg de Instrucción. Aritmetica. Timing and
(1)
Decodificador
de Instruccion
Acumulador. (ACC)
(2)
(4)
Unidad
Reg de Instrucción.
Aritmetica.
Timing and
y Logica.
Control.
Contador del Programa
(3)

1)

Figura 1.2

Los Registros: Son localizaciones que sirven para almacenar temporalmente datos, pueden ser de 8

o de 16 bits. Los tres registros más usados son, el Acumulador, el Contador del Programa y el

registro de instrucciones que son de propósito específico. El registro de Instrucciones es usado para

almacenar la instrucción que se está ejecutando en ese momento por el microprocesador. El contador de Programa contiene la dirección de la siguiente instrucción del programa.

2) La unidad aritmético-lógica (ALU, Arithmetic-logic unit): Es una red combinacional que acepta dos palabras de datos y una palabra de control que especifica el tipo de operación que ha de ejecutarse con los datos. El bus de datos del sistema o cualquiera de los registros internos del procesador pueden proporcionar palabras de datos. La palabra de control se define por la unidad de control. La ALU realiza la operación especificada y genera una palabra de salida que representa el resultado de la operación aritmética o lógica y un conjunto de señales de estado que indican, por ejemplo, si se produjo un acarreo o desbordamiento aritmético. La palabra resultado se puede dirigir

a cualquiera, de los registros internos o al bus de datos. El destino específico se define por la unidad de control, dependiendo de la naturaleza de la Operación que se esta realizando. Las señales de estado se dirigen a un registro interno específico del procesador para almacenamiento, denominado registro de códigos de condición.

M.C. Eduardo Sánchez Arellano.

3)

El Circuito de temporizador y control: Es una red secuencial que acepta un código que define la operación que se va a ejecutar y luego prosigue a través de una secuencia de estados, generando una correspondiente secuencia de señales de control. Estas señales de control incluyen el control de lectura – escritura y señales de dirección de memoria válida en el bus de control del sistema. Otras señales generadas por el controlador se conectan a la unidad aritmética – lógica y a los registros internos del procesador para regular el flujo de información en el procesador y a, y desde, los buses de dirección y de datos del sistema.

4)

El circuito de decodificación: Involucra el proceso de trasladar un patrón binario en una operación o secuencia de operaciones. Por ejemplo si el siguiente patrón binario 10111001 representa “ADD”, el circuito de decodificación lo reconoce y manda señales a todas las otras partes del µP para que ocurra la decodificación.

“Arquitectura Von Neumann del Microprocesador”

“Arquitectura Von Neumann del Microprocesador” Figura 1.3 M.C. Eduardo Sánchez Arellano. - Página 8-

Figura 1.3

M.C. Eduardo Sánchez Arellano.

El Acumulador: El Acumulador almacena temporalmente datos para ser procesados por la ALU, y también guarda el resultado de las operaciones aritméticas y lógicas. Suelen tener el mismo número de bits que el bus de datos. Por ejemplo, dos palabras binarias se pueden sumar, cargando la primera en el acumulador A y sumandola a la segunda, cargando el resultado en el acumulador y después transfiriendo

los resultados desde el Acumulador, a la memoria. Durante la transferencia de los primeros datos, el bus de datos sirve como una entrada al Acumulador. Durante la segunda, la ALU realiza una suma en la que

el bus de datos proporciona una entrada y el acumulador A la otra; la salida de la ALU se conecta a la

entrada del acumulador A para almacenar el resultado. Durante la tercera operación, la salida del

Acumulador se conecta al bus de datos, de modo que los resultados se transfieren a memoria.

El contador de programa (PC): Es un registro de 16 bits que contiene la dirección de la palabra siguiente del programa. Su salida se conecta al bus de direcciones siempre que una palabra del programa se lea desde la memoria. Cada vez que el contador de programa proporciona una dirección, se modifica de modo que contiene siempre la dirección de la palabra siguiente del programa.

siempre la dirección de la palabra siguiente del programa. Figura 1.4 Pin Out del Microprocesador 8080

Figura 1.4 Pin Out del Microprocesador 8080

El puntero de pila (SP, stack pointer): El puntero de pila es, un registro de autoincrementación

y autodecrementación, que significa que cada vez que se proporciona un dato su contenido se

M.C. Eduardo Sánchez Arellano.

incrementa o decrementa automáticamente. En los microprocesadores, el puntero de pila contiene la dirección de la siguiente posición de memoria vacía en la pila. A continuación, proporciona esta dirección al bus de direcciones durante un ciclo del bus de lectura. La pila se utiliza de muchos modos; por ejemplo, se utiliza para almacenar la dirección de retorno cuando las transferencias de control a subrutinas o rutinas de interrupción de servicios.

a subrutinas o rutinas de interrupción de servicios. Fig. 1.5 El registro de códigos de condición:

Fig. 1.5

El registro de códigos de condición: (PSW) ó (CCR) Almacena la información que describe los resultados de operaciones anteriores. Esta información se almacena asignando un bit en el registro. En algunos microprocesadores, el registro del código de condición. Contiene ocho bits, El bit menos significativo es el bit de acarreo, o bit C, que se pone a 1 cuando se produce un acarreo aritmético. El bit de desbordamiento, o bit V, se pone a 1 si se produce un desbordamiento. El bit cero, o bit Z, el tercer bit en el registro de códigos de condición se pone a 1 cuando se produce el resultado cero. El bit negativo, o bit N, se pone a 1 cuando el resultado es negativo. El bit de semi acarreo, o bit H, se pone a 1 cuando se produce un acarreo desde el bit 3. El bit H se utiliza con cálculos aritméticos con datos codificados en BCD. Los bits C, V, Z, N y H se ponen a 1, o a 0, automáticamente por el procesador, dependiendo de la naturaleza de la operación que se está ejecutando y el resultado de está operación, además, los bits C, V e I pueden ser puestos a 1, o a 0, por el programador utilizando instrucciones especiales para cada bit.

M.C. Eduardo Sánchez Arellano.

Fig. 1.6 Pin Out del Microprocesador Motorola MC6800 Fig. 1.7 Pin Out del Mi croprocesador

Fig. 1.6 Pin Out del Microprocesador Motorola MC6800

Fig. 1.6 Pin Out del Microprocesador Motorola MC6800 Fig. 1.7 Pin Out del Mi croprocesador Mostek

Fig. 1.7 Pin Out del Microprocesador Mostek 6502

M.C. Eduardo Sánchez Arellano.

2.1 Arquitectura de los Microcontroladores Intel

Los MICROCONTROLADORES INTEL de 8 Bit que estudiaremos en esta unidad integran los siguientes subsistemas.

Un CPU de 8 bit.

256 Byte de RAM interna.

4 Kbyte de Flash (89C51) ó EPROM(8751) interna.

4 Puerto de Entrada /Salida.

2 Contadores y temporizadores de 16 bits.

Circuito de reloj incorporado.

Bajo consumo de corriente (power down) en las versiones CHMOS.

Alta inmunidad al ruido eléctrico.

Ampliación del set de instrucciones con algunas muy potentes para la adquisición y tratamiento de datos, tablas, multiplicación, división, etc.

Instrucciones lógicas y de brinco orientadas al proceso de señales bit a bit (procesador booleano).

Espacios de la memoria de programa y de datos separadas (memoria segregada).

Protección de la memoria de programas (encriptación).

Comunicación serie estándar con otros sistemas. Tipo Full-Duplex.

5 interrupciones programables con niveles de prioridad.

En estos momentos los MICROCONTROLADORES de 8 bits son el estándar para aplicaciones en controladores de mediana complejidad, por su facilidad de manejo y su alto nivel de prestaciones.

Además la arquitectura permite que el Microcontrolador sea utilizado como Microprocesador. Naturalmente esto trae como consecuencia una reducción de su capacidad autónoma de controlar periféricos a través de sus puertos. Características de la Familia de MICROCONTROLADORES Intel.

Con ROM

Sin ROM

con EPROM

ROM

RAM

TIMER

TECNOLO

8048AH

8040AH

P8748H

1K

64

1

HMOS

8049AH

8039AHL

P8749H

2K

128

1

HMOS

8050AH

8035AHL

No Existen

4K

256

1

HMOS

8051

8031

8751

4

K

128

2

HMOS

8051AH

8031AH

8751H

4

K

128

2

HMOS

8052AH

8032AH

8752BH

8

K

256

3

HMOS

80C51BH

80C31B

87C51

4

K

128

2

CMOS

TABLA 1.3

M.C. Eduardo Sánchez Arellano.

ARQUITECTURA BÁSICA DE LOS MICROCONTROLADORES 8051

Figura 1.9
Figura 1.9

Fiugura 1.8 Diagrama General De Los Microcontroladores 8031-8051-89C51-8751

General De Los Microcontroladores 8031-8051-89C51-8751 Figura 1.9 Diagrama espesifico de los Microcontroladores

Figura 1.9 Diagrama espesifico de los Microcontroladores 8031-8051-89C51-8751

M.C. Eduardo Sánchez Arellano.

1.2.2 Arquitectura externa del microprocesador (terminales)

1.2.2 Arquitectura externa de l microprocesador (terminales) Figura 1.10 Descripción de las Terminales: Vcc: Voltaje de

Figura 1.10

Descripción de las Terminales:

Vcc: Voltaje de alimentación positiva (+5 Volts.)

Vss: Conexión a tierra (0 volts).

Puerto0 (P0): Se encarga de multiplexar en el tiempo por sus 8 líneas la parte baja del Bus de direcciones durante el acceso a la memoria externa, y el Bus de datos.

Puerto1 (P1): Este puerto además de ser de proposito general también recibe la parte baja de direcciones, durante la programación y verificación de la memoria EPROM interna.

Puerto2 (P2): El puerto 2 emite la parte alta del Bus de direcciones en los accesos de memoria externa cuando utilizan 16 bits de dirección (MOVX @DPTR, A). Durante el acceso a la memoria de datos externa con direccionamiento de 8 bits (MOVX @R1,A), los pines del Puerto 2 emiten el contenido del registro P2 del SFR (Registro de funciones especiales).

Puerto3 (P3): Este puerto puede usarse para propósito general cuando trabaja como microcontrolador pero tiene otras funciones especiales cuando trabaja como microprocesador o con acceso a memoria de datos externa, como se muestra en la sig. Tabla.

M.C. Eduardo Sánchez Arellano.

Pin

Descrip

Funciones

10

P3.0

RXD (Entrada puerto Serie)

11

P3.1

TXD (Salida puerto serie)

12

P3.2

INTO (Interrupción 0. Externa)

Neg.

13

P3.3

INT1 (Interrupción 1. Externa)

Neg

14

P3.4

T0 (Entrada externa. Timer 0)

15

P3.5

T1 (Entrada externa. Timer 1)

16

P3.6

WR (Autorización escritura de datos) Neg.

17

P3.7

RD (Autorización escritura de datos) Neg.

TABLA 1.4

EA/VPP: (External Access), cuando se mantiene un nivel alto, se ejecuta sólo el programa de la EPROM interna, a menos que el contador de programa exceda de FFF (4K) para el 8751. Si EA se mantiene un nivel bajo, se ejecuta el programa de la memoria externa siempre, independientemente de la dirección del programa.

Es decir cuando

EA=1 actúa como MICROCONTROLADOR. EA=0 actúa como MICROPROCESADOR.

VPP: Es el voltaje de programación de la EPROM Interna.

ALE/PROG: (Address Latch Enable) es un pulso que emite el MICROCONTROLADOR para amarrar el <<byte bajo>> del Bus de direcciones en el acceso a la memoria externa. ALE se emite con una frecuencia de 1/6 de la frecuencia de emisión del reloj.

PROG: Es el pin de entrada de los pulsos de programación de la memoria EPROM lo utiliza solamente el programador de micros.

PSEN: Es la señal de strobe para leer en la memoria de <<programa externo>>. La memoria externa tiene dos modalidades, de programa y de datos. Para diferenciarlas, utiliza la señal PSEN. PSEN no se activa cuando se está ejecutando el programa de la ROM o EPROM interna.

XTAL1

y XTAL2: Son la entrada y salida respectivamente, de un amplificador inversor que puede ser configurado para su uso como un chip oscilador. Se puede utilizar indistintamente un cristal de cuarzo o un resonador cerámico.

indistintamente un cristal de cuarzo o un resonador cerámico. Figura 1.11 M.C. Eduardo Sánchez Arellano. -
indistintamente un cristal de cuarzo o un resonador cerámico. Figura 1.11 M.C. Eduardo Sánchez Arellano. -

Figura 1.11

M.C. Eduardo Sánchez Arellano.

RESET: Señal de inicialización del sistema. Un reset interno al sistema se produce cuando se pone el pin RST a un nivel alto durante un cierto tiempo, esto se logra de modo automático conectando el pin RST a Vcc mediante un capacitor de 10 μF y a tierra medinte una resistencia de 8.2 kΩ .

de 10 μ F y a tierra medinte una resistencia de 8.2 k Ω . Figura

Figura 1.12

M.C. Eduardo Sánchez Arellano.

1.3 Conexión del Microprocesador con Dispositivos

Una característica importante de este Microcontrolador es que los puertos pueden ser utilizados como buses de direcciones, de datos y control, debido a estas caracteristicas se dice que el Microcontrolador puede trabajar como Microprocesador.

Los drivers de salida de los puertos P0 y P2 y los buffers de entrada del puerto P0 se pueden utilizar para acceder a la memoria externa del sistema. En estas condiciones, el puerto P0 se configura como salida del byte bajo del bus de direcciones (A0 a A7), de un bus que consta de 16 bits (capacidad de direccionamiento 64K). Multiplexado en el tiempo como bus de datos bidireccional (D0 a D7). El puerto P2 se configura como salida del byte alto del bus de direcciones (A8 a A15). De esta manera el microcontrolador se configura a modo de Microprocesador de un sistema externo con unas capacidades de expansión definibles por el usuario. Naturalmente, en estas condiciones, le queda como puerto íntegro, para el control de periféricos, el puerto P1 y parte del puerto P3, puesto que hay señales que se utilizan para el control del sistema (bus de control).

se utilizan para el control del sistema (bus de control). Figura 1.13 Circuito de Microprocesador. M.C.

Figura 1.13 Circuito de Microprocesador.

M.C. Eduardo Sánchez Arellano.

1.3.1 Memoria

1.3.1.1 Organización de la Memoria en el Microcontrolador 89C51.

Las memorias son dispositivos que almacenan el programa y los datos. En esencia la memoria es

un grupo de celdas de almacenamiento. Cada celda puede almacenar un bit de información el cual puede

ser 1 ó 0. Por ejemplo la sig. Figura muestra un grupo de 8 celdas o bit almacenados como un patrón

binario que representa la letra “P”.

0

1

0

1

0

0

0

0

Otras letras ó otros tipos de información requieren otros tipos de combinación. La mayoría de los

microprocesadores almacenan instrucciones y datos en grupos de 8 bits (1 Byte). Para almacenar más de

una letra es necesario más de un byte.

0

1 0

0

1

0 0

1

=I

105

0

1 0

1

0

1 0

0

=T

106

0

1 0

0

1

1 1

0

=N

107

Cada byte almacenado en memoria tiene una dirección. Por ejemplo ITN puede estar almacenado en las

direcciones 105 a 107. Los µP de 8 bit son capaces de direccionar 65,536 bytes.

MEMORIA DE PROGRAMAS Y MEMORIA DE DATOS.

Los

MICROCONTROLADORES

8751

tienen separados

los

espacios

de

direcciones

para

memoria de programa y memoria de datos como muestra la siguiente figura.

memoria de programa y memoria de datos como muestra la siguiente figura. M.C. Eduardo Sánchez Arellano.

M.C. Eduardo Sánchez Arellano.

La memoria de programa sólo puede ser leída y tiene como máximo 64K byte externos.

La memoria de programa sólo puede ser leída y tiene como máximo 64K byte externos. (Internamente el 89C51 es de 4K byte). La señal de autorización de lectura en la memoria de programa externa es PSEN. El pin EA del MICROCONTROLADOR puesto a Vcc (+5V) indica que el programa busca direcciones desde la posición de memoria 0000H hasta la 0FFFH de la memoria interna y de la 1000H a la FFFFH, en la memoria externa. Si el pin EA es puesto a Vss (0v), la búsqueda de direcciones del programa se dirige a la memoria externa en todo momento (Funciona como un Microprocesador).

Ciclo de lectura en la memoria externa de programas

Para acceder a la memoria externa del programa se utiliza la señal PSEN (Program Store Enable) como señal de autorización de lectura. La señal ALE <<latchea>> el byte bajo del bus de direcciones en el primer estado (ciclo de reloj),

y así permite direccionar, durante todo el ciclo de instrucción, mientras esas mismas líneas son utilizadas, en el resto del ciclo de instrucción, como bus de datos. En la Figura 1.14 se puede observar que la lectura en la memoria de programas se realiza cuando PSEN está a nivel bajo, siendo el resto de las líneas de dirección las que establecen la posición de menoria exacta del byte de instrucción u operando que ha de ser leído. Si el usuario escribe en el Puerto P0 durante el ciclo de búsqueda en la memoria externa, el byte de código puede ser modificado. Se recomienda no escribir en el Puerto P0 si es utilizada para leer en la memoria de programa externa. A la memoria de programas externa se accede bajo dos condiciones:

1. Cuando el pin EA es activo (0), caso de la Figura 1.14

M.C. Eduardo Sánchez Arellano.

2.

Cuando el contador de programa (PC) contiene un número más grande que 0FFFH para el 8051.

1.3.1.2 Memoria de Programa Eprom ó Flash

En la parte baja de la memoria de programa se encuentran ciertas posiciones de memoria especiales asignadas por el fabricante para el tratamiento de las rutinas de interrupciones.

 

FUENTE DE INTERRUPCION

DIRECCIONES DEL VECTOR

 

0FFFH

Flag que se activan

RI Y TI

0023H

PUERTO

SERIE

TF1

001BH

INT

TIMER 1

IE1

0013H

INT EXTERIOR 1

TF0

000BH

INT

TIMER 0

IE0

0003H

INT

EXTERIOR 0

RESET

0000H

RESET

Tabla 1.4

Una interrupción puede ser provocada de manera externa o de manera interna, es decir puede ser producida por un periférico externo o por software. La interrupción con más prioridad es RESET la cual no puede ser enmascarada.

Cuando un RESET ocurre el programa comienza a partir de la dirección 0000H, del programa. Cuando una interrupción es producida, el Contador de Programa (PC) almacena su contenido temporalmente dentro del SP (apuntador de apilamiento) y se carga con la dirección de la localidad donde se encuentra la rutina de servicio de la interrupción correspondiente. Una vez posicionado en esa localidad deberá de comenzar la ejecución de la rutina de servicio, hasta que encuentre la instrucción RETI, que le permitirá al PC recuperar nuevamente su valor original almacenado en el SP, y continuar con el programa anterior a la interrupción.

Por ejemplo a la interrupción 0, se le asigna la localidad 0003H, si la interrupción no se utiliza, esta localidad puede utilizarse para propósitos generales del programa, si la interrupción ha sido permitida, (estableciendo el bit correspondiente dentro del registro de control IE), en el momento que exista una activación de la interrupción (estado bajo en la línea INT0) el PC se cargará con 0003 y saltará a esa localidad para comenzar a ejecutar la rutina de servicio.

Como se puede observar en la Tabla 1.4 Anterior el intervalo físico entre dos interrupciones es de 8 bytes, espacio capaz de albergar una pequeña rutina, pero si éste no fuera suficiente se desviaría el contador del programa (PC) mediante una instrucción de salto (JMP) a una zona amplia de la memoria de programa capaz de contener dicha rutina. Como se ha dicho la memoria de programa puede ser interna (en el propio micro) ó externa (en otro chip). La selección se realiza por hardware, con la señal EA (External Access). Conectado a Vcc ó Vss respectivamente.

M.C. Eduardo Sánchez Arellano.

El hardware de configuración del Microcontrolador como Microprocesador utilizando memoria de programa externa se muestra en la Fig 1. 12 Se puede observar en al Figura 1.14 que las 16 líneas de dirección corresponden al Puerto 0 y al Puerto 2, que están dedicadas como bus de direcciones; aun más el Puerto 0 sirve como bus de direcciones y bus de datos multiplexado en el tiempo. Esta operación característica de la familia de Microprocesadores Intel, se realiza de la forma siguiente.

Microprocesadores Intel, se realiza de la forma siguiente. Figura 1.15 • El Puerto P0 emite el

Figura 1.15

El Puerto P0 emite el <<byte bajo>> del contador del programa PC (PCL). Una vez estabilizada la señal sobre P0, la señal ALE (Address Latch Enable) introduce esta dirección dentro del circuito integrado latch 74LS373, que pasa a apuntar la dirección de la memoria externa de programas. Al mismo tiempo que el Microcontrolador emite el PCL por P0, la parte alta del contador del programa (PCH) se emite por P2. Entonces PSEN autoriza la lectura al Microcontrolador del código de instrucción a través del Puerto P0. Para un mejor entendimiento y seguimiento de los diagramas de tiempos, en la figura 1.13 se dibuja un circuito esquematico en el que aparece el microcontrolador comandando una memoria RAM (6116) y una memoria EEPROM (2816).

M.C. Eduardo Sánchez Arellano.

Figura 1.16 En las siguiente Fig. Se muestra el funcionam iento y diagramas de tiempos

Figura 1.16

En las siguiente Fig. Se muestra el funcionamiento y diagramas de tiempos de esta operación.

funcionam iento y diagramas de tiempos de esta operación. Figura 1 17 CICLO MAQUINA: Un ciclo

Figura 1 17

CICLO MAQUINA:

Un ciclo maquina, para esta familia de Microcontroladores, consiste en una secuencia de 6 <<estados>>, nombrados S1 a S6. Cada estado esta formado dos periodos de la señal de reloj que se denominan <<fases>> (fase 1 y fase 2). Teniendo en cuenta que cada ciclo maquina tiene 12 periodos (6 estados por 2 fases), si el oscilador genera una señal de reloj de una frecuencia de 12 Mhz, la duración del ciclo maquina será de 1 μsegundo.

M.C. Eduardo Sánchez Arellano.

La secuencia de búsqueda/ejecución son las mismas, sea la memoria de programas interna o externa

La secuencia de búsqueda/ejecución son las mismas, sea la memoria de programas interna o externa al Microcontrolador; es decir, los tiempos de ejecución no dependen de que se utilice la memoria interna o externa. La figura 1.15 muestra el diagrama de tiempos de las señales implicadas en la secuencia de búsqueda, cuando la memoria de programa es externa. La señal PSEN se activa dos veces por ciclo de maquina, para autorizar la lectura en la memoria de programa. Si se produce un acceso a la memoria de datos, como se muestra en la figura 3.4, no se emiten los dos impulsos PSEN, puesto que el acceso a la memoria de datos no los necesita ni utiliza. Observe como el acceso a la memoria de datos toma dos ciclos más de BUS que la memoria de programas. Las figuras 3.3 y 3.4 muestran los diagramas de tiempos relativos a ambas secuencias de acceso, destacando la emisión de direcciones por P0 y P2, y las señales ALE y PSEN. La señal ALE se utiliza para latchear el <<byte bajo>> de direcciones dentro del latch. Cuando el CPU esta ejecutando un programa en la memoria interna PSEN no se activa y las direcciones no se emiten por los puertos. Sin embargo ALE se sigue emitiendo dos veces por cada ciclo de maquina, pudiendo ser utilizada como señal de reloj externo. No obstante, como se puede ver en la figura 3.4, cuando se accesa a un operando utilizando la instrucción MOVX, la señal ALE desaparece.

utilizando la instrucción MOVX, la señal ALE desaparece. Figura 1.18 M.C. Eduardo Sánchez Arellano. - Página

Figura 1.18

M.C. Eduardo Sánchez Arellano.

En la figura anterior se pudo observar cómo se realiza un acceso a la memoria externa de

programas para tomar una instrucción y en el segundo ciclo de accede a la memoria de datos externa

para tomar datos.

1.3.1.3 Memoria de Datos (Ram).

El 8751 puede direccionar hasta 64 kbytes de memoria de datos externa. En la sig. Figura se

pude ver el mapa de memoria de datos. La memoria interna se encuentra dividida en dos bloques, los

128 bytes bajos y el espacio ocupado, en parte, por los Registros de Funciones Especiales (SFR).

FF

80

7F

00

SFR

Solo Directo.

Directo é

Indirecto

0000

FIG. 1.19

FFFF

64 KBytes

Memoria Externa

RD

WR

0000 FIG. 1.19 FFFF 64 KBytes Memoria Externa RD WR En la memoria de datos interna
0000 FIG. 1.19 FFFF 64 KBytes Memoria Externa RD WR En la memoria de datos interna

En la memoria de datos interna se puede acceder a un total de 256 bytes para el 8751 incluido el

área de los registros especiales (SFR),

1.3.1.4 Área de Direccionamiento Directo é Indirecto.

Los 128 bytes a los que puede acceder desde ambos direccionamientos, directo e indirecto,

pueden ser divididos en tres segmentos.

Banco de registros (banco 0, 1, 2 y 3). Registros R0 a R7 por banco.

Los registros se localizan desde la dirección 00H a 1FH (32 bytes). Después de un Reset, el banco

operativo por default es el banco 0. La selección de otro banco de registros debe hacerse por software

escribiendo en el registro de estado PSW.

Dirección Inicial

 

Dirección Final

00H

Banco 0

07H

08H

Banco 1

0FH

10H

Banco 2

17H

18H

Banco 3

1FH

El reset inicializa el Stack Pointer (SP) en la posmem 07H y se incrementa inmediatamente a la

posmem 08H, que es el primer registro R0 del segundo banco de registros, el SP se puede inicializar en

otra localización de memoria.

M.C. Eduardo Sánchez Arellano.

Esta área tiene una longitud de 16 bytes (del segmento 20H a 2FH). Cada uno de los 128 bits de este segmento se puede direccionar directamente (00H a 7FH). Los bits se pueden direccionar por los bytes que contiene (20H a 2FH). Esto es, los bits 0 al 7 pueden ser referidos como los bits 20.0 a 20.7, etc.

SUBÁREA DIRECCIONABLE BIT A BIT:

20H

27H

28H

2FH

La memoria scratch pad se entiende como la memoria común es decir un block de notas de rápido acceso, pero de escasa capacidad. Ocupa las posiciones de memoria 30H a 7FH 80 Bytes. Es la memoria de trabajo RAM del usuario.

SUBÁREA SCRATCH PAD:

30H

3FH

40H

4FH

50H

5FH

60H

6FH

70H

7FH

1.3.1.5 Área de Registros ó Funciones Especiales.

La sig. Tabla muestra los registros especiales que utiliza el 8751, así como sus direcciones.

No.

Símbolo

Nombre

 

Dirección

1.

*ACC

Acumulador

Acumulador.

0E0H

2.

*B

Registro B

Registro B.

0F0H

3.

*PSW

Program Status Word

Palabra de Estado del Programa.

0D0H

4.

SP

Stack Pointer

Puntero de la memoria de la PILA.

81H

5.

DPTR

Data Pointer 2 Bytes

Apuntador de datos.

-------

6.

DPL

Low Byte del DPTR

Byte bajo.

82H

7.

DPH

High Byte del DPTR

Byte alto.

83H

8.

*P0

Port 0

Puerto 0

80H

9.

*P1

Port 1

Puerto 1

90H

10.

*P2

Port 2

Puerto 2

0A0H

11.

*P3

Port 3

Puerto 3

0B0H

12.

*IP

Interrupt Priority Control

Control de prioridad de interrupciones.

0B8H

13.

*IE

Interrupt Enable Control

Control de autorización de Interrupciones.

0A8H

14.

TMOD

Timer/Counter Mode Control

Control Modo Temporizador/Contador.

89H

15.

*TCON

Timer/Counter Control

Control Temporizador/Contador.

8CH

16.

TH0

Timer/Counter 0 High Byte

Byte alto temporizador/Contador

0

88H

17.

TL0

Timer/Counter 0 Low Byte

Byte bajo temporizador/Contador. 0

8AH

18.

TH1

Timer/Counter 1 High Byte

Byte alto temporizador/Contador

1

8DH

19.

TL1

Timer/Counter 1 Low Byte

Byte bajo temporizador/Contador. 1

8BH

20.

*SCON

Serial Control

Control de comunicación serie.

98H

21.

SBUF

Serial Data Buffer

Buffer de datos de comunicación serie.

99H

22.

PCON

Power Contol

Control de consumo de potencia.

87H

*= Registros Direccionable bit a bit.

Tabla 3.2

Acumulador: Es un registro de propósito general y por su frecuencia de intervención, el más y por su frecuencia de intervención, el más

importante.

Registro B es usado durante operaciones de multiplicación y división, para otras instrucciones puede ación y división, para otras instrucciones puede

ser tratado como un registro común.

M.C. Eduardo Sánchez Arellano.

SP:
SP:

Stack Pointer: es un registro de 8 bits, este es incrementado antes de que el dato sea almacenado,

con un Push o Call. El Stack puede recidir en cualquier lugar de la RAM. El Stack Pointer es inicializado a 07H después de un reset, esto hace que el Stack empiece en la localidad 08H.

DPL y DPH: Data Pointer: Este registro puede ser manipulado como un registro de 16 bits o como dos

registros de 8 bits.

como un registro de 16 bits o como dos registros de 8 bits. P0,P1,P2,P3: Son registros

P0,P1,P2,P3: Son registros “Latches” de los puertos 0,1,2,3 respectivamente.

PSW:
PSW:

Program Status Word: Contiene información del estado del CPU en cada ciclo de instrucción.

b7

b6

 

b5

b4

b3

b2

b1

b0

CY

AC

 

F0

RS1

RS0

OV

-

P

BIT

 

NOMBRE Y COMENTARIO

 

b0

 

P:

bandera de paridad del Acumulador (ACC).

 

-

Si P=1 el número de unos en el ACC es impar.

 

-

Si P=0 el número de unos en el ACC es par.

b1

Bandera disponible por el usuario.

 

b2

 

OV:

Bandera de Overflow.

 

b3-b4

RS 0 -RS 1 : Selección del banco de registros.

 
 

0

-

0

Banco 0 (00-07H)

 

1

-

0

Banco 1 (08-0FH)

0

- 1 Banco 2 (10-17H)

1

- 1 Banco 3 (18-1FH)

b5

 

F0:

 

Bandera 0. De propósito general. Definida por el usuario.

 

b6

 

AC:

Bandera de acarreo Auxiliar. Para operaciones en BCD.

 

b7

 

C:

Bandera de Acarreo.

 

Ciclo de lectura (RD) en la memoria externa de datos Para el acceso a la memoria externa de datos utiliza la señal de control RD (función alternativa de P3.7) y puede utilizar los 16 bits de dirección (M0VX A,@DPTR) o bien 8 bits (MOVX A,@Ri) (véase Figura 1.13). En un ciclo de lectura el byte de entrada es aceptado en el Puerto P0 justo antes de que la señal de control RD que autoriza la lectura sea desactivada.

Ciclo de escritura (WR) en la memoria externa de datos Para la escritura en la memoria externa de datos utiliza la señal de control WR(función alternativa P3.6) y puede utilizar los 16 bits de dirección (MOVX @DPTR,A) o bien 8 bits (MOVX @Ri,A). En el ciclo de escritura, el byte de dato debe permanecer sobre el Puerto P0 antes y después de que la señal de control de escritura WR sea desactivada.

M.C. Eduardo Sánchez Arellano.

En general, tanto para la lectura como para la escritura, cuando una dirección de 16 bits es utilizada (MOVX @DPTR), el byte alto de dirección sale por el Puerto P2, donde permanecerá mientras dura el ciclo de lectura o escritura. Si se utiliza una dirección de 8 bits (MOVX @Ri), el contenido del Puerto P2 en el SFR permanece sobre los pines de P2 durante todo el ciclo de acceso a la memoria externa. Resumiendo, si se utilizan los puertos para comandar unidades de memoria externa o interface, los puertos quedarán en esta situación:

P0: Bus de direcciones bajas (A0 a A7) y bus de datos (D0 a D7) multiplexados en el tiempo. P1: puerto de E/S. P2: Bus de direcciones altas (A8 a A15). P3: Bus de control.

M.C. Eduardo Sánchez Arellano.

1.3.2 Perifericos

Puertos de Entrada/Salida:

Un Microprocesador tiene un camino para comunicarse con el mundo real, y este camino sirve para introducir datos y obtener resultados. Los puertos de entrada y salida son circuitos que auxilian al Microprocesador a comunicarse con los humanos o a controlar un proceso. Son normalmente llamados Peripheral interface. Estos chips pueden ser programados como entradas o salidas del Microprocesador.

Si el µP es usado en un proceso de control, los componentes de entrada son llamados transductores (Termistores, Termocolples etc.). Un transductor convierte una cantidad física analógica como temperatura o presión en una cantidad eléctrica. Esta cantidad puede ser amplificada o procesada antes de convertirla en una señal digital. Por ejemplo en un sistema de control con retroalimentación como el que se muestra a continuación el transductor monitorea la presión dentro de un tubo y constantemente manda los datos al µP. Un programa es usado para comparar el dato contra un valor de

referencia almacenado en la memoria. Si la presión excede la referencia el µP manda las señales de salida para cerrar la válvula y hacer sonar la alarma.

C P U (µP) Memory Rom Memory Ram In Port. Out Port. Amplificador Drive and
C P U (µP)
Memory Rom
Memory Ram
In Port.
Out Port.
Amplificador
Drive
and
Circuit.
A/D Converter.

Figura 1.20

1.3.2.1 Interfase Periferica Programable PPI 8255

El 8255 es un dispositivo programable de Entrada/Salida de propósito general diseñado para usarse con los microprocesadores de INTEL, cuenta con 24 pines de E/S que pueden ser programados en 2 grupos de 12 pines y puede funcionar en 3 modos de operación. La configuración funcional del 8255 es programada por medio de software y no es necesaria lógica digital externa. El bus de salida de datos del 8255 cuenta con un buffer de tres estados bidireccional, el cual es usado para acoplarse con el sistema. Los datos se transmiten o reciben por el

M.C. Eduardo Sánchez Arellano.

buffer después de ejecutar una orden de entrada o salida por el Microprocesador. La palabra de control y la de estado son transferida únicamente atreves del bus de datos.

y la de estado son transferida únicamente atreves del bus de datos. M.C. Eduardo Sánchez Arellano.

M.C. Eduardo Sánchez Arellano.

Funcionamiento del Block de “LECTURA ESCRITURA Y CONTROL LOGICO” La función de este block de

Funcionamiento del Block de “LECTURA ESCRITURA Y CONTROL LOGICO”

del Block de “LECTURA ESCRITURA Y CONTROL LOGICO” La función de este block de entradas es

La función de este block de entradas es la de controlar internamente y externamente la transferencia de los datos y las palabras de control. Este block acepta entradas de control o direcciones desde el Microprocesador.

(CS)Chip Select: Una entrada baja en este pin habilita la comunicación entre el 8255 y el Micro. (RD)Read: Una entrada baja en este pin habilita el 8255 para leer datos del puerto especificado a la Computadora. (WR)Write: Una entrada baja en esta pin habilita al 8255 para escribir información del Micro a un puerto o al registro de control.

M.C. Eduardo Sánchez Arellano.

(A0 y A1): Estas entradas de señal en unión con las señales (RD) y (WR) controlan la selección de uno de los tres puertos o del registro de control. Estas señales son normalmente conectadas a los bits menos significativos de del bus de direcciones (A0 y A1) del Microprocesador. RESET: Una entrada alta en este pin limpia el registro de control y todos los puertos son puestos en modo de entrada. OPERACIÓN BASICA DE LOS PINES A0, A1, RD y WR

A1

A0

RD

WR

CS

OPERACIONES DE LECTURA

0

0

0

1

0

Del Puerto A --> Al bus de Datos

0

1

0

1

0

Del Puerto B --> Al bus de Datos

1

0

0

1

0

Del Puerto C--> Al bus de Datos

         

OPERACIONES DE ESCRITURA

0

0

1

0

0

Del bus de Datos--> Al Puerto A

0

1

1

0

0

Del bus de Datos--> Al puerto B

1

0

1

0

0

Del bus de Datos--> Al puerto C

1

1

1

0

0

Del bus de Datos-> Reg. de Control

         

FUNCIONES DE 3 ESTADOS

X

X

X

X

1

Bus de Datos--> 3 Estados.

1

1

0

1

0

CONDICION ILEGAL.

X

X

1

1

0

Bus de Datos --> 3 Estados

TABLA 1.6 GRUPO DE CONTROL A Y GRUPO DE CONTROL B. La configuración funcional de cada puerto es programada por el software del sistema. En esencia, el CPU manda la palabra de control al 8255. La palabra de control contiene información acerca del modo de control y sirve para inicializar al 8255. Cada uno de los grupos de control (Grupo A y Grupo B) acepta comandos de lectura/escritura y control lógico, recibe la palabra de control desde el bus de datos interno y emite su propio comando que esta asociado con un puerto.

El grupo de control A se refiere al puerto A y a los cuatro bit superiores del puerto C.

El grupo de control B se refiere al puerto B y a los cuatro bits inferiores del puerto C.

El registro de control solamente se puede escribir y no se puede leer.

PUERTO A, B Y C. El 8255 contiene tres puertos de 8 bits, puerto (A, B y C). Todos cuentan con buffer en la entrada y salida y pueden ser configurados con variadas características de funcionamiento por medio de software pero cada uno tiene su propia personalidad por lo que el 8255 tiene mucha flexibilidad. PUERTO A: Cuenta con latch/buffer de 8 bit de salida y solamente latch de entrada. PUERTO B: Cuenta con un latch/buffer de 8 bit de entrada/salida. PUERTO C: Cuenta con un latch/buffer de salida y un buffer de entrada. Este puerto puede ser dividido en dos puertos de 4 bit.

M.C. Eduardo Sánchez Arellano.

SELECCION DEL MODO DE CONTROL. Cuando un alto es puesto en el pin de reset todos los puertos son puestos en modo de entrada, después de que el reset es retirado el 8255 mantiene el modo de entrada en tanto no se le mande o indique alguna instrucción. El 8255 cuenta con tres modos de operación que pueden ser programados por medio de software, estos tres modos de operación son los siguientes. MODO 0 -> BASIC INPUT / OUTPUT MODO 1 ->STROBED INPUT / OUTPUT MODE 2 -> BI-DIRECCIONAL BUS. Los modos de operación para el puerto A y para el puerto B están definidos separadamente, pero el puerto C esta dividido en dos porciones que son requeridas por el puerto A y el puerto B. Todos los registros de salida son limpiados cuando el modo de operación es cambiado.

registros de salida son limpiados cuando el modo de operación es cambiado. M.C. Eduardo Sánchez Arellano.

M.C. Eduardo Sánchez Arellano.

Formato del modo de Definición en la Palabre de Control

Formato del modo de Definición en la Palabre de Control MODO DE OPERACION “0” Esta forma

MODO DE OPERACION “0” Esta forma de configuración consta de operaciones de entrada y salida simples para cada uno de los tres puertos. No requiere señal de “Handshaking” por que los datos son simplemente escritos o leídos por el puerto especificado. DEFINICION FUNCIONAL DEL MODO “0”

Dos puertos de 8-bit y dos puertos de 4 bit.

Cualquier puerto puede ser configurado como entrada o salida.

Todas las salidas cuentan con latch.

Las entradas no tienen latch.

16 diferentes configuraciones de entrada/salida son posibles en este modo.

M.C. Eduardo Sánchez Arellano.

CONFIGURACIONES EN MODO 0.

Ejemplo:

REGISTRO DE CONTROL

D7

 

D6

D5

D4

D3

D2

D1

D0

1

 

0

0

0

 

0

0

0

 

0

PALBRA DE CONTROL 80H o 128D Configuracones de Entrada/Salida en Modo 0

 

HEX

DEC

PUERTO A

PORT C SUP

 

PUERTO B

PORT C INF

 

80H

128

salida

salida

 

salida

salida

81H

129

salida

Salida

 

salida

entrada

82H

130

salida

Salida

 

entrada

salida

83H

131

salida

Salida

 

entrada

entrada

88H

136

salida

Entrada

 

salida

salida

89H

137

salida

Entrada

 

salida

entrada

8AH

138

salida

Entrada

 

entrada

salida

8BH

139

salida

Entrada

 

entrada

entrada

90H

144

entrada

Salida

 

salida

salida

91H

145

entrada

Salida

 

salida

entrada

92H

146

entrada

Salida

 

entrada

salida

93H

147

entrada

Salida

 

entrada

entrada

98H

152

entrada

Entrada

 

salida

salida

99H

153

entrada

Entrada

 

salida

entrada

9AH

154

entrada

Entrada

 

entrada

salida

9BH

155

entrada

Entrada

 

entrad

entrada

Tabla. 1.8

MODO 1: ENTRADA MEDIANTE HABILITACION El funcionamiento en Modo 1 hace que el puerto A o el B funcionen como registros de entrada. Esto permite que los datos externos se almacenen en el puerto hasta que el microprocesador está listo para leerlos. El puerto C se utiliza también en el funcionamiento en modo 1, no para datos sino para señales de control o de “reconocimiento” que hacen funcionar al puerto A ó al puerto B como puertos de entrada mediante una señal de habilitación estroboscópica. El puerto de entrada mediante la señal de habilitación captura los datos cuando se aplica la señal STB. Se debe tomar en cuenta que esta señal captura los datos del puerto en la transición de 0 a 1. La señal STB hace que se capturen los datos en el puerto y también activa la señal IBF (entrada llena) e INTR (solicitar interrupción). Una vez que la computadora, por medio de IBF ó INTR recibe aviso de que hay datos de entrada en el puerto, ejecuta la instrucción IN para leer el contenido del puerto (RD). La acción de lectura del puerto, lleva a IBF y a INTR a su estado inactivo hasta que haya un nuevo dato en el puerto.

M.C. Eduardo Sánchez Arellano.

DEFINICION DE LAS SEÑALES PARA ENTRADA EN MODO 1

1. STB. Habilitación estroboscópica: entrada utilizada para cargar datos en el registro del puerto, que retiene la información y se le da entrada a la computadora por medio de la instrucción IN.

2. IBF. Registro de entrada lleno: Una salida que indica que el registro de entrada contiene información.

3. INTR. Solicitud de interrupción, es una salida que solicita una interrupción. La terminal INTR se activa con un 1 lógico y se desactiva cuando la computadora da entrada de los datos.

4. PC6, PC7. Las terminales 7 y 6 del puerto C son terminales de E/S de uso general que están disponibles para lo que se desee.

EJEMPLO DE ENTRADA MEDIANTE HABILITACION.

lo que se desee. EJEMPLO DE ENTRADA MEDIANTE HABILITACION. El teclado es un excelente ejemplo de
lo que se desee. EJEMPLO DE ENTRADA MEDIANTE HABILITACION. El teclado es un excelente ejemplo de

El teclado es un excelente ejemplo de dispositivo de entrada mediante habilitación. El decodificador del teclado elimina los rebotes de los interruptores de las teclas y produce una señal de habilitación estroboscópica siempre que se oprima una tecla y su salida de datos contiene el código ASCII.

M.C. Eduardo Sánchez Arellano.

MODO 1 SALIDA MEDIANTE HABILITACION

A continuación se muestra la configuración interna del 8255 cuando funciona como dispositivo de salida por habilitación estroboscópica en Modo 1. El funcionamiento con salida por habilitación es similar al Modo 0, execpto que se incluyen las señales de control para que haya un protocolo de reconocimiento. Siempre que se escriben datos en un puerto programado como salida por habilitación estroboscópica, la señal OBF (registro de salida, lleno), se activa con un 0 lógico para indicar que los datos están en el registro del puerto. Esta señal indica que los datos están disponibles para un dispositivo de E/S externo que, al tomar los datos activa la entrada ACK (reconocimiento) de habilitación al puerto. La salida ACK desactiva la señal OBF otra vez a un 1 lógico para indicar el registro de salida esta vacío.

Definicion De Señales De Salida En Modo 1

1. OBF. Registro de salida, lleno: Una salida que se pone a 0 siempre que hay salida de datos (OUT) por el puerto A o el puerto B. Esta señal se desactiva a 1 lógico siempre que el dispositivo externo retroalimente con el pulso ACK.

2. ACK. Reconocimiento: Es la respuesta de un dispositivo externo con la que indica que recibio los datos desde el puerto 8255. Un ejemplo de salida mediante habilitacion es la coneccion con una impresora.

Modo 2 Funcionamiento Bidireccional

En modo 2, que solo se permite para el grupo A, el puerto A se vuelve bidireccional y permite transmitir y recibir datos por el mismo puerto. Un canal de datos bidireccional es útil cuando se conectan dos computadoras. También se utiliza para la interface paralela estándar IEEE-488, de alta velocidad (canal de instrumentacón de uso general, GPIB 1 ). A continuación se muestra la estructura interna de Modo 2.

1. INTR. Solicitud de interrupción: salida utilizada para interrumpir la computadora para condiciones de entrada y salida.

2. OBF: Registro de salida, lleno: una salida que indica que el registro de salida contiene datos para el canal bidireccional.

3. ACK: Reconocimiento.

4. STB: Habilitación:

5. IBF: Registro de entrada lleno:

6. INTE, Habilitación de Interrupción Interna

M.C. Eduardo Sánchez Arellano.

M.C. Eduardo Sánchez Arellano. - Página 37-

M.C. Eduardo Sánchez Arellano.

Funcionamiento y Control del Displey de Cristal Líquido (LCD)

El display de cristal liquido de matriz de puntos puede conectarse directamente, con el

microcontrolador, gracias a que tiene un bus de datos de tres estados, además tiene como característica

un consumo de energía bajo. Todas las funciones requeridas por el LCD se encuentran dentro del circuito

integrado HD44780 de Hitachi el cual cuenta con 192 caracteres o sea el alfabeto completo además de

diversos símbolos.

Con el HD44780 se pueden visualizar 32 caracteres a la vez, en 2 líneas pero si se conecta uno o

más driver LSI HD44100 más caracteres se pueden visualizar.

Este modelo se conecta fácilmente al bus de datos de cualquier microprocesador, mediante las

siguientes terminales.

Asignación de las Terminales pinout de LCD Paralelo:

 

pin

Señal

 

Nivel

 

Función

 

1

 

Vss

 

Gnd.

Tierra 0v Power Supply

 

2

 

Vdd

 

Vcc.

5V Power Supply

 

3

 

Vo

 

Voltaje de Contraste.

 

4

 

RS

 

H/L

RS=0 Entrada de Instrucciones, RS=1 Entrada de Datos.

 

5

 

R/W

 

H/L

R/W=0:Data Read, R/W=1:Data Write

 

6

 

E

H,H->L

 

Enable, señal de Habilitación

 

7

 

DB0

 

H/L

Bit menos significativo del Bus de Datos

8

 

DB1

 

H/L

Bus de Datos

 

9

 

DB2

 

H/L

Bus de Datos

 

10

 

DB3

 

H/L

Bus de Datos

 

11

 

DB4

 

H/L

Bus de Datos

 

12

 

DB5

 

H/L

Bus de Datos

 

13

 

DB6

 

H/L

Bus de Datos

 

14

 

DB7

 

H/L

Bit más significativo del Bus de Datos

 
 

Tabla 1.1

 
 

EXHIBIDOR ALFANUMÉRICO

 

14

13

12

11

10

9

8

7

6

5

4

3

2

1

14 13 12 11 10 9 8 7 6 5 4 3 2 1 M.C. Eduardo

M.C. Eduardo Sánchez Arellano.

14 13 12 11 10 9 8 7 6 5 4 3 2 1 M.C. Eduardo

FUNCIONAMIENTO DEL LCD:

El procedimiento para inicializar el display es la siguiente:

1. Primero se determina el tamaño de la interfase a la cual el display se va a conectar así como el número de líneas del display. El primer Byte de control que se envía al display es el numero 38H, el cual significa lo siguiente:

Código

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

38H

0

0

0

0

1

1

1

0

0

0

BD5 debe estar a 1, DB4 especifica el tamaño del bus (4 ó 8 bits), y el DB3 el numero de líneas del display. Se debe dar un retardo de 40μS antes de enviar la siguiente instrucción.

2. Se limpia toda la memoria del display y se regresa el cursor a la posición inicial.

Código

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

01H

0

0

0

0

0

0

0

0

0

1

Esta instrucción toma un tiempo de 1.64 mS.

3. Se establece el movimiento del cursor hacia la derecha, la pantalla del display permanece fija con la entrada de los caracteres.

Código

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

06H

0

0

0

0

0

0

0

1

1

0

Esta instrucción toma un tiempo de 40μS.

4. Se prende la pantalla del display y se prende el cursor señalando la posición del proximo carácter de entrada, se desactiva el parpadeo.

Código

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0EH

0

0

0

0

0

0

1

1

1

0

Esta instrucción toma un tiempo de 40μS.

5. A partir de aquí se puede comenzar a enviar los caracteres que se desean mostrar dejando un tiempo de 40μS como mínimo y colocando RS=1. Por ejemplo se enviara la palabra “TECNOLOGICO” por lo tanto se escribirá el siguiente código ASCII. Primero el código de la letra “T”

CODIGO RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 54H 1 0 0
CODIGO
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
54H
1
0
0
1
0
1
0
1
0
0
T

Ahora se envía el código de la letra “E”.

CODIGO

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

45H

1

0

0

1

0

0

0

1

0

1

M.C. Eduardo Sánchez Arellano.

T E
T
E

Y así las demás letras.

CODIGO RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 43H 1 0 0
CODIGO
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
43H
1
0
0
1
0
0
0
0
1
1
T
E
C

REGISTROS. El LCD tiene 2 registros de 8-bits, uno es el registro de instrucciones (IR) y otro el registro de datos (DR).

Escribir en el registro IR. El IR almacena código de instrucción para display clear y cursor shift, etc., y también para escribir una nueva dirección en el registro AC (Address Counter), que es el registro encargado de apuntar, tanto a la DD RAM (RAM de Datos del Display) como a la CG RAM (RAM Generador de Caracteres).

Leer del IR.

Permite la lectura del registro AC, del cual sólo son válidos los 7 bits de menos significativos DB0-DB6, el bit de mayor peso, DB7 informa del estado del Busy Flag o indicador del display Ocupado.

Escritura en el DR.

Permite escribir en DD RAM o CG RAM donde se encuentre apuntando el registro AC.

Leer del DR.

RS

R/W

Operación

0

0

Escribir en IR:Borrar Display, etc., o modificar AC.

0

1

Leer el IR: Leer el AC(DB0-6) y el Busy Flag (DB7).

1

0

Escribir en DR: Escribir en DD RAM o CG RAM

1

1

Leer el DR: Leer de DD RAM o CG RAM

o CG RAM 1 1 Leer el DR: Leer de DD RAM o CG RAM •

Busy Flag (BF):

Tabla 1.2

Cuando se encuentra a “1” indica que el LCD está ocupado realizando operaciones internas y no puede aceptar nuevas instrucciones. Hay que esperar que el Busy Flag valga “0” para enviar la siguiente instrucción.

Indica la dirección donde serán leídos o escritos los datos sobre DD RAM o CG RAM. Este registro puede modificarse realizando una escritura en el IR.

Contador de Dirección (AC):

M.C. Eduardo Sánchez Arellano.

Además, cuando se escriben o se leen datos en el DD RAM o CG RAM, el AC se incrementa o

decrementa de manera automática de acuerdo con el Modo de Entrada (Entry Mode Set).

Tiene una capacidad de 80 bytes, 40 por cada línea; lógicamente dependiendo del modelo sólo 16,32,40

ó 80 caracteres podrán ser visualizados a la vez, aunque desplazando (shift) el display podrán irse

visualizando todos los caracteres escritos.

Tiene definido 160 caracteres, en matrices de 5x7 puntos.

Permite definir ocho caracteres, cuyos códigos van desde el 00 al 08.

TABLA DE COMANDOS DE CONTROL (INSTRUCCIONES)

Ram de Datos del Display (DD RAM):

Generador de caracteres en ROM (CG ROM):

Generador de caracteres en RAM (CG RAM):

INSTRUCCION

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D

DESCRIPCIÓN

0

Clear display

0

0

0

0

0

0

0

0

0

1

 

Return home

0

0

0

0

0

0

0

0

1

*

 

Entry mode set

0

0

0

0

0

0

0

1

I/D

S

 

Disp. on/off cont

0

0

0

0

0

0

1

D

C

B

 

Cur o disp shift

0

0

0

0

0

1

S/C

R/L

*

*

 

Funcion set

0

0

0

0

1

DL

N

F

*

*

 

Set CG ram addres

0

0

0

1

 

ACG

 

Set DD ram addres

0

0

1

 

ADD (Dirección del Cursor)

   

Rd busy flag

0

1

BF

 

AC (Address Counter)

   

Wr dato to CG

1

0

 

Escribir Datos

   

Rd dato from CG

1

1

 

Leer Datos

   

Tabla 1.3

I/D=1: Increment (+1). D=1: Display ON C=1: Cursor ON. B=1: Blinking. S/C=1: Display shift.

I/D=0: Decrement (-1). D=0: Display OFF. C=0: Cursor OFF. S=1: Accompanies display shift. S/C=0: Cursos move.

R/L=1: Shift to the rigth.

R/L=0: Shift to the left.

DL

=1: 8 bits.

DL =0: 4 bits.

N

= 1: 2 líneas.

N = 0: 1 línea.

F

= 1: 5x10 dots.

F = 0: 5x7 dots.

BF

=1: operación Interna.

BF =0: Puede aceptar operación.

M.C. Eduardo Sánchez Arellano.

DESCRIPCIÓN DETALLADA DE LAS INSTRUCCIONES:

Escritura en IR cuando RS=0 y R/W=0.

- Limpiar Display: Borra display, manda cursor al inicio, y pone el Modo de Entrada en Incrementar.

 

DB7

 

DB6

DB5

DB4

DB3

DB2

DB1

DB0

 

0

 

0

0

0

0

0

 

0

 

1

- Cursor a posición inicial.

 
 

DB7

DB6

DB5

 

DB4

DB3

DB2

DB1

DB0

 

0

0

0

 

0

 

0

 

0

1

*

 

*No Importa.

 

- MODO DE ENTRADA (ENTRY MODE SET)

 

Establece las características de escritura de los datos. S=1. El display se desplaza al escribir un nuevo carácter. S=0. El disp. no se desplaza al escribir un nuevo carácter. I/D=1. Incremento automático del registro AC al escribir. I/D=1. Decremento automático del registro AC al escribir.

 
 

DB7

DB6

DB5

 

DB4

DB3

DB2

DB1

DB0

 

0

0

0

 

0

 

0

1

I/D

S

-

CONTROL DEL DISPLAY.

 

B=0. Blink OFF, no hay efecto de parpadeo del cursor. B=1. Blink ON, efecto de parpadeo del cursor rectangular. C=0. C