Microprocesadores
UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio Pateti
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
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
UNEXPO – Pto. Ordaz. MICROPROCESADORES
Arquitecturas
CPU
Memoria
Programa
+
Datos
Bus
Direcciones
Bus
Datos
Arquitectura von Neumann
Prof. Antonio Pateti
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
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
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
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
UNEXPO – Pto. Ordaz. MICROPROCESADORES
La Familia de los PIC
PIC32:
PIC32F/HXXX
Prof. Antonio Pateti
Arquitectura Optimizada para ser programado
en C
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
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
UNEXPO – Pto. Ordaz. MICROPROCESADORES
Arquitectura del 16F1787
Prof. Antonio Pateti
UNEXPO – Pto. Ordaz. MICROPROCESADORES
Diagrama de Pines del 16F87X
Prof. Antonio Pateti
UNEXPO – Pto. Ordaz. MICROPROCESADORES
Organización de la Memoria
Memoria
Programa
PIC16F1787
Prof. Antonio Pateti
UNEXPO – Pto. Ordaz. MICROPROCESADORES
Memoria
Datos
PIC16F1787
Organización de la Memoria
Prof. Antonio Pateti
UNEXPO – Pto. Ordaz. MICROPROCESADORES
Configuración General de cada Banco del PIC16F1787
Organización de la Memoria
Prof. Antonio Pateti
UNEXPO – Pto. Ordaz. MICROPROCESADORES
Memoria Datos PIC16F1787 (Banco 0-7)
Organización de la Memoria
Prof. Antonio Pateti
UNEXPO – Pto. Ordaz. MICROPROCESADORES
Memoria Datos PIC16F1787 (Banco 8-15)
Organización de la Memoria
Prof. Antonio Pateti
UNEXPO – Pto. Ordaz. MICROPROCESADORES
Memoria Datos PIC16F1787 (Banco 16-31)
Organización de la Memoria
Prof. Antonio Pateti
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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