document1

48
1. Microcontroladores 8051 1.1. Características de los microcontroladores 8051/8052 En la siguiente lista se indican las características más importantes de los microcontroladores de la familia 8051/8052. Arquitectura basada en el 80C51 con CPU de 8 bits. Procesador booleano con soporte de operación sobre bits. Memoria de programa integrada de 8k × 8 EPROM (caso 87C52). Sin memoria de programa interna ROMless (caso 80C32). Memoria RAM interna de 256 × 8 . Tres contadores temporizadores de 16-bit (counter/timers). Un canal serie asíncrono Full duplex para las comunicaciones RS-232. Capacidad de direccionamiento de memoria 64k ROM y 64k RAM. Modos de funcionamiento en bajo consumo (Idle mode Power- down mode). Compatible con las tecnologías digitales CMOS y TTL. Frecuencias de trabajo de reloj comprendida ente 3,5 y 33MHz. Oscilador interno. 6 fuentes de interrupción con distintos niveles de prioridad. 2 interrupciones externas. 3 interrupciones para los contadores/temporizadores (timers).

Upload: holger-chamba

Post on 17-Dec-2015

213 views

Category:

Documents


0 download

DESCRIPTION

libr0

TRANSCRIPT

1. Microcontroladores 80511.1. Caractersticas de los microcontroladores 8051/8052En la siguiente lista se indican las caractersticas ms importantes de los microcontroladores de la familia 8051/8052. Arquitectura basada en el 80C51 con CPU de 8 bits. Procesador booleano con soporte de operacin sobre bits. Memoria de programa integrada de 8k 8 EPROM (caso 87C52). Sin memoria de programa interna ROMless (caso 80C32). Memoria RAM interna de 256 8 . Tres contadores temporizadores de 16-bit (counter/timers). Un canal serie asncrono Full duplex para las comunicaciones RS-232. Capacidad de direccionamiento de memoria 64k ROM y 64k RAM. Modos de funcionamiento en bajo consumo (Idle mode Power-down mode). Compatible con las tecnologas digitales CMOS y TTL. Frecuencias de trabajo de reloj comprendida ente 3,5 y 33MHz. Oscilador interno. 6 fuentes de interrupcin con distintos niveles de prioridad. 2 interrupciones externas. 3 interrupciones para los contadores/temporizadores (timers). 1 interrupcin para el puerto serie.El diagrama en bloques de los microcontrolador 80c32 se puede observar en la siguiente figura.

2. Estructura de la memoria en los microcontroladores 80512.2. Memoria de datos internaLos microcontroladores 8051disponen de unamemoria internamuy limitada, un total de 256 posiciones destinadas a los datos, registros de trabajo y registros especiales. En la familia de microcontroladores 8052 se ha ampliado mediante la incorporacin de 128 nuevas posiciones entre las posiciones de memoria 80H y FFH que se solapan con las actuales. Para poder acceder a un grupo o al otro se ha de hacer por medio del direccionamiento, de esta forma, a la memoria principal se accede mediante el direccionamiento directo y a la secundaria o solapada mediante el indirecto. Atendiendo a los modos de direccionamiento del microcontrolador, podemos distinguir tres zonas de memoria: rea de direccionamiento directo e indirecto. rea de direccionamiento solo directo. rea de direccionamiento solo indirecto (en el 8052).

Memoria de datos de los microcontroladores 8051/8052Acceso a la zona de memoria mediante el Direccionamiento Directo.Para el acceso al rea de memoria de direccionamiento directo, se utiliza la direccin a la cual se desea acceder. Por ejemplo, para situar el valor 05H en el puerto P0 (80H).MOV80H,#05H ; Poner el dato inmediato (constante) 05H en la posicin 80HAcceso a la zona de memoria mediante el Direccionamiento Indirecto.Para el acceso a la zona de memoria de direccionamiento indirecto se ha de utilizar el registro interno R0 o R1.Por ejemplo, para poner 4 posiciones, de la 90H a la 93H de memoria a 0.MOVR0,#90H ; Mover la direccin a la que se desea acceder al registro R0MOV@R0,#00H ; Mover de forma indirecta, mediante el contenido de R0 el dato inmediato 0INCR0 ; Incrementar el registro R0 apuntador (91H)MOV@R0,#00H ; Mover un 00H a la direccin apuntadaINCR0 ; Incrementar el registro R0 apuntador (92H)MOV@R0,#00H ; Mover un 00H a la direccin apuntadaINCR0 ; Incrementar el registro R0 apuntador (93H)MOV@R0,#00H ; Mover un 00H a la direccin apuntada

2.2.1. Memoria de acceso directo e indirectoElrea de direccionamiento directo e indirectoest formada por los primeros128 Bytes de la memoriainterna del microcontrolador. Esta a su vez se encuentra dividida en tres segmentos diferenciados por su utilizacin.

Area de direccionamiento directo e indirectos de la memoria RAM internaLos bancos de registros.Los registros internos o auxiliares del Acumulador son 8, delR0 al R7, su misin es dar soporte al Acumulador en su proceso de trabajo. El conjunto de instrucciones del microcontrolador 8051 est orientado de forma directa para trabajar con un registro nico, el Acumulador y unos registros secundarios del R0 al R7.A su vez los registros R0 a R7 se encuentran agrupados en4 bancos de registros,RB0 a RB3que coinciden con las primeras posiciones de memoria interna, tenemos el RB0 que ocupa las posiciones 00H a 07H, el RB1 de la 08H a 0FH y as sucesivamente (ver la siguiente figura).Se puedeconmutar de banco de registros de trabajopor software mediante la configuracin de los bits B3 y B4 del registro de estado PSW. Este sistema se utiliza para salvaguardar el estado de los registros internos entre diferentes procesos del software con la CPU, se puede conmutar de banco de registros cuando se accede o retorna en una subrutina, ante una peticin de interrupcin etc.rea de direccionamiento bit a bitEl rea de direccionamiento bit a bit est formada por 16 Bytes en las posiciones de la RAM interna 20H a 2FH. Cada Byte est dividido en 8 bits, con nmeros correlativa entre el 0 y el 127 da un total de 128 bits, a los cuales se puede acceder con instrucciones especificas de direccionamiento bit a bit. Para hacer referencia a un bit en concreto, se puede indicar su numeracin o la de la posicin de memoria y el bit en cuestin desde el 0 al 7. Por ejemplo, el bit 0 es el 20.0, el 1 el 20.1, el 9 es 21.0 y as sucesivamente.Esta zona tambin admite el direccionamiento normal por Byte. Por ejemplo, podemos activar el bit 09H por medio de instrucciones de bits.SETB09H ; Poner a 1 el bit 9O mediante instrucciones de manipulacin de Bytes.ORL21H,#00000010B ; Suma lgica (OR) en el Byte 21H el dato inmediato 00000010Brea Scratch PadEl rea dememoria Scratch Pado memoria de acceso rpido denominada Bloc de notas se encuentra situada en la RAM interna de la posicin 30H a 7FH. Est destinada al trabajar con datos, como memoria de trabajo del usuario, es ms gil que la memoria RAM externa al microcontrolador, pero mientras que la RAM externa puede tener una capacidad suficiente para cualquier aplicacin (64KB), el rea Scratch Pad est limitada a 96 Bytes.Si descartamos la memoria RAM externa (XRAM), la capacidad de almacenamiento de estos microcontroladores es muy limitada, 96 Bytes del Scratch Pad ms 128 Bytes de memoria de acceso solo indirecto.

2.3. Registros de funciones especiales (SFR) de los microcontroladores 8051El rea de registros o funciones especiales(SFR) est comprendida entre la direccin 80H y FFH de la memoria interna del microcontrolador.Esta zona de memoria no se puede utilizar como memoria de datos, resulta evidente que si escribimos de forma descontrolada en la memoria asignada a un registro especial, se modifica el comportamiento del microcontrolador, obtenindose resultados inesperados segn el registro afectado. Aunque las posiciones de memoria que no estn asignadas a un registro especial pueden ser utilizadas para contener datos, no es aconsejable su uso, se ha de tener en cuenta que estas pueden estar reservadas y asignadas a registros especiales en otros modelos de microcontroladores o de fabricantes y nuestro programa entrar en conflicto cuando cambiemos de modelo.Los puertos de entradas y salidas tambin ocupan unas posiciones especficas o direcciones de memoria. Las posiciones de memoria del lateral izquierdo (80H, 88H, 90H..) estn reservadas para eldireccionamiento de bitpor lo que los registros que las ocupan se podrn acceder mediante este sistema.En la siguiente tabla se detalla la disposicin de cada registro del microcontrolador 8051 y 8052.F8HFFH

F0HB *F7H

E8HEFH

E0HACC *E7H

D8HDFH

D0HPSW *D7H

C8HT2CON *#RCAP2L #RCAP2H #TL2 #TH2 #CFH

C0HC7H

B8HIP *BFH

B0HP3 *B7H

A8HIE *AFH

A0HP2 *A7H

98HSCON *SBUF9FH

90HP1 *97H

88HTCON *TMODTL0TL1TH0TH18FH

80HP0 *SPDPLDPHPCON87H

La siguiente tabla muestra la descripcin y los smbolos de cada bit o pin de los registros internos (SFR) de la familia de microcontroladores 8051/8052.RegistroDescripcinDireccinSmbolo del bit o funcin alternativa del puertoValor del reset

MSBLSB

ACC*Acumulador(Accumulator)E0HE7E6E5E4E3E2E1E000H

B*Registro B(register B)F0HF7F6F5F4F3F2F1F000H

DPTR:Apuntador a datos(Data pointer) (2 bytes)

DPHByte alto del DPTR(Data pointer high)83H00H

DPLByte bajo del DPTR(Data pointer low)82H00H

AFAEADACABAAA9A8

IE*Habilitacin de interrupciones(Interrupt enable)A8HEAET2ESET1EX1ET0EX00x000000B

BFBEBDBCBBBAB9B8

IP*Prioridad de las interrupciones(Interrupt priority)B8HPT2PSPT1PX1PT0PX00x000000B

8786858483828180

P0*Puerto 0 (Port 0)80HAD7AD6AD5AD4AD3AD2AD1AD0FFH

9796959493929190

P1*Puerto 1 (Port 1)90HT2EXT2FFH

A7A6A5A4A3A2A1A0

P2*Puerto 2 (Port 2)A0HA15A14A13A12A11A10A9A8FFH

B7B6B5B4B3B2B1B0

P3*Puerto 3 (Port 3)B0HRDWRT1T0INT1INT0TxDRxDFFH

PCON1Control del consumo(Power control)87HSMODGF1GF0PDIDL0xxxxxxxB

D7D6D5D4D3D2D1D0

PSW*Palabra de estado del programa(Program status word)D0HCYACF0RS1RS0OVP00H

RegistroDescripcinDireccinSmbolo del bit o funcin alternativa del puertoValor del reset

MSBLSB

RCAP2H#Byte alto de captura(Capture high)CBH00H

RCAPL#Byte Bajo de captura(Capture low)CAH00H

SBUFBuffer de datos serie(Serial data buffer)99HxxxxxxxxB

9F9E9D9C9B9A9998

SCON*Control puerto serie(Serial controller)98HSM0SM1SM2RENTB8RB8TIRI00H

SPPuntero del stack(Stack pointer)81H07H

8F8E8D8C8B8A8988

TCON*Control de las temporizadores(Timer control)88HTF1TR1TF0TR0IE1IT1IE0IT000H

CFCECDCCCBCAC9C8

T2CON*#Control del timer 2(Timer 2 control)C8HTF2EXF2RCLKTCLKEXEN2TR2C/T2CP/RL200H

TH0Temporizador 0 parte alta(Timer high 0)8CH00H

TH1Temporizador 1 parte alta(Timer high 1)8DH00H

TH2#Temporizador 2 parte alta(Timer high 2)CDH00H

TL0Temporizador 0 parte baja(Timer low 0)8AH00H

TL1Temporizador 1 parte baja(Timer low 1)8BH00H

TL2#Temporizador 2 parte baja(Timer low 2)CCH00H

TMODModo de los temporizadores(Timer mode)89HGATEC/TM1M0GATEC/TM1M000H

*Registro con direccionamiento a nivel de bit.#Registros aadidos en la familia de microcontroladores 8052.

3. Modos de direccionamiento 80513.1. Directo (Dir)Dir. En el direccionamiento directo, se indica la direccin a operar de forma absoluta.Para la familia de microcontroladores 8051 se dispone de 256 direcciones directas, correspondientes a (Ram interna + Registros SFR).ElOpCodeva seguido de un byte que representa la direccin.MOVA,30H ; A