arquitectura de micros

31
ARQUITECTURA DE MICRO- CONTROLADORES José David Alvarado M. Universidad de Cundinamarca Ingeniería Electrónica

Upload: jose-david-alvarado

Post on 20-Jan-2016

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitectura de Micros

ARQUITECTURA DE MICRO-CONTROLADORES

José David Alvarado M.

Universidad de Cundinamarca

Ingeniería Electrónica

Page 2: Arquitectura de Micros

Introducción a los Micro-controladores.

CPU

• Cerebro de una micro-computadora.

• Unidad Aritmética y Lógica: ALU.

Memoria.

• Almacenamiento del programa de control de la CPU.

Page 3: Arquitectura de Micros

Componentes de un Micro-controlador.

Page 4: Arquitectura de Micros

Componentes de un Micro-controlador.

• Reloj : RC – XT.

• CPU

– ALU.

– Registro de Instrucción.

– Acumulador.

– Registro Estado.

– Contador de Programa.

– Registro de direcciones y datos.

– Puntero de pila.

• Memoria.

– RAM

– ROM

• Periféricos.

Page 5: Arquitectura de Micros

Componentes de un Micro-controlador.

Perro Guardián: watchdog Timer.

Page 6: Arquitectura de Micros

Componentes de un Micro-controlador.

Reset

Page 7: Arquitectura de Micros

Arquitecturas

• Von Neumann.

– Micro-procesador.

Page 8: Arquitectura de Micros

Arquitecturas

• Von Harvard.

– Micro-controlador.

Page 9: Arquitectura de Micros

Tarea 1 – Quiz la Próxima clase.

• Arquitecturas.

– Von Neumann.

– Harvard.

– CISC

– RISC

Page 10: Arquitectura de Micros

Arquitectura del microcontrolador

Page 11: Arquitectura de Micros

Arquitectura del micro-controlador

Estructura de los micro controladores PIC. Ciclos de Maquina.

Page 12: Arquitectura de Micros

Arquitectura del micro-controlador

Page 13: Arquitectura de Micros

Arquitectura del microcontrolador

Page 14: Arquitectura de Micros

Bancos de memoria 16F84

Page 15: Arquitectura de Micros

Bancos de memoria 16F84

Page 16: Arquitectura de Micros

Arquitectura del microcontrolador

Page 17: Arquitectura de Micros

Bancos de memoria 16F84

Page 18: Arquitectura de Micros

Bancos de memoria 16F84

Page 19: Arquitectura de Micros

Registro de estado en el PIC16X84

El registro de Estado (STATUS) del microcontrolador PIC16X84, que contiene varios bits de estado de la unidad central, el estado aritmético de la ALU, el estado del reset y un par de bits de selección de página denominados RP1 y RP0. Ocupa la posición 03h del banco 0 y la 83h del banco 1.

R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x

IRP RP1 RP0 /TO /PD Z DC C

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

Page 20: Arquitectura de Micros

Registro de estado

IRP: Selección del banco en direccionamiento indirecto. Este bit junto con el de más peso del registro FSR sirven para determinar el banco de la memoria de datos seleccionado. En el PIC16X84 al disponer de dos bancos no se usa y debe programarse como 0.

RP0 y RP1: Register Bank Select. Selección de página o banco de la memoria con direccionamiento directo. Cada página contiene 128 bytes. Como el PIC16X84 sólo tiene dos bancos únicamente se emplea RP0 de forma que cuando vale 0 se accede al banco 0 y cuando vale 1 se accede al banco 1. Después de un reset, RP0 se pone automáticamente a 0. RP1 debe mantenerse a 0.

TO: Time Out.

–1. Se pone a 1 tras conectar la alimentación o al ejecutar CLRWDT o SLEEP.

–0. Se pone a 0 por desbordamiento del Perro Guardián WDT.

PD: Power Down.

–1. Se pone automáticamente a 1 tras conectar la alimentación Vdd o ejecutar CLRWDT.

–0. Se pone a 0 al ejecutar la instrucción SLEEP.

Page 21: Arquitectura de Micros

Registro de estado

• Z: Cero 1 = El resultado de una operación aritmética o lógica es 0.

0 = El resultado es distinto de 0.

• DC (Digit Carry). Acarreo en el 4º bit de menos peso. Funciona igual que el bit de Carry descrito a continuación. De interés en operaciones en BCD

• C (Carry). Acarreo en el 8º bit o bit de mas peso. Es el bit de "acarreo" en operaciones de suma AADWF y ADDLW así como también el bit de "llevada" en las instrucciones de sustracción SUBWF y SUBLW. También lo emplean las instrucciones RLF y RRF de rotación de bits.

– Suma 1. Se pone a 1 cuando se ha producido acarreo en la suma en el bit de mayor peso con las operaciones AADWF y ADDLW.

0. Se pone a 0 si en la suma no se ha producido acarreo.

– Resta 1. Se pone a 1 si en la resta no se ha producido acarreo.

0. Se pone a 0 cuando se ha producido acarreo en la resta con las operaciones SUBWF y SUBLW.

Page 22: Arquitectura de Micros

Programación en Lenguaje Ensamblador.

Page 23: Arquitectura de Micros

Lenguaje de maquina

Binario Hexa Código Operando Instrucción

11000000000111 3007 1100xx 0000 0111 Carga en el acumulador el dato

indicado en el operando

11111000001000 3E08 11111x 0000 1000 Suma el acumulador y el dato

indicado en el operando y guarda el resultado en el acumulador

00000010010000 0090 0000001 0010000 Almacena el resultado contenido en el acumulador en la dirección

indicada

Page 24: Arquitectura de Micros

Instrucciones de Lenguaje Ensamblador

Mnemotécnico Hexa Código Operando Instrucción

movlw 0x07 3007 1100xx 0000 0111 Carga en el acumulador el dato

indicado en el operando

addlw 0x08 3E08 11111x 0000 1000

Suma el acumulador y el dato indicado en el operando y guarda el resultado

en el acumulador

movwf 0x10 0090 0000001 001 0000 Almacena el resultado contenido en el

acumulador en la dirección indicada

Page 25: Arquitectura de Micros

Instrucciones de Lenguaje Ensamblador

• Instrucciones Orientadas a bits.

• Instrucciones Orientadas a Registros.

• Instrucciones Orientadas a Control.

• Instrucciones especiales.

Page 26: Arquitectura de Micros

Instrucciones de Lenguaje Ensamblador

Instrucciones orientadas a bit

Mnemotécnico DESCRIPCIÓN BANDERAS NCIC

BCF f,b Pone a 0 bit b de registro f Ninguna 1

BSF f,b Pone a 1 bit b de registro f Ninguna 1

BTFSC f,b Salto si bit b de reg.f es 0 Ninguna 1(2)

BTFSS f,b Salto si bit b de reg.f es 1 Ninguna 1(2)

Page 27: Arquitectura de Micros

Instrucciones de Lenguaje Ensamblador

Instrucciones orientadas a registros

Mnemotécnico DESCRIPCIÓN BANDERAS NCIC

ADDWF f,d w + f → d C, DC, Z 1

ANDWF f,d w AND f → d Z 1

CLRF f 00 h → f Z 1

CLRW - 00 h → w Z 1

COMF f,d Complemento de f → d Z 1

DECF f,d f - 1 → d Z 1

Page 28: Arquitectura de Micros

Instrucciones de Lenguaje Ensamblador

Instrucciones con literales y de control

Mnemotécnico DESCRIPCIÓN BANDERAS NCIC

DECFSZ f,d f - 1 → d (si es 0 salta) Ninguna 1(2)

INCF f,d f + 1 → d Z 1

INCFSZ f,d f + 1 → d (si es 0 salta) Ninguna 1(2)

IORWF f,d w OR f → d Z 1

MOVF f,d f → d Z 1

MOVWF f w → f Ninguna 1

Page 29: Arquitectura de Micros

Instrucciones de Lenguaje Ensamblador

Instrucciones orientadas a registros

Mnemotécnico DESCRIPCIÓN BANDERAS NCIC

NOP - No operación Ninguna 1

RLF f,d Rota f izq por carry → d C 1

RRF f,d Rota f dcha por carry → d C 1

SUBWF f,d f - w → d C,DC,Z 1

SWAPF f,d Intercambia nibbles de f → d Ninguna 1

XORWF f,d w XOR f → d Z 1

Page 30: Arquitectura de Micros

Instrucciones de Lenguaje Ensamblador

Instrucciones con literales y de control

Mnemotécnico DESCRIPCIÓN BANDERAS NCIC

ADDLW k w + k → w C,DC,Z 1

ANDLW k w AND k → w Z 1

CALL k Llamada a subrutina k Ninguna 2

CLRWDT - Borra temporizador del WDT TO,PD 1

GOTO k Ir a dirección k Ninguna 2

IORLW k w OR k → w Z 1

MOVLW k k → w Ninguna 1

Page 31: Arquitectura de Micros

Instrucciones de Lenguaje Ensamblador

Instrucciones con literales y de control

Mnemotécnico DESCRIPCIÓN BANDERAS NCIC

RETFIE - Retorno de una interrupción Ninguna 2

RETLW k Retorno con k en w Ninguna 2

RETURN - Retorno de una subrutina Ninguna 2

SLEEP - Modo Standby TO, PD 1

SUBLW k k - w → w C,DC,Z 1

XORLW k w XOR k → w Z 1