Вы находитесь на странице: 1из 32

* Pepe

Sagitrn Jornadas MMIV / PIC18s / 1 de 32

2002 Microchip Technology Incorporated. All Rights Reserved.

Una nueva familia de PICs


Una arquitectura que manteniendo las excelentes cualidades de los PICs, minimiza sus limitaciones.
Memoria de programa: hasta 1 MWord y sin paginacin. Memoria de datos: hasta 16 x 256 = 4 KBytes. Pila con 31 niveles de profundidad. Tres flexibles punteros FSRs que direccionan la memoria de datos de forma indirecta y sin bancos. Juego de instrucciones enriquecido 72 + 4 dobles. 10 MIPS con oscilador de 10 MHz. y un PLL x4. Amplia gama de perifricos integrados. Altamente compatible con los PIC16CXX y PIC17CXX.

Diseada para optimizar el rendimiento del compilador C .


Sagitrn Jornadas MMIV / 3-PIC18s / 2
2002 Microchip Technology Incorporated. All Rights Reserved.

Memoria de datos. Organizacin


Un total de 4 KBytes agrupados en 16 bancos con 256 Bytes cada uno. Contienen los registros de propsito general GPRs y los registros especiales SFRs. Los SFRs, tambin llamados registros perifricos, estn situados en la zona ms alta. Desde F00h hasta FFFh.
Banco 0

GPRs
Banco 1

GPRs
Banco 2 . . . Banco F

GPRs

SFRs

000 07F 080 0FF 100 . . 1FF 200 . . . . EFF F00 F7F F80 FFF

Sagitrn Jornadas MMIV / 3-PIC18s / 3

2002 Microchip Technology Incorporated. All Rights Reserved.

Registros especiales SFRs


FFFh FFEh FFDh FFCh FFBh FFAh FF9h FF8h FF7h FF6h FF5h FF4h FF3h FF2h FF1h FF0h FEFh FEEh FEDh FECh FEBh FEAh FE9h FE8h FE7h FE6h FE5h FE4h FE3h FE2h FE1h FE0h TOSU TOSH TOSL STKPTR PCLATU PCLATH PCL TBLPTRU TBLPTRH TBLPTRL TABLAT PRODH PRODL INTCON INTCON2 INTCON3 INDF0 POSTINC0 POSTDEC0 PREINC0 PLUSW0 FSR0H FSR0L W R E G INDF1 POSTINC1 POSTDEC1 PREINC1 PLUSW1 FSR1H FSR1L BSR FDFh FDEh FDDh FDCh FDBh FDAh FD9h FD8h FD7h FD6h FD5h FD4h FD3h FD2h FD1h FD0h FCFh FCEh FCDh FCCh FCBh FCAh FC9h FC8h FC7h FC6h FC5h FC4h FC3h FC2h FC1h FC0h INDF2 POSTINC2 POSTDEC2 PREINC2 PLUSW2 FSR2H FSR2L STATUS TMR0H TMR0L T0CON -OSCCON LVDCON WDTCON RCON TMR1H TMR1L T1CON TMR2 PR2 T2CON SSPBUF SSPADD SSPSTAT SSPCON1 SSPCON2 ADRESH ADRESL ADCON0 ADCON1 ADCON2 FBFh FBEh FBDh FBCh FBBh FBAh FB9h FB8h FB7h FB6h FB5h FB4h FB3h FB2h FB1h FB0h FAFh FAEh FADh FACh FABh FAAh FA9h FA8h FA7h FA6h FA5h FA4h FA3h FA2h FA1h FA0h CCPR1H CCPR1L CCP1CON CCPR2H CCPR2L CCP2CON CCPR3H CCPR3L CCP3CON CCPR4H CCPR4L CCP4CON TMR3H TMR3L T3CON -SPBRG RCREG TXREG TXSTA RCSTA COM2BRG COM2RX COM2TX COM2STA COM2CON IPR3 PIR3 PIE3 IPR2 PIR2 PIE2 F9Fh F9Eh F9Dh F9Ch F9Bh F9Ah F99h F98h F97h F96h F95h F94h F93h F92h F91h F90h F8Fh F8Eh F8Dh F8Ch F8Bh F8Ah F89h F88h F87h F86h F85h F84h F83h F82h F81h F80h IPR1 PIR1 PIE1 EXTMEM EXTBUS TRISJ TRISH TRISG TRISF TRISE TRISD TRISC TRISB TRISA LATJ LATH LATG LATF LATE LATD LATC LATB LATA PORTJ PORTH PORTG PORTF PORTE PORTD PORTC PORTB PORTA

