Está en la página 1de 40

MICROCONTROLADORES

MICROCHIP

HISTORIA
1965 GI Microelectronics Division 1970 1975
1989

EPROM EEPROM
Microprocesador 16 Bits Chip para controlar E/S-PIC (peripheral Interface Controller) Empresa se vende y se llama Arizona Microchip Technology. PIC16C5X PIC18CXXX - dsPIC
Duoc UC Sede Valparaso

1993
P.G.F.

FAMILIAS PIC
GAMA BAJA FAMILIA 10FXXX 12C5XX 16C5X 14000 16CXXX INSTRUCCIONES MEMORIA PRINCIPAL 33 / 12 bits 2 KB MEMORIA DATOS 41 BYTES

MEDIA

35 / 14 bits

16 KB

368 BYTES

ALTA
MEJORAD A

17CXX
18CXXX

56 / 16 bits
75 / 16 bits

128 KB
2 MB

904 BYTES
4 KB

Ms informacin : www.microchip.com Productos : PICmicroMicrocontrollers Architecture : 8-bit (PIC10,PIC12,PIC14,PIC16,PIC18)


P.G.F. Duoc UC Sede Valparaso

CARACTERISTICAS PIC
Arquitectura Harvard Segmentacin Pipeline Formato de Instrucciones igual longitud Procesador RISC

P.G.F.

Duoc UC Sede Valparaso

Q1
periodo

Q2

Q3

Q4

CI = 4*Tosc

Ciclo de instruccin

Q1 = Aumenta contador de programa PC Q2 y Q3 = Ejecucin y Decodificacin de la anterior instruccin Q4 = Busqueda de la siguiente instruccin
P.G.F. Duoc UC Sede Valparaso

1 CICLO 1 CICLO 1 CICLO 1 CICLO Busca 1 Ejecuta 1 Busca 2 NOP B.Salto 1 E.Salto 1 Busca 3
SEGMENTACION - PIPELINE

P.G.F.

Duoc UC Sede Valparaso

PIC16F877
Memoria Programa 8K x 14 Bits Memoria RAM 368 x 8 Bits Puertos A (6),B (8),C (8),D (8) y E (3) Temporizadores : TMR0, TMR1, TMR2 Convertidor Anlogo digital de 8 canales y 10 bits de resolucin Mdulos de captura comparacin PWM : CCP1 y CCP2 Comunicacin
Puerta serie sncrona SSP Interfaz de comunicacin serie SCI
P.G.F. Duoc UC Sede Valparaso

Diagrama de Conexionado

PIC Simulator IDE


P.G.F. Duoc UC Sede Valparaso

MEMORIA PROGRAMA BANCO DE REGISTROS - RAM


VECTOR RESET 0000

P U E R T O S

BANCO 0
REGISTROS PROPOSITO ESPECIFICO 00-1F REGISTROS PROPOSITO GENERAL 20-7F (96)

BANCO 1
REGISTROS PROPOSITO ESPECIFICO 80-9F REGISTROS PROPOSITO GENERAL A0-FF (80)

BANCO 2
REGISTROS PROPOSITO ESPECIFICO 100-11F REGISTROS PROPOSITO GENERAL 120-17F (80)

BANCO 3
REGISTROS PROPOSITO ESPECIFICO 180-19F REGISTROS PROPOSITO GENERAL 1A0-1FF (80)
8 14 0004

BUS DATOS

VECTOR INTERRUPCION
0005

PAG 0-2K

07FF 0800 0FFF 1000

PAG 1-2K

VDD VSS

ARQUITECTURA BASICA
MCLR OSC1-OSC2

WATCH DOG TIMER POWER UP START UP FALLO DE ALIMENTACION (BOR) PROG BAJO VOLTAJE RESET OSCILADOR

PAG 2-2K

DATO

INSTR PAG 3-2K

17FF 1800 1FFF

BUSQUEDA Y DECODIFICACION W ALU CONTADOR PROGRAMA (PC)

NIVEL 1

13

NIVEL 8

PILA
13 DIRECCION INSTR

P.G.F.

Duoc UC Sede Valparaso

CPU

