Intro 8051

download Intro 8051

of 39

  • date post

    13-Apr-2015
  • Category

    Documents

  • view

    21
  • download

    1

Embed Size (px)

Transcript of Intro 8051

1.

Prctica 1: Introduccin al 8051

Prctica 1 : INTRODUCCIN 8051

ARQUITECTURA

1.

Organizacin microcontrolador 8051

Tema 1: Introduccin al 8051

RAM256 Bytes

T0

PUERTO 0 PUERTO 1 PUERTO 2 PUERTO 3

E/S E/S E/S E/S

MEMORIA PASIVA(OPCIONAL)

8051(8 bits)

T1 PUERTO SERIE

HASTA 4KBytes

MEMORIA RAM INTERNA: ORGANIZACIN

1.

IRAM (Internal RAM)

Tema 1: Introduccin al 8051

FF SFR 80 7F RAM 00

MEMORIA RAM INTERNA: ORGANIZACIN

1.

128 Bytes (parte baja de la memoria): 16 posiciones accesibles bit a bit 4 bancos de 8 registros R0-R7, seleccin desde PSW (Program Status Word). Tema 1: Introduccin al 8051

BANCO 3 BANCO 2 BANCO 1 BANCO 0

R7 R7 R7 R7

R6 R6 R6 R6

R5 R5 R5 R5

R4 R4 R4 R4

R3 R3 R3 R3

R2 R2 R2 R2

R1 R1 R1 R1

R0 R0 R0 R0

18H 10H 08H 00H

SFR (Special Function Registers)

1.

128 Bytes (parte alta de la memoria):

Tema 1: Introduccin al 8051

SFR DE PUERTOS DE ENTRADA/SALIDA SFR DE CONTROL OTROS SFRs

1.

Tema 1: Introduccin al 8051

ACC: acumulador. B: registro B, acumulador adicional. DPTR: puntero de datos (16 bits: DPH+DPL). IE : habilitacin de interrupciones. IP: prioridad de interrupciones.

SFR

1.

SP (Stack Pointer): Tamao 8 bits. Despus de reset apunta a la direccin 07h. Se incrementa antes de PUSH. Se decrementa despus de POP.

Tema 1: Introduccin al 8051

PSW (Program Status Word):C AC F0 RS1 RSO Bit de acarreo Bit de acarreo auxiliar para operaciones en BCD Flag de propsito general0 0 1 1 0 1 0 1Seleccin del banco de registros 0 Seleccin del banco de registros 1 Seleccin del banco de registros 2 Seleccin del banco de registros 3

OV F1 P

Flag de desbordamiento Flag de propsito general Flag de paridad, indica un nmero par/impar de unos en el acumulador

MEMORIA PASIVA INTERNA

1.

Tema 1: Introduccin al 8051

La memoria pasiva (los datos permanecen al quitar la alimentacin) puede ser de tipo ROM, EPROM o FLASH y contiene el programa a ejecutar por el 8051. Puede tener hasta 4 Kbytes de memoria de cdigo interna. Es posible utilizar combinaciones de memoria interna y externa. Un ejemplo tpico es el que utiliza los 4Kbytes de ROM en el chip y el resto hasta completar como mximo los 64Kbytes en chips de memoria EPROM.

MEMORIA EXTERNA: ARQUITECTURA HARVARD

1.

Arquitectura Harvard (distincin entre memoria externa de datos y de programa):Tema 1: Introduccin al 8051

PSEN 80C537 RD WR

Memoria Programa

Memoria Datos

PSEN (Program Store Enable)

1.1

Bus de datos y direcciones

Tema 1: Introduccin al 8051

RAM256 Bytes

T0

PUERTO 0 PUERTO 1

AB[7:0]/D[7:0]

MEMORIA PASIVA(OPCIONAL)

8051(8 bits)

T1

HASTA 4KBytes

PUERTO PUERTO 2 SERIE PUERTO 3

AB[15:8]

MEMORIA EXTERNA

MODOS DE DIRECCIONAMIENTO (I)

1.1

Direccionamiento directo: La direccin del operando se especificada en el cdigo de instruccin. Tamao del campo de direccin: 8 bits Espacio de memoria direccionable: 256 bytes. Ejemplo: ADD A,30h

Tema 1: Introduccin al 8051

Direccionamiento inmediato: EL operando se indica mediante una constante Ejemplo: ADD A,#10

Direccionamiento por registro: El operando es el contenido de un registro que se especifica en el cdigo de instruccin. Ejemplo: ADD A,R0

MODOS DE DIRECCIONAMIENTO (II)

1.1

Direccionamiento indirecto: El cdigo de instruccin especifica un registro que contiene la direccin del operando:Tema 1: Introduccin al 8051 R0,R1 (del banco seleccionado): 8 bits DPTR: 16 bits.

Ejemplo: ADD A,@R0

Direccionamiento indexado: El cdigo de instruccin se obtiene de la suma de un registro base (DPTR/PC) y un registro ndice (ACC). Facilita el acceso a tablas de datos. Ejemplo: MOVC A,@ A + DPTR

JUEGO DE INSTRUCCIONES

1.1

Instrucciones y modos de direccionamiento orientadas al bit que permiten realizar controladores lgicos.Tema 1: Introduccin al 8051

Instrucciones aritmticas en BCD. Acceso a memoria externa a travs de punteros para facilitar manejo de tablas y reducir el tamao de programa.

Transferencia datos sobre IRAMMnemnico Resultado de la instruccin (A) = (src) (des) = (A) (Rn) = (src) (direc) = (src) ((Ri)) = (src) (DPTR) = constante 16 bits. INC SP; MOV @SP, src MOV des,@SP; DEC SP intercambia contenido de A y des intercambia los 4 bits de menor peso del contenido de A y el apuntado por Ri X X X X X X DIR X X X X X X X IND X X REG X X

1.1Modos direccionamiento INM X

MOV A, src MOV des, A

Tema 1: Introduccin al 8051

MOV Rn, scr MOV direc,src MOV @Ri,src MOV DPTR, #dato16 PUSH src POP des XCH A,des XCHD A, @Ri

X X X X

() indica contenido Ri=R0 o R1 del banco de registros seleccionado. DIR: direc. Directo; IND: direc. Indirecto; REG: direc. Registro; INM: direc. Inmediato

Transferencia datos sobre IRAM (Ejemplos 1)

1.1

Ejemplos:MOV A,R0 MOV @R1,A MOV A,#3 MOV 25H,26 MOV DPTR,#2F7AH

Conjunto de instrucciones

onjunto de instrucciones Tema 1: Introduccin al 8051

2F7AH 2A 5F A4 3

dato 25H R0 R1

26(1AH) DPTR A9AC8 1C F5

DPTR 25H R0 A 26(1AH) 5FH A2F7A 1C 2A 03 F5 1C 2A F5

5FHB3

MOV C,P3.1

C0

P3.11

C1

P3.11

Transferencia datos sobre IRAM (Ejemplos 2)

1.1

Ejemplo:PUSH ACC POP ACC SP3A 39 51 50RAM interna

Tema 1: Introduccin al 8051

+13AH 51H

255

A06 45 BF

BF 06

Posici inicial

Transferencia datos sobre XRAM

1.1

Mnemnico

Resultado (A) = ((Ri)) ((Ri)) = (A) (A) = ((DPTR)) ((DPTR)) = (A)

Espacio direcciones 8 bits 8 bits 16 bits 16 bits

MOVX A, @Ri

Tema 1: Introduccin al 8051

MOVX @Ri, A MOVX A, @DPTR MOVX @DPTR, ARi=R0 o R1 del banco de registros seleccionado.

1.1

Ejemplo:DPTR R0 MOVX A,@R0 MOVX @DPTR,AA5 03A503A5H A5H

RAM Externa Datos65535 255

rogramacin de Tema un microprocesador 1: Introduccin al 8051

A39 84 6F

BF 6F 390

Transferencia datos desde memoria de programa

1.1

Tema 1: Introduccin al 8051

Mnemnico:

Resultado instruccin: (A) = ((A) + (DPTR)) (A) = ((A) + (PC))

MOVC A, @A + DPTR MOVC A, @A + PCPC: contador de programa

1.2

Ejemplo: MOVC A,@A+DPTR MOVC A,@A+PCDPTR PCE12A B4B0RAM Memoria Externa programa Datos65535 65535

Tema 1: Introduccin al 8051

A03 18 9C C2

+

E12DH B4C8H

9C C20 0

Instrucciones lgicasMnemnico: CLR A CPL A RL A RLC A Resultado de la instruccin: pone a cero el acumulador complementa el acumulador (cambia 0 por 1 y viceversa) rota 1 bit a la izquierda el acumulador de forma circular (el bit 7 pasa a ser el bit 0) rota 1 bit a la izquierda el acumulador de forma circular a travs del bit acarreo (el bit 7 pasa a ser el acarreo y el acarreo pasa a ser el bit 0) rota 1 bit a la derecha el acumulador de forma circular (el bit 0 pasa a ser el bit 7)

1.2

Tema 1: Introduccin al 8051

RR A RRC A SWAP A

rota 1 bit a la derecha el acumulador de forma circular a travs del bit acarreo (el bit 0 pasa a ser el acarreo y el acarreo pasa a ser el bit 7). intercambia los nibbles (4 bits) bajo y alto del acumulador. Es igual a una rotacin de 4 bits (RL o RR)

Modos de direccionamiento: Mnemnico: Resultado : (A)=(A) AND (op) (A)=(A) OR (op) (A)= (A) (op) DIR x x x IND x x x REG x x x INM x x x

ANL A, op ORL A, op XRL A, op

DIR: direc. Directo; IND: direc. Indirecto; REG: direc. Registro; INM: direc. Inmediato

Instrucciones de manejo de bitsMnemnico: Resultado de la instruccin: pone a cero el bit Operando: C o cualquier bit

1.2

CLR bit SETB bit

pone a uno el bit complementa el bit

C o cualquier bit C o cualquier bit

Tema 1: Introduccin al 8051

CPL bitC: bit de acarreo

Mnemnico:

Resultado: (C) = (C) AND (bit) (C) = (C) OR (bit) (C) = (bit) (bit) = (C)

bit cualquier bit cualquier bit cualquier bit cualquier bit

ANL C, bit ORL C. bit MOV C, bit MOV bit, C

Instrucciones de salto condicional

1.2

Mnemnico:

Condicin: si bit = 1 si bit = 1 si bit = 0 si C = 1 si C = 0

Resultado salta a la direccin(PC) + rel salta a la direccin(PC) + rel y desactiva el bit salta a la direccin(PC) + rel salta a la direccin(PC) + rel salta a la direccin(PC) + rel

JB bit , rel JBC bit , rel

Tema 1: Introduccin al 8051

JNB bit , rel JC rel JNC rel

"rel" es un entero de 8 bits con signo (-128 a 127)

Instrucciones artimticasMnemnico ADD A, byte Resultadosuma aritmtica de byte con el acumulador guardando el resultado en este ltimo. Los bits C y OV se ven afectados. Si se suman enteros sin signo el desbordamiento se indica con C=1 mientras que si se suman enteros con signo se indica mediante OV=1 realiza la suma aritmtica del operando2 con el acumulador y con el acarreo (C) guardando el resultado en el acumulador. C y OV se ven afectadas de igual forma que en ADD corrige el resultado de una suma almacenado en el acumulador para ponerlo en BCD, aadiendo 0110 si el resultado del dgito BCD es mayor que 9 decrementa en 1 el byte indicado. Si decrementamos 00H obtendremos FFH divide el acumulador (A) entre el registro B (ambos enteros sin signo). La parte entera del cociente se guarda en A y el resto entero