Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits....

34
Microprocesadores UNEXPO Pto. Ordaz. MICROPROCESADORES Prof. Antonio Pateti

Transcript of Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits....

Page 1: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

Microprocesadores

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio Pateti

Page 2: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

Un poco de historia

1965 Se formo GI división de Microelectrónica

1975 GI diseño el Controlador de Interface Periférico (PIC16C5X)

1985 GI división de Microelectrónica es vendida a Venture Capital

Investors, se forma Arizona Microchip Technology.

Prof. Antonio Pateti

Page 3: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNIDAD

ARITME TICA/

LOGICA

UNIDAD

DE

CONTROL

REGISTROS

ROM RAMPUERTOS

E/S

MICROPROCESADOR

(CPU) MICROCOMPUTADORA

SALIDAS

ENTRADAS

RELOJ

BUS DE DIRECCIONES

BUS DE DATOS

BUS DE CONTROL

Arquitectura general de una Microcomputadora

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio Pateti

Page 4: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Arquitecturas

CPU

Memoria

Programa

+

Datos

Bus

Direcciones

Bus

Datos

Arquitectura von Neumann

Prof. Antonio Pateti

Page 5: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

CPU

Memoria

Programa

Bus

Direcciones

Bus

Datos

Memoria

Datos

M. Prog

M. Prog

Bus

Direcciones

M. Datos

Bus

Datos

M. Datos

Arquitectura Harvard

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Arquitecturas

Prof. Antonio Pateti

Page 6: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

La Familia de los PIC

Gama Básica:

PIC16C5X: Instrucciones de 12 Bits

33 Instrucciones

Gama Media:

PIC16CXXX: Instrucciones de 14 Bits

35 Instrucciones

Prof. Antonio Pateti

Page 7: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

La Familia de los PIC

Gama Mejorada:

PIC18CXXX: Instrucciones de 16 Bits

77 Instrucciones

Prof. Antonio Pateti

Arquitectura Optimizada para ser programado

en C

Page 8: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

La Familia de los PIC

dSPIC:

dsPICXXX: Instrucciones de 24 Bits

84 Instrucciones

Prof. Antonio Pateti

Arquitectura Optimizada para ser programado

en C

PIC24:

PIC24F/HXXX: Microcontrolador de 16 bits.

Instrucciones de 24 Bits,84 Instrucciones

Arquitectura Optimizada para ser programado

en C

Page 9: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

La Familia de los PIC

PIC32:

PIC32F/HXXX

Prof. Antonio Pateti

Arquitectura Optimizada para ser programado

en C

Page 10: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Modelo PIC16F877 PIC16F1787

Mem. Programa

FLASH8192x14 8192x14

Mem.

Datos

(Bytes)

EEPROM 256 256

RAM 368 1024

Puertos E/S 33 36

Temporizadores 1-16 bits, 2-8

bits, 1-WDT

1-16 bits, 2-8

bits, 1-WDT

CCP 2 3

Comunicación

Serial

USART/

MSSP

EUSART/

MSSP

ADC8 (10 bits) 14 (12 bits)

Fuentes de

Interrupción14 22

Encapsulado 40P,44L,44PQ,

44PT

40P,44L,44PQ,

44PT

Características relevantes de los PIC16F87X

Prof. Antonio Pateti

Page 11: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

ALU

W

Memoria

de Datos

(SRAM)

Puertos E/S

TIMERS

EEPROM

CCP1,2

ADC

USART

SSP

PSP

Memoria

de Prog.

(FLASH)

Registro de

Instrucciones

Decodif. de

Instrucciones

FSR

Estado

MUX

MU

X

PC

Pila

8 Niveles9

Direcciones

8Datos

8

14

8

13

Direcciones

Dir. Directo

Dir. Indirecto

Arquitectura General del 16F87X

Prof. Antonio Pateti

Page 12: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Arquitectura del 16F1787

Prof. Antonio Pateti

Page 13: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Diagrama de Pines del 16F87X

Prof. Antonio Pateti

Page 14: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Organización de la Memoria

Memoria

Programa

PIC16F1787

Prof. Antonio Pateti

Page 15: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Memoria

Datos

PIC16F1787

Organización de la Memoria

Prof. Antonio Pateti

Page 16: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Configuración General de cada Banco del PIC16F1787

Organización de la Memoria

Prof. Antonio Pateti

Page 17: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Memoria Datos PIC16F1787 (Banco 0-7)

Organización de la Memoria

Prof. Antonio Pateti