Banco de Registros
BANCO 0
00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 10H INDF TMR0 PCL STATUS FSR PORTA PORTB PORTC PORTD PORTE PCLATH INTCON PIR1 PIR2 TMR1L TMRIH T1CON 80H 81H 82H 83H 84H 85H 86H 87H 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH 90H

BANCO 1
INDF OPTION_REG PCL STATUS FSR TRISA TRISB TRISC TRISD TRISE PCLATH INTCON PIE1 PIE2 PCON

BANCO 2
100H 101H 102H 103H 104H 105H 106H 107H 108H 109H 10AH 10BH 10CH 10DH 10EH 10FH 110H PCLATH INTCON EEDATA EEADR EEDATH EEADRH PORTB INDF TMR0 PCL STATUS FSR

BANCO 3
180H 181H 182H 183H 184H 185H 186H 187H 188H 189H 18AH 18BH 18CH 18DH 18EH 18EH 190H PCLATH INTCON EECON1 EECON2 Reservado Reservado TRISB INDF OPTION_REG PCL STATUS FSR

P.G.F.

Duoc UC Sede Valparaso

BANCO 0
11H 12H 13H 14H 15H 16H 17H 18H 19H 1AH 1BH 1CH TMR2 T2CON SSPBUF SSPCON CCPR1L CCPR1H CCP1CON RCSTA TXREG RCREG CCPR2L CCPR2H 91H 92H 93H 94H 95H 96H 97H 98H 99H 9AH 9BH

BANCO 1
SSPCON2 PR2 SSPADD SSPSTAT

BANCO 2
111H 112H 113H 114H 115H 116H 117H

BANCO 3
191H 192H 193H 194H 195H 196H 197H 198H 199H 19AH 19BH 19CH

TXSTA SPBRG

118H 119H 11AH 11BH 11CH

9CH

1DH
1EH 1FH 20H : 7FH

CCP2CON
ADRESH ADCON0 Reg. Propstio General 96 Bytes

9DH
9EH 9FH A0H : FFH ADRESL ADRESH Reg. Propstio General 80 Bytes

11DH
11EH 11FH 120H : 17F Reg. Propstio General 80 Bytes

19DH
19EH 19FH 1A0H : 1FFH Reg. Propstio General 80 Bytes

P.G.F.

Duoc UC Sede Valparaso

RFE : registros de funciones especiales o registros de control RPG : registros de propsito general Direccionamiento de datos
Inmediato Directo Indirecto

P.G.F.

Duoc UC Sede Valparaso

Inmediato : dato manipulado por la instruccin se codifica junto con ella. Dato es un Literal, nmero entre 0 y 255 K Directo : nombre del registro se encuentra en la instruccin (7 bits de menos peso del cdigo de operacin). Previamente se debe posicionar el banco (RP1 y RP0 Registro STATUS) F
P.G.F. Duoc UC Sede Valparaso

STATUS
IRP RP1 RP0 TO# PD#
BANCO 0
00H INDF TMR0 80H 81H

Z
BANCO 1
INDF OPTION_REG

DC
BANCO 2
100H 101H INDF TMR0

C
BANCO 3
180H 181H INDF OPTION_REG

RP1 RP0 BANCO 0 0 0 0 1 1 1 0 2 0 1 3

01H

02H
03H 04H 05H 06H

PCL
STATUS FSR PORTA PORTB

82H
83H 84H 85H 86H

PCL
STATUS FSR TRISA TRISB

102H
103H 104H 105H 106H

PCL
STATUS FSR

182H
183H 184H 185H

PCL
STATUS FSR

PORTB

186H

TRISB

07H
08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 10H

PORTC
PORTD PORTE PCLATH INTCON PIR1 PIR2 TMR1L TMRIH T1CON

87H
88H 89H 8AH 8BH 8CH 8DH 8EH 8FH 90H

TRISC
TRISD TRISE PCLATH INTCON PIE1 PIE2 PCON

107H
108H 109H 10AH 10BH 10CH 10DH 10EH 10FH 110H PCLATH INTCON EEDATA EEADR EEDATH EEADRH

187H
188H 189H 18AH 18BH 18CH 18DH 18EH 18EH 190H PCLATH INTCON EECON1 EECON2 Reservado Reservado

