Sei sulla pagina 1di 11

El Microcontrolador 8051 CAP 4

_________________________________________________________________________
ITMAR, Mazatln 36 Ing. Rufino J. Domnguez Arellano
CAPITULO 4


Programacin de los Microcontroladores 8052/8051 (II)

4.1. INSTRUCCIONES BOOLEANAS.

La familia de microcontroladores 8051 incluye un procesador booleano. Esto es,
un procesador especializado en manipular bits. Existen dos reas dxe memoria
que permiten el acceso bit a bit; una corresponde al segmentote RAM interna
entre las direcciones 20H a 2FH, en total 128 bits, y la otra corresponde a la
primera columna de SFR sealada en la tabla 2.2. Esto es de gran utilidad ya que
permite el verificar el estado de bits particulares de este grupo de registros.

La tabla 4.2 muestra el conjunto de instrucciones que permiten la manipulacin de
bits.






El Microcontrolador 8051 CAP 4
_________________________________________________________________________
ITMAR, Mazatln 37 Ing. Rufino J. Domnguez Arellano
Ejemplos:

A) Poner el Acarreo a 1 si el bit 0 del puerto P1 es 1, el bit 7 del acumulador es 1
y la bandera OV = 0.

MOV C, P1.0 ; Carga el acarreo (C) con P1.0

ANL C, A.7 ; Operacin AND entre el acarreo (C) y A.7

ANL C, /OV ; Operacin AND entre el acarreo (C) y el
; complemento de OV

B) Efectuar la operacin XOR entre los bits P0.0 y P1.1, dejando el resultado en
P2.7.

La instruccin XOR no existe en la familia 8051. Se debe implementar por algoritmo:

MOV C, P0.0 ; Cargo P0.0 al acarreo.

JNB P1.1, SALTA ; Si P1.1 = 0, C tiene el resultado correcto, y entonces
; salta. Si P1.1 = 1 hay que complementar C.
CPL C

SALTA: MOV P2.7, C

4.2. INSTRUCCIONES DE SALTO.

Existen dos tipos de salto: los incondicionales y los condicionales. Ahora se
detalla cada uno.

4.2.1. Instrucciones de salto incondicional.

La tabla 4.3 muestra la lista resumida de saltos incondicionales.


El Microcontrolador 8051 CAP 4
_________________________________________________________________________
ITMAR, Mazatln 38 Ing. Rufino J. Domnguez Arellano
SJMP rel (Short Jump). La direccin destino del salto viene dada por un
offset relativo, igual que en las instrucciones de salto booleanas. La instruccin
tiene dos bytes, correspondientes al cdigo de operacin y al byte de offset
relativo. El rango del salto est limitado a -128 y+ 127 bytes relativos al primer byte
siguiente a la instruccin de salto.

PC (PC) + 2
PC (PC) + rel

LJMP addr16 (Long Jump). La direccin destino del salto viene dada
por una constante de 16 bits. La instruccin est formada por 3 bytes. 1 byte para
el cdigo de operacin y 2 para la direccin del salto. Por tanto, la direccin de
destino est ubicada dentro del rea de los 64K de la memoria de programa.


PC addr16


AJMP addr11 (4bsolute Jump). La direccin destino del salto viene dada
por una constante de 11 bits. La instruccin tiene 2 bytes, uno para el cdigo de
operacin que tambin contiene en si misma 3 de los 11 bits de direcciones, y otro
byte que contiene los 8 bits bajos de la direccin de destino. Por tanto, el destino
del salto tiene que estar comprendido dentro del bloque de los 2 KB referenciado
respecto a la siguiente instruccin a la del salto.

PC (PC) + 2
(PC.10-0) direccin de la pgina

JMP @A + DPTR Se trata de una instruccin de salto indirecto. Suma el
acumulador con los 16 bits del puntero de datos DPTR y carga el resultado en PC.
Esta ser la direccin para el siguiente ciclo fetch.

Ejemplo: Se trata de establecer cinco caminos de ramificacin del programa,
dependiendo de que el acumulador tome valores entre 0 y 4:

MOV DPTR, #TABLA_DE SALTO ; Cargo direccion de tabla.

MOV A, VALOR ; Valor entre 0 y 4

RL A ; Multiplico por 2.

JMP @A + DPTR ; Se realiza el salto.

- - -

TABLA_DE SALTO: AJMP SALTO0
AJMP SALTO1
AJMP SALTO2
AJMP SALTO3
AJMP SALTO4
El Microcontrolador 8051 CAP 4
_________________________________________________________________________
ITMAR, Mazatln 39 Ing. Rufino J. Domnguez Arellano
4.2.2. Instrucciones de salto condicional.

La tabla 4.4 muestra la lista de instrucciones de salto condicional. Estas
instrucciones permiten al microcontrolador tomar decisiones en base a
condiciones que resulten en el momento de ejecucin del programa. En todos los
casos, el salto es relativo, lo que significa que la direccin destino debe localizarse
dentro de los -128 y +127 bytes a partir de la siguiente instruccin a la del salto
condicional.


JZ y JNZ. Salta si es cero y salta si no es cero, respectivamente. En este
procesador, puesto que no existe un indicador de CERO (como en otros micros),
se examina directamente el registro acumulador.


DJNZ Decrementa el byte indicado y salta si el resultado NO es cero. til
para implementar bucles:

MOV CONTADOR, #10
LAZO: ----------------
----------------
----------------
DJNZ CONTADOR, LAZO

CJNE Compara y salta si no son iguales. Se puede comparar A con un
byte, que puede ser con direccionamiento indirecto, directo, por registro o
inmediato. O bien se puede comparar un byte con una constante.






El Microcontrolador 8051 CAP 4
_________________________________________________________________________
ITMAR, Mazatln 40 Ing. Rufino J. Domnguez Arellano
Ejemplos:

A) Ejecutar las instrucciones de un lazo hasta que la lectura de un perifrico en P0
coincida con la localidad de memoria 7FH.

MOV A, P0
LAZO: ----------------
----------------
----------------
CJNE A, 7F, LAZO

B) Implementar las comparaciones mayor que y menor que.

Si de los dos bytes del campo de operandos, el primero es menos que el segundo,
entonces el acarreo (C) se pone a 1. Si el primer byte es mayor o igual que el segundo, el
acarreo toma el valor 0.



















El Microcontrolador 8051 CAP 4
_________________________________________________________________________
ITMAR, Mazatln 41 Ing. Rufino J. Domnguez Arellano

4.3 SET DE INSTRUCCIONES DE LA FAMILIA 8051.

El Microcontrolador 8051 CAP 4
_________________________________________________________________________
ITMAR, Mazatln 42 Ing. Rufino J. Domnguez Arellano
















El Microcontrolador 8051 CAP 4
_________________________________________________________________________
ITMAR, Mazatln 43 Ing. Rufino J. Domnguez Arellano







El Microcontrolador 8051 CAP 4
_________________________________________________________________________
ITMAR, Mazatln 44 Ing. Rufino J. Domnguez Arellano






El Microcontrolador 8051 CAP 4
_________________________________________________________________________
ITMAR, Mazatln 45 Ing. Rufino J. Domnguez Arellano
























El Microcontrolador 8051 CAP 4
_________________________________________________________________________
ITMAR, Mazatln 46 Ing. Rufino J. Domnguez Arellano

Potrebbero piacerti anche