micro control adores en control i-luis urdaneta

Post on 27-Jun-2015

159 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Microcprocesadores en Control ILuis Urdaneta

TRANSCRIPT

Sistemas Sistemas µcontroladoresµcontroladores

Sistemas Sistemas µcontroladoresµcontroladores

Familia MCS-51 de Intel

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

SimulaciónSimulación

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.

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.

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.

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

6

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

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

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:

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

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

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

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.

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.

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.

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.

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.

16

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

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

inicialización.

17

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

µP

Unidad central de procesamiento

18

...Sistema simple con µP

...Sistema simple con µP

Mapa de direcciones de memoria

19

...Sistema simple con µP

...Sistema simple con µP

0000H

07FFH

0FFFH

17FFH

FFFFH

Memoria de programa

Memoria de datos

Puertos de E/S

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...

21

Decodificador de direcciones

...Sistema simple con µP

...Sistema simple con µP

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...

23Sección de memoria y E/S

...Sistema simple con µP

...Sistema simple con µP

24

...Sistema simple con µP

...Sistema simple con µP

Diagrama final del del µC*

*No se muestra el µP

25

...Sistema simple con µP

...Sistema simple con µP

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...

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.

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

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.

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.

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.

32

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

33

Observe bien la estructura del µC

usadoen las dos

aplicaciones descritas.

34

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

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

35

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

a circuitos integrados, los cuales operan como unidades independientes.

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.

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

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.

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.

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.

41

Detalle de la organizaión interna del µCtrl C167R

42

...organizaión interna del µCtrl C167R

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

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

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.

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

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?

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?

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?

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?

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?

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?

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?

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?

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?

56

La familia de microcontroladores

INTEL MCS-51

La familia de microcontroladores

INTEL MCS-51

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

58

8751

8751

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

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

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

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

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

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

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.

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

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

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.

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.

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

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

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

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.

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

74

Diagrama funcional del sistema expandido, con el

programa en EPROM externa...

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

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

76

Diagrama eléctrico del Sistema expandido, con el

programa en eprom externa...

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

77

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

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

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

80

mov → RAM Interna movx → RAM Externa

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

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

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.

83

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

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).

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

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

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

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

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

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

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

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.

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

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.

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

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.

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.

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.

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.

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

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.

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.

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.

104

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.

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.

107

..Registros De Funciones Especiales

Se presenta una descripción general sobre cada Registro de

Funciones Especiales.

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.

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)

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)

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.

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.

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.

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.

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.

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.

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

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.

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

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.

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.

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)

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...

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

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.

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.

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.

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.

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.

130

Modos de Direccionamiento

Modos de Direccionamiento

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

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

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

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

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

top related