01 Microcontrolador PIC16F877A.pdf

download 01 Microcontrolador PIC16F877A.pdf

of 59

Transcript of 01 Microcontrolador PIC16F877A.pdf

  • MicroelectrnicaAutor: Mauricio Galvez Legua

    ([email protected])

    1Autor: Mauricio Galvez Legua

  • Invencin del primer microprocesador

    En el ao 1971 se inventa el primermicroprocesador denominado 4004.

    Los inventores fueron: Stanley Mazor, MarcianEdward "Ted" Hoff y Masatoshi Shima.

    Autor: Mauricio Galvez Legua 2

  • uP 4004

    El 4004 era un procesador de 4 bits (nibble) yestaba compuesto de 2,300 transistores en unencapsulado de 16 pines.

    Para mayores detalles visitar: http://www.4004.com/

    Autor: Mauricio Galvez Legua 3

  • Microprocesador

    Un microprocesador es un circuito integrado que es capaz de realizar muchas operaciones o instrucciones. Puede: Realizar operaciones aritmticas: sumar, multiplicacin,

    etc.

    Realizar operaciones lgicas: AND, OR, XOR, etc.

    Leer y escribir en memoria (espacio de memoria).

    Leer y escribir en interfases (espacio I/O).

    Autor: Mauricio Galvez Legua 4

  • Microprocesador

    Cada instruccin es codificada mediante un byte,por ejemplo para un microprocesador X: Sumar = 50(h)

    Restar = 70(h)

    El byte que representa a una instruccin sellama byte code, y este cdigo difiere enmicroprocesadores de diferentes fabricantes. Porejemplo: microprocesadores de Intel y Motorola.

    Autor: Mauricio Galvez Legua 5

  • Microprocesador

    El nivel de inteligencia de un microprocesador se mide por la cantidad de tipos de operaciones que puede realizar.

    Un microprocesador puede: sumar, restar,multiplicar, dividir, etc.

    Todas estas operaciones se llaman Instrucciones.

    Todo microprocesador posee un Juego de Instrucciones.

    Autor: Mauricio Galvez Legua 6

  • Microprocesador

    Para que los microprocesadores puedan trabajarrequieren de ciertos circuitos externos:

    Autor: Mauricio Galvez Legua 7

  • Sistema Basado en uP

    Un microprocesador requiere de ciertos elementospara trabajar: Memoria ROM: memoria de almacenamiento

    permanente.

    Memoria RAM: memoria de almacenamiento temporal.

    Interfases.

    Autor: Mauricio Galvez Legua 8

  • Microprocesadores

    El microprocesador tiene tres buses(direccin, datos y control) que le sirve para podercomunicarse con los elementos externos (memoriae interfases).

    9Autor: Mauricio Galvez Legua

  • Microprocesadores: Z80

    10Autor: Mauricio Galvez Legua

  • Sistema Basado en uP

    Autor: Mauricio Galvez Legua 11

  • Espacio de memoria y Espacio I/O

    La mayora de microprocesadores tiene dosespacios: Espacio de memoria, en donde se ubican las memorias

    (ROM y RAM). La mnima unidad en este espacio sedenomina "posicin de memoria".

    Espacio I/O, en donde se ubican las interfases. Lamnima unidad en este espacio se denomina "puerto".

    Autor: Mauricio Galvez Legua 12

  • Espacio de memoria y Espacio I/O

    Espacio de memoria, activada por la seal MEM

    Espacio de I/O, activada por la seala I/O

    Existe una minora de uP que solo tiene Espacio deMemoria.

    Autor: Mauricio Galvez Legua 13

  • CISC y RISC

    Los primeros procesadores eran del tipo CISC(Complex Instruction Set Computer), que significaba tener un juego completo de instrucciones.

    Luego aparecieron los procesadores RISC (ReducedInstruction Set Computer), cuyo juego de instrucciones es menor.

    Autor: Mauricio Galvez Legua 14

  • Arquitectura de un uP

    Un microprocesador tiene: Unidad Aritmtico Lgica (ALU)

    Registros: Usado para almacenar informacin en forma temporal, se especifican por medio de una o ms letras. Se dividen en: Registros de propsito general.

    Acumulador.

    Registros de propsito especializado. Banderas o Flag.

    Contador de programa (PC).

    Puntero de pila o Stack Pointer (SP)

    Autor: Mauricio Galvez Legua 15

  • Arquitectura de uP y uC

    Arquitectura Von Neumann: En la cual losprogramas y los datos comparten la mismamemoria.

    16Autor: Mauricio Galvez Legua

  • Arquitectura de uP y uC

    Arquitectura Harvard: Donde se tiene unamemoria para los programas y otra memoria paralos datos. Estas dos memorias tiene buses decomunicacin independientes con el CPU. Estaarquitectura es empleada por losmicrocontroladores, as como por los DSP (DigitalSignal Processor)

    17Autor: Mauricio Galvez Legua

  • Microcontroladores

    Los microcontroladores derivan de losmicroprocesadores.

    18Autor: Mauricio Galvez Legua

  • Microcontroladores

    Los microcontroladores, son bsicamente un Sistema Basado en Procesador, porque internamente tienen: Procesador:

    CPU (Central Processing Unit) MPU (Micro Processor Unit) MCU (Micro Controller Unit)

    Memoria: RAM (Random-access memory) ROM (Read-only memory)

    EEPROM (Electrically Erasable Programmable Read-Only Memory)

    Interfases: USART (Universal Synchronous Asynchronous Receiver

    Transmitter) SPI (Serial Peripheral Interface) PWM (Pulse-width modulation) WDT (WatchDog Timer) Etc.

    19Autor: Mauricio Galvez Legua

  • Microcontroladores

    20Autor: Mauricio Galvez Legua

  • Microcontroladores: Generacin

    Primera Generacin: Los primeros microcontroladorestenan la posibilidad de trabajar comomicroprocesadores; era posible ampliar la memoria ylas lneas de E/S con circuitos integrados externos. LosuC ms representativos de esa poca fueron: Intel: uC 8048 y uC 8049

    Cerca de 90 instrucciones. 8 niveles de stack.

    Intel: uC 8051 CPU de 8 bits. Frecuencia de reloj de 3.5 a 12Mhz. 111 instrucciones. Externamente se poda tener:

    64 Kbytes de espacio para programa.

    64 Kbytes de espacio para datos.

    21Autor: Mauricio Galvez Legua

  • Microcontroladores: Generacin

    Segunda Generacin: Son los denominadosmicrocontroladores incrustados o embedded (no seles puede ampliar de memoria). Existen variosfabricantes: Atmel: Familia de microcontroladores RISC AVR.

    Ejemplo: Atmega168, Atmega328 y Atmega1280.

    Freescale (exMotorola): 68HC08 (uC de 8 bits yarquitectura de von Neumann).

    Microchip: Familia 16C, 16FXX, etc.

    Texas Instruments: TMS370

    Tercera Generacin: Son los denominadosmicrocontroladores DSP (Digital Signal Processor).

    22Autor: Mauricio Galvez Legua

  • Single Board Computer (SBC)

    Un SBC es una computadora completa en un slo circuito. El diseo se centra en un slo microprocesador o microcontrolador y que cuenta con memoria ROM, RAM e interfases de E/S en una sola tarjeta que suele ser de tamao reducido.

    Estos circuitos se han popularizados debido al auge de los microcontroladores. Existe una gran variedad de SBC: Arduino

    Raspberry Pi

    23Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip

    Los microcontroladores de la empresa Microchip se caracterizan por su facilidad de uso, rapidez en el desarrollo de aplicaciones, abundante informacin y libre disposicin de herramientas software proporcionada por el propio fabricante Microchip.

    Es muy empleado en ambientes acadmicos.

    24Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    Arquitectura Harvard: Tiene memoria para datos ymemoria para instrucciones (byte code) separadas. SRAM (Static Random Access Memory)

    Procesador RISC: Conjunto de instrucciones reducido.Todas las instrucciones son ortogonales. Gama Baja: Repertorio de 33 instrucciones de 12 bits.

    PIC16X5xx PIC12X5xx PIC10

    Gama Media: Repertorio de 35 instrucciones de 14 bits. PIC16. Ejemplo: Pic16F877A

    Gama Alta: Repertorio de instrucciones de 16 bits. Tiene dosgrandes familias: PIC17: Tiene un repertorio de 58 instrucciones de 16 bits. PIC18: Tienen un repertorio de 77 instrucciones de 16 bits.

    25Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    Arquitectura basada en banco deregistros: A diferencia de losmicroprocesadores, losmicrocontroladores de Microchiptiene los registros ubicados en laMemoria de Datos, esto quieredecir que cada registro tiene unaposicin de memoria.

    Todos los objetos del sistema(puertos de E/S, temporizadores,posiciones de memoria, etc.) estnimplementados fsicamente comoregistros.

    26Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    Diversos tipos de memoria: Estosmicrocontroladores traen tres tipos de memoria: Memoria de programa EEPROM Flash: es el lugar fsico

    donde se guarda el programa de usuario. Es de tipo novoltil.

    Memoria de datos SRAM: es el lugar fsico donde seguardan datos. Es de tipo voltil.

    Memoria de datos EEPROM: es el lugar fsico donde seguardan datos de configuracin. Es de tipo no voltil.

    27Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    CPU: La Unidad Central de Procesamiento es laencargada de controlar todos los procesos dentro delmicrocontrolador. Consiste en varias unidades: Unidad lgica aritmtica (ALU) realiza todas las operaciones

    matemticas y lgicas sobre datos. Decodificador de instrucciones es la parte que decodifica las

    instrucciones del programa. Acumulador "especial": Los microcontroladores tienen un

    registro de trabajo denominado W (Working Register) de 8bits. A diferencia de los microprocesadores, el resultado delALU puede guardarse en el registro W o en otro registro. Estose indica mediante la propia instruccin.

    Flags: Mientras que en los microprocesadores existe unregistro para los flags, en el caso de los microcontroladores elregistro se denomina STATUS y es compartido con otros bits.

    28Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    Memoria de Programa o Instrucciones Los microcontroladores de Microchip tienen memoria

    de programa o instrucciones para poder almacenar alllos byte code del programa que queremos ejecutar.

    La memoria de programa siempre est direccionadadesde un registro especial denominado Contador dePrograma (PC). En esta memoria se ubica la denominadapila o Stack.

    29Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    Memoria de Datos A diferencia de los sistemas basados en

    microprocesadores (en donde la memoria es "plana") enlos microcontroladores Microchip a memoria RAM estdividida en bloques denominado bancos.

    Para seleccionar un banco debemos trabajar con elregistro STATUS, los bits 5 y 6:

    30Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    Memoria de Datos Cada posicin de memoria se le define como un registro.

    Hay dos tipos de registros de la memoria de datos: SFR (Registros de Funcin Especial): Estn ubicados en las

    primeras posiciones de cada banco y tienen nombre propiocomo STATUS, PORTA, etc. Su principal funcin es controlar lasoperaciones del microcontrolador y sus interfases. Algunos deesos registros aparecen duplicados en los bancos; eso es parafacilitarnos su acceso porque son de uso muy frecuente oporque son de uso especial como STATUS, INTCON o PCL.

    GPR (Registros de Propsitos General): Sirven para almacenarlos datos o variables que se procesan en el programa. Comoejemplo podemos ver que el PIC16F877A tiene 368 registrosGPR. Los ltimos 16 registros de los bancos 1, 2 y 3 son losmismos que del banco 0.

    31Autor: Mauricio Galvez Legua

  • 32Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    Memoria EEPROM: Existe una configuracin inicial que se debe hacer atodo microcontrolador Microchip. Esta configuracin se realizamediante los llamados Bits de Configuracin, que estn contenidos enun registro denominado Configuration Word, ubicado en la memoriaEEPROM. En dicho registro se configura: Seleccin del oscilador: Fosc1 y Fosc0 Watchdog: WDTEN Power Up Timer: PWRTEN Brown Out Reset: BOREN Programacin Low Voltage: LPV Proteccin de EEPROM: CPD Escribir memoria Flash: WRT1 y WRT0 Modo ICD: DEBUG Proteccin de cdigo: CP

    Este registro est situado en la direccin 0x2007 y es inaccesible desdeel programa en tiempo de ejecucin.

    33Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    La Configuration Word se especifica al inicio del programa(para que pueda ser grabado en el PIC). A continuacinmostramos un ejemplo de configuracin en lenguajeensamblador, mediante la directiva __config:

    __config _XT_OSC & _WDT_OFF & _PWRTE_ON

    Esta lnea pone tres mscaras (_XT_OSC, _WDT_OFF y_PWRTE_ON) enlazadas por el operador &. Cada mscaraindica el estado de una parte del microcontrolador: _XT_OSC: Adaptar el circuito interno de oscilador para un XTAL. _WDT_OFF: Inhabilitar el Watchdog. _PWRTE_ON: Habilitar el Power-up Timer.

    El resto de los valores no especificados mantendrn susvalores por defecto.

    34Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    Oscilador y temporizacin interna: Para que el PICcomience a trabajar requiere de una entrada dereloj que puede ser implementado de 4 formasdistintas: RC: Este es el sistema ms sencillo y econmico, consta

    de un circuito formado por una resistencia y uncondensador.

    35Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    XT: Es un acrnimo, viene de XTAL (cristal). Para estemodo de funcionamiento tendremos que disponer deun cristal de cuarzo externo al PIC y dos condensadores.El valor del cristal generalmente ser de 4Mhz. o 10Mhz.y los condensadores cermicos sern de entre 20 y 33pF. La exactitud de este dispositivo es muy alta, por loque lo es muy recomendable en casi todas lasaplicaciones.

    36Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    HS: Cuando necesitemos aplicaciones de "altavelocidad", entre 8 y 20Mhz. Se basa en un resonadorde tres pines, los extremos corresponden al cristal decuarzo y la del centro es el comn de los condensadoresque se conecta a masa.

    LP: Quiere decir "Low Power" la velocidad mxima a laque podemos poner el PIC con este oscilador es de200Khz. Aproximadamente y al igual que el XT y el HS,necesitaremos de un cristal de cuarzo y unoscondensadores. El cristal puede ser el tpico que llevanlos relojes de electrnicos que es, una pequea cpsulade aluminio.

    37Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    A continuacin se muestra la tabla para seleccionar loscondensadores en funcin al cristal a usar:

    Se debe recordar que en funcin al tipo de osciladorque se seleccione, se debe configurar al PIC a la hora degrabar el programa, ya que si no coincide no oscilar opuede dar problemas de oscilacin.

    38Autor: Mauricio Galvez Legua

  • Microcontroladores Microchip: Caractersticas

    Con la seal de reloj generado por el oscilador, elPIC desarrollada todas sus actividades. Una de lasms importantes es la ejecucin de lasinstrucciones.

    El tiempo que se demora en realizar unainstruccin de 1 byte es igual a la frecuencia deloscilador dividido entre 4.

    39Autor: Mauricio Galvez Legua

  • Familia de PIC16F8XX

    Los PIC16F8XX forman una subfamilia demicrocontroladores PIC (Peripheral Interface Controller)de gama media de 8 bits, fabricados por MicrochipTechnology Inc. PIC16F870 PIC16F871 PIC16F872 PIC16F873A PIC16F874A PIC16F876A PIC16F877A

    La "A" final de los modelos PIC16F873A, PIC16F874A,PIC16F876A y PIC16F877A indica que estos modeloscuentan con mdulos de comparacin analgicos.

    40Autor: Mauricio Galvez Legua

  • Familia de PIC16F8XX

    El hecho de que se clasifiquen como microcontroladores(MCU) de 8 bits hace referencia a la longitud de los datosque manejan las instrucciones, y que se corresponde con eltamao del bus de datos y el de los registros de la CPU. Acontinuacin vemos una tabla con los tamaos de memoriaque tienen estos PIC:

    41Autor: Mauricio Galvez Legua

  • Familia de PIC16F8XX: Caractersticas

    CPU de arquitectura RISC (Reduced Instruction Set Computer). Conjunto de 35instrucciones.

    Frecuencia de reloj de hasta 20MHz (ciclo de instruccin de 200ns). Todas lasinstrucciones se ejecutan en un nico ciclo de instruccin, excepto las de salto.

    Hasta 8K x 14 bits de Memoria de Programa FLASH. Hasta 368 x 8 bits de Memoria de Datos tipo RAM. Hasta 256 x 8 bits de Memoria de Datos tipo EEPROM. Hasta 15 fuentes de Interrupcin posibles. 8 niveles de profundidad en la pila o stack. Modo de bajo consumo (Sleep). Tipo de oscilador seleccionable (RC, HS, XT, LP y externo). Rango de voltaje de operacin desde 2,0V a 5,5V. Conversor Analgico/Digital de 10 bits multicanal. 3 Temporizadores. Watchdog Timer o Perro Guardin. 2 mdulos de captura/comparacin/PWM. Comunicaciones por interfaz USART (Universal Synchronous Asynchronous

    Receiver Transmitter). Puerto Paralelo Esclavo de 8 bits (PSP). Puerto Serie Sncrono (SSP) con SPI e IC.

    42Autor: Mauricio Galvez Legua

  • PIC17F877A

    43Autor: Mauricio Galvez Legua

  • PIC17F877A

    Puerto A de 6 bits

    Puerto B de 8 bits

    Puerto C de 8 bits

    Puerto D de 8 bits

    Puerto E de 3 bits

    Autor: Mauricio Galvez Legua 44

  • PIC17F877A

    Registro W: El registro de trabajo W (WorkingRegister) es un registro relevante especial de 8 bits que participa en la mayora de instrucciones. A diferencia de los SFR (Special Function Register), se encuentra dentro de la misma CPU, y puede ser accedido tanto para lectura como para escritura. A diferencia de los microprocesadores, el resultado del

    ALU puede guardarse en el registro W o en otro registro. Esto se indica mediante la propia instruccin.

    En las operaciones que realiza el ALU con dos operandos, siempre se tiene a W (registro de trabajo) como uno de ellos.

    En las operaciones de un solo operando se tiene al W o a cualquier otro registro.

    45Autor: Mauricio Galvez Legua

  • PIC17F877A

    46Autor: Mauricio Galvez Legua

  • PIC17F877A

    Contador de Programa PC: El PC es un registro que indica la siguiente instruccin que debe ejecutar el CPU. Al arrancar microcontrolador, el PC vale 0x0000 y se va incrementando automticamente, con lo que el PIC debera ejecutar una a una todas las instrucciones del programa. En los PICs de gama media el PC es de 13 bits, direccionando un mximo de 8k posiciones de memoria de programa.

    47Autor: Mauricio Galvez Legua

  • PIC17F877A

    Registro Pila o STACK: Es una zona de memoria que almacena temporalmente el valor del PC (ProgramCounter) cuando el programa llama a una subrutina o cuando salta al Vector de Interrupcin, en una interrupcin. En los PIC16F877A la Pila tiene nicamente 8 niveles y se

    administra a nivel hardware, esto es, no hay instrucciones para acceder a ella directamente. Su operacin es enteramente en background. Se debe tener cuidado de no desbordar la pila ya que no se dispone de ningn flag(identificador o bandera) que indique un desbordamiento de la Pila.

    La nica manera de cargar la Pila es a travs de la instruccin CALL (llamada a subrutina) o por una interrupcin que hace que con cada una de ellas, se cargue el contenido del PC en el valor superior de la Pila. Para recuperar el contenido de la Pila en el PC hay que ejecutar una instruccin RETURN, RETLW o RETFIE (vuelta del programa de atencin a una subrutina o interrupcin).

    48Autor: Mauricio Galvez Legua

  • PIC17F877A

    49Autor: Mauricio Galvez Legua

  • PIC17F877A

    Registro STATUS IRP: Register Bank Select bit (usado para direccionamiento indirecto)

    1 = Bancos 2 y 3

    0 = Bancos 0 y 1

    RP1 y RP0: Register Bank Select bits (usado para direccionamiento directo) 11 = Banco 3

    10 = Banco 2

    01 = Banco 1

    00 = Banco 0

    TO: Watchdog Timer Enable bit 1 = Despus del power-up, instruccin CLRWDT, o instruccin SLEEP

    0 = Ocurri un desbordamiento del Watchdog

    PD: Oscillator Selection bits 1 = Despus del power-up o por la instruccin CLRWDT

    0 = Por ejecucin de la instruccin SLEEP

    Z: Zero bit 1 = El resultado de una operacin aritmtica o lgica es cero

    0 = El resultado de una operacin aritmtica o lgica no es cero

    DC: Digit Carry /borrow bit (para borrow, la polaridad es invertida) 1 = Ocurri un acarreo en el bit de 4to orden del resultado

    0 = No ocurri un acarreo en el bit de 4to orden del resultado

    C: Carry bit o borrow (para borrow, la polaridad es invertida) 1 = Ocurri un acarreo en el Bit Ms Significativo del resultado

    0 = No ocurri un acarreo en el Bit Ms Significativo del resultado

    50Autor: Mauricio Galvez Legua

  • PIC17F877A

    Registros TRISx: Despus de un reset todos los puertos soninicializados con sus pines configurados como entradas. Cualquierpuerto de PIC16F877A puede ser configurado como entrada osalida bit por bit. Esto se hace mediante los registros TRISx. Cadapuerto tiene su correspondiente registro TRIS: PORTA - TRISA PORTB - TRISB PORTC - TRISC PORTD - TRISD PORTE - TRISE

    Si se escribe un 1 en un bit de TRISx, entonces el pincorrespondiente en el puerto x ser de entrada y si se le escribeun 0, el pin ser de salida. Para recordar este concepto suele sertil notar la semejanza del 0 con la o (de output) y del 1 con la i(de input). 0 Output = salida 1 Input = entrada

    51Autor: Mauricio Galvez Legua

  • PIC17F877A: Juego de Instrucciones

    El PIC 16F877A tiene en total 35 instruccionesdivididos en 3 grupos.

    Para poder entender los que significa cadainstruccin debemos previamente saber que: f representa a cualquier registro ubicado en la zona SFR

    o GPR. W es el registro de trabajo. k es un campo literal; dato, constante o etiqueta. d es el selector del resultado del ALU. Indica donde

    almacenar el resultado de la operacin: d = 0: el resultado se almacena en W d = 1: el resultado almacenar en el registro F

    b es una posicin de bit.

    52Autor: Mauricio Galvez Legua

  • PIC17F877A: Juego de Instrucciones

    Instrucciones Orientadas al byte:

  • PIC17F877A: Juego de Instrucciones

    Instrucciones Orientadas al bit:

    54Autor: Mauricio Galvez Legua

  • PIC17F877A: Juego de Instrucciones

    Instrucciones Literales y de Control:

    55Autor: Mauricio Galvez Legua

  • PIC17F877A: Juego de Instrucciones

    Ejemplos: CLRF: Significa borrar f (que representa a cualquier

    registro ubicado en la zona SFR o GPR). CLRF PORTA ; Esta instruccin carga todos los bits del puerto

    A con el valor 0.

    CLRW: Pone a cero el valor del registro W.

    COMF: Significa invertir los valores de f COMPF PORTC ; Esta instruccin invierte el valor del puerto C

    (el "1" lo convierte en "0" y viceversa).

    MOVWF: Significa mover el contenido del registro W a f. MOVWF STATUS ; Mover el contenido del registro W al

    registro STATUS.

    56Autor: Mauricio Galvez Legua

  • PIC17F877A: Juego de Instrucciones

    Ejemplos: MOVLW: Significa almacenar el valor de un literal (k) al registro W.

    MOVLW ; W = k ADDLW: Significa sumar un literal (k) y el registro W. El resultado se

    almacena en W. ADDLW 0x05 ; W = 0x05 + W

    ANDLW: Significa hacer una operacin lgica AND entre un literal (k) y el registro W. El resultado se almacena en W. ANDLW 0x15 ; W = 0x15 AND W

    IORLW: Significa suma lgica entre un literal (k) y el registro W. El resultado se almacena en W. IORLW 0x20 ; W = k OR W

    SUBLW: Significa restar un literal (k) y el registro W. El resultado se almacena en W. SUBLW 0x10 ; W = k - W

    XORLW: Significa hacer una operacin lgica AND entre un literal (k) y el registro W. El resultado se almacena en W. XORLW 0x30 ; W = 0x30 XOR W

    57Autor: Mauricio Galvez Legua

  • PIC17F877A: Juego de Instrucciones

    Ejemplos: ADDWF: Significa que se sumar el registro W + f y el

    resultado de almacenar en W o f dependiendo del valor de d. ADDWF PORTB, F ; Significa PORTB = W + PORTB

    Tambin se puede escribir de la siguiente manera: ADDWF PORTB,1

    ADDWF PORTC, W ; Significa W = W + PORTC Tambin se puede escribir de la siguiente manera: ADDWF

    PORTC, 0

    Ejemplos: BCF: Pone a cero un determinado bit de f.

    BCF STATUS, 5 ; Pone a cero el bit 5 del registro STATUS.

    BSF: Pone a uno un determinado bit de f. BSF PORTD, 4 ; Pone a uno el bit 4 del registro PORTD.

    58Autor: Mauricio Galvez Legua

  • Fin

    Autor: Mauricio Galvez Legua 59