document1
DESCRIPTION
libr0TRANSCRIPT
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