Un poco de historia
1823 1886 1947 1951 1958 1971 1973 1974 1978 1976 1979 1980 1985 J. J. Belzelius descubre el Silicio C. Winklet descubre el Germanio B. J. Barden, W. B. Brattain y W. B. Shockley, inventaron el transistor bipolar Se inventa el transistor de efecto de campo S. Kilby y R. Noyce inventan el Circuito Integrado El Microprocesador 4004 de Intel El primer microprocesador comercial de 8 bits, el 8080 por INTEL Se comercializa el microprocesador 6800 de Motorola Primera generacin de microcontroladores, MCS-48 Zilog anuncia el Z80 Intel introduce el MCS-51 Sistemas VLSI ASICs
Prof. Antonio Pateti
Un poco de historia
1965 1975 1985 Se formo GI divisin de Microelectrnica GI diseo el Controlador de Interface Perifrico (PIC16C5X) GI divisin de Microelectrnica es vendida a Venture Capital Investors, se forma Arizona Microchip Technology. Technology
Prof. Antonio Pateti
Arquitectura general de una Microcomputadora
UNIDAD ARITMETICA/ LOGICA
BUS DE DIRECCIONES
RELOJ
UNIDAD DE CONTROL
SALIDAS ROM RAM PUERTOS E/S ENTRADAS
BUS DE DATOS REGISTROS BUS DE CONTROL
MICROPROCESADOR (CPU)
MICROCOMPUTADORA
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Arquitecturas
Bus Direcciones
Memoria Programa + Datos
CPU
Bus Datos
Arquitectura von Neumann
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Arquitecturas
Bus Direcciones
Bus Direcciones M. Prog
Memoria Datos
M. Datos Bus Datos M. Datos
Memoria Programa
CPU
Bus Datos M. Prog
Arquitectura Harvard
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
La Familia de los PIC
Gama Bsica: PIC16C5X: Instrucciones de 12 Bits 33 Instrucciones
Gama Media: PIC16CXXX: Instrucciones de 14 Bits 35 Instrucciones
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
La Familia de los PIC
Gama Alta: PIC17CXXX: Instrucciones de 16 Bits 58 Instrucciones
Gama Mejorada: PIC18CXXX: Instrucciones de 16 Bits 77 Instrucciones Arquitectura Optimizada para ser programado en C
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
La Familia de los PIC
dSPIC: dsPICXXX: Instrucciones de 24 Bits 84 Instrucciones 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.
Prof. Antonio Pateti
MICROPROCESADORES
Caractersticas relevantes de los PIC16F87X
Modelo
Mem. Programa FLASH Mem. Datos (Bytes) EEPROM RAM
PIC16F84A
1024x14 64 68 13 1-8 bits, 1-WDT No No No 4 18P, 18SO, 20SS
PIC16F873
4096x14 128 192 22 1-16 bits, 2-8 bits 1-WDT 2 USART/ MSSP 5 (10 bits) 13 28SP, 28SO
PIC16F874
4096x14 128 192 33 1-16 bits, 2-8 bits 1-WDT 2 USART/ MSSP 8 (10 bits) 14 40P,44L,44PQ, 44PT
PIC16F876
8192x14 256 368 22 1-16 bits, 2-8 bits, 1-WDT 2 USART/ MSSP 5 (10 bits) 13 28SP, 28SO
PIC16F877
8192x14 256 368 33 1-16 bits, 2-8 bits, 1-WDT 2 USART/ MSSP 8 (10 bits) 14 40P,44L,44PQ, 44PT
Puertos E/S Temporizadores CCP Comunicacin Serial ADC Fuentes de Interrupcin Encapsulado
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Arquitectura General del 16F87X
PC
Direcciones
13
Memoria de Prog. (FLASH)
14 Registro de Instrucciones
Dir. Indirecto
FSR MUX
Direcciones Dir. Directo
Pila 8 Niveles
Memoria de Datos (SRAM)
8 8 Datos 8
Decodif. de Instrucciones
MUX
ALU Estado W
Puertos E/S TIMERS EEPROM CCP1,2 ADC USART SSP PSP
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Arquitectura del 16F87X
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Diagrama de Pines del 16F87X
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Diagrama de Pines del 16F87X
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Organizacin de la Memoria
0000H RESET 0004H 0005H Vector Interrupcin
Bus Direcciones 13
12
PC
13
Pgina 0 2K 07FFH 0800H Pgina 1 2K 0FFFH 1000H Pgina 2 2K 17FFH 1800H Pgina 3 2K 1FFFH
Nivel 1
Nivel 8 PILA LIFO
Memoria Programa
Prof. Antonio Pateti
MICROPROCESADORES
UNEXPO Pto. Ordaz.
Carga del PC en diferentes Situaciones
PCH
12 5 PCLATH <4:0> 8
PCL
0 8 PCL (ALU)
PCLATH
Carga del PC cuando se tiene PCL como destino
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Carga del PC en diferentes Situaciones
PCH
12 11 2 10
PCL
0 11 PCLATH <4:3> DESDE EL CDIGO OP.
PCLATH
Carga del PC despus de un GOTO, CALL
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Organizacin de la Memoria
Direccionamiento Directo Cdigo OP. Instruccin STATUS
RP1 RP0 13 6 0
Direccionamiento Indirecto STATUS
IRP
7 6
FSR
Dir. Dentro del Banco
Seleccin del Banco
Dir. Dentro del Banco
00 00H 80H
01 100H
10 180H
11
7
Banco 0
Banco 1
Banco 2
Banco 3
7FH 00
FFH 01
17FH 10
Seleccin del Banco
1FFH 11
Memoria Datos
MICROPROCESADORES
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
Archivo de Registros
INDF TMR0 PCL STATUS FSR PORTA PORTB PORTC PORTD PORTE PCLATH INTCON PIR1 PIR2 TMR1L TMR1H T1CON TMR2 T2CON SSPBUF SSPCON CCPR1L CCPR1H CCP1CON RCSTA TXREG RCREG CCPR2L CCPR2H CCP2CON ADRESH ADCON0 Registros Propocito General (GPR) 96 Bytes 7Fh Banco 0 Dir. 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h Dir. 80h OPTION_REG 81h PCL 82h STATUS 83h FSR 84h TRISA 85h TRISB 86h TRISC 87h TRISD 88h TRISE 89h PCLATH 8Ah INTCON 8Bh PIE1 8Ch PIE2 8Dh PCON 8Eh 8Fh 90h SSPCON2 91h PR2 92h SSPADD 93h SSPSTAT 94h 95h 96h 97h TXSTA 98h SPBRG 99h 9Ah 9Bh 9Ch 9Dh ADRESL 9Eh ADCON1 9Fh A0h Registros Propocito General (GPR) 80 Bytes EFh F0h Acceso 70h-7Fh FFh Banco 1 INDF INDF TMR0 PCL STATUS FSR PORTB Dir. 100h 101h 102h 103h 104h 105h 106h 107h 108h 109h 10Ah 10Bh 10Ch 10Dh 10Eh 10Fh 110h 111h 112h 113h 114h 115h 116h 117h 118h 119h 11Ah 11Bh 11Ch 11Dh 11Eh 11Fh 120h Dir. 180h OPTION_REG 181h PCL 182h STATUS 183h FSR 184h 185h TRISB 186h 187h 188h 189h PCLATH 18Ah INTCON 18Bh EECON1 18Ch EECON2 18Dh Reservado 18Eh Reservado 18Fh 190h 191h 192h 193h 194h Registros 195h Propocito 196h 197h General 198h (GPR) 199h 16 Bytes 19Ah 19Bh 19Ch 19Dh 19Eh 19Fh 1A0h Registros Propocito General (GPR) 80 Bytes 1EFh 1F0h Acceso 70h-7Fh 1FFh Banco 3 INDF
PCLATH INTCON EEDATA EEADR EEDATH EEADRH
Registros Propocito General (GPR) 16 Bytes
Registros Propocito General (GPR) 80 Bytes Acceso 70h-7Fh Banco 2
16Fh 170h 17Fh
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Registros
7
Registro de ESTADO (STATUS) RP1 RP0 TO# PD# Z DC
IRP
C: DC: Z: PD#:
Acarreo / llevada Acarreo / llevada 4to bit Cero Power Down 1: Despus de Alimentar en C o por la Instruccin CLRWDT 0: Por la Instruccin SLEEP Time Out 1: Despus de Alimentar en C o por la Instruccin CLRWDT y SLEEP 0: Cuando se produce un desbordamiento en el Perro Guardin (Watchdog)
TO#:
RP1-RP0: Seleccin de Banco Registros (Dir. Directo) 0 0: Banco 0 (00h 7Fh) 0 1: Banco 1 (80h FFh) 1 0: Banco 2 (100h 17Fh) 1 1: Banco 3 (180h 1FFh) IRP: Seleccin de Banco Registros (Dir. Indirecto) 0: Banco 0, 1 (00h FFh) 1: Banco 2, 3 (100h 1FFh)
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Ciclo de Instruccin
Ciclo Instruccin Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
Busca Instruccin (PC) Ejecuta Instruccin (PC-1)
Busca Instruccin (PC+1) Ejecuta Instruccin (PC)
Busca Instruccin (PC+2) Ejecuta Instruccin (PC+1)
Ciclo de Instruccin
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Ciclo de Instruccin
1 Ciclo Bsqueda 1 1 2 3 4 - MOVLW 0xF5 - MOVWF 0x20 - CALL SAL - MOVLW 0xF6
1 Ciclo
Fin 1
1 Ciclo
Fin 2
1 Ciclo
Fin 3
2 Ciclo
Fin 1 SAL
Ejecucun 1 Bsqueda 2
Ejecucun 2 Bsqueda 3
Ejecucun 3 Bsqueda 4
No Ejec.
Bs. 1 SAL Ejec. 1 SAL
Ejecucin de un programa
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Set de Instrucciones
Instrucciones que manejan Registros Son 18 instrucciones Instrucciones que manipulan Bits Son 4 instrucciones
Instrucciones de control y operandos inmediatos Son 13 instrucciones
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Set de Instrucciones
Formato de una instruccin
Nemnico u Operacin
Operandos
MOVF
f,d
Especifica la operacin a realizar
Datos requeridos por la operacin
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Set de Instrucciones
Instrucciones que manejan Registros
Nemonico ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF MOVWF f,d f,d f,d f,d f,d f,d f,d f f,d f,d f Descripcin f + W dest f AND W dest 00h f 00h W NOT f dest f - 1 dest f1, brinca si f=0 f + 1 dest f+1, brinca si f=0 f OR W dest f dest W f Ciclos 1 1 1 1 1 1 1(2) 1 1(2) 1 1 1 14 Bits Opcode. 00 0111 dfff ffff 00 0101 dfff ffff 00 0001 1fff ffff 00 0001 0xxx xxxx 00 1001 dfff ffff 00 0011 dfff ffff 00 1011 dfff ffff 00 1010 dfff ffff 00 1111 dfff ffff 00 0100 dfff ffff 00 1000 dfff ffff 00 0000 1fff ffff Z Z Z Banderas afectadas C, DC, Z Z Z Z Z Z
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Set de Instrucciones
Instrucciones que manejan Registros
Nemonico NOP RLF RRF SUBWF SWAPF XORWF f,d f,d f,d f,d f,d Descripcin No operacin Rota a la Izq. con C Rota a la Der. con C F - W dest f<7:4>f<3:0>dest f XOR W dest Ciclos 1 1 1 1 1 1 14 Bits Opcode. 00 0000 0xx0 0000 00 1101 dfff ffff 00 1100 dfff ffff 00 0010 dfff ffff 00 1110 dfff ffff 00 0110 dfff ffff Z C C C, DC, Z Banderas afectadas
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Set de Instrucciones
Instrucciones que manipulan Bits
Nemonico BCF BSF BTFSC BTFSS f,b f,b f,b f,b Descripcin f<b> 0 f<b> 1 Si f<b>=0, Brinca Si f<b>=1, Brinca Ciclos 1 1 1(2) 1(2) 14 Bits Opcode. 01 00bb bfff ffff 01 01bb bfff ffff 01 10bb bfff ffff 01 11bb bfff ffff Banderas afectadas
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Set de Instrucciones
Instrucciones de control y operandos inmediatos
Nemonico ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE RETLW RETURN SLEEP SUBLW XORLW k k k k k k k k k Descripcin k + W W k AND W W Llamada a Sub-Rut. 00h WDT SALTA a la DIR k k OR W W k W Ret. Interrupcin Ret. Sub-Rut. K W Retorno de Sub-Rut. Modo Reposo k - W W k XOR W W Ciclos 1 1 2 1 2 1 1 2 2 2 1 1 1 14 Bits Opcode. 11 111x kkkk kkkk 11 1001 kkkk kkkk 10 0kkk kkkk kkkk 00 0000 0110 0100 10 1kkk kkkk kkkk 11 1000 kkkk kkkk 11 00xx kkkk kkkk 00 0000 0000 1001 11 01xx kkkk kkkk 00 0000 0000 1000 00 0000 0110 0011 11 110x kkkk kkkk 11 1010 kkkk kkkk TO, PD C, DC, Z Z Z TO, PD Banderas afectadas C, DC, Z Z
UNEXPO Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES