135
Sistemas Sistemas µcontroladores µcontroladores Familia MCS-51 de Intel Diseño Diseño, Programación y Programación y Simulación Simulación

Micro Control Adores en Control I-Luis Urdaneta

Embed Size (px)

DESCRIPTION

Microcprocesadores en Control ILuis Urdaneta

Citation preview

Page 1: Micro Control Adores en Control I-Luis Urdaneta

Sistemas Sistemas µcontroladoresµcontroladores

Sistemas Sistemas µcontroladoresµcontroladores

Familia MCS-51 de Intel

DiseñoDiseño,Programación yProgramación y

SimulaciónSimulación

Page 2: Micro Control Adores en Control I-Luis Urdaneta

2

Objetivo General Objetivo General

Diseñar aplicaciones prácticas de sistemas Diseñar aplicaciones prácticas de sistemas basados en microntroladores.basados en microntroladores.

Page 3: Micro Control Adores en Control I-Luis Urdaneta

3

JustificaciónJustificación

El conocimiento de los principios de la arqui- tectura y de las técnicas de programación del 8051 representan un recurso invalorable para quienes intentan desarrollar nuevos productos, o resolver problemas industriales con sistemas basados en microcontroladores.

El conocimiento de los principios de la arqui- tectura y de las técnicas de programación del 8051 representan un recurso invalorable para quienes intentan desarrollar nuevos productos, o resolver problemas industriales con sistemas basados en microcontroladores.

Page 4: Micro Control Adores en Control I-Luis Urdaneta

4

...Justificación

Aunque estos componentes electrónicos programables fueron diseñados por el grupo de ingeniería del consorcio Intel, hoy en día son manufacturados por las empresas: AMD, OKI, Signetics, Philips y Siemens, las cuales han desarrollados nuevos produc- tos basados en el 8051 estándar, unos más avanzados y con me- jor desempeño; otros apropiados para aplicaciones sencillas, pe- ro que mantienen la compatibilidad con el 8051 básico.

Aunque estos componentes electrónicos programables fueron diseñados por el grupo de ingeniería del consorcio Intel, hoy en día son manufacturados por las empresas: AMD, OKI, Signetics, Philips y Siemens, las cuales han desarrollados nuevos produc- tos basados en el 8051 estándar, unos más avanzados y con me- jor desempeño; otros apropiados para aplicaciones sencillas, pe- ro que mantienen la compatibilidad con el 8051 básico.

A pesar de su edad avanzada, el 8051 y sus parientes destacan en el grupo de los µCtrls más usados en la actualidad.

A pesar de su edad avanzada, el 8051 y sus parientes destacan en el grupo de los µCtrls más usados en la actualidad.

Page 5: Micro Control Adores en Control I-Luis Urdaneta

5

Para una buena comprensión del conte- nido de este material, es recomenda- ble que el lector tenga:

Para una buena comprensión del conte- nido de este material, es recomenda- ble que el lector tenga:

Una formación básica en técnicas de programación modular para micropro- cesadores.

Una formación básica en técnicas de programación modular para micropro- cesadores.

Un conocimiento general de árquitec- tura y organización de sistemas basa- dos en microprocesadores.

Un conocimiento general de árquitec- tura y organización de sistemas basa- dos en microprocesadores.

Conducta de Conducta de entradaentrada Conducta de Conducta de entradaentrada

Page 6: Micro Control Adores en Control I-Luis Urdaneta

6

µCS para aplicaciones de Medición control e instrumentación

µCS para aplicaciones de Medición control e instrumentación

Page 7: Micro Control Adores en Control I-Luis Urdaneta

7

Un sistema de control digital genérico tiene la estructura funcional siguiente:

Un sistema de control digital genérico tiene la estructura funcional siguiente:

Page 8: Micro Control Adores en Control I-Luis Urdaneta

8

...µCS para aplicaciones de control e instrumentación

r(t)

CAD

Algoritmo deControl

CDA

Sensor ActuadorPlanta

y(t) u(t)

CAD

controlador

uk

yk

rk

A/D µC D/A

A/D

S

Procesor y

Page 9: Micro Control Adores en Control I-Luis Urdaneta

9

Para realizar el controlador digital con un µP, el sistema empotrado resultante debe

disponer de:

µCS para aplicaciones de control e instrumentación µCS para aplicaciones de control e instrumentación

Page 10: Micro Control Adores en Control I-Luis Urdaneta

10

• Un microprocesador responsable del procesamiento...• Un generador de reloj y un circuito de reset.• Memoria EPROM y RWM para almacenar el programa y los

resultados de los cálculos.• Al menos un puerto de salida para que el µP envíe señales

al sistema controlado.

• Un convertidor digital - analógico para convertir en una ten- sión analóga la señal digital de control uk emitida por el µP.• Un puerto de entrada para que el µP reciba señales desde el exterior.

• Un convertidor analógico-digital para convertir a formato bi- nario las variables externas de naturaleza analógica, el CAD procesa la salida y(t) y la señal r(t) de referencia.

Sistema empotrado mínimo basado en µP

Page 11: Micro Control Adores en Control I-Luis Urdaneta

11

...µCS para aplicaciones de control e instrumentación ...µCS para aplicaciones de control e instrumentación

• Un microprocesador responsable del procesamiento..

• Un generador de reloj y un circuito de reset.

• Memoria EPROM y RWM para almacenar el programa y los resultados dee los cálculos.

• Al menos un puerto de salida para que el µP envíe señales al sistema controlado.

• Un convertidor digital-analógico para convertir en una tensión analóga la señal digital de control uk emitida por el µP.

Page 12: Micro Control Adores en Control I-Luis Urdaneta

12

...µCS para aplicaciones de control e instrumentación ...µCS para aplicaciones de control e instrumentación

• Un convertidor analógico-digital para convertir a formato binario las variables externas de naturaleza analógica, el CAD procesa la salida y(t) y la señal r(t) de referencia.

• Un puerto de entrada para que el µP reciba señales desde el exterior.

• La fuente de alimentación.

Page 13: Micro Control Adores en Control I-Luis Urdaneta

13

¿Qué es un microcontrolador?

¿Qué es un microcontrolador?

Antes de describir el dispositivo microcontroladorconviene diseñar un sistema simple de control ba-sado en µP para establecer el tipo y número de cir-cuitos integrados necesarios para el soporte físicode la aplicación.

Page 14: Micro Control Adores en Control I-Luis Urdaneta

14

El sistema tiene 8 entradas y 8 salidas digitales.

Sistema simple con µPSistema simple con µP

El funcionamiento de cada motor lo determina el estado de ocho µinterruptores ubicados a lo largo de la línea de producción.

Diseñar un sistema basado en µP para el control de la secuencia de operación de ocho motores de un proceso industrial.

La secuencia de operación es compleja, necesita leyes de control y debe cumplir distintas condiciones.

Page 15: Micro Control Adores en Control I-Luis Urdaneta

15

...Sistema simple con µP...Sistema simple con µP

Se requiere:

Un Microprocesador de 8 bits (Z80, 8085,...)2 K de memoria EPROM. (26716)Algo de memoria RWM. (6116 o de menor capacidad)

PPI 8255 (24 líneas E/S*)

* Solo se usan 16 líneas. Los puertos se seleccionan como posiciones de memoria.

Se requiere:

Un Microprocesador de 8 bits (Z80, 8085,...)2 K de memoria EPROM. (26716)Algo de memoria RWM. (6116 o de menor capacidad)

PPI 8255 (24 líneas E/S*)

* Solo se usan 16 líneas. Los puertos se seleccionan como posiciones de memoria.

Page 16: Micro Control Adores en Control I-Luis Urdaneta

16

...Sistema simple con µP...Sistema simple con µP

Diagrama del microprocesador, el generador de reloj y el circuito de

inicialización.

Page 17: Micro Control Adores en Control I-Luis Urdaneta

17

...Sistema simple con µP...Sistema simple con µP

µP

Unidad central de procesamiento

Page 18: Micro Control Adores en Control I-Luis Urdaneta

18

...Sistema simple con µP

...Sistema simple con µP

Mapa de direcciones de memoria

Page 19: Micro Control Adores en Control I-Luis Urdaneta

19

...Sistema simple con µP

...Sistema simple con µP

0000H

07FFH

0FFFH

17FFH

FFFFH

Memoria de programa

Memoria de datos

Puertos de E/S

Page 20: Micro Control Adores en Control I-Luis Urdaneta

20

...Sistema simple con µP

...Sistema simple con µP

De acuerdo con lo indicado por el mapa de direcciones de memoria se diseñó el circuito decodificador que se muestra a continuación...

Page 21: Micro Control Adores en Control I-Luis Urdaneta

21

Decodificador de direcciones

...Sistema simple con µP

...Sistema simple con µP

Page 22: Micro Control Adores en Control I-Luis Urdaneta

22

...Sistema simple con µP

...Sistema simple con µP

Diagrama eléctrico de la sección de memoria y puer- tos de entrada/salida del µC...

Page 23: Micro Control Adores en Control I-Luis Urdaneta

23Sección de memoria y E/S

...Sistema simple con µP

...Sistema simple con µP

Page 24: Micro Control Adores en Control I-Luis Urdaneta

24

...Sistema simple con µP

...Sistema simple con µP

Diagrama final del del µC*

*No se muestra el µP

Page 25: Micro Control Adores en Control I-Luis Urdaneta

25

...Sistema simple con µP

...Sistema simple con µP

Page 26: Micro Control Adores en Control I-Luis Urdaneta

26

Aplicación con entradas y salidas análogicas

• Los conectores CON1 y CON2 permiten la transferen- cia de datos entre el µP y el mundo real.

• No siempre es suficiente disponer de entradas/salidas digitales, la mayoría de las aplicaciones requieren ad- quirir y/o transmitir señales de naturaleza análoga...

• Los conectores CON1 y CON2 permiten la transferen- cia de datos entre el µP y el mundo real.

• No siempre es suficiente disponer de entradas/salidas digitales, la mayoría de las aplicaciones requieren ad- quirir y/o transmitir señales de naturaleza análoga...

Page 27: Micro Control Adores en Control I-Luis Urdaneta

27

Aplicación con entradas y salidas análogicas

En sistemas con µP es necesario una etapa adicional para realizar la conversión de las señales de entrada y salida al formato adecuado.

En sistemas con µP es necesario una etapa adicional para realizar la conversión de las señales de entrada y salida al formato adecuado.

Page 28: Micro Control Adores en Control I-Luis Urdaneta

28

Suponga que el mismo µC con E/S digitales del controlador de secuencia, debe usarse para:

• Adquirir datos de la temperatura en 8 puntos de una máquina.

• Calcular la temperatura promedio.

• Retornar este valor al proceso como información analógica.

Suponga que el mismo µC con E/S digitales del controlador de secuencia, debe usarse para:

• Adquirir datos de la temperatura en 8 puntos de una máquina.

• Calcular la temperatura promedio.

• Retornar este valor al proceso como información analógica.

Aplicación con entradas y salidas análogicas

Page 29: Micro Control Adores en Control I-Luis Urdaneta

29

Aplicación con entradas y salidas análogicas

• El microcomputador de la transparencia 23.

• Un multiplexor para transferir al CAD la temperatura en cada canal de medida.

Para cumplir con el objetivo se requiere:

• Un CAD para convertir a una representación digital la tensión análoga función de la temperatura en el punto de medición.

Page 30: Micro Control Adores en Control I-Luis Urdaneta

30

...Aplicación con entradas y salidas análogicas

• Un puerto de entrada para controlar el proceso de S/H de los datos, y el inicio de la conversión.

• Un CDA para convertir en una tensión analóga equivalente la señal digital de Tpromedio.

Page 31: Micro Control Adores en Control I-Luis Urdaneta

31

Aplicación con entradas y salidas análogicas

En el siguiente diagrama eléctrico, los compo- nentes con fondo color naranja corresponden a la etapa de conversión de datos.

Page 32: Micro Control Adores en Control I-Luis Urdaneta

32

Sección de Adquisición de datos del µC

Page 33: Micro Control Adores en Control I-Luis Urdaneta

33

Observe bien la estructura del µC

usadoen las dos

aplicaciones descritas.

Page 34: Micro Control Adores en Control I-Luis Urdaneta

34

Los elementos y la organización del µC se mantiene invariable en cualquier

aplicación de medición, instrumentación y control.

Page 35: Micro Control Adores en Control I-Luis Urdaneta

35

Los dispositivos de memoria, Entrada/salida y el decodificador de direcciones corresponden

a circuitos integrados, los cuales operan como unidades independientes.

Page 36: Micro Control Adores en Control I-Luis Urdaneta

36

Para simplificar el diseño de aplicaciones de adquisición, medición, y control de datos,

los elementos básicos del µC se integran en el interior del chip.

Page 37: Micro Control Adores en Control I-Luis Urdaneta

37

Para simplificar el diseño y disminuir los costos de desarrollo de las

aplicaciones, los elementos

componentes del µC se integran en el interior

del encapsulado.

PUERTOS

RWMEPROM

µP

El dispositivo resultado de la integración se denomina µControlador o µC monopastilla

Page 38: Micro Control Adores en Control I-Luis Urdaneta

38

Microcomputador Monopastilla

Un microcontrolador es un µC monopastilla, dirigido a operar en ambiente industrial.

A diferencia del microprocesador, el cual es diseñado para un amplio espectro de aplica- ciones, los µCtrls se diseñan para aplicaciones específicas.

Estos tienden a incluir todos periféricos de la sección del computador del sistema empotrado.

Page 39: Micro Control Adores en Control I-Luis Urdaneta

39

A diferencia de los µPs modernos, los cuales son diseñados como procesadores de propósito general, los µCtrl se diseñan generalmente para una aplicación específica. Pudiendo afir- marse que existe un Ctrl para cada necesidad.

En caso de requerirse reprogramación para cambiar o ajustar algunos parámetros de interés,es necesario un área de memo- ria tipo EEPROM o Flash EPROM, las cuales son programa- bles/borrables por medio de impulsos eléctricos.

Para generar interrupciones periódicas, registrar el tiempo en el cual ocurre un evento externo, o generar señales de sali- da de duración o frecuencia determinada, debe recurrirse a temporizadores, los cuales pueden ser desde simples contado- res programables, hasta subsistemas complejos con micro- motores dedicados de arquitectura RISC.

Para habilitar al µC para adquirir señales analógicas provenien- tes de los sensores debe disponerse un CAD de varios canales.Si el sistema desarrollado debe enviar o recibir información deotro µCtrl, computador, o red, es imprescindible un canal de co-municación serie.

Aunque por razones técnicas rara vez se integran CDA en elµCtrl, si la aplicación demanda este recurso algunos disposi-tivos incorporan salidas moduladas por variación del ancho de pulso para realizar el proceso de conversión D/A

µCtrls como el AT89C52 y AT89C55 de ATMEL almacenan el programa en una memoria Flash EEPROM reprogramable, de 8 y 20 Kbytes repectivamente.

Page 40: Micro Control Adores en Control I-Luis Urdaneta

40

Microcontrolador C167R

El µCtrl C167R es un disposi-tivo de 16 bits destinado al con- trol de variadores de frecuen- cia, aloja todos los elementos de un µC y múltiples controla- dores de periféricos.

Page 41: Micro Control Adores en Control I-Luis Urdaneta

41

Detalle de la organizaión interna del µCtrl C167R

Page 42: Micro Control Adores en Control I-Luis Urdaneta

42

...organizaión interna del µCtrl C167R

Page 43: Micro Control Adores en Control I-Luis Urdaneta

43

Aplicaciones de los microcontroladores

Los µCtrls modernos se encuentran empotrados en ju- guetes, automoviles, artefactos electrodomésticos, misiles teleguíados y en otras miles aplicaciones.

Las aplicaciones* se pueden agrupar en dos categorías: Control de estado.

Control de lazo cerrado.

* Información detallada sobre las aplicaciones se encuentran en el material entregado con antelación

Page 44: Micro Control Adores en Control I-Luis Urdaneta

44

Periféricos comunes en µctrl y sus aplicacionesPeriféricos comunes en µctrl y sus aplicaciones

Control de presión de aire

FUNCIÓN AUTOMÓVIL CONSUMIDOR PERIFÉRICOS

CPU 4-8 BITS Radio Audio Teclado

CPU 16 BITS Sistemas ABS Controlador de disco

CPU 32 BITS Control de motores Controlador inteligente de disco

EEPROM Odometro Programación de televisores Configuración de modem

TIMERSControl de inyec- ción de gasolina

Velocidad de obturador de cámaras

Codificador de ejes en ratones ópticos

SERIE ASINCRÓNICO

Comunicación en el auto Comunicación en alarmas Lazo RS232 con modem

SERIE SINCRÓNICO

Controlador de luces

Comunicación entre componentes

Reloj de tiempo real en PC

CADSensor de temperatura en

termostato de AAVoltaje de la batería en

laptops

E/S PARALELA Tablero indicador Panel frontal de VCR Estado de teclados

Page 45: Micro Control Adores en Control I-Luis Urdaneta

45

¿Cómo seleccionar un Microcontrolador?

¿Cómo seleccionar un Microcontrolador?

La culminación de un proyecto a tiempo, ajustado al presupuesto, y de acuerdo con las especificaciones, depende en modo vital de una correcta escogencia del µCtrl.

Page 46: Micro Control Adores en Control I-Luis Urdaneta

46

Seleccionar la longitud de palabra del µCtrl, de acuerdo con el nivel de desempeño exigido por la aplicación. Están disponibles disposi- tivos de 4, 8,16 y 32 bits.

Para esto es necesario, calcular las restricciones de procesamiento en tiempo real y las limitaciones físicas características del sistema en desarrollo. Los computos de tiempo crítico son aquellos que si no se completan en un tiempo determinado pueden hacer que el sis- tema pierda la sincronización o entregue reultados incorrectos.

¿Cómo seleccionar un Microcontrolador?¿Cómo seleccionar un Microcontrolador?

Paso I

Page 47: Micro Control Adores en Control I-Luis Urdaneta

47

Por ejemplo, si un temporizador debe generar una señal cuadrada a una frecuencia específicada, la CPU debe ser lo suficientemente rá- pida para calcular el instante de ocurrencia de las transiciones de la onda y programar el temporizador en forma apropiada.

La precisión y el rango dinámico son limitaciones físicas impuestas por la aplicación. Considere el caso de una máquina de control nu- mérico que requiere una precisión relativa de 1 grado en una revolu- ción de un eje. Para lograr tal exactitud no es suficiente con una resolución de 1/256 obtenida con valores de 8 bits, por lo cual es necesario un µCtrl de 16 bits capaz de resolver 1 parte en 65536.

¿Cómo seleccionar un Microcontrolador?¿Cómo seleccionar un Microcontrolador?

Page 48: Micro Control Adores en Control I-Luis Urdaneta

48

Sí la misma máquina debe tener un rango dinámico que provea una precisión absoluta de 1 grado a través de 1000 revoluciones, aún con 16 bits es imposible representar el rango completo. En tal caso el diseñador debe seleccionar un µCtrl de 32 bits. Para rangos ma- yores debe recurrirse a representación de punto flotante.

Sí la mayoría de los computos de la aplicación son de baja reso- lución, la selección debe ser realizada en función de estos, y eje- cutar los cálculos de alta resolución usando un paquete de punto flotante.

¿Cómo seleccionar un Microcontrolador?¿Cómo seleccionar un Microcontrolador?

Page 49: Micro Control Adores en Control I-Luis Urdaneta

49

Paso II

Determinar la capacidad de memoria para el almacenamiento del programa y los datos. No existen reglas para estimar la cantidad de memoria ROM (EPROM) para almacenar el programa de aplicación.

Con apoyo de un diagrama de bloques del sistema a diseñar, estable- cer el número, tipo (análoga o digital), nivel de V/I, modo de transmi-sión (serie o paralelo) de todas las señales de E/S.

Paso III

¿Cómo seleccionar un Microcontrolador?¿Cómo seleccionar un Microcontrolador?

Page 50: Micro Control Adores en Control I-Luis Urdaneta

50

La experiencia del diseñador junto con una revisión del seudocodigo o del diagrama de flujo del programa son,quizás, las únicas herra- mientas disponibles. En la práctica, para una aplicación simple de control de temperatura, basta con 2 Kbytes, mientrás que para una aplicación de control más compleja pueden ser necesarios 64 Kbytes o más.

La extensión de la memoria RWM debe ser tal que permita almacenar los datos adquiridos, contener el área de la pila, salvar resultados intermedios de cálculos, o servir como buffer de almacenamiento. Una regla empirica para determinar la capacidad de RWM es una razón . El uso de lenguajes compilados o buffers de gran capacidad incrementará esta proporción.

151

ROMRWM

¿Cómo seleccionar un Microcontrolador?¿Cómo seleccionar un Microcontrolador?

Page 51: Micro Control Adores en Control I-Luis Urdaneta

51

Se asignan las funciones de cada periférico del µCtrl, de acuerdo con las necesidades derivadas de lo establecido en el paso II. Los dispositivos externos con funciones que no son soportadas por el Ctrl, puden ser interconectados a éste por medio de los puertos paralelos.

Cuando sea posible, es perferible que conecte el periférico usando el puerto serie debido a que la continua conmutación del grupo de líneas del puerto paralelo genera interferencia de radiofrecuencia. Algunos dispositivos como CAD, PLL, controladores de display, relojes de tiempo real, y EEPROM pueden ser conectados vía serie.

Paso IV

¿Cómo seleccionar un Microcontrolador?¿Cómo seleccionar un Microcontrolador?

Page 52: Micro Control Adores en Control I-Luis Urdaneta

52

Los puertos paralelos programables como entrada o salida los ofrecen todos los µCtrls y algunos pueden ser programados por pines individuales.

Son comunes los µCTrls con CAD integrados de 1 a 8 canales y con resoluciones de 8 y 1 bits. Deben examinarse con detenimiento las especificaciones de este subsistema y establecer si satisfacen necesidades de conversión A/D de la aplicación en desarrollo. Algunos dispositivos permiten programar estas entradas (8 canales) como puerto de entrada digital. La conversión D/A puede realizarse por medio de salidas (1 a 3) PWM.

¿Cómo seleccionar un Microcontrolador?¿Cómo seleccionar un Microcontrolador?

Page 53: Micro Control Adores en Control I-Luis Urdaneta

53

Debe calcularse el consumo de potencia y el rango de temperatura en el cual debe operar el sistema. Si éste es alimentado con baterías o debe funcionar en un rango extenso de temperatura es preferible usar un dispositivo fabricado con tecnología CMOS, en caso contra- rio una versión NMOS es una selección de menor costo.

Las necesidades de memoria del diseño pueden superar la capacidad ofrecida por los µCtrl seleccionados hasta este paso, en virtud de un programa muy extenso o la existencia de grandes estructuras de datos. En tal caso el µCtrl debe operar en modo µP, conectandoles memoria externa para el programa y/o datos.

Paso V

Paso VI

¿Cómo seleccionar un Microcontrolador?¿Cómo seleccionar un Microcontrolador?

Page 54: Micro Control Adores en Control I-Luis Urdaneta

54

Agunos fabricantes ofrecen una versión de bajo costo de su dispo- sitivo básico, el cual no incorpora memoria interna.

Debe calcularse el consumo de potencia y el rango de temperatura en el cual debe operar el sistema. Si éste es alimentado con baterías o debe funcionar en un rango extenso de temperatura es preferible usar un dispositivo fabricado con tecnología CMOS, en caso contra- rio una versión NMOS es una selección de menor costo.

Paso VII

¿Cómo seleccionar un Microcontrolador?¿Cómo seleccionar un Microcontrolador?

Page 55: Micro Control Adores en Control I-Luis Urdaneta

55

En esta etapa del proceso de selección se tienen varios dispostivos que, en general, cumplen con las requerimientos del proyecto. Lo siguiente es realizar una selección por descarte. Agrupe las especi- ficaciones de la aplicación en orden de prioridad descendente, com- pare cada candidato con los resultados del paso IV y la lista de prio- ridades, y escoja el o los dispositivos más adecuados.

Paso VIII

Esta fase consiste en determinar la disponibilidad del producto, prestigio de la casa fabricante, prontitud en la entrega, y la exis- tencia de segundas fuentas. También conviene evaluar las herra- mientas disponibles para el procesos de desarrollo de la aplicación.

Paso VIII

¿Cómo seleccionar un Microcontrolador?¿Cómo seleccionar un Microcontrolador?

Page 56: Micro Control Adores en Control I-Luis Urdaneta

56

La familia de microcontroladores

INTEL MCS-51

La familia de microcontroladores

INTEL MCS-51

Page 57: Micro Control Adores en Control I-Luis Urdaneta

57

El 8051 es un microcontrolador rápido y sus carac- terísticas permiten su uso en aplicaciones de control de baja y mediana complejidad. Ofrece espacios separados de memoria, de 64 Kbytes para programa y 64 Kbytes para datos.

Su repertorio de instrucciones permite la ejecución de o- peraciones aritméticas y lógicas complejas, tales como: multiplicación, división, permutación, y desplazamientos de bits; trabajar con bancos de registros e incluso con 128 bits individuales de la memoria RAM.

El 8051El 8051

Page 58: Micro Control Adores en Control I-Luis Urdaneta

58

8751

8751

Disposición de terminales del 8051Disposición de terminales del 8051

Page 59: Micro Control Adores en Control I-Luis Urdaneta

59

87518751

AD0-AD7AD0-AD7

A8-A15A8-A15P3.2-P3.5P3.2-P3.5

P3.6-P3.7P3.6-P3.7

P3.0-P3.1P3.0-P3.1

Entradas y salidas del 8051Entradas y salidas del 8051

Page 60: Micro Control Adores en Control I-Luis Urdaneta

60

T E R M I N A L N O M B R E F U N C I Ó N 1 a 8 P 1 . 0 - P 1 . 7 E s u n p u e r t o d e E / S c o n r e s i s t o r e s p u l l - u p i n t e r n o s . E s

p r o g r a m a b l e c o m o p u e r t o b i d i r e c c i o n a l d e 8 b i t s o p o r p i n e s i n d i v i d u a l e s . C o m o p u e r t o d e s a l i d a , c a d a p i n s o -p o r t a 4 e n t r a d a s L S - T T L s i n r e s i s t o r e s e x t e r n o s . L o s t e r -m i n a l e s d e l p u e r t o q u e q u e t e n g a n e s c r i t o u n o s s o n l l e -v a d o s a n i v e l a l t o p o r e l r e s i s t o r p u l l - u p i n t e r n o , y e n e s t e c a s o p u e d e n s e r u s a d o s c o m o e n t r a d a s . D u r a n t e l a v e r i f i c a c i ó n d e l a m e m o r i a E P R O M i n t e r n a s i r -v e n c o m o e n t r a d a d e l a p a r t e b a j a d e l a s d i r e c c i o n e s .

9 R S T / V P U n n i v e l a l t o T T L a p l i c a d o a e s t a e n t r a d a , d u r a n t e a l m e -n o s d o s c i c l o s d e m á q u i n a , r e i n i c i a e l s i s t e m a

1 0 a l 1 7 P 3 . 7 - P 3 . 0 P u e r t o d e E / S d e 8 b i t s b i d i r e c c i o n a l c o n r e s i s t o r e s p u l l -u p i n t e r n o s . C o m o p u e r t o d e s a l i d a , c a d a p i n s o p o r t a 4 e n t r a d a s L S - T T L S i r v e t a m b i é n p a r a f u n c i o n e s e s p e c i a l e s .

Funciones de los terminalesFunciones de los terminales

Page 61: Micro Control Adores en Control I-Luis Urdaneta

61

T E R M I N A L N O M B R E F U N C I Ó N 1 8 X T A L 2 S a l i d a d e u n a m p l i f i c a d o r i n v e r s o r q u e p u e d e c o n f i g u r a r -

s e c o m o u n o s c i l a d o r i n t e r n o . S i s e u s a u n a f u e n t e e x t e r -n a d e r e l o j , s e a p l i c a a e s t a e n t r a d a .