P.G.F.

Duoc UC Sede Valparaso

13

CODIGO OP INSTRUCCIN 6

REGISTRO STATUS 0 7
RP 1 RP0

BANCO POSICION

BANCO 0 00 00

BANCO 1 01

BANCO 2 10

BANCO 3 11

FF

P.G.F.

Duoc UC Sede Valparaso

Indirecto
INDF : Contenido del registro apuntado por FSR FSR : File Select Register. Direccin Registro
BANCO 0
00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 10H INDF TMR0 PCL STATUS FSR PORTA PORTB PORTC PORTD PORTE PCLATH INTCON PIR1 PIR2 TMR1L TMRIH T1CON 80H 81H 82H 83H 84H 85H 86H 87H 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH 90H

BANCO 1
INDF OPTION_REG PCL STATUS FSR TRISA TRISB TRISC TRISD TRISE PCLATH INTCON PIE1 PIE2 PCON 100H 101H 102H 103H 104H 105H 106H 107H 108H 109H 10AH 10BH 10CH 10DH 10EH 10FH 110H

BANCO 2
INDF TMR0 PCL STATUS FSR 180H 181H 182H 183H 184H 185H PORTB 186H 187H 188H 189H PCLATH INTCON EEDATA EEADR EEDATH EEADRH 18AH 18BH 18CH 18DH 18EH 18EH 190H

BANCO 3
INDF OPTION_REG PCL STATUS FSR

TRISB

PCLATH INTCON EECON1 EECON2 Reservado Reservado

P.G.F.

Duoc UC Sede Valparaso

REGISTRO STATUS
7
IRP

7
BANCO

File Select Register (FSR) 6

POSICION BANCO 0 00 00 BANCO 1 01 BANCO 2 10 BANCO 3 11

FF

P.G.F.

Duoc UC Sede Valparaso

P.G.F.

Duoc UC Sede Valparaso

Memoria Programa
Palabra = 14 Bits Contador de Programa = 13 Bits (0000H 1FFFH)
Espacio de Memoria Mxima = 8K *14

P.G.F.

Duoc UC Sede Valparaso

BANCO 0
00H 01H INDF TMR0 PCL STATUS FSR PORTA PORTB PORTC PORTD 80H 81H 82H 83H 84H 85H 86H 87H 88H

BANCO 1
INDF OPTION_REG PCL STATUS FSR TRISA TRISB TRISC TRISD

BANCO 2
100H 101H 102H 103H 104H 105H 106H 107H 108H PORTB INDF TMR0 PCL STATUS FSR

BANCO 3
180H 181H 182H 183H 184H 185H 186H 187H 188H TRISB INDF OPTION_REG PCL STATUS FSR

Bit 11 y 12 : Pgina Bit 8,9,10 : Subpgina

02H 03H 04H 05H 06H 07H 08H

09H
0AH 0BH 0CH 0DH 0EH 0FH 10H

PORTE
PCLATH INTCON PIR1 PIR2 TMR1L TMRIH T1CON

89H
8AH 8BH 8CH 8DH 8EH 8FH 90H

TRISE
PCLATH INTCON PIE1 PIE2 PCON

109H
10AH 10BH 10CH 10DH 10EH 10FH 110H PCLATH INTCON EEDATA EEADR EEDATH EEADRH

189H
18AH 18BH 18CH 18DH 18EH 18EH 190H PCLATH INTCON EECON1 EECON2 Reservado Reservado

12 11 10 9

PCLATH Program Counter Latch High

PCL Program Counter Low

CONTADOR DE PROGRAMA - PC
P.G.F. Duoc UC Sede Valparaso

PCLATH
12 11 10 9 8 7 6 5 4

PCL
3 2 1 0

PCLATH BIT 4 0 0 1 1

PCLATH BIT 3 0 1 0 1

PAGINA 0 1 2 3

MEMORIA 0000H 07FFH 0800H 0FFFH 1000H 17FFH 1800H 1FFFH

P.G.F.

Duoc UC Sede Valparaso

PCLATH
12 11 10 9 4
PCLATH BIT 3
0 0 0 0 1 1 1 1

PCL
8 0 7 6 5 4 3 2 1 0