Page 18: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Memoria Datos PIC16F1787 (Banco 8-15)

Organización de la Memoria

Prof. Antonio Pateti

Page 19: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Memoria Datos PIC16F1787 (Banco 16-31)

Organización de la Memoria

Prof. Antonio Pateti

Page 20: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

C: Acarreo / llevada

DC: Acarreo / llevada 4to bit

Z: Cero

PD#: Power Down

1: Después de Alimentar en µC o por la Instrucción CLRWDT

0: Por la Instrucción SLEEP

TO#: Time Out

1: Después de Alimentar en µC o por la Instrucción CLRWDT y SLEEP

0: Cuando se produce un desbordamiento en el Perro Guardián (Watchdog)

Registros

Prof. Antonio Pateti

Registro STATUS

Page 21: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Registros

Prof. Antonio Pateti

Registro Selección de Banco (BSR)

BSR0

07

BSR1BSR2BSR3- BSR4--

BSR4-BSR0: Selección de Banco Registros (Dir. Directo)00000: Banco 0

00001: Banco 1

00010: Banco 2

00011: Banco 3

11111: Banco 31

Page 22: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4

Busca Instrucción (PC)

Ejecuta Instrucción (PC-1) Busca Instrucción (PC+1)

Ejecuta Instrucción (PC) Busca Instrucción (PC+2)

Ejecuta Instrucción (PC+1)

Ciclo Instrucción

Ciclo de Instrucción

Ciclo de Instrucción

Prof. Antonio Pateti

Page 23: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Ciclo de Instrucción

Búsqueda 1ª Ejecucuón 1ª

Búsqueda 2ª Ejecucuón 2ª

Búsqueda 3ª Ejecucuón 3ª

Búsqueda 4ª

Bús. 1ª SAL Ejec. 1ª SAL

1 Ciclo 1 Ciclo 1 Ciclo 1 Ciclo 2 CicloFin 1ª Fin 2ª Fin 3ª Fin 1ª

SAL

1ª - MOVLW 0xF5

2ª - MOVWF 0x20

3ª - CALL SAL

4ª - MOVLW 0xF6

Ejecución de un programa

No Ejec.

Prof. Antonio Pateti

Page 24: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Set de Instrucciones

Son 20 instrucciones

• Instrucciones que manejan Registros

Son 2 instrucciones

• Instrucciones de Registros con Brinco

Son 4 instrucciones

• Instrucciones que manipulan Bits

Prof. Antonio Pateti

Son 8 instrucciones

• Instrucciones de Operando Inmediato

Page 25: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Set de Instrucciones

Son 8 instrucciones

• Instrucciones de Control

Son 6 instrucciones

• Instrucciones de Operaciones Inherentes

Son 5 instrucciones

• Instrucciones Optimizadas para Comp. C

Prof. Antonio Pateti

Page 26: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Set de Instrucciones

Nemónico u Operación Operandos

MOVF f,d

Especifica la operación a realizar Datos requeridos por la operación

Formato de una instrucción

Prof. Antonio Pateti

Page 27: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Nemonico Descripción Ciclos 14 Bits Opcode. Banderas afectadas

ADDWF f,d f + W d 1 00 0111 dfff ffff C, DC, Z

ANDWF f,d f AND W dest 1 00 0101 dfff ffff Z

CLRF f 00h f 1 00 0001 1fff ffff Z

CLRW 00h W 1 00 0001 0000 00xx Z

COMF f,d NOT f dest 1 00 1001 dfff ffff Z

DECF f,d f - 1 dest 1 00 0011 dfff ffff Z

INCF f,d f + 1 dest 1 00 1010 dfff ffff Z

Set de Instrucciones

Instrucciones que manejan Registros

Prof. Antonio Pateti

ADDWFC f,d W + f + C d 1 11 1101 dfff ffff C, DC, Z

ASRF f,d Desp. Arit. Der. 1 11 0111 dfff ffff C, DC

LSLF f,d Desp. Log. Izqui. 1 11 0101 dfff ffff C, DC

LSRF f,d Desp. Log. Der. 1 11 0110 dfff ffff C, DC

IORWF f,d f OR W dest 1 00 0100 dfff ffff Z

MOVF f,d f dest 1 00 1000 dfff ffff Z

MOVWF f W f 1 00 0000 1fff ffff

Page 28: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Nemonico Descripción Ciclos 14 Bits Opcode. Banderas afectadas

Set de Instrucciones

Instrucciones que manejan Registros

Prof. Antonio Pateti

RLF f,d Rota a la Izq. con C 1 00 1101 dfff ffff C

RRF f,d Rota a la Der. con C 1 00 1100 dfff ffff C

SUBWF f,d F - W dest 1 00 0010 dfff ffff C, DC, Z

SWAPF f,d f<7:4>f<3:0>dest 1 00 1110 dfff ffff

XORWF f,d f XOR W dest 1 00 0110 dfff ffff Z

SUBWFB f,d F – W - C dest 1 11 1011 dfff ffff C, DC, Z

Page 29: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Nemonico Descripción Ciclos 14 Bits Opcode. Banderas afectadas

Set de Instrucciones

Instrucciones de Registros con Brinco

Prof. Antonio Pateti

DECFSZ f,d f–1, brinca si f=0 1(2) 00 1011 dfff ffff

INCFSZ f,d f+1, brinca si f=0 1(2) 00 1111 dfff ffff

Page 30: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Nemonico Descripción Ciclos 14 Bits Opcode. Banderas afectadas

BCF f,b f<b> 0 1 01 00bb bfff ffff

BSF f,b f<b> 1 1 01 01bb bfff ffff

BTFSC f,b Si f<b>=0, Brinca 1(2) 01 10bb bfff ffff

BTFSS f,b Si f<b>=1, Brinca 1(2) 01 11bb bfff ffff

Set de Instrucciones

Instrucciones que manipulan Bits

Prof. Antonio Pateti

Page 31: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Nemonico Descripción Ciclos 14 Bits Opcode. Banderas afectadas

ADDLW k k + W W 1 11 1110 kkkk kkkk C, DC, Z

ANDLW k k AND W W 1 11 1001 kkkk kkkk Z

IORLW k k OR W W 1 11 1000 kkkk kkkk Z

MOVLW k k W 1 11 0000 kkkk kkkk

SUBLW k k - W W 1 11 1100 kkkk kkkk C, DC, Z

Set de Instrucciones

Instrucciones de operandos inmediatos

XORLW k k XOR W W 1 11 1010 kkkk kkkk Z

Prof. Antonio Pateti

MOVLB k k BSR 1 00 0000 001k kkkk

MOVLP k k PCLATH 1 11 0001 1kkk kkkk

Page 32: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Nemonico Descripción Ciclos 14 Bits Opcode. Banderas afectadas

BRA k (PC) + 1 + k PC 2 11 001k kkkk kkkk

BRW (PC) + W PC 2 00 0000 0000 1011

CALL k Llamada a Sub-Rut. 2 10 0kkk kkkk kkkk

CALLW Llamada a Sub-Rut. W 2 00 0000 0000 1010

GOTO k SALTA a la DIR k 2 10 1kkk kkkk kkkk

RETFIE Ret. Interrupción 2 00 0000 0000 1001

RETLW k Ret. Sub-Rut. K W 2 11 0100 kkkk kkkk

RETURN Retorno de Sub-Rut. 2 00 0000 0000 1000

Set de Instrucciones

Instrucciones de control

Prof. Antonio Pateti

Page 33: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Nemonico Descripción Ciclos 14 Bits Opcode. Banderas afectadas

Set de Instrucciones

Instrucciones de Operadnos Inherentes

Prof. Antonio Pateti

CLRWDT 00h WDT 1 00 0000 0110 0100 TO, PD

NOP No Operación 1 00 0000 0000 0000

OPTION W Option REG 1 00 0000 0110 0010

RESET Reset por Software 1 00 0000 0000 0001

SLEEP Modo Reposo 1 00 0000 0110 0011 TO, PD

TRIS f W TRIS 1 00 0000 0110 0fff

Page 34: Microprocesadores · La Familia de los PIC Gama Básica: PIC16C5X: ... Microcontrolador de 16 bits. ... MOV LW 0 x F6 Ejecución de un programa

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Nemonico Descripción Ciclos 14 Bits Opcode. Banderas afectadas

Set de Instrucciones

Instrucciones Optimizadas para Comp. C

Prof. Antonio Pateti

ADDFSR n,k FSR(n) + k FSR(n) 1 11 0001 0nkk kkkk

MOVIW n,mm INDF(n) W 1 00 0000 0001 0nmm Z

MOVIW k[n] FSR(n) + k W 1 11 1111 0nkk kkkk Z

MOVWI n,mm W INDF(n) 1 00 0000 0001 1nmm

MOVWI k[n] W FSR(n) + k 1 11 1111 1nkk kkkk