1 9 X T A L E n t r a d a d e l a m p l i f i c a d o r i n v e r s o r . D e b e s e r c o n e c t a d o a t i e r r a c u a n d o s e u s e r e l o j e x t e r n o .

2 0 V S S C o n e x i ó n d e t i e r r a 2 1 a l 2 8 P 2 . 0 - P 2 . 7

( A 8 - A 1 5 ) P u e r t o b i d i r e c c i o n a l d e 8 b i t s . C o m o p u e r t o d e s a l i d a , c a -d a p i n s o p o r t a 4 e n t r a d a s L S - T T L s i n r e s i s t o r e s e x t e r n o s . L o s t e r m i n a l e s d e l p u e r t o q u e t e n g a n e s c r i t o u n o s s o n l l e v a d o s a n i v e l a l t o p o r e l r e s i s t o r p u l l - u p i n t e r n o , y e n e s t e c a s o p u e d e n s e r u s a d o s c o m o e n t r a d a s . E s u s a d o c o m o s a l i d a d e l b y t e m á s s i g n i f i c a t i v o d e l a s d i r e c c i o n e s d u r a n t e e l a c c e s o a m e m o r i a e x t e r n a . R e c i b e e l b y t e d e o r d e n a l t o d e l a s d i r e c c i o n e s d u r a n t e l a p r o g r a m a c i ó n d e l a E P R O M o e n l a v e r i f i c a c i ó n d e l p r o -g r a m a .

Funciones de los terminalesFunciones de los terminales

Page 62: Micro Control Adores en Control I-Luis Urdaneta

62

FUNCIONES ESPECIALES DE LOS TERMINALES DEL PUERTO 3

P3.0 RxD: Receptor asincrónico del puerto serie o entrada y salida sincrónica de da os.

P3.1 TxD: Salida asincrónica del puerto serieo entrada o y salida de reloj para regis- tros

externos desplazamiento.

P3.2 INT0: Interrupción 0 o bit de control para el temporizador/contador 0.

P3.3 INT1: Interrupción 1 o bit de control para el temporizador/contador 1.

P3.4 T0: Entrada externa del el temporizador/contador de eventos 0.

P3.5 T1: Entrada externa del el temporizador/contador de eventos 1.

P3.6 WR: Señal de escritura para memoria externa de datos.

P3.7 RD: Señal de lectuta para memoria externa de datos.

Funciones de los terminalesFunciones de los terminales

Page 63: Micro Control Adores en Control I-Luis Urdaneta

63

T E R M I N A L N O M B R E F U N C I Ó N

2 9

P S E N S a l i d a a c t i v a e n n i v e l b a j o p a r a h a b i l i t a c i ó n d e l a l e c t u r a d e m e m o r i a e x t e r n a d e p r o g r a m a .

3 0

A L E / P R O G

P e r m i t e s e p a r a r e l b y t e b a j o d e d i r e c c i o n e s , e l c u a l e s t á m u l t i p l e x a d o c o n l o s d a t o s . T a m b i é n r e c i b e u n p u l s o d e e n t r a d a d u r a n t e l a g r a b a c i ó n d e l a m e m o r i a i n t e r n a d e p r o g r a m a .

3 1

E A

E n n i v e l l ó g i c o b a j o , h a b i l i t a a l C P U a b u s c a r c ó d i g o e n l a m e m o r i a e x t e r n a d e p r o g r a m a . E n e s t a d o a l t o e j e c u t a i n s -t r u c c i o n e s a l m a c e n a d a s e n l a m e m o r i a i n t e r n a . E s t e t e r m i n a l s e m a n t i e n e a u n a t e n s i ó n d e 2 1 . 0 V d u r a n -t e l a p r o g r a m a c i ó n d e l a m e m o r i a i n t e r n a d e p r o g r a m a .

3 2 a l 3 9 P 0 . 7 - P 0 . 0 ( A D - A D 0 )

P u e r t o d e E / S . C o m o s a l i d a , c a d a p i n s o p o r t a 4 e n t r a d a s L S - T T L . L o s p i n e s q u e t e n g a n 1 s s o n l l e v a d o s a n i v e l a l t o p o r e l r e s i s t o r p u l l - u p i n t e r n o , y p u e d e n s e r u s a d o s c o m o e n t r a d a s d e a l t a i m p e d a n c i a . D u r a n t e l a p r o g r a m a c i ó n d e l a E P R O M d e l a E P R O M , r e c i b e e l b y t e d e c ó d i g o .

4 0 V C C + 5 V d u r a n t e o p e r a c i ó n n o r m a l .

Funciones de los terminalesFunciones de los terminales

Page 64: Micro Control Adores en Control I-Luis Urdaneta

64

Versiones del microcontroladorVersiones del microcontrolador

El 8051 original fue diseñado por Intel. Las funciones de 4 de los primeros miembros de la familia MCS-51 son:El 8051 original fue diseñado por Intel. Las funciones de 4 de los primeros miembros de la familia MCS-51 son:

M E M O R I A I N T E R N A

T I P O C A P A C I D A D

R O M E P R O M N IN G U N A C Ó D I G O R A M T IM E R S T E C N O L O G ÍA 8 0 5 1 8 7 5 1 8 0 3 1 4 K 1 2 8 2 H M O S

8 0 5 1 A H 8 7 5 1 A H 8 0 3 1 A H 4 K 1 2 8 2 H M O S 8 0 5 2 A H 8 7 5 2 A H 8 0 3 2 A H 8 K 2 5 6 3 H M O S

8 0 C 5 1 B H 8 7 C 5 1 8 0 C 3 1 B H 4 K 1 2 8 2 C M O S

M E M O R I A I N T E R N A

T I P O C A P A C I D A D

R O M E P R O M N IN G U N A C Ó D I G O R A M T IM E R S T E C N O L O G ÍA 8 0 5 1 8 7 5 1 8 0 3 1 4 K 1 2 8 2 H M O S

8 0 5 1 A H 8 7 5 1 A H 8 0 3 1 A H 4 K 1 2 8 2 H M O S 8 0 5 2 A H 8 7 5 2 A H 8 0 3 2 A H 8 K 2 5 6 3 H M O S

8 0 C 5 1 B H 8 7 C 5 1 8 0 C 3 1 B H 4 K 1 2 8 2 C M O S

Existen al menos catorce fabricantes de microcon- troladores basados y compatibles con el 8051, quie- nes producen casi 300 versiones del dispositivo. En el programa µVision de Keil Software se encuentran las especificaciones de cada modelo.

Existen al menos catorce fabricantes de microcon- troladores basados y compatibles con el 8051, quie- nes producen casi 300 versiones del dispositivo. En el programa µVision de Keil Software se encuentran las especificaciones de cada modelo.

Sólo la empresa holandesa Philips produce 40 modelos.

Sólo la empresa holandesa Philips produce 40 modelos.

Page 65: Micro Control Adores en Control I-Luis Urdaneta

65

8051

Básico

8051

Básico

El 8051 original es el hardware básico de los dispositivos miembros de la familia MCS-85. Sus características son:

• CPU de 8 bits diseñado para aplicaciones de control.• Capacidad de procesamiento con lógica de bit .• 64 Kbytes de espacio de memoria para código.• 64 Kbytes de memoria para datos. • 4 Kbytes de memoria interna para código. • 128 bytes de RAM interna.• 32 líneas de E/S, programables individualmente o por grupos. • 2 contadores/temporizadores de 16 bits. • UART Full Duplex. • Generador de reloj interno.

• CPU de 8 bits diseñado para aplicaciones de control.• Capacidad de procesamiento con lógica de bit .• 64 Kbytes de espacio de memoria para código.• 64 Kbytes de memoria para datos. • 4 Kbytes de memoria interna para código. • 128 bytes de RAM interna.• 32 líneas de E/S, programables individualmente o por grupos. • 2 contadores/temporizadores de 16 bits. • UART Full Duplex. • Generador de reloj interno.

La organización de las unidades

del dispositivo es como muestra el diagrama de bloques

La organización de las unidades

del dispositivo es como muestra el diagrama de bloques

Características del 8051Características del 8051

Page 66: Micro Control Adores en Control I-Luis Urdaneta

66

ROM4K bytes

ROM4K bytes

Control INT

Control INT

RAM 128 bytes

RAM 128 bytes

Timer 1

Timer 0

Timer 1

Timer 0

CPUCPU

Generador de reloj

Generador de reloj

Puerto serie

Puerto serie

Puertos de E/S

Puertos de E/SControl

de bus

Control de bus

Interrupciones externas

Interrupciones externas

Entradas contador

Entradas contador

P0 P2 P1

P3

P0 P2 P1

P3

Tx Rx Tx Rx

Diagrama de bloques del 8051 estándarDiagrama de bloques del 8051 estándar

Page 67: Micro Control Adores en Control I-Luis Urdaneta

67

A partir de aquí se describe cada bloque, iniciando con la

memoria.

A partir de aquí se describe cada bloque, iniciando con la

memoria.

Page 68: Micro Control Adores en Control I-Luis Urdaneta

68

Para programar en forma eficiente al 8051 es necesario conocer los tipos de memoria y como

está distribuido el espacio total. El µCtrl dispone de tres clases generales de memoria.

Para programar en forma eficiente al 8051 es necesario conocer los tipos de memoria y como

está distribuido el espacio total. El µCtrl dispone de tres clases generales de memoria.

