arquitectura de micros

Post on 20-Jan-2016

34 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ARQUITECTURA DE MICRO-CONTROLADORES

José David Alvarado M.

Universidad de Cundinamarca

Ingeniería Electrónica

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.

Componentes de un Micro-controlador.

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.

Componentes de un Micro-controlador.

Perro Guardián: watchdog Timer.

Componentes de un Micro-controlador.

Reset

Arquitecturas

• Von Neumann.

– Micro-procesador.

Arquitecturas

• Von Harvard.

– Micro-controlador.

Tarea 1 – Quiz la Próxima clase.

• Arquitecturas.

– Von Neumann.

– Harvard.

– CISC

– RISC

Arquitectura del microcontrolador

Arquitectura del micro-controlador

Estructura de los micro controladores PIC. Ciclos de Maquina.

Arquitectura del micro-controlador

Arquitectura del microcontrolador

Bancos de memoria 16F84

Bancos de memoria 16F84

Arquitectura del microcontrolador

Bancos de memoria 16F84

Bancos de memoria 16F84

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

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.

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.

Programación en Lenguaje Ensamblador.

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

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

Instrucciones de Lenguaje Ensamblador

• Instrucciones Orientadas a bits.

• Instrucciones Orientadas a Registros.

• Instrucciones Orientadas a Control.

• Instrucciones especiales.

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)

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

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

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

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

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

top related