PCLATH BIT 2
0 0 1 1 0 0 1 1

PCLATH BIT 1
0 1 0 1 0 1 0 1

SUB PAGINA
0 1 2 3 4 5 6 7

PAG 0
0000H 0100H 0200H 0300H 0400H 0500H 0600H 0700H

PAG 1
0800H 0900H 0A00H 0B00H 0C00H 0D00H 0E00H 0F00H

PAG 2
1000H 1100H 1200H 1300H 1400H 1500H 1600H 1700H

PAG 3
1800H 1900H 1A00H 1B00H 1C00H 1D00H 1E00H 1F00H

P.G.F.

Duoc UC Sede Valparaso

P.G.F.

Duoc UC Sede Valparaso

Palabra de Configuracin
14 Bits Posicin Reservada de la memoria de programa 2007H
13 CP 1 12 CP 0 11 DEBUG 10 9 WRT 8 CPD 7 LVP 6 BODEN 5 CP 1 4 CP 0 3 PWRTE 2 WDTE 1 FOSC 1 0 FOSC 0

P.G.F.

Duoc UC Sede Valparaso

13 CP 1

12 CP 0

11 DEBUG

10 -

9 WRT

8 CPD

7 LVP

6 BODEN

5 CP 1

4 CP 0

3 PWRTE

2 WDTE

1 FOSC 1

0 FOSC 0

FOSC1 FOSC0 : Tipo de Oscilador


FOSC 1 0 0 1 1 FOSC0 0 1 0 1 OSCILADOR LP XT HS RC

WDTE : Watch Dog Timer . Perro guardin 0 = WDT inhabilitado 1 = WDT habilitado
P.G.F. Duoc UC Sede Valparaso

13 CP 1

12 CP 0

11 DEBUG

10 -

9 WRT

8 CPD

7 LVP

6 BODEN

5 CP 1

4 CP 0

3 PWRTE

2 WDTE

1 FOSC 1

0 FOSC 0

PWRTE : Temporizador Power Up 0 = Habilitado 1 = Inhabilitado BODEN : Fallo de alimentacin 0 = Inhabilitado 1 = Habilitado LVD : Programacin a bajo voltaje 0 = Inhabilitado 1 = Habilitado (RB3/PGM)
P.G.F. Duoc UC Sede Valparaso

13 CP 1

12 CP 0

11 DEBUG

10 -

9 WRT

8 CPD

7 LVP

6 BODEN

5 CP 1

4 CP 0

3 PWRTE

2 WDTE

1 FOSC 1

0 FOSC 0

CPD : Proteccin EEPROM 0 = Habilitado 1 = Inhabilitado WRT : Escritura en la memoria FLASH 0 = No se puede escribir 1 = Escribir en la parte no protegida DEBUG : Modo de depuracin en circuito 0 = Habilitado 1 = Inhabilitado
P.G.F. Duoc UC Sede Valparaso

13 CP 1

12 CP 0

11 DEBUG

10 -

9 WRT

8 CPD

7 LVP

6 BODEN

5 CP 1

4 CP 0

3 PWRTE

2 WDTE

1 FOSC 1

0 FOSC 0

CP1 : CP0 : Proteccin de cdigo 16F876/877


CP1 0 0 CP0 0 1 PROTECCION CODIGO Cdigo Protegido Proteccin 1000H a 1FFFH

1
1

0
1

Proteccin 1F00H a 1FFFH


Sin proteccin

P.G.F.

Duoc UC Sede Valparaso

P.G.F.

Duoc UC Sede Valparaso

WATCH DOG TIMER - WDT


WDT : Watch Dog Timer . Perro Guardin
Genera un reset cada vez que se desborda Desbordamiento en modo reposo, se despierta y sigue funcionando normalmente CLRWDT y SLEEP colocan en cero el contador

P.G.F.

Duoc UC Sede Valparaso

RESET
Por conexin de la alimentacin Power On reset Se activa el MCLR# en forma externa Se activa el MCLR# en modo SLEEP Desbordamiento del WDT Desbordamiento del WDT en modo SLEEP Se activa por cada de voltaje (BOR)
P.G.F. Duoc UC Sede Valparaso