Page 69: Micro Control Adores en Control I-Luis Urdaneta

69

Memoria externa de datos

Memoria de RAM en el exte- rior del encapsulado. Nor- malmente como RAM está -tica o Flash RAM.

Memoria externa de código

Memoria de programa, físi-camente fuera del chíp. Es común el uso de una EPROM externa.

organización de la memoriaorganización de la memoria

RAM interna

Interna para código

FSRs

Externa para código

8051

RAM Externa

Memoria interna

Identifica a cualquier tipo de memoria: código, RAM u o- tras, que resida en el inte- rior del chip

Page 70: Micro Control Adores en Control I-Luis Urdaneta

70

Memoria InternaMemoria Interna

R O M / E P R O M

R O M / E P R O M

0000H0000H

0FFFH0FFFH

DATOS

0000H0000H

007FH007FH

Registros

de Funciones

Especiales0080H

0080H

00FFH00FFH

El 8051 tiene en su interior:4 Kbytes de memoria de código.128 bytes de RAMLos registros de funciones especiales del CPU.

Esta configuración es suficiente para aplicaciones de poca

complejidad.

Programa Datos

Page 71: Micro Control Adores en Control I-Luis Urdaneta

710000H0000H

ROM INTERNA

4 K

0FFFH0FFFH

1000H1000H

Para aplicaciones que requieran expansión de la memoria de programa, existen dos opciones:I. Usar los 4 Kbytes internos y conectar los 60 Kbytes restantes como un

dispositivo externo de memoria, oII. Los 64 Kbytes de código residen en una memoria externa.

Memoria de Código

Para expansión de la memoria de datos es posible colocar 64 Kbytes adicionales e independientes de la RAM interna.

Memoria de Datos

EA=1 EA=0EA=0

E P R O

M

E X T E R N

A

E P R O

M

E X T E R N

A

FFFFHFFFFH

60 K60 K

FFFFHFFFFH

E P R O

M

E X T E R

N A

E P R O

M

E X T E R

N A

0000H0000H

R A

M

E X T E R

N A

R A

M

E X T E R

N A

0000H0000H

FFFFHFFFFH

RD RD

WR WR

Memoria ExternaMemoria Externa

PSENPSEN

Page 72: Micro Control Adores en Control I-Luis Urdaneta

72

La memoria de códigoLa memoria de código

Si el terminal EA está en estado bajo, la CPU buscará las instrucciones del programa desde las dirección 0000H hasta 0FFFH de la memoria interna, y desde 1000H hasta FFFFH de la memoria externa. En caso que EA esté en nivel lógico bajo. Todo el pro- grama será obtenidodesde memoria externa.

Es el área de memoria donde reside el programa que ejecutará el 8051. Está limitada a 64 Kbytes. Puede encontrarse en el interior del dispositivo como una ROM, EPROM o PEROM (memoria Flash programable y borrable). Es posible tener combinaciones de estos tipos de memoria: pueden usarse los 4K de memoria interna y 60K en una EPROM Externa, o tener todos los 64 K fuera del dispositivo. La señal que permite la lectura de la memoria externa es PSEN.

Page 73: Micro Control Adores en Control I-Luis Urdaneta

73

Para expandir el sistema con EPROM, RAM, o E/S externas es necesario sacrificar los puertos internos P0 y P2 para extraer los buses de direcciones y de datos. Este último aparece en P0 multiplexado en el tiempo con el byte bajo de las direc- ciones.

...La memoria de código...La memoria de código

Page 74: Micro Control Adores en Control I-Luis Urdaneta

74

Diagrama funcional del sistema expandido, con el

programa en EPROM externa...

...La memoria de código...La memoria de código

Page 75: Micro Control Adores en Control I-Luis Urdaneta

75

Durante el acceso a memoria externa, el byte de orden bajo de las direcciones A0-A7 aparece en P0. P0 pasa a estado flotante en espera de la palabra de código. El byte bajo de direccio- nes es cargado por la señal ALE en el registro de 8 bits. Simultáneamente P2 emite el byte alto de direcciones A8-A15

La señal de habilitación de lectura de memoria externa PSEN, conectada a la entrada de lectura de la EPROM, se activa a nivel bajo, y el byte de la instrucción es transferido hacia el microcontrolador a través del puerto P0.

...La memoria de código...La memoria de código

Page 76: Micro Control Adores en Control I-Luis Urdaneta

76

Diagrama eléctrico del Sistema expandido, con el

programa en eprom externa...

...La memoria de código...La memoria de código

Page 77: Micro Control Adores en Control I-Luis Urdaneta

77

Conexión de 8 Kbytes de memoria EPROMConexión de 8 Kbytes de memoria EPROM

Page 78: Micro Control Adores en Control I-Luis Urdaneta

78

La memoria externa de datos

La memoria externa de datos

La RAM externa es lenta comparada con la interna. Como ejemplo, para incre- mentar en 1 el contenido de una posición la RAM en el chip, es necesario ejecutar 1 instrucción con duración de 1 ciclo.

Para realizar la misma operación en una celda de la RAM externa al dispositivo, se ejecutan 4 instrucciones y 7 ciclos de instrucción. Usando RAM externa se alcan-za capacidad, pero se pierde velocidad y flexibilidad.

Mientras la memoria RAM interna está limitada a 128 bytes (256 bytes en el 8052), el 8051 soporta RAM externa hasta 64 Kbytes. Las señales RD y WR permiten el ac- ceso a la memoria externa de datos

Page 79: Micro Control Adores en Control I-Luis Urdaneta

79

Cuando el µCtrl opera en modo µP, una posición la RAM interna, digamos 25H, tendrá la misma dirección en la externa, pero corres- ponden a celdas físicas distintas, distinguiendose por las instruc- ciones de acceso a memoria.

Ejemplo

Para copiar el contenido del acumulador a la posición 50H interna, se usa, mov 50h,a

Para escribirlo en la dirección 50h externa debe recurrirse al direc- cionamiento indexado, mov r0,#350h movx @r0,a

...La memoria externa de datos...La memoria externa de datos

Page 80: Micro Control Adores en Control I-Luis Urdaneta

80

mov → RAM Interna movx → RAM Externa

...La memoria externa de datos...La memoria externa de datos

Page 81: Micro Control Adores en Control I-Luis Urdaneta

81

Diagrama funcional del sistema con programa en EPROM

interna y memoria externa para datos

Diagrama funcional del sistema con programa en EPROM

interna y memoria externa para datos

...La memoria externa de datos...La memoria externa de datos

Page 82: Micro Control Adores en Control I-Luis Urdaneta

82

El diagrama funcional muestra la conexión de una 8 Kbytes de memoria de datos externa. El byte menos significativo,A0-A7, de las direcciones se toma desde P0, y las 5 líneas restantes A8-A12 del puerto P2. Las señales RD y WR permiten el acceso a la RAM.

El diagrama funcional muestra la conexión de una 8 Kbytes de memoria de datos externa. El byte menos significativo,A0-A7, de las direcciones se toma desde P0, y las 5 líneas restantes A8-A12 del puerto P2. Las señales RD y WR permiten el acceso a la RAM.

Page 83: Micro Control Adores en Control I-Luis Urdaneta

83

Conexión de 8 Kbytes de memoria RWMConexión de 8 Kbytes de memoria RWM

Page 84: Micro Control Adores en Control I-Luis Urdaneta

84

...La memoria interna de datos ...La memoria interna de datos

Esta área de memoria es de dos tipos: Esta área de memoria es de dos tipos:

1. RAM Interna y

2.Registros de funciones Especiales (FSRs).

1. RAM Interna y

2.Registros de funciones Especiales (FSRs).

Page 85: Micro Control Adores en Control I-Luis Urdaneta

85

La distribución de esta área de memoria se muestra en el

siguiente mapa...

La distribución de esta área de memoria se muestra en el

siguiente mapa...

...La memoria interna de datos ...La memoria interna de datos

Page 86: Micro Control Adores en Control I-Luis Urdaneta

86

...La memoria interna de datos ...La memoria interna de datos

RAM general de usuario y área de la pila 80 bytes

(30H-7FH)

RAM general de usuario y área de la pila 80 bytes

(30H-7FH)

Registros de funciones especiales (80H-FFH)

Registros de funciones especiales (80H-FFH)

IRAMIRAM

Page 87: Micro Control Adores en Control I-Luis Urdaneta

87

Los primeros 32 bytes (00-1F) de la RAM interna corresponde a 4 bancos de re –gistros, banco 0-banco 3.

Los 128 bytes (00H-7FH) del banco de RAM interna forman la RAM más rápida y flexible en términos de manipulación de su contenido. Durante una operación de reset esta memoria es llenada con ceros. Esta subdividida en tres zonas:

El banco 0 ocupa los primeros 8 bytes (00-07H). Programando ciertos SFRs se selecciona cada banco.

...La memoria interna de datos ...La memoria interna de datos

Page 88: Micro Control Adores en Control I-Luis Urdaneta

88

Las direcciones individules de los bits son,

Las direcciones en el rango 20H hasta 2FH constituyen la memoria de bits, segunda zona de la de la RAM interna.

...La memoria interna de datos ...La memoria interna de datos

Page 89: Micro Control Adores en Control I-Luis Urdaneta

89

D I R E C C I Ó N

B I T B YT E 7 6 5 4 3 2 1 0

7 F H 7 E H 7 D H 7 C H 7 B H 7 A H 7 9 H 7 8 H 2 F H

7 7 H 7 6 H 7 5 H 7 4 H 7 3 H 7 2 H 7 1 H 7 0 H 2 E H

6 F H 6 E H 6 D H 6 C H 6 B H 6 A H 6 9 H 6 8 H 2 D H

6 7 H 6 6 H 6 5 H 6 4 H 6 3 H 6 2 H 6 1 H 6 0 H 2 C H

5 F H 5 E H 5 D H 5 C H 5 5 B H 5 5 A H 5 9 H 5 8 H 2 B H

5 7 H 5 6 H 5 5 H 5 4 H 5 3 H 5 2 H 5 1 H 5 0 H 2 A H

4 F H 4 E H 4 D H 4 C H 4 5 B H 4 5 A H 4 9 H 4 8 H 2 9 H

4 7 H 4 6 H 4 5 H 4 4 H 4 3 H 4 2 H 4 1 H 4 0 H 2 8 H

3 F H 3 E H 3 D H 3 C H 3 5 B H 3 5 A H 3 9 H 3 8 H 2 7 H

3 7 H 3 6 H 3 5 H 3 4 H 3 3 H 3 2 H 3 1 H 3 0 H 2 6 H

2 F H 2 E H 2 D H 2 C H 2 5 B H 2 5 A H 2 9 H 2 8 H 2 5 H

2 7 H 2 6 H 2 5 H 2 4 H 2 3 H 2 2 H 2 1 H 2 0 H 2 4 H

1 F H 1 E H 1 D H 1 C H 1 5 B H 1 5 A H 1 9 H 1 8 H 2 3 H

1 7 H 1 6 H 1 5 H 1 4 H 1 3 H 1 2 H 1 1 H 1 0 H 2 2 H

0 F H 0 E H 0 D H 0 C H 0 B H 0 A H 0 9 H 0 8 H 2 1 H

0 7 H 0 6 H 0 5 H 0 4 H 0 3 H 0 2 H 0 1 H 0 0 H 2 0 H

Page 90: Micro Control Adores en Control I-Luis Urdaneta

90

El bloque restante, 80 posiciones desde 30H hasta 7FH, puede ser usado por el programador para almacenamiento temporal de información que requiera ser salvada o recuperada a alta velocidad. El area de la pila (stack) también reside en esta zona de la RAM interna.

RAM general de usuario y área de la

pila 80 bytes

RAM general de usuario y área de la

pila 80 bytes

...La memoria interna de datos ...La memoria interna de datos

Page 91: Micro Control Adores en Control I-Luis Urdaneta

91

Cada banco esta formado por 8 registros, R0 R1 R2 R3 R4 R5 R6 R7, los cuales son utilizados por muchas instrucciones. Permiten la ma- nipulación de bytes y transferir datos entre posiciones de memoria.

Bancos de RegistrosBancos de Registros

La instrucción inc,Rn

Incrementa el contenido del registro Rn, n=0,7.

Si R5 contiene el valor 2CH, despues de ejecutar esta instrucción contendrá 2DH.

Por ejemplo:

...La memoria interna de datos ...La memoria interna de datos

Page 92: Micro Control Adores en Control I-Luis Urdaneta

92

...Bancos de Registros

La instrucción subb A,R6 Substrae el valor en R6 del contenido del registro acumulador, A.

Es equivalente a subb A,06H debido a que el registro R6 del banco 0, corresponde a la dirección 06H de la RAM interna

...La memoria interna de datos ...La memoria interna de datos

El banco 0 se selecciona por defecto durante el proceso de arran- que del sistema.

Los bancos de registros son especialmente útiles para el manejo de interrupciones.

Page 93: Micro Control Adores en Control I-Luis Urdaneta

93

...Bancos de Registros

...La memoria interna de datos ...La memoria interna de datos

En el caso que solo se use el banco 0, las posiciones de la RAM interna en el rango

08H-1FH están disponibles para uso general. Si se usan todos los bancos, cualquier

transferencia a una dirección por debajo de 20H, destruirá el contenido del registro Rn

que tiene esa dirección

En el caso que solo se use el banco 0, las posiciones de la RAM interna en el rango

08H-1FH están disponibles para uso general. Si se usan todos los bancos, cualquier

transferencia a una dirección por debajo de 20H, destruirá el contenido del registro Rn

que tiene esa dirección

Page 94: Micro Control Adores en Control I-Luis Urdaneta

94

Para simplificar su uso en aplicaciones de control, el 8051 permite el uso de variables tipo bits. Éstas solo pueden tener los valores lógicos 0 ó 1. Existen 128 variables bits enumeradas desde 00H a 7FH.

Existen comandos específicos para el manejo de estas variables.

...La memoria interna de datos ...La memoria interna de datos

Memoria de BitsMemoria de Bits

Las instrucciónes setb 1fh y clr 1fh

Ponen a 1 y 0, respectivamente, el bit con número 1FH, mientras que,

cpl 1fh, lo complementa.

Page 95: Micro Control Adores en Control I-Luis Urdaneta

95

Debido a que la memoria de bit es parte de la RAM interna al ocupar 16 bytes (20H-2FH) de esta área de almacenamiento, la instrucción:

mov 20h,#000h, es equivalente a

...La memoria interna de datos ...La memoria interna de datos

...Memoria de Bits

clr 00hclr 01hclr 02hclr 03hclr 04hclr 05hclr 06hclr 07h

Page 96: Micro Control Adores en Control I-Luis Urdaneta

96

...La memoria interna de datos ...La memoria interna de datos

...Memoria de Bits

En caso que no se use la memoria de bit, las posiciones de la RAM interna en el rango

20H-2FH están disponibles para uso general. En caso contrario, debe mantenerse la

precaución que cualquier escritura en estas direcciones sobrescribirá el valor de los bits.

En caso que no se use la memoria de bit, las posiciones de la RAM interna en el rango

20H-2FH están disponibles para uso general. En caso contrario, debe mantenerse la

precaución que cualquier escritura en estas direcciones sobrescribirá el valor de los bits.

Page 97: Micro Control Adores en Control I-Luis Urdaneta

97

...La memoria interna de datos ...La memoria interna de datos

...Memoria de Bits

Variables tipos bits sobre la dirección 80H son usadas para acceso a ciertos SFRs. Por ejemplo, si todas las líneas del puerto P0 estan en estado cero y se desea cambiar a uno lógico el estado de la línea P0.3, puede ejecutarse cualquiera de las siguientes instruc- ciones,

mov P0,#08h o setb 83h

Observe que el uso de mov afecta todas las líneas del puerto P0, mientras que setb solo cambia el estado de la línea P0.3.

Page 98: Micro Control Adores en Control I-Luis Urdaneta

98

...La memoria interna de datos ...La memoria interna de datos

...Memoria de Bits

Durante el proceso de arranque del sistema el apuntador de pila (SP) es cargado con la dirección 07H de la RAM interna, lo cual implica que el área de la pila se inicia en la dirección 08H y se expande hacia arriba.

Si se usan los bancos de registros 1, 2 , ó 3; debe cambiarse el contenido del SP a la dirección inmediatamente superior a la del banco de registro de mayor número que está siendo utilizado. De lo contrario, la pila sobrescribirá los bancos de registros seleccio- nados.

Igual situación puede ocurrir si se usa la zona de memoria de bit, por lo cual es recomendable iniciar la pila en alguna dirección superior a 2FH, para proteger las variables de bits.

Page 99: Micro Control Adores en Control I-Luis Urdaneta

99

Son áreas de memoria que controlan funciones específicas del microcontrolador, tales como:

Acceso a las 32 líneas de E/S.

Registros De Funciones Especiales

Registros De Funciones Especiales

Lectura o escritura del puerto serie

Selección de la velocidad de transmisión serie.

Control y acceso a los temporizadores, y

Configurar el sistema de interrupciones.

Page 100: Micro Control Adores en Control I-Luis Urdaneta

100

El acceso a los FSRs se realiza como si se trataran de, no son, posiciones normales de la RAM interna. Como ejemplo, para car- gar con el valor 1FH la posición 35H de la RAM, debe ejecutarse,

mov 35h,#1fh

En forma similar, para escribir al puerto serie 1FH, este valor debe cargarse en el SFR SBUF, cuya dirección es 99H. De modo que de- be ejecutarse la instrucción,

mov 99h,#1fh

..Registros De Funciones Especiales

Page 101: Micro Control Adores en Control I-Luis Urdaneta

101

..Registros De Funciones Especiales

Aunque no todas las direcciones sobre 80H están asignadas a los FSRs, Esta área de memoria no puede ser usada, en ningún caso, como memoria RAM

adicional.

Aunque no todas las direcciones sobre 80H están asignadas a los FSRs, Esta área de memoria no puede ser usada, en ningún caso, como memoria RAM

adicional.

Page 102: Micro Control Adores en Control I-Luis Urdaneta

102

..Registros De Funciones Especiales

A continuación se muestra un mapa de los FSRs, con sus nombres y direcciones...

El 8051 es un microcontrolador versátil con diversos modos de operación. Un programa puede determinar o cambiar el modo de funcionamiento manipulando los SFRs. Cada uno de estos registros tienen una dirección y un nombre.

El 8051 es un microcontrolador versátil con diversos modos de operación. Un programa puede determinar o cambiar el modo de funcionamiento manipulando los SFRs. Cada uno de estos registros tienen una dirección y un nombre.

Page 103: Micro Control Adores en Control I-Luis Urdaneta

103

Aunque en el rango 80H-FFH existen 128 posiciones, sólo 21 están asignadas a los FSRs. Las posiciones restantes se consideran inválidas.

Page 104: Micro Control Adores en Control I-Luis Urdaneta

104

Page 105: Micro Control Adores en Control I-Luis Urdaneta

105

El 8051 tiene 4 puertos de 8 bits, para un total de 32 líneas de E/S. El estado de cada línea de puerto es controlado por los FSRs en fondo azul.

..Registros De Funciones Especiales

Los FSRs en color amarillo controlan o configuran algún aspec- to del 8051. Por ejemplo, TCON controla los temporizadores y SCON el puerto serie.

Los restantes, en fondo verde, son FSRs auxiliares, éstos no configuran directamente al 8051, pero son esenciales para su o- peración. Por ejemplo, luego de configurar el canal de comu- nicación serie con SCON, el registro SBUF permite su lectura o escritura.

Page 106: Micro Control Adores en Control I-Luis Urdaneta

106

..Registros De Funciones Especiales

Los FSRs que aparecen en el mapa identificados con caracteres en color rojo, son los únicos que pueden ser manipulados usando operaciones sobre bits. Observe que son aquellos cuya direc- ción es divisible por 8.

Page 107: Micro Control Adores en Control I-Luis Urdaneta

107

..Registros De Funciones Especiales

Se presenta una descripción general sobre cada Registro de

Funciones Especiales.

Page 108: Micro Control Adores en Control I-Luis Urdaneta

108

..Registros De Funciones Especiales

P0 (Puerto 0,Dirección 80H, Direccionable por bit)

Los bits de este FSR están en correspondencia uno a una con cada línea del puerto 0. Si por ejemplo se carga un nivel alto en el bit 5 de este FSR, la línea 5 del puerto 0, P0.5, va estado 1. SP (Stack Pointer,Dirección 81H)

Es el Apuntador De Pila del 8051. Indica la dirección del próximo valor a leerse desde la pila. Es modificado por las instrucciones PUSH, POP, LCALL, RET, RETI; y en caso de solicitud de interrupciones. Por ejemplo si se ejecuta una instrucción PUSH para almacenar un valor en la pila, este es cargado en la dirección SP+1 de la RAM interna.

Page 109: Micro Control Adores en Control I-Luis Urdaneta

109

..Registros De Funciones Especiales

En conjunto, los FSRs DPL y DPH forman un registro de 16 bits denominado DPTR, cuyo contenido representa el Apuntador de Datos del 8051. Se usa en operaciones relacionadas con la RAM externa y por algunas instrucciones que involucran memoria de código.

Exceptuando la instrucción de incremento inc DPTR, cualquier o- peración con el DPTR debe hacerse en forma independiente so- bre los FSRs DPL y DPH. Por ejemplo, para almacenar el valor de 16 bits en la pila, debe salvarse primero DPL y luego DPH. No exis- ten instrucciones para decrementar el DPTR, aunque esta acción puede programarse.

DPL/DPH (Data Pointer Low/High,Dirección 82H/83H)

Page 110: Micro Control Adores en Control I-Luis Urdaneta

110

..Registros De Funciones Especiales

Controla los modos de consumo de energía Power Down e Idle de la versión CHMOS del 8051. Además, un bít de PCON duplica los baudios del puerto serie.

TC0N (Timer Control,Dirección 88H, Direccionable por bit)

El FSR TCON configura y modifica el modo de operación de los dos temporizadores/contadores del 8051. Controla el arranque/parada de cada temporizador, y tiene una bandera para indicar el desborde de cada timer. Otros bits de este FSR configuran la forma de activación de las interrupciones externas, y también contiene la bandera de ocurrencia de una interrupción externa.

PC0N (Power Control,Dirección 87H)

Page 111: Micro Control Adores en Control I-Luis Urdaneta

111

..Registros De Funciones Especiales

TMOD(Timer Mode,Dirección 89H)

Este FSR programa el modo de operación de cada temporizador. Es posible configurarlos como temporizador de: 16,13, o 12 bits; de 8 bits con autorrecarga o como dos timers independientes. Los temporizadores también puede programarse para contar eventos externos.

TL0/TH0(Timer 0 Low/High,Dirección 8AH/8BH)

Agrupados, estos FSRs representan al temporizador 0. La ope- ración de T0 depende de cómo es configurado por el SFR TMOD. El conteo siempre es hacia arriba, lo que se configura es es como y cuando se incrementa el valor.

Page 112: Micro Control Adores en Control I-Luis Urdaneta

112

..Registros De Funciones Especiales

TL1/TH1(Timer 1 L/H,Dirección 8C/8DH)

Igual que el temporizador 0.

P1 (Puerto 1,Dirección 90H, Direccionable por bit)

Igual que el puerto 0.

TC0N (Timer Control,Dirección 98H, Direccionable por bit)

El FSR TCON configura el puerto serie del 8051. Controla la velocidad de baudios, si el puerto debe recibir datos, y contiene una bandera pa- ra indicar cuando un byte es enviado orecibido correctamente.

Page 113: Micro Control Adores en Control I-Luis Urdaneta

113

..Registros De Funciones Especiales

Para usar el puertro serie es necesario manipular los siguientes FSRs SCON, TCON, y TMOD. Esto debido a que SCON controla el puerto serie. En la mayorían de los casos el programa tendrá que usar uno de los temporizadores para establecer los baudios del canal serie. En este caso es necesario configurar el temporizador 1 con TCON y TMOD.

SBUF (Serial Control,Dirección 99H)

El FSR SBUF se usa para transmitir y recibir datos por el puerto serie. Cualquier dato cargado en SBUF es enviado al terminal TXD del puerto serie, y cualquier valor recibido por el pin RXD es depositado en este registro.

Page 114: Micro Control Adores en Control I-Luis Urdaneta

114

..Registros De Funciones Especiales

IE (Interrup Enable,Dirección A8H)

Habilita/deshabilita interrupciones específicas usando los 7 bits de menor orden. El bit mas significativo habilita/deshabilita todas las interrupciones.

P2 (Puerto 2,Dirección A0H, Direccionable por bit)

Igual que el puerto 0 y 1.

P2 (Puerto 2,Dirección A0H, Direccionable por bit)

Igual que el puerto 0 ,1 y2.

Page 115: Micro Control Adores en Control I-Luis Urdaneta

115

..Registros De Funciones Especiales

IP (Interrupt Priority,Dirección B8H, Direccionable por bit)

Los bits de este SFR IP se usan para asignar la prioridad relativa de cada interrupción. En el 8051, una interrupción puede ser de baja (0) prioridad o alta (1) prioridad. Una interrupción puede desactivar otras interrupciones de menor prioridad.Por ejemplo, si se configura el 8051 que para que todas las interrup- ciones sean de prioridad baja excepto la interrupción serie, ésta siem- pre podrá interrumpir al sistema, aun cuando otra interrupción esté ejecutándose. Sin embargo, si la interrupción serie está ocurriendo, ninguna otra podrá interrumpir la rutina de servicio de serie ya que tiene la prioridad más alta.

Page 116: Micro Control Adores en Control I-Luis Urdaneta

116

..Registros De Funciones Especiales

PSW (Program Status Word,Dirección D0H, Direccionable por bit)

Almacena los 5 bits de condiciones de estados (banderas) del 8051: C: Acarreo.

AC: Acarreo Auxiliar.

F0: A definir por el programador.

OV: Sobrepaso (Overflow).

P: Paridad.

Además, el PSW contiene dos banderas RS1 y RS2, para la selección de los bancos de registros.

Page 117: Micro Control Adores en Control I-Luis Urdaneta

117

..Registros De Funciones Especiales

POVRS2RS1F0ACC

Acarreo

Acarreo auxiliar

Usuario

Sobrepaso

ParidadR S 1 R S 2 S e l e c c i ó n 0 0 B a n c o 0 0 1 B a n c o 1 1 0 B a n c o 2 1 1 B a n c o 1

Page 118: Micro Control Adores en Control I-Luis Urdaneta

118

..Registros De Funciones Especiales

Acc (Accumulator,Dirección E0H, Direccionable por bit)

Por intervenir en un numeroso grupo de instrucciones, el Acc es uno de los FSRs más utilizados. Como su dirección es E0H, la instrucción mov A,#17h produce igual resultado que mov E0h,17h. Es recomen- dable usar la primera, porque solo requiere dos bytes.

B (B Register,Dirección F0H, Direccionable por bit)

El registro B se usa en instrucciones de multiplicación y división. También puede ser usado para almacenamiento temporal.

Page 119: Micro Control Adores en Control I-Luis Urdaneta

119

..Registros De Funciones Especiales

Una práctica común de fabricantes de semiconductores al desarrollar un µCtrl basado en 8051 es agregar SFRs adicionales para nuevas funciones que existen en el dispositivo.

Por ejemplo, el Dallas Semiconductor DS80C320 es compatible hacia arriba con el 8051. Esto significa que cualquier programa que corra en una 8051 es- tandar debe hacerlo sin modificaciones en los DS80C320. De modo que to- dos los registros definidos antes, también están contenidos en el compo- nente de Dallas.

SFRs en nuevas versiones del 8051 SFRs en nuevas versiones del 8051

Page 120: Micro Control Adores en Control I-Luis Urdaneta

120

..Registros De Funciones Especiales

Sin embargo, debiado a que los DS80C320 tienen muchas características nuevas no disponibles en el 8051 básico. Es necesario agregar SFRs para configurar las nuevas funciones del chip.