Sagitrn Jornadas MMIV / 3-PIC18s / 4

2002 Microchip Technology Incorporated. All Rights Reserved.

El acumulador WREG
El registro WREG, adems de intervenir de forma implcita en mltiples instrucciones, es un registro direccionable (0xFE8), por lo que se le puede utilizar de forma explcita y as ser el parmetro FILE de cualquier instruccin, por ejemplo:
COMF DECFSZ DCFSNZ RLCF RLNCF BTFSC BTG WREG WREG WREG WREG WREG WREG, b WREG, b NEGF INCFSZ INFSNZ RRCF RRNCF BTFSS SWAPF WREG WREG WREG WREG WREG WREG, b WREG . . .

Sagitrn Jornadas MMIV / 3-PIC18s / 5

2002 Microchip Technology Incorporated. All Rights Reserved.

El registro de estados
STATUS, N: bit de negativo. STATUS, OV: bit de rebase. STATUS, Z: bit de cero. STATUS, DC: bit de acarreo decimal. STATUS, C: bit de acarreo. STATUS Register
N OV Z DC C

Sagitrn Jornadas MMIV / 3-PIC18s / 6

2002 Microchip Technology Incorporated. All Rights Reserved.

Registro Selector de Banco. BSR


El BSR es similar al de la familia PIC17CXX. Los 4 bits bajos del BSR seleccionan un banco entre los 16 posibles. Bank Select Register
3 2 1 0
Banco 0

GPRs
Banco 1

GPRs
Banco 2 . . . Banco F

GPRs

SFRs

000 07F 080 0FF 100 . . 1FF 200 . . . . EFF F00 F7F F80 FFF

Sagitrn Jornadas MMIV / 3-PIC18s / 7

2002 Microchip Technology Incorporated. All Rights Reserved.

Direccionamiento de datos
Las instrucciones aritmtico-lgicas tienen un nuevo formato: opcode d a f f f f f f f f Por ejemplo: ADDWF f, d, a El parmetro f (8 bits) contiene la direccin del registro. El parmetro d indica el destino de la operacin:
Cuando d = 1 , el resultado se coloca en el registro f. Cuando d = 0 , el resultado se coloca en el registro w.

El parmetro a se llama Access bit .


Sagitrn Jornadas MMIV / 3-PIC18s / 8
2002 Microchip Technology Incorporated. All Rights Reserved.

Access bit = 1
Cuando a = 1 , el contenido del BSR determina el banco.
Suponiendo BSR = 0001
Banco 0

GPRs
Banco 1

GPRs
ADDWF f, d, a 0010 01d1 f f f f f f f f
Banco 2 . . .

GPRs

Uniendo a los 4 bits del BSR los 8 bits f , se obtiene un direccionamiento de 4 K.


Sagitrn Jornadas MMIV / 3-PIC18s / 9
2002 Microchip Technology Incorporated. All Rights Reserved.

Banco F

SFRs

000 07F 080 0FF 100 . . 1FF 200 . . . . EFF F00 F7F F80 FFF

Access bit = 0
Cuando a = 0, en lugar de determinar el banco por el contenido del registro BSR, se utiliza el Access Bank y se selecciona un registro de los 256 entre A.RAM & A.SFRs.
ADDWF f, d, a 0010 01d0 f f f f f f f f

A.RAM

GPRs
GPRs GPRs

SFRs A.SFRs
Sagitrn Jornadas MMIV / 3-PIC18s / 10
2002 Microchip Technology Incorporated. All Rights Reserved.

=00 =7F 080 0FF 100 . . 1FF 200 . . . . EFF F00 F7F =80 =FF

El Access Bank
El Access Bank es un banco virtual de 256 registros formado por:
Los registros A.RAM de la parte baja del Banco 0. Los registros A.SFRs de la parte alta del Banco F.

Los A.RAM son GPRs que tienen la cualidad de pertenecer al Access Bank . Los A.SFRs y los A.RAM estn siempre accesibles, independientemente del contenido del BSR. La conmutacin de bancos se minimiza gracias a la posibilidad de operar con los A.SFRs y los A.RAM sin necesidad de modificar el contenido del BSR.
Sagitrn Jornadas MMIV / 3-PIC18s / 11
2002 Microchip Technology Incorporated. All Rights Reserved.

De Memoria a Memoria
MOVFF mueve un dato desde cualquier registro hasta cualquier registro.
MOVFF fs, fd

4 KB A.RAM SIN USAR GPRs BANCOS


GPRs GPRs

1100 ssss ssss ssss

1111 dddd dddd dddd

Esta es una de las cuatro instrucciones de

SFRs

DOBLE PALABRA
Sagitrn Jornadas MMIV / 3-PIC18s / 12
2002 Microchip Technology Incorporated. All Rights Reserved.

A.SFRs

000 07F 080 0FF 100 . . 1FF 200 . . . . EFF F00 F7F F80 FFF

Instrucciones de doble palabra


El cdigo objeto de la segunda palabra de las instrucciones MOVFF, GOTO, CALL y LFSR tiene la forma: 1111 XXXX XXXX XXXX. Si esta segunda palabra fuera interpretada como instruccin, se decodificara como un NOP especial. Por ejemplo:
. . . DECFSZ CONTADOR,d,a GOTO PROGRAMA NOP especial NOP . . .
Sagitrn Jornadas MMIV / 3-PIC18s / 13

0010 1110 1111 0000

11da 1111 XXXX 0000

ffff XXXX XXXX 0000

ffff XXXX XXXX 0000

2002 Microchip Technology Incorporated. All Rights Reserved.

Punteros indirectos
Hay tres punteros indirectos:
FSR0H, FSR0L FSR1H, FSR1L FSR2H, FSR2L

A.RAM

GPRs
GPRs GPRs

Sus 12 bits direccionan linealmente 4 K SIN USAR BANCOS. Se pueden utilizar de 5 modos:
INDFn: Sin cambio del valor del puntero. POSTINCn: Con auto-post-incremento. POSTDECn: Con auto-post-decremento. PREINCn:Con auto-pre-incremento. PLUSWn: Indexando con WREG signo.
2002 Microchip Technology Incorporated. All Rights Reserved.

SFRs A.SFRs

000 07F 080 0FF 100 . . 1FF 200 . . . . EFF F00 F7F F80 FFF

Sagitrn Jornadas MMIV / 3-PIC18s / 14

Memoria de programa
Se pueden direccionar hasta 1 MWord = 2 MBytes.
Word
0x000000 0x000002 0x000004 . . .

Byte H
0x000001 0x000003 0x000005 . . . . . . 0x0F 0xC1 0xF4 0xEF 0xF4 0xEF 0xF9 . . .

Byte L
0x000000 0x000002 0x000004 . . . . . . 0x55 0x23 0x56 0x10 0x32 0x2B 0x1A . . . . . . 0x1FFFFC 0x1FFFFE

Instrucciones MOVLW MOVFF GOTO GOTO 0x55 0x123, 0x456 0x086420 0x123456

. . . 0x1FFFFD 0x1FFFFC 0x1FFFFF 0x1FFFFE


Sagitrn Jornadas MMIV / 3-PIC18s / 15

. . .

2002 Microchip Technology Incorporated. All Rights Reserved.

Contador de programa
El PC tiene 21 bits (PCU, PCH y PCL). El bit menos significativo del PC apunta a BYTEs, no a WORDs, por lo que es 0. El PC se incrementa de dos en dos. Se dispone de los correspondientes registros auxiliares PCLATU y PCLATH para actuar de forma combinada con el PC cuando ste se escribe o se lee.

Sagitrn Jornadas MMIV / 3-PIC18s / 16

2002 Microchip Technology Incorporated. All Rights Reserved.

Operaciones con la pila


El STACK tiene 31 niveles de profundidad x 21 bits. El Top Of Stack es accesible. Se puede leer y escribir (ser conveniente quitar previamente las interrupciones). El STKPTR es el puntero automtico (5 bits).
20 16 15 8 7 0

STKPTR

PCU

PCH

PCL

+ CALL + RCALL + INTERRUPT + PUSH - POP - RETURN - RETFIE - RETLW

TOSU

TOSH

TOSL

Sagitrn Jornadas MMIV / 3-PIC18s / 17

2002 Microchip Technology Incorporated. All Rights Reserved.

Dos vectores de interrupcin


0x08 para alta prioridad y 0x18 para baja prioridad.
GIE/GIEH & PEIE/GIEL controlan los respectivos permisos globales. Cuando se sirve una interrupcin, automticamente se quita su correspondiente permiso global. El servicio de interrupcin de alta prioridad impide el servicio de baja prioridad. Cuando se ejecuta RETFIE se pone el permiso correspondiente al nivel que se est sirviendo.

Cada fuente de interrupcin se puede asignar de forma independiente a una u otra prioridad. Se puede forzar el modo compatible slo alta prioridad, mediante el bit IPEN = 0.
Sagitrn Jornadas MMIV / 3-PIC18s / 18
2002 Microchip Technology Incorporated. All Rights Reserved.

Los registros sombra del entorno


Se puede salvar y restaurar el contenido de las variables de entorno ( WREG, STATUS y BSR ) en sus respectivos registros sombra, lo que equivale a una pila de un solo nivel.
El parmetro s de la instruccin CALL determina si se salvan o no las variables de entorno utilizando este nico nivel. Cuando se sirve una interrupcin siempre se salvan las variables de entorno en los registros sombra (no hay penalizacin del tiempo de ejecucin). El parmetro s de las instrucciones RETURN y RETFIE determina si se restauran o no las variables de entorno desde los registros sombra.
Sagitrn Jornadas MMIV / 3-PIC18s / 19
2002 Microchip Technology Incorporated. All Rights Reserved.

Operaciones con Tablas


El TBLPTR es el puntero que con sus 21 (+1) bits direcciona 2(+) MBytes de memoria de programa. La instruccin TBLRD lee 8 bits desde la memoria de programa y los copia en el registro TABLAT. La instruccin TBLWR escribe en la memoria de programa los 8 bits del registro TABLAT.
Memoria PROG (16 bits) TABLPTR 21(+1) bit direccin TABLAT High Byte Low Byte 8 bit Datos Memoria DATOS

Sagitrn Jornadas MMIV / 3-PIC18s / 20

2002 Microchip Technology Incorporated. All Rights Reserved.

Juego de instrucciones
Se mantiene el conjunto de instrucciones de la gama media y de la gama alta, amplindolo con:
SUBFWB: Resta inversa con acarreo. RCALL: Llamada a rutina relativa. BRA: Salto incondicional relativo. BC, BNC, BN, BNN, BOV, BNOV, BZ y BNZ: Saltos condicionales relativos. POP y PUSH: Tiran y empujan los datos de la pila. RESET: Inicializa el sistema. Nuevas instrucciones de doble palabra. CALL: Llamada a rutina sin paginacin. GOTO: Salto incondicional sin paginacin. MOVFF: Movimiento de datos de memoria a memoria. LFSR: Carga un inmediato de 12 bit en uno de los FSRs.
Sagitrn Jornadas MMIV / 3-PIC18s / 21
2002 Microchip Technology Incorporated. All Rights Reserved.

Instrucciones tipo BYTE . . .


ADDWF ADDWFC ADDLW SUBWF SUBWFB SUBFWB SUBLW MULWF MULLW ANDWF ANDLW IORWF IORLW XORWF XORLW f, d, a f, d, a k f, d, a f, d, a f, d, a k f, a k f, d, a k f, d, a k f, d, a k Suma WREG con FILE Suma WREG con FILE con acarreo Suma WREG con literal Resta WREG de FILE Resta WREG de FILE con acarreo Resta FILE de WREG con acarreo Resta WREG de literal Multiplica WREG con FILE Multiplica WREG con literal AND lgico WREG con FILE AND lgico WREG con literal OR inclusivo WREG con FILE OR inclusivo WREG con literal OR exclusivo WREG con FILE OR exclusivo WREG con literal
2002 Microchip Technology Incorporated. All Rights Reserved.

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Sagitrn Jornadas MMIV / 3-PIC18s / 22

. . . Instrucciones tipo BYTE . . .


MOVF MOVWF MOVLW MOVFF SWAPF CLRF SETF COMF NEGF DAW f, d, a f, a k fs, fd f, d, a f, a f, a f, d, a f, a Mueve FILE a destino Mueve de WREG a FILE Mueve literal a WREG Mueve de FILE origen a FILE destino Intercambia semi-Bytes de FILE Borra todos los bits de FILE Activa todos los bits de FILE Complementa los bits de FILE Complementa a 2 el valor de FILE Ajuste decimal de WREG
2002 Microchip Technology Incorporated. All Rights Reserved.

1 1 1 2 1 1 1 1 1 1

Sagitrn Jornadas MMIV / 3-PIC18s / 23

. . . Instrucciones tipo BYTE


RLCF RLNCF RRCF RRNCF DECF DECFSZ DCFSNZ INCF INCFSZ INFSNZ f, d, a f, d, a f, d, a f, d, a f, d, a f, d, a f, d, a f, d, a f, d, a f, d, a Rota a la izda. 9 bits FILE+acarreo Rota a la izda. 8 bits FILE Rota a la dcha. 9 bits FILE+acarreo Rota a la dcha. 8 bits FILE Decrementa FILE Decrementa FILE, salto si 0 Decrementa FILE, salto si no 0 Incrementa FILE Incrementa FILE, salto si 0 Incrementa FILE, salto si no 0 1 1 1 1 1 12 12 1 12 12

CPFSEQ CPFSGT CPFSLT TSTFSZ

f, a f, a f, a f, a

Compara FILE con WREG, salto si = Compara FILE con WREG, salto si > Compara FILE con WREG, salto si < Prueba FILE, salta si 0
2002 Microchip Technology Incorporated. All Rights Reserved.

12 12 12 12

Sagitrn Jornadas MMIV / 3-PIC18s / 24

Instrucciones orientadas a BIT


BCF BSF BTG BTFSC BTFSS f, b, a f, b, a f, b, a f, b, a f, b, a Borra el bit b de FILE Activa el bit b de FILE Invierte el bit b de FILE Prueba el bit b de FILE, salto si est 0 Prueba el bit b de FILE, salto si est 1 1 1 1 12 12

Sagitrn Jornadas MMIV / 3-PIC18s / 25

2002 Microchip Technology Incorporated. All Rights Reserved.

Instrucciones Control de Flujo


GOTO BRA p r Salto a posicin de programa p Salto a posicin relativa r Rango: -1024 . . . +1023 Bifurcacin si acarreo Bifurcacin si no acarreo Bifurcacin si negativo Bifurcacin si no negativo Bifurcacin si rebase Bifurcacin si no rebase Bifurcacin si cero Bifurcacin si no cero Saltos relativos condicionales Rango: -128 . . . +127 2 2

BC BNC BN BNN BOV BNOV BZ BNZ

r r r r r r r r

12 12 12 12 12 12 12 12

Sagitrn Jornadas MMIV / 3-PIC18s / 26

2002 Microchip Technology Incorporated. All Rights Reserved.

Instrucciones RUTINAS & PILA


CALL RCALL p, s r Llamada a rutina (Posicin programa p) Llamada a rutina (Posicin relativa r) Rango: -1024 . . . +1023 Retorno desde rutina Retorno desde interrupcin Retorno cargando literal en WREG Decr. el puntero de la pila STKPTR Incr. STKPTR y guarda el PC en TOS 2 2

RETURN RETFIE RETLW POP PUSH

s s k

2 2 2 1 1

Sagitrn Jornadas MMIV / 3-PIC18s / 27

2002 Microchip Technology Incorporated. All Rights Reserved.

Instrucciones Tablas en Memoria


TBLRD * TBLRD * + TBLRD * TBLRD + * TBLWT * TBLWT * + TBLWT * TBLWT + * Lee Byte desde tabla en memoria Lee tabla con post-incremento Lee tabla con post-decremento Lee tabla con pre-incremento Escribe Byte en tabla en memoria Escribe tabla con post-incremento Escribe tabla con post-decremento Escribe tabla con pre-incremento 2 2 2 2 2 2 2 2

Instrucciones Especiales
MOVLB LFSR NOP CLRWDT SLEEP RESET i n, i Mueve inmediato (4 bits) a BSR Carga inmediato (12 bits) a FSRn No operacin Borra temporizador perro guardin Modo reposo / bajo consumo Inicializa el sistema
2002 Microchip Technology Incorporated. All Rights Reserved.

1 2 1 1 1 1

Sagitrn Jornadas MMIV / 3-PIC18s / 28

Eficacia del compilador C


El rendimiento del cdigo mejorar debido a:
La memoria de programa (1 MWord) se direcciona de modo lineal, sin ningn tipo de paginacin. La memoria de datos (4 KBytes) est organizada en bancos de 256 Bytes. Access Bank es ideal para implementar procesos con variables globales. La instruccin MOVFF selecciona fs y fd direccionando los 4 K de la memoria de datos de forma lineal. Tres punteros indirectos con 5 modos de utilizacin y direccionamiento lineal de los 4 K registros. 8 Saltos condicionales. Posibilidad de acceder a la Pila para ampliarla por medio de programacin.
Sagitrn Jornadas MMIV / 3-PIC18s / 29
2002 Microchip Technology Incorporated. All Rights Reserved.

Osciladores
Mltiples configuraciones: EC, ECIO, LP, XT, HS, RC, RCIO & HS4. 4X PLL permite 10MIPS @ 10MHz. Conmutacin dinmica de la fuente de oscilacin.
OSC2 CONFIG1H FOSC2:FOSC0

OSCCON:SCS

OSC1

TOSC

4 x PLL

MUX_SEL

TSCLK

T1OSO T1OSCEN T1OSI


Sagitrn Jornadas MMIV / 3-PIC18s / 30

TT1P

Timer CLK
2002 Microchip Technology Incorporated. All Rights Reserved.

Los puertos de entrada / salida


Cada puerto dispone de tres direcciones:
PORTx: Es la correspondiente a los pines del puerto. Se utiliza para leer el estado de las entradas. Por razones de compatibilidad, escribir en esta direccin equivale a hacerlo en la direccin LATx. LATx: Es la de los registros que almacenan los datos que pueden salir por los correspondientes pines de puerto. Se utiliza para escribir el estado que se desea poner en las salidas. Si se lee esta direccin, se leer el valor que hay en los registros y no el estado de los pines. TRISx: Es la de los registros que configuran los bits del puerto, de forma individual y dinmica, como entrada o salida. Se puede escribir y leer.

Sagitrn Jornadas MMIV / 3-PIC18s / 31

2002 Microchip Technology Incorporated. All Rights Reserved.

Diagrama de un bit de E / S
LEER LATx

PIN
BUS DATOS LATx ESCRIBIR o PORTx D Q

>CK

LATx TRISx

ESCRIBIR TRISx

>CK

LEER TRISx

PORTx

EN< LEER PORTx


Sagitrn Jornadas MMIV / 3-PIC18s / 32
2002 Microchip Technology Incorporated. All Rights Reserved.

Вам также может понравиться