BANCO 0
00H 01H 02H 03H 04H 05H 06H 07H 08H INDF TMR0 PCL STATUS FSR PORTA PORTB PORTC PORTD 80H 81H 82H 83H 84H 85H 86H 87H 88H

BANCO 1
INDF OPTION_REG PCL STATUS FSR TRISA TRISB TRISC TRISD 100H 101H 102H 103H 104H 105H 106H 107H 108H

BANCO 2
INDF TMR0 PCL STATUS FSR

BANCO 3
180H 181H 182H 183H 184H 185H INDF OPTION_REG PCL STATUS FSR

PORTB

186H 187H 188H

TRISB

09H
0AH 0BH 0CH 0DH 0EH 0FH 10H

PORTE
PCLATH INTCON PIR1 PIR2 TMR1L TMRIH T1CON

89H
8AH 8BH 8CH 8DH 8EH 8FH 90H

TRISE
PCLATH INTCON PIE1 PIE2 PCON

109H
10AH 10BH 10CH 10DH 10EH 10FH 110H PCLATH INTCON EEDATA EEADR EEDATH EEADRH

189H
18AH 18BH 18CH 18DH 18EH 18EH 190H PCLATH INTCON EECON1 EECON2 Reservado Reservado

IRP

RP1

RP0

TO#

PD#

POR#
DC

BO#
C

PCON
STATUS

P.G.F.

Duoc UC Sede Valparaso

STATUS
Bit 7 IRP Bit 6 RP1 Bit 5 RP0 Bit 4 TO# Bit 3 PD# Bit 2 Z Bit 1 DC Bit 0 C

TO# : Bandera de Timer Out 0 = Desbordamiento del WDT 1 = Cuando se conecta VDD o se ejecuta CLRWDT / SLEEP PD# : Bandera de Power Down 0 = Cuando se ejecuta SLEEP 1 = Cuando se conecta VDD o se ejecuta CLRWDT

P.G.F.

Duoc UC Sede Valparaso

POWER CONTROL - PCON


Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 POR# Bit 0 BOR#

POR# : Bandera de Power On Reset 0 = Se produce un Reset al conectarse la alimentacin 1 = No se produce Reset al conectarse la alimentacin BOR# : Bandera de Brown Out Reset 0 = Se produce Reset por cada de alimentacin 1 = No se produce Reset por cada de alimentacin

P.G.F.

Duoc UC Sede Valparaso

Origen del Reset


POR# 0 0 0 1 1 1 1 1 BOR# X X X 0 1 1 1 1 TO# 1 0 X 1 0 0 U 1 PD# 1 X 0 1 1 0 U 0 RESET Power On Reset. Al conectarse la alimentacin No permitido No permitido Brown Out Reset. Cada de alimentacin Desbordamiento WDT en modo normal Desbordamiento WDT en modo SLEEP Se activa MCLR# en modo normal Se activa MCLR# en el modo SLEEP

P.G.F.

Duoc UC Sede Valparaso

P.G.F.

Duoc UC Sede Valparaso

SLEEP
Modo de bajo consumo Al ejecutarse SLEEP
WDT = 0 WDT funciona si esta activo

Oscilador se detiene Entradas/Salidas en ltimo estado TMR0 se detiene


P.G.F. Duoc UC Sede Valparaso

Formas de salir del modo SLEEP


Se activa MCLR# en forma externa Desbordamiento del WDT Interrupcin externa RB0/INT Interrupcin por cambio de estado RB4 a RB7 Interrupcin fin de conversin anlogo / digital Interrupcin fin de escritura en la memoria EEPROM Interrupcin por TMR1 Disparo del TMR1, reloj externo en modo asncrono Duoc UC Sede Valparaso

P.G.F.

Interrupcin mdulo captura Interrupcin por lectura/escritura del puerto paralelo Interrupcin por mdulo de comunicacin SSP Interrupcin por transmisin/recepcin del mdulo de comunicacin MSSP en modo esclavo. SPI o I2C Interrupcin por transmisin/recepcin del mdulo de comunicacin USART
P.G.F. Duoc UC Sede Valparaso

P.G.F.

Duoc UC Sede Valparaso