Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Introducción a los PIC18 (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

Punteros indirectos
Hay tres punteros indirectos:
FSR0H, FSR0L
FSR1H, FSR1L
FSR2H, FSR2L
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.
A.RAM
GPRs
000
07F
080
0FF
100
.
.
1FF
200
.
.
.
.
EFF
F00
F7F
F80
FFF
GPRs
GPRs
A.SFRs
SFRs

Monografias.com

Memoria de programa
Se pueden direccionar hasta 1 MWord = 2 MBytes.
Word Byte H Byte L
0x000001 0x000000
0x000003 0x000002
0x000005 0x000004
. . . . . .

. . . . . .
0x1FFFFD 0x1FFFFC
0x1FFFFF 0x1FFFFE
Instrucciones
. . . . . .
0x0F 0x55 MOVLW 0x55
0xC1 0x23 MOVFF 0x123, 0x456
0xF4 0x56
0xEF 0x10 GOTO 0x086420
0xF4 0x32
0xEF 0x2B GOTO 0x123456
0xF9 0x1A
. . . . . .
0x000000
0x000002
0x000004
. . .

. . .
0x1FFFFC 0x1FFFFE

Monografias.com

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.

Monografias.com

PCU
PCH
PCL
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 automático (5 bits).
TOSU
TOSH
TOSL
20
16
15
8
7
0

+ CALL
+ RCALL
+ INTERRUPT
+ PUSH
– POP
– RETURN
– RETFIE
– RETLW
STKPTR

Monografias.com

Dos vectores de interrupción
0x08 para alta prioridad y 0x18 para baja prioridad.
GIE/GIEH & PEIE/GIEL controlan los respectivos permisos globales.
Cuando se sirve una interrupción, automáticamente se quita su correspondiente permiso global.
El servicio de interrupción 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 interrupción se puede asignar de forma independiente a una u otra prioridad.
Se puede forzar el modo compatible "sólo alta prioridad", mediante el bit IPEN = 0.

Monografias.com

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 parámetro "s" de la instrucción CALL determina si se salvan o no las variables de entorno utilizando este único nivel.
Cuando se sirve una interrupción siempre se salvan las variables de entorno en los registros sombra (no hay penalización del tiempo de ejecución).
El parámetro "s" de las instrucciones RETURN y RETFIE determina si se restauran o no las variables de entorno desde los registros sombra.

Monografias.com

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

Monografias.com

Juego de instrucciones
Se mantiene el conjunto de instrucciones de la gama media y de la gama alta, ampliándolo 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 paginación.
GOTO: Salto incondicional sin paginación.
MOVFF: Movimiento de datos de memoria a memoria.
LFSR: Carga un inmediato de 12 bit en uno de los "FSRs".

Monografias.com

Instrucciones tipo BYTE . . .
ADDWF f, d, a Suma WREG con FILE 1
ADDWFC f, d, a Suma WREG con FILE con acarreo 1
ADDLW k Suma WREG con literal 1
SUBWF f, d, a Resta WREG de FILE 1
SUBWFB f, d, a Resta WREG de FILE con acarreo 1
SUBFWB f, d, a Resta FILE de WREG con acarreo 1
SUBLW k Resta WREG de literal 1

MULWF f, a Multiplica WREG con FILE 1
MULLW k Multiplica WREG con literal 1

ANDWF f, d, a AND lógico WREG con FILE 1
ANDLW k AND lógico WREG con literal 1
IORWF f, d, a OR inclusivo WREG con FILE 1
IORLW k OR inclusivo WREG con literal 1
XORWF f, d, a OR exclusivo WREG con FILE 1
XORLW k OR exclusivo WREG con literal 1

Monografias.com

. . . Instrucciones tipo BYTE . . .
MOVF f, d, a Mueve FILE a destino 1
MOVWF f, a Mueve de WREG a FILE 1
MOVLW k Mueve literal a WREG 1

MOVFF fs, fd Mueve de FILE origen a FILE destino 2

SWAPF f, d, a Intercambia semi-Bytes de FILE 1

CLRF f, a Borra todos los bits de FILE 1
SETF f, a Activa todos los bits de FILE 1

COMF f, d, a Complementa los bits de FILE 1

NEGF f, a Complementa a 2 el valor de FILE 1

DAW Ajuste decimal de WREG 1

Monografias.com

. . . Instrucciones tipo BYTE
RLCF f, d, a Rota a la izda. 9 bits FILE+acarreo 1
RLNCF f, d, a Rota a la izda. 8 bits FILE 1
RRCF f, d, a Rota a la dcha. 9 bits FILE+acarreo 1
RRNCF f, d, a Rota a la dcha. 8 bits FILE 1

DECF f, d, a Decrementa FILE 1
DECFSZ f, d, a Decrementa FILE, salto si 0 1 ó 2
DCFSNZ f, d, a Decrementa FILE, salto si no 0 1 ó 2
INCF f, d, a Incrementa FILE 1
INCFSZ f, d, a Incrementa FILE, salto si 0 1 ó 2
INFSNZ f, d, a Incrementa FILE, salto si no 0 1 ó 2

CPFSEQ f, a Compara FILE con WREG, salto si = 1 ó 2
CPFSGT f, a Compara FILE con WREG, salto si > 1 ó 2
CPFSLT f, a Compara FILE con WREG, salto si < 1 ó 2

TSTFSZ f, a Prueba FILE, salta si 0 1 ó 2

Monografias.com

Instrucciones orientadas a BIT
BCF f, b, a Borra el bit b de FILE 1
BSF f, b, a Activa el bit b de FILE 1
BTG f, b, a Invierte el bit b de FILE 1

BTFSC f, b, a Prueba el bit b de FILE, salto si está "0" 1 ó 2
BTFSS f, b, a Prueba el bit b de FILE, salto si está "1" 1 ó 2

Monografias.com

Instrucciones Control de Flujo
GOTO p Salto a posición de programa p 2

BRA r Salto a posición relativa r 2 Rango: -1024 . . . +1023

BC r Bifurcación si acarreo 1 ó 2
BNC r Bifurcación si no acarreo 1 ó 2
BN r Bifurcación si negativo 1 ó 2
BNN r Bifurcación si no negativo 1 ó 2
BOV r Bifurcación si rebase 1 ó 2
BNOV r Bifurcación si no rebase 1 ó 2
BZ r Bifurcación si cero 1 ó 2
BNZ r Bifurcación si no cero 1 ó 2 Saltos relativos condicionales Rango: -128 . . . +127

Monografias.com

Instrucciones RUTINAS & PILA
CALL p, s Llamada a rutina (Posición programa p) 2

RCALL r Llamada a rutina (Posición relativa r) 2 Rango: -1024 . . . +1023

RETURN s Retorno desde rutina 2
RETFIE s Retorno desde interrupción 2
RETLW k Retorno cargando literal en WREG 2

POP Decr. el puntero de la pila STKPTR 1
PUSH Incr. STKPTR y guarda el PC en TOS 1

Monografias.com

Instrucciones Tablas en Memoria
TBLRD * Lee Byte desde tabla en memoria 2
TBLRD * + Lee tabla con post-incremento 2
TBLRD * – Lee tabla con post-decremento 2
TBLRD + * Lee tabla con pre-incremento 2
TBLWT * Escribe Byte en tabla en memoria 2
TBLWT * + Escribe tabla con post-incremento 2
TBLWT * – Escribe tabla con post-decremento 2
TBLWT + * Escribe tabla con pre-incremento 2
Instrucciones Especiales
MOVLB i Mueve inmediato (4 bits) a BSR 1
LFSR n, i Carga inmediato (12 bits) a FSRn 2
NOP No operación 1
CLRWDT Borra temporizador perro guardián 1
SLEEP Modo reposo / bajo consumo 1
RESET Inicializa el sistema 1

Monografias.com

Eficacia del compilador "C"
El rendimiento del código mejorará debido a:
La memoria de programa (1 MWord) se direcciona de modo lineal, sin ningún tipo de paginación.
La memoria de datos (4 KBytes) está organizada en bancos de 256 Bytes.
Access Bank es ideal para implementar procesos con variables globales.
La instrucción MOVFF selecciona fs y fd direccionando los 4 K de la memoria de datos de forma lineal.
Tres punteros indirectos con 5 modos de utilización y direccionamiento lineal de los 4 K registros.
8 Saltos condicionales.
Posibilidad de acceder a la Pila para ampliarla por medio de programación.

Monografias.com

Osciladores
Múltiples configuraciones: EC, ECIO, LP, XT, HS, RC, RCIO & HS4.
4X PLL permite 10MIPS @ 10MHz.
Conmutación dinámica de la fuente de oscilación.
T1OSO
T1OSI
OSC1
OSC2
TT1P
TSCLK
MUX_SEL
OSCCON:SCS
T1OSCEN
Timer CLK
4 x PLL
CONFIG1H
FOSC2:FOSC0
TOSC

Monografias.com

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 dirección equivale a hacerlo en la dirección 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 dirección, 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 dinámica, como entrada o salida. Se puede escribir y leer.

Monografias.com

Diagrama de un bit de E / S
PIN
(Gp:) Q D

EN<

(Gp:) D Q

>CK

(Gp:) D Q

>CK

BUS DATOS
LEER LATx
LEER TRISx
ESCRIBIR TRISx
LATx
ESCRIBIR o
PORTx
LEER PORTx
LATx
PORTx
TRISx

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter