Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3 Programacion
3 Programacion
CAP 3
CAPITULO 3
Programacin de los Microcontroladores 8052/8051 (I)
3.1. INTRODUCCION
Todos los modelos de la familia 51 ejecutan el mismo conjunto de instrucciones.
Estas instrucciones estn optimizadas para el control de aplicaciones en 8 bits.
Estn provistas de una buena variedad de modos de direccionamiento para
acceder a la memoria RAM de datos internos del microcontrolador, facilitando
operaciones del tipo byte sobre una pequea estructura de datos. Permiten la
manipulacin directa de control y procesamiento booleano de estructuras de datos
del tamafio de un bit.
En esta breve introduccin se estudiarn los modos de direccionamiento y el juego
de instrucciones agrupadas por especialidades de esta manera:
Instrucciones aritmticas.
Instrucciones lgicas.
Instrucciones para la transferencia de datos en:
a) RAM interna.
b) RAM externa.
Instrucciones para el tratamiento de tablas.
Instrucciones booleanas.
Instrucciones de salto.
_________________________________________________________________________
ITMAR Mazatln
24
Ing. Rufino J. Domnguez Arellano
El Microcontrolador 8051
CAP 3
Direccionamiento indirecto
La instruccin especifica un registro que contiene la direccin del operando. Tanto
la memoria RAM interna (256 bytes/128 bytes) como la externa se pueden
direccionar indirectamente.
Los registros para direccionar sobre el mapa de 8 bits pueden ser el R0 y R1 del
banco de registros seleccionado, o el Stack Pointer. El registro para direccionar
sobre 16 bits slo puede ser el Puntero de Datos (Data Pointer = DPTR).
Ejemplo:
ADD A,@R0
Direccionamiento implcito
Algunas instrucciones especifican, implcitamente, el registro sobre el que van a
operar, como el acumulador, el puntero de datos, etc. No necesitan especificar el
operando porque est implcito en el cdigo de operacin.
Ejemplos:
INC A
INC DPTR
_________________________________________________________________________
ITMAR Mazatln
25
Ing. Rufino J. Domnguez Arellano
El Microcontrolador 8051
CAP 3
Direccionamiento inmediato
Al cdigo de operacin le sigue una constante en la memoria de programas.
Ejemplo:
MOV A, #255
MOV A, #FFH
; o en binario:
MOV A, #11111111B
Direccionamiento indexado
Este direccionamiento slo es posible en la memoria de programas y slo permite
la lectura. Es utilizado para la lectura de tablas. Un registro base de 16 bits (el
DPTR o el contador de programa) apunta a la base de la tabla y el contenido del
acumulador es el offset que permite acceder a la lectura de esa posicin de la
tabla. Es decir, la direccin de la tabla que se va a acceder est formada por la
suma del acumulador y el puntero base.
Se puede utilizar otro tipo de direccionamiento indexado en las instrucciones de
salto. En este caso la direccin de destino del salto se calcula como la suma del
puntero base y el dato del acumulador.
_________________________________________________________________________
ITMAR Mazatln
26
Ing. Rufino J. Domnguez Arellano
El Microcontrolador 8051
CAP 3
Instrucciones aritmticas.
Instrucciones lgicas.
Instrucciones de transferencia de datos.
Instrucciones booleanas
Instrucciones de salto.
_________________________________________________________________________
ITMAR Mazatln
27
Ing. Rufino J. Domnguez Arellano
El Microcontrolador 8051
CAP 3
_________________________________________________________________________
ITMAR Mazatln
28
Ing. Rufino J. Domnguez Arellano
El Microcontrolador 8051
CAP 3
_________________________________________________________________________
ITMAR Mazatln
29
Ing. Rufino J. Domnguez Arellano
El Microcontrolador 8051
CAP 3
_________________________________________________________________________
ITMAR Mazatln
30
Ing. Rufino J. Domnguez Arellano
El Microcontrolador 8051
CAP 3
Ejemplo:
; Antes de ejecutar la instruccin:
; (3A) = 35H ; (3D) = 78H
MOV3AH,3DH ..
; Despues de ejecutarla:
; (3A) = 78H ; (3D) = 78H
En resumen. stas son las operaciones que realiza la unidad de control del
microcontrolador:
PUSH <src>
---------------------------(SP) (SP) + 1
((SP)) <src>
POP <dest>
-------------------------------<dest> ((SP))
(SP) (SP) -1
_________________________________________________________________________
ITMAR Mazatln
31
Ing. Rufino J. Domnguez Arellano
El Microcontrolador 8051
CAP 3
Ejemplos:
; Antes de ejecutar la instruccin:
; (A) = 37H y (2D) = 23H
XCH A, 2DH
; Despus de ejecutarla:
; (A) = 23H y (2D) = 37H
; Antes de ejecutar la instruccin:
; (RO) = 2DH y (2D) = 37H y (A) = 23H
XCHD A, @R0
; Despus de ejecutarla:
; (A) =27H y (2D) = 33H
El Microcontrolador 8051
CAP 3
Nota: Este ejemplo se podra realizar con el Microcontrolador 8052, en el espacio de memoria
RAM interna Que se solapa con el rea SFR. Si se refiere al Microcontrolador 8051,
debera ser implementada esta operacin, obligatoriamente. en el espacio de memoria
externa. Naturalmente, si utiliza la memoria interna, las instrucciones que debe utilizar son
MOV A., @R1 y MOV @R0, A.
_________________________________________________________________________
ITMAR Mazatln
33
Ing. Rufino J. Domnguez Arellano
El Microcontrolador 8051
85H
F3H
CAP 3
sustituida
2085H
20F3H
MOVX A, @DPTR
MOVX @DPTR, A
_________________________________________________________________________
ITMAR Mazatln
34
Ing. Rufino J. Domnguez Arellano
El Microcontrolador 8051
CAP 3
; A ((A) + (DPTR))
; PC (PC) + 1
; A ((A) + (PC))
_________________________________________________________________________
ITMAR Mazatln
35
Ing. Rufino J. Domnguez Arellano