Obviamente, a SBUF2 y SCON2 se les asignaron direcciones no usadas por el 8051, para mantener la compatibilidad de código.

Por ejemplo, los DS80C320 soportan dos puertos serie (en vez de uno como el 8051); los SFRs adicionales SBUF2 y SCON2 se encargan de configurar y controlar el segundo canal serie.

Page 121: Micro Control Adores en Control I-Luis Urdaneta

121

..Registros De Funciones Especiales

Sin embargo, debiado a que los DS80C320 tienen muchas características nuevas no disponibles en el 8051 básico. Es necesario agregar SFRs para configurar las nuevas funciones del chip.

Obviamente, a SBUF2 y SCON2 se les asignaron direcciones no usadas por el 8051, para mantener la compatibilidad de código.

Por ejemplo, los DS80C320 soportan dos puertos serie (en vez de uno como el 8051); los SFRs adicionales SBUF2 y SCON2 se encargan de configurar y controlar el segundo canal serie.

Page 122: Micro Control Adores en Control I-Luis Urdaneta

122

Registros Básicos Registros Básicos

El conocimiento y una técnica apropiada de uso de ciertos registros del 8051 son fundamentales para escribir programas eficientes. De echo, es común que cuando se programa en ensambalador al conjunto formado por los registros internos y el repertorio de instrucciones se le conozca como el modelo de programación.nos. Los registros básicos del 8051, son:

El Acumulador (Acc)

Los Registros R (Rn)

El Registro B (B)

El Apuntador de Datos (DPTR)

El Contador de Programa (PC) y

El Apuntador de Pila. (SP)

Page 123: Micro Control Adores en Control I-Luis Urdaneta

123

Registros Básicos Registros Básicos

Un diagrama funcional del 8051 con detalle de los registros internos, se

presenta a continuación...

Un diagrama funcional del 8051 con detalle de los registros internos, se

presenta a continuación...

Page 124: Micro Control Adores en Control I-Luis Urdaneta

124

PCON SCON TMOD TCONPCON SCON TMOD TCON

TH0 TL0 TH1 TL1 TH0 TL0 TH1 TL1

SBUF IE IPSBUF IE IP

FSRs de timers, puerto serie e interrupciones.

FSRs de timers, puerto serie e interrupciones.

Contador de Programa (PC)

Contador de Programa (PC)

Reg. Dir.de Programa

Reg. Dir.de Programa

BufferBuffer

± PC± PC

DPTRDPTR

Drivers del Puerto 0

Drivers del Puerto 0 Drivers del

Puerto 2

Drivers del Puerto 2

Latch Puerto 1Latch Puerto 1

Latch Puerto 3Latch Puerto 3

EPROMEPROM RAM RAM

AccAcc

Registro BRegistro B

TMP 1TMP 1

TMP 2TMP 2

ALUALU

PSWPSW

Drivers del Puerto 1

Drivers del Puerto 1 Drivers del

Puerto 3

Drivers del Puerto 3

Latch Puerto 0Latch Puerto 0

Latch Puerto 2Latch Puerto 2

Puntero de Pila

Puntero de Pila

Unidad de Control

Unidad de Control

OSCOSC

PSENPSEN

ALEALE

EAEA

RSTRST

XTAL1

XTAL2

P1.0-P1.7P1.0-P1.7

P3.0-P3.7P3.0-P3.7

P0.0-P0.7P0.0-P0.7

P2.0-P2.7P2.0-P2.7

Page 125: Micro Control Adores en Control I-Luis Urdaneta

125

El Acumulador

...Registros Básicos

Es un registro de uso general que almacena el resultado de la ejecución de muchas instrucciones. Es el registro más vérsatil del 8051 por el gran número de instrucciones que hacen uso de él. Mas de la mitad de las 255 instrucciones del 8051 manipulan o usan el Acc. Puede contener 1 byte.

Los Registros RSon ocho registros R0-R7 que son usados como registros auxiliares en muchas operaciones. Por ejemplo, en la instrucción de suma,

add A, R3

R3 contiene uno de los operandos y el otro está en el Acc.

Page 126: Micro Control Adores en Control I-Luis Urdaneta

126

...Registros Básicos

mov A,R3

add A,R4

mov R5,A R5 mantiene temporalmente la suma R3+R4

mov A,R1

add A,R2

subb A,R5

Los registros R usarse para almacenamiento temporal, Por ejemplo para realizar la operación (R1+R2)-(R3+R4), puede ejecutarse la secuencia,

Conviene resaltar que esta no es la mejor manera de hacer el cálculo, pero ilustra el uso de los registros R

para almacenamiento temporal.

Page 127: Micro Control Adores en Control I-Luis Urdaneta

127

...Registros Básicos

Es un registro de 8 bits usado por las instrucciones mul AB y div AB. Para multiplicar o dividir en forma rápida y fácil el contenido del acu- mulador por algún número, éste debe estar almacenado en el registro B. Tambien puede ser usado como si fuese el noveno registro R.

El Registro B

El Apuntador de Datos

EL DPTR es el único registro de 16 bits del 8051 al cual puede tener acceso el programador. Es usado por ciertos comandos para permitir que el µCtrl tenga acceso a memoria externa. En una operación con memoria externa, la dirección de acceso la contiene este registro.

Puede usarse como un registro de 16 bits para uso general.

Page 128: Micro Control Adores en Control I-Luis Urdaneta

128

...Registros Básicos

Mantiene los 16 bits de la dirección de la siguiente instrucción a eje- cutar. Una operación de Reset pone a cero el PC. El contenido de es- te registro no puede ser leído por el programa y sólo puede ser mo- dificado por una instrcucción de salto, como ljmp dirección.

El Contador de Programa (PC)

Cuando se guarda un valor en el área del stack, el 8051 incre- menta en 1 el SP, y carga el valor en la dirección SP+1.

Cuando se remueve un dato de la pila, el 8051 retorna el conte- nido de la dirección indicada por el SP, y decrementa el apun- tador de pila.

EL Apuntador de PilaEs un registro de 8 bits que indica la dirección de la pila donde debe ser almacenado o removido un byte.

Page 129: Micro Control Adores en Control I-Luis Urdaneta

129

...Registros Básicos

El SP es modificado en forma directa por seis instrucciones:

push pop lcall acall ret ret1

También es usado durante la ocurrencia de interrupciones.

El orden de uso de la pila es importante. Durante el proceso de arran- que, el 8051 carga la dirección 07H en la SP. El primer dato llevado a la pila se almacenará en la dirección 08H de la memoria interna.

Page 130: Micro Control Adores en Control I-Luis Urdaneta

130

Modos de Direccionamiento

Modos de Direccionamiento

Page 131: Micro Control Adores en Control I-Luis Urdaneta

131

Indican la dirección de memoria o el registro donde la instrucción ob- tiene el o los operandos necesarios para su ejecución. El 8051 dispo- ne de seis modos:

Modos de DireccionamientoModos de Direccionamiento

• Directo

• Por registro

• Indirecto

• Por registro específico

• Inmediato

• Indexado

Page 132: Micro Control Adores en Control I-Luis Urdaneta

132

Una dirección de 8 bits específica donde será realizada la operación. Sólo permite acceso a la RAM interna y los FSRs.

Ejemplo: mov A,30h (A) (30H); mueve a A el contenido de la posi-

ción 30H de la RAM interna.

Direccionamiento Directo

...Modos de Direcciomnamiento

El registro a usar se incluye en el código de operación de la instruc- ción, por lo cual solo se requiere un byte. El operando puede ser un registro Rn del banco seleccionado por los bits 3 y 4 del PSW.

Ejemplo: mov R2,A (R2) (A); mueve el contenido del A al registro R2

mov R5,#dato (R2) (A); mueve un byte al registro R5

Direccionamiento por Registro

Page 133: Micro Control Adores en Control I-Luis Urdaneta

133

La dirección de 8 bits del operando es indicada por el contenido de los registros R0 o R1 de cualquiera de los bancos, o del apuntador de pila, SP. La dirección puede ser de la memoria RAM interna o externa. Para direcciones de 16 bits se usa el apuntador de datos, DPTR.

Ejemplo:

mov @R1,25h (R1) (25H); mueve a la dirección indicada por R1, el conte-

nido de la posición 25H de la RAM interna.

mov A,@R0 (A) (R0); mueve al A, el contenido de la posición de la me- RAM interna indicada por R0.

Direccionamiento Indirecto

...Modos de Direcciomnamiento

Page 134: Micro Control Adores en Control I-Luis Urdaneta

134

Ciertas instrucciones especifican el registro sobre el cual se hará la operación

Ejemplo: da A ;Ajuste decimal del acumulador.

dec DPTR (DPTR) (DPTR) - 1 ;decremente en 1 el DPTRr.

Direccionamiento por Registro Específico

...Modos de Direcciomnamiento

Permite cargar una constante en forma inmediata.

Ejemplo:

mov A,#E6h ;carga en A el número decimal 230

Direccionamiento Inmediato

Page 135: Micro Control Adores en Control I-Luis Urdaneta

135

Permite leer tablas de datos de la memoria de programa y transferirla a la RAM o modificarla. Sólo permite leer la ROM/EPROM.

La dirección de 16 bits de inicio de la tabla puede estar en el SP o el DPTR, mientras que el A almacena el desplazamiento sobre la tabla a partir de la dirección de la base.

MOVC A,@A+DPTR

MOVC A,@A+PC

Direccionamiento Indexado

...Modos de Direcciomnamiento