LENGUAJE ENSAMBLADOR APLICACIONES CON MICROCONTROLADORES

Slides:



Advertisements
Presentaciones similares
ARQUITECTURA DE COMPUTADORAS
Advertisements

Microcontroladores PIC16F84A.
ESTADO Registro de ESTADO más utilizado  Es el registro más utilizado.  Ocupa la dirección 03 H tanto del Banco 0 como el Banco 1 de la Memoria de Datos.
SISTEMAS ELECTRONICOS DIGITALES APLICACIONES CON MICROCONTROLADORES
La tarjeta madre.
COMPUTACION PARALELA GLORIA PATRICIA FLOREZ ANGIE PAOLA ANCHICO.
Estructura de un ordenador. Ronald Valverde Zambrano.
BUCLES – SUBRUTINAS – RETARDOS MICROCONTROLADORES.
PLACA MADRE DE UNA COMPUTADORA IPCC - INFORMATICA APLICADA- -Baolini María Belén -Camargo Facundo.
El procesador Datapath y control. Universidad de SonoraArquitectura de Computadoras2 Introducción En esta parte del curso contiene: Las principales técnicas.
1 MEMORIAS Fundamentos de Informática Ingeniería Técnica Diseño Industrial.
Componentes de un ordenador ÍNDICE EL ORDENADOR PERSONAL PARTES DEL PC Hardware Software PERIFÉRICOS DE ENTRADA PERIFÉRICOS DE SALIDA PERIFÉRICOS DE.
DsPIC UNIVERSIDAD POLITECNICA SALESIANA SISTEMAS MICROPROCESADOS Cargua Pablo Martin Chango Carlos Andrés Martínez Katherine Andrea.
INTRODUCCION A LOS SISTEMAS DE COMPUTO ARQUITECTURA VON NEUMAN Ing. David Gonzalez.
ITESCO – Arquitectura Computadoras L. S. C. A. Raúl Monforte Chulin - MORCH Systems 1.1. Arquitectura básica y sus operaciones. Objetivo: El estudiante.
Control, adquisición y monitoreo con Arduino y Visual Basic .net
Organización de computadoras
Areas de memoria del CJ.
Microprocesador Estructura interna.
Estructuras de interconexión de un computador
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
Menú Presentación Dispositivos de Salida Que es informática
Registro y transferencia para manejo de interrupciones
TEMA 7 HARDWARE TECNOLOGÍA 3º ESO ADELA GINER LARRAURI.
Módulo 9 Automatización industrial Unidad 1 Introducción a los autómatas programables. Clase 03: Software de un Relé programable.. Nivel: IV medio Especialidad:
Capitulo I Introducción
Microcontroladores.
En la siguiente presentación veremos algunos términos que debemos conocer para iniciar la educación virtual.
INFORMATICA.
COMPUTADORA Una computadora es una colección de circuitos integrados  y otros componentes relacionados que puede ejecutar con exactitud, rapidez y de.
ARQUITECTURA DE HARD WARE COMPONENTES EN BLOQUES DEL PROCESADOR
TARJETAS.
Computadora La computadora es una máquina capaz de realizar y controlar a gran velocidad cálculos y procesos complicado que requieren una toma rápida de.
Computación Curso 2017.
Ing. Adriana Emma Bezanilla Montemayor
Unidad 3 Isai Galvan Alaniz
Hardware, software, y periféricos
Infografía. Estructura de Datos.
MENU SOFWARE Y HADWARE DISPOSITIVOS DE SALIDA DISPOSITIVOS DE ENTRADA
Componentes físicos internos
MEMORIAS. Alba Lus, Esther Escobar, Laura Hierro, Raquel Fdez.
Almacenamiento El computador tiene 2 aspectos
JAVIER ANDRES MARTÀ MARTINEZ CODIGO 37772
Hardware Description Language
Conceptos básicos.
Teleinformática. Elaborado por: Daniela Sánchez Téllez presentado a: Jesús Emiro Vega Universidad Nacional Abierta y a Distancia. Cead Acacias 2016.
UD1 (PARTE 2: NUMERACIÓN)
Herramientas Entorno Web
Switches, routers, hubs & “patch panels”
CONCEPTOS BÁSICOS DE COMPUTACIÓN E HISTORIA
INNOVACION TECNOLOGICA ELECTRONICA ESTUDIANTIL EN CIENCIAS
Puertos de E/S y recursos especiales Alumno: Llerena Quenaya Gabriel.
Manejo de video y teclado
Computadora La computadora es una maquina de realizar y controlar a gran velocidad cálculos y procesos complicados que requieren una toma rápida de decisiones.
CURSO PROGRAMACIÓN BÁSICA SEMANA 2
Metodología de la Programación
La informática y los ordenadores
Capitulo I Introducción
PUERTOS SERIALES Un puerto serial es una interfaz física de comunicación en serie a través de la cual se transfiere información mandando o recibiendo un.
Arquitectura de ordenadores
Centro Universitario UAEM Ecatepec Asignatura: Introducción al software base Licenciatura en informática Administrativa Lia 4to semestre Mtra. Patricia.
Diagnóstico y Localización de Averías
Eduardo Cruz Pérez.
Memoria Principal. Memoria primaria (MP), memoria principal, memoria central o memoria interna es la memoria de la computadora donde se almacenan temporalmente.
Componentes de una computadora
Características de los Sistemas Operativos
Estructura de un equipo microinformático
TEMPORIZADOR DIGITAL PIC 16F84 Alberto Simón González
ARQUITECTURA DE UN MICROPROCESADOR. ESTRUCTURA BÁSICA DE UN SISTEMA MICROPROGRAMABLE A. Hardware CPU (chip microprocesador): es un circuito integrado.
ESTRUCTURA DE UNA PC.
Transcripción de la presentación:

LENGUAJE ENSAMBLADOR APLICACIONES CON MICROCONTROLADORES

Introduccion Los microcontroladores están conquistando el mundo. Están presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general Se pueden encontrar controlando el funcionamiento de los ratones y teclados, en los teléfonos, en los hornos microondas, etc

Que es un Microcontrolador? Es un circuito integrado que incorpora los elementos necesarios para gobernar uno o varios procesos Es una computadora reducida a la minima expresion e integrada en un solo chip

Un microcontrolador dispone normalmente de los siguientes componentes: CPU (Unidad Central de Proceso). Memoria RAM Memoria ROM/PROM/EPROM Líneas de E/S para comunicarse con el exterior Diversos módulos para el control de periféricos (Temporizador, Convertidor Analógico/Digital, Convertidor Digital/Analógico) Generador de pulsos de reloj que sincronizan el funcionamiento de todo el sistema.

Diferencias Microprocesador. Contiene el CPU de una computadora. Microcontrolador. Contiene todos los bloques que integran a una computadora

Arquitectura Von Newman El CPU esta conectado a una memoria única que contiene las instrucciones del programa y los datos. El tamaño de la unidad de datos o instrucciones esta fijado por el ancho del bus de la memoria. Es decir que un microprocesador de 8 bits, que tiene además un bus de 8 bits que lo conecta con la memoria, deberá manejar datos e instrucciones de una o más unidades de 8 bits

Arquitectura Harvard El CPU esta conectado a dos memorias por intermedio de dos buses separados. Una de las memorias contiene solamente las instrucciones del programa, y es llamada Memoria de Programa. La otra memoria solo almacena los datos y es llamada Memoria de Datos

Ambos buses son totalmente independientes y pueden ser de distintos anchos

Ventajas Arquitectura Harvard a) El tamaño de las instrucciones no esta relacionado con el de los datos, y por lo tanto puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa, logrando así mayor velocidad y menor longitud de programa b) Que el tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad de operación

Tipos de Microcontroladores FABRICANTE MODELOS Microchip PIC Atmel ATmegaXX Dallas Semiconductor Clones del 8051 Hitachi HD64180 Intel 8048, 8051, 80186 Motorola 6805, 68HC11 National Semiconductor COP400, COP8 Phillips Clones 8051 Texas Instrument TMS370 Toshiba TLCS870 Zilog Z8, Z80,Z86XX

Conclusiones El microcontrolador surge ante la necesidad de una electronica economica, tamanio reducido y que sea reprogramable

PIC Los PIC tienen algo que atrae a los diseñadores, puede ser la velocidad, el precio, la facilidad de uso, la información o las herramientas de apoyo. Quizás un poco de todo eso es lo que produce esa imagen de sencillez y utilidad.

Para las aplicaciones más habituales (casi un 90%) la elección de una versión decuada de PIC es la mejor solución; sin embargo, dado su carácter general, otras familias de microcontroladores son más eficaces en aplicaciones específicas

Los detalles más importantes 1. Manejo sencillo: Tienen un juego de instrucciones reducido; 35 en la gama media 2. Información fácil de conseguir y económica 3. Precio comparativamente inferior al de sus competidores 4. Poseen una elevada velocidad de funcionamiento. Buen promedio de parámetros: velocidad, consumo, tamaño, alimentación, código compacto, etc.

5. Herramientas de desarrollo fáciles y economicas 5. Herramientas de desarrollo fáciles y economicas. Software libre de Microchip 6. Existe una gran variedad de herramientas hardware que permiten grabar, depurar, borrar y comprobar el comportamiento de los PIC 7. Diseño rápido 8. La gran variedad de modelos de PIC permite elegir el que mejor responde a los requerimientos de la aplicación

Arquitectura La arquitectura del procesador sigue el modelo Harvard donde el CPU se conecta de forma independiente y con buses distintos con la memoria de instrucciones y con la de datos La arquitectura Harvard permite a la CPU acceder simultáneamente a las dos memorias Propicia numerosas ventajas al funcionamiento del sistema

Segmentacion Técnica de segmentación (Pipe-line) en la ejecución de las instrucciones. La segmentación permite al procesador realizar al mismo tiempo la ejecución de una instrucción y la búsqueda del código de la siguiente De esta forma se puede ejecutar cada instrucción en un ciclo (un ciclo de instrucción equivale a cuatro ciclos de reloj)

Se puede ejecutar cada instrucción en un ciclo (un ciclo de instrucción equivale a cuatro ciclos de reloj) Las instrucciones de salto ocupan dos ciclos al no conocer la dirección de la siguiente instrucción hasta que no se haya completado la de bifurcación

Formato Instrucciones Todas las instrucciones es de la misma longitud Gama baja tiene una longitud de 12 bits Gama media tienen 14 bits

Juego de Instrucciones Gama baja 33 instrucciones Gama media 35 Gama alta 60

Instrucciones son ortogonales Cualquier instrucción puede manejar cualquier elemento de la arquitectura como fuente o como destino

Banco de registros Todos los objetos del sistema (puertos de E/S, temporizadores, posiciones de memoria, etc.) están implementados físicamente como registros

Gama Media PIC 16CXXX Instrucciones de 14 bits Modelos de 18 a 68 pines 35 instrucciones

PIC 16X84 Memoria de Programa: 1K x14 Memoria de Datos: 36 Bytes (PIC16C84) y 68 Bytes (PIC16F84) Memoria de datos EEPROM: 64 Bytes Pila: De 8 Niveles Interrupciones: 4 tipos diferentes Juego de Instrucciones: 35 Encapsulado: Plástico DIP de 18 Patillas Frecuencia de Trabajo: 10Mhz Máxima Temporizadores: Solo uno el TMR0. También tiene Perro Guardián Líneas de E/S Digitales: 13 (5 Puerta A y 8 Puerta B) Voltaje de Alimentación (VDD): De 2 a 6 V DC Voltaje de Grabación (VDD): de 12 a 14 V DC

APLICACIONES INTRODUCCION Desde la invención del circuito integrado, el desarrollo constante de la electrónica digital ha dado lugar a dispositivos cada vez más complejos. Entre ellos los microprocesadores y los microcontroladores, los cuales son básicos en las carreras del área de electrónica.

Controlador y microcontrolador. Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno dispone de un sensor que mide constantemente su temperatura interna y, cuando traspasa los límites prefijados, genera las señales adecuadas que accionan los efectores que intentan llevar el valor de la temperatura dentro del rango estipulado.

Un microcontrolador dispone normalmente de los siguientes componentes: Un microcontrolador es un circuito integrado de alta escala de integración que incorpora la mayor parte de los elementos que configuran un controlador. Un microcontrolador dispone normalmente de los siguientes componentes: Procesador o CPU (Unidad Central de Proceso). Memoria RAM para Contener los datos. Memoria para el programa tipo ROM/PROM/EPROM. Líneas de E/S para comunicarse con el exterior. Diversos módulos para el control de periféricos (temporizadores, Puertos Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA: Conversores Digital/Analógico, etc.). Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.

Los productos que para su regulación incorporan un microcontrolador disponen de las siguientes ventajas: Aumento de prestaciones: un mayor control sobre un determinado elemento representa una mejora considerable en el mismo. Aumento de la fiabilidad: al reemplazar el microcontrolador por un elevado número de elementos disminuye el riesgo de averías y se precisan menos ajustes. Reducción del tamaño en el producto acabado: La integración del microcontrolador en un chip disminuye el volumen, la mano de obra y los stocks. Mayor flexibilidad: las características de control están programadas por lo que su modificación sólo necesita cambios en el programa de instrucciones.

Diferencia entre microprocesador y microcontrolador. El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (UCP), también llamada procesador, de un computador. La CPU está formada por la Unidad de Con­trol, que interpreta las instrucciones, y el Camino de Datos, que las ejecuta.

Se dice que un microprocesador es un sistema abierto porque su configuración es variable de acuerdo con la aplicación a la que se destine.

CARACTERISTICAS RELEVANTES 1ª. La arquitectura del procesador sigue el modelo Harvard En esta arquitectura, el CPU se conecta de forma independiente y con buses distintos con la memoria de instrucciones y con la de datos. La arquitectura Harvard permite al CPU acceder simultáneamente a las dos memorias.

Arquitectura Harvard

2ª. Se aplica la técnica de segmentación (“pipeline”) en la ejecución de las instrucciones. La segmentación permite al procesador realizar al mismo tiempo la ejecución de una instrucción y la búsqueda del código de la siguiente. De esta forma se puede ejecutar cada instrucción en un ciclo (un ciclo de instrucción equivale a cuatro ciclos de reloj). La segmentación permite al procesador ejecutar cada instrucción en un ciclo de instrucción equivalente a cuatro ciclos de reloj. En cada ciclo se realiza la búsqueda de una instrucción y la ejecución de la anterior. Las instrucciones de salto ocupan dos ciclos al no conocer la dirección de la siguiente instrucción hasta que no se haya completado la de bifurcación.

Pipeline

3ª. El formato de todas las instrucciones tiene la misma longitud Todas las instrucciones de los microcontroladores de la gama baja tienen una longitud de 12 bits. Las de la gama media tienen 14 bits. Esta característica es muy ventajosa en la optimización de la memoria de instrucciones y facilita enormemente la construcción de ensambladores y compiladores.

4ª. Procesador RISC (Computador de Juego de Instrucciones Reducido) Los modelos de la gama baja disponen de un repertorio de 33 instrucciones, 35 los de la gama media y casi 60 los de la alta.

5ª. Todas las instrucciones son ortogonales Cualquier instrucción puede manejar cualquier elemento de la arquitectura como fuente o como destino.

6ª. Arquitectura basada en un banco de registros. Esto significa que todos los objetos del sistema (puertos de E/S, temporizadores, posiciones de memoria, etc.) están implementados físicamente como registros.

7ª. Diversidad de modelos de microcontroladores con prestaciones y recursos diferentes. La gran variedad de modelos de microcontroladores PIC permite que se pueda seleccionar el más conveniente para su proyecto.

8ª. Herramientas de soporte potentes y económicas La empresa Microchip y otras que utilizan los PIC ponen a disposición de los usuarios numerosas herramientas para desarrollar hardware y software. Son muy abundantes los programadores, los simuladores software, los emuladores en tiempo real, ensambladores, Compiladores C, Intérpretes y Compiladores BASIC, etc.

¿Qué microcontrolador emplear? Costos. Aplicación. Procesamiento de datos Entrada Salida Consumo Memoria Ancho de palabra Diseño de la placa

1ª. Microcontroladores de arquitectura cerrada LAS TRES GAMAS DE PIC. 1ª. Microcontroladores de arquitectura cerrada Cada modelo se construye con un determinado CPU, cierta capacidad de memoria de datos, cierto tipo y capacidad de memoria de instrucciones, un número de E/S y un conjunto de recursos auxiliares muy concreto. El modelo no admite variaciones ni ampliaciones.

2ª. Microcontroladores de arquitectura abierta Estos microcontroladores se caracterizan porque, además de disponer de una estructura interna determinada, pueden emplear sus líneas de E/S para sacar al exterior los buses de datos, direcciones y control, con lo que se posibilita la ampliación de la memoria y las E/S con circuitos .integrados externos.

Los principales recursos específicos que incorporan los microcontroladores son: Temporizadores o “Timers”. Perro guardián o “Watchdog”. Protección ante fallo de alimentación o “Brownout”. Estado de reposo o de bajo consumo. Convertidor A/D. Convertidor D/A. Comparador analógico. Modulador de anchura de impulsos o PWM. Puertos de E/S digitales. Puertos de comunicación.

Temporizadores o “Timers” Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores). Para la medida de tiempos se carga un registro con el valor adecuado y a continuación dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algún múltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso. Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos.

Perro guardián o “Watchdog” Cuando la computadora personal se bloquea por un fallo del software u otra causa, se pulsa el botón del reset y se reinicializa el sistema. Pero un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del día. El Perro guardián consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un reset automáticamente en el sistema. Se debe diseñar el programa de trabajo que controla la tarea de forma que refresque o inicialice al Perro guardián antes de que provoque el reset. Si falla el programa o se bloquea, no se refrescará al Perro guardián y, al completar su temporización, “ladrará y ladrará” hasta provocar el reset.

Protección ante fallo de alimentación o “Brownout” Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentación (VDD) es inferior a un voltaje mínimo (“brownout”). Mientras el voltaje de alimentación sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor.

Estado de reposo ó de bajo consumo Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar, sin hacer nada, a que se produzca algún acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energía, (factor clave en los aparatos portátiles), los microcontroladores disponen de una instrucción especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mínimos. En dicho estado se detiene el reloj principal y se “congelan” sus circuitos asociados, quedando sumido en un profundo “sueño” el microcontrolador. Al activarse una interrupción ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo.

Convertidor A/D (CAD) Los microcontroladores que incorporan un Conversor A/D (Analógico/Digital) pueden procesar señales analógicas, tan abundantes en las aplicaciones. Suelen disponer de un multiplexor que permite aplicar a la entrada del CAD diversas señales analógicas desde las patitas del circuito integrado.

Convertidor D/A (CDA) Transforma los datos digitales obtenidos del procesamiento del computador en su correspondiente señal analógica que saca al exterior por una de las patitas de la cápsula. Existen muchos efectores que trabajan con señales analógicas.

Comparador analógico Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que actúa como comparador entre una señal fija de referencia y otra variable que se aplica por una de las patitas de la cápsula. La salida del comparador proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra.

Modulador de anchura de impulsos o PWM Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a través de las patitas del encapsulado.

Puertos de E/S digitales Las líneas digitales de los Puertos pueden configurarse como Entrada o como Salida cargando un 1 ó un 0 en el bit correspondiente de un registro destinado a su configuración.

Puertos de comunicación Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan: UART, adaptador de comunicación serie asíncrona. USART, adaptador de comunicación serie síncrona y asíncrona Puerto paralelo esclavo para poder conectarse con los buses de otros microprocesadores. USB (Universal Serial Bus). Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips. CAN (Controller Area Network), para permitir la adaptación con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automóviles.

INSTRUCCIONES Su juego de instrucciones es reducido (33 instrucciones en la gama baja y 35 en al gama media), siendo éstas, además, sencillas y rápidas, puesto que casi todas se ejecutan en un único ciclo de máquina (equivalente a 4 del reloj principal). Sus operandos son de gran flexibilidad, pudiendo actuar cualquier objeto como fuente y como destino

Posee tres tipos bien diferenciados de direccionamiento, estos son: 1º Inmediato: El valor del dato está incluido en el propio código OP, junto a la instrucción. 2º Directo: La dirección del dato está incluido en el propio código OP, junto a la instrucción. 3º Indirecto: La dirección de la memoria de datos que guarda el operando está contenida en un registro.

Definiciones y abreviaturas Abreviatura Descripción PC TOS WDT W F D Dest TO PD b k x label [] ()  <>  Z C DC Itálicas Contador de Programa que direcciona la memoria de instrucciones. Tiene un tamaño de 11 bits en la gama baja, de los cuales los 8 de menos peso configuran el registro PCL que ocupa el registro 0x02 del área de datos. Cima de la pila, con 2 niveles en la gama baja y 8 en la media Perro guardián (Watchdog) Registro W, similar al acumulador Suele ser un campo de 5 bits (fffff) que contiene la dirección del banco de registros, que ocupa el banco 0 del área de datos. Direcciona uno de esos registros. Bit del código OP de la instrucción, que selecciona el destino. Si d=0, el destino es W, y si d=1 el destino es f. Destino (registro W o f) Bit “Time Out” del registro de estado Bit “Power Down” del registro de estado Suele ser un campo de 3 bits (bbb) que determinan la posición de un bit dentro de un registro de 8 bits Se trata, normalmente, de un campo de 8 bits (kkkkkkkk) que representa un dato inmediato. También puede constar de 9 bits en las instrucciones de salto que cargan al PC Valor indeterminado (puede ser un 0 o un 1). Para mantener la compatibilidad con las herramientas software de Microchip conviene hacer x = 0 Nombre de la etiqueta Opciones Contenido Se asigna a Campo de bits de un registro Pertenece al conjunto Señalizador de cero en W. Pertenece al registro de estado Señalizador de acarreo en el octavo bit del W. Pertenece al registro de estado Señaliza el acarreo en el 4 bit del W. Pertenece al registro de estado Términos definidos por el usuario

Repertorio de instrucciones de la gama media

Repertorio de instrucciones de la gama media

Repertorio de instrucciones de la gama media

Repertorio de instrucciones de la gama media

Repertorio de instrucciones de la gama media

COMANDOS DE PICS DE LA GAMA MEDIA

Instrucciones Orientadas a Registros MNEMÓNICO DESCRIPCIÓN CÓDIGO OP FLAGS AFECTADOS NOTAS Instrucciones Orientadas a Registros ADDWF f,d ANDWF f,d CLRF f CLRW COMF f,d DECF f,d DECFSZ f,d INCF f,d INCFSZ f,d IORWF f,d MOVF f,d MOVWF f NOP RLF f,d RRF f,d SUBWF f,d SWAPF f,d XORWF f,d (W)+(f) à (destino) (W) AND (f) à (destino) 00 à (f) 00 à (W) Complemento de f [(#f)à (destino)] (f)-1 à destino (f)-1 à destino y si resultado es 0 salta (f)+1 à destino (f)+1 à destino y si resultado es 0 salta (W) OR (f) à destino Mueve f à destino (W) à (f) No operación Rota f a la izq a través del carry à destino Rota f a la dcha a través del cary à destino (f)–(W) à (destino) Intercambia los nibbles de f à destino (W) XOR (f) à (destino) 00 0111 dfff ffff 00 0101 dfff ffff 00 0001 1fff ffff 00 0001 0000 0011 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 00 0000 0xx0 0000 00 1101 dfff ffff 00 1100 dfff ffff 00 0010 dfff ffff 00 1110 dfff ffff 00 0110 dfff ffff C, DC, Z Z Ninguno C C,DC,Z 1,2 2 1,2,3  

Pone a 0 el bit b del registro f MNEMÓNICO DESCRIPCIÓN CÓDIGO OP FLAGS AFECTADOS Instrucciones orientadas a Bit BCF f,b BSF f,b BTFSC f,b BTFSS f,b Pone a 0 el bit b del registro f Pone a 1 el bit b del registro f Skip si el bit b del reg. f es 0 Skip si el bit b del reg. f es 1 01 00bb bfff ffff 01 01bb bfff ffff 01 10bb bfff ffff 01 11bb bfff ffff Ninguno Instrucciones con literales y de control ADDLW K ANDLW K CALL K CLRWDT GOTO K IORLW K MOVLW K RETFIE RETLW K RETURN SLEEP SUBLW K XORLW K (W)+ K à (W) (W) AND K à (W) Llamada a subrutina Clear del temporizador del WD Go To dirección (W) OR K à (W) K à (W) Retorno de una interrupción Retorno con un literal en W Retorno de una subrutina Modo Standby K – (W) à W (W) XOR K à (W) 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 C,DC,Z Z  

 Notas.- Al modificar un registro de E/S con una operación sobre él mismo (por ejemplo MOVF PORTB,1), el valor utilizado es el que se halle presente en los pines del PORTB. Por ejemplo, si el biestable tiene un "1" para una patilla configurada como entrada y se pone a nivel bajo desde el exterior, el dato se volverá a escribir como "0“ Si se ejecuta esta instrucción sobre el TMR0 y d=1, será borrado el divisor de frecuencia (preescaler), si está asignado al TMR0 3. Si se modifica el Contador de Programa (PC) o una condición de prueba es verdadera, la instrucción requiere dos ciclos máquina. El segundo ciclo se ejecuta como un NOP

ADDLW ADD Literal to W Operación (W) + k ----> (W) Sintaxis   ADD Literal to W Operación (W) + k ----> (W) Sintaxis [Etiqueta] ADDLW k Operadores 0 < k < 255 Cod.Oper. 0001 11df ffff Palabras 1 Ciclos Código de Operación 11 111x kkkk Descripción Suma el contenido del registro W al literal k, y almacena el resultado en W.Si se produce acerreo el flag C se pone a "1" Nota.- Esta instrucción no existe en el PIC 16C5X C Se pone a 1 si se produce un Acarreo desde el bit de mayor peso DC Se pone a 1 si se genera un Acarreo del bit 3 al bit 4. Z     Se pone a 1 si el resultado de la operación es cero EJEMPLO:     ADDLW 0x15 Si antes de la instrucción: W = 10h = 0001 0000 b Al ejecutarse la instrucción W = 10 h + 15 h = 25 h W = 0001 0000 b + 0001 0101 b = 0010 0101 b Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - X

(W) + (f) ----> (destino) ADDWF   ADD W to F Operación (W) + (f) ----> (destino) Sintaxis [Etiqueta] ADDWF f,d Operadores 0 < f < 127 d  [0,1] Palabras 1 Ciclos Código de Operación 00 0111 dfff ffff Descripción Suma el contenido del registro W al contenido del registro f, y almacena el resultado en W si d = 0, y en el registro f si d = 1.Si se produce acerreo el flag C se pone a "1" C Se pone a 1 si se produce un Acarreo desde el bit de mayor peso DC Se pone a 1 si se genera un Acarreo del bit 3 al bit 4. Z Se pone a 1 si el resultado de la operación es cero EJEMPLO:   ADDWF FSR,0 Si antes de la instrucción. W = 17 h y FSR = C2 h como d=0 Al ejecutarse: W = 17 h+ C2 h = D9 h FSR = C2 h Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - X

(W).AND. (k) ----> (W) ANDLW   AND Literal and W Operación (W).AND. (k) ----> (W) Sintaxis [Etiqueta] ANDLW k Operadores 0 < f < 255 Palabras 1 Ciclos Código de Operación 11 1001 kkkk Descripción Efectúa la operación AND lógico entre el contenido del registro W y el literal k, y almacena el resultado en W. Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - X Z Se pone a 1 si el resultado de la operación es cero EJEMPLO:      ANDLW 0x5F Si antes de la instrucción. W = A3 h Al ejecutarse: W = 0101 1111 b AND 1010 0011 b = 0000 0011 B = 03 h

(W) AND (f) ----> (destino) ANDWF   AND W wind F Operación (W) AND (f) ----> (destino) Sintaxis [Etiqueta] ANDWF f,d Operadores 0 < f < 127 d  [0,1] Palabras 1 Ciclos Código de Operación 00 0101 dfff ffff Descripción Efectúa la operación AND lógico entre el contenido del registro W y el contenido del registro f, y almacena el resultado en W si d = 0, y en f si d = 1. Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - X Z Se pone a 1 si el resultado de la operación es cero EJEMPLO:   ANDWF FSR,1 Si antes de la instrucción. W = 17 h = 0001 0111 b y FSR = C2 h = 1100 0010 h Al ejecutarse: W = 17 h = 0001 0111 b FSR = 0001 0111 b AND 1100 0010 b = 0000 0010 b = 02 h

BCF Bit Clear F Operación 0 --> (f<b>) Sintaxis   Bit Clear F Operación 0 --> (f<b>) Sintaxis [Etiqueta] BCF f,b Operadores 0 < f < 127 0 < b < 7 Palabras 1 Ciclos Código de Operación 01 00bb bfff ffff Descripción Pone a cero el bit número b del registro f Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - EJEMPLO:   BCF FLAG_REG, 7 Si antes de la instrucción el registro FLAG_REG = C7 h = 1100 0111 b Al ejecutarse la instrucción, el registro queda con el valor: FLAG_REG = 47b = 0100 0111 b

BSF Bit Set F Operación 1 --> (f<b>) Sintaxis   Bit Set F Operación 1 --> (f<b>) Sintaxis [Etiqueta] BSF f,b Operadores 0 < f < 127 0 < b < 7 Palabras 1 Ciclos Código de Operación 01 11bb bfff ffff Descripción Pone a 1 el bit b del registro f Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - EJEMPLO:   BSF FLAG_REG, 7 Si antes de la instrucción el registro tiene el valor. FLAG_REG = 0A h = 0000 1010 b Al ejecutarse la instrucción, el registro queda con el valor: FLAG_REG = 8A h = 1000 1010 b

BTFSC Bit Test, Skip if Clear Operación skip if (f<b>) = 0   Bit Test, Skip if Clear Operación skip if (f<b>) = 0 Sintaxis [Etiqueta] BTFSC f,b Operadores 0 < f < 127 0 < b <7 Palabras 1 Ciclos 1 (2) Código de operación 01 10bb bfff ffff Descripción Si el bit número b del registro f es cero, la instrucción que sigue a ésta se ignora y se trata como un NOP (skip). En este caso, y sólo en este caso, la instrucción BTFSC precisa dos ciclos para ejecutarse. EJEMPLO: HERE BTFSC FLAG,1 FALSE GOTO PROCESS_CODE TRUE . Si antes de la instrucción.  PC = dirección HERE Al ejecutarse: if FLAG<1> = 0, PC = dirección TRUE if FLAG<1> = 1, PC = dirección FALSE Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C -

BTFSS Bit Test, Skip if Set Operación skip if (f<b>) = 1   Bit Test, Skip if Set Operación skip if (f<b>) = 1 Sintaxis [Etiqueta] BTFSS f,b Operadores 0 < f < 127 0 < b <7 Palabras 1 Ciclos 1 (2) Código de Operación 01 11bb bfff ffff Descripción Si el bit número b del registro f está a 1, la instrucción que sigue a ésta se ignora y se trata como un NOP (skip). En este caso, y sólo en este caso, la instrucción BTFSS precisa dos ciclos para ejecutarse. EJEMPLO: HERE BTFSS FLAG,1 FALSE GOTO PROCESS_CODE TRUE . Si antes de la instrucción.     PC = dirección HERE Al ejecutarse: if FLAG<1> = 0, PC = dirección FALSE if FLAG<1> = 1, PC = dirección TRUE Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C -

CALL Subrutine Call Operandos 0 = k = 2047 Sintaxis [Etiqueta] CALL k   Subrutine Call Operandos 0 = k = 2047 Sintaxis [Etiqueta] CALL k Operación (PC)+1 ---> Top of Stack k ---> PC <10:0>; PCLATCH (<4:3>) ---> PC (<12,11>) Palabras 1 Ciclos 2 Código de Operación 10 0kkk kkkk Descripción Salvaguarda la dirección de vuelta en la Pila y después llama a la subrutina situada en la dirección cargada en el PC. El modo de cálculo de la dirección efectiva difiere según la familia PIC utilizada. También hay que posicionar PA2, PA1 y PA0 (PIC 16C5X) o el registro PCLATCH (En los demás PIC) antes de ejecutarse la instrucción. EJEMPLO:     HERE CALL THERE Si antes de la instrucción. PC = dirección HERE Al ejecutarse: PC = dirección (THERE) TOS = dirección (HERE +1) Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C -

CLRF Clear f Operación 00h --> f 1 ---> Z Sintaxis   Clear f Operación 00h --> f 1 ---> Z Sintaxis [Etiqueta] CLRF f Operadores 0 < f < 127 Palabras 1 Ciclos Código de Operación 00 0001 1fff ffff Descripción Se borra el contenido del registro f y el flag Z se activa PA2 PA1 PA0 TO# PD# Z DC C - 1 Registro de STATUS Z Se pone a 1 si el resultado de la operación es cero EJEMPLO:   CLRF REG Si antes de la instrucción. REG = 5A h Al ejecutarse: REG = 00 h flag Z = 1

CLRW Z Se pone a 1 si el resultado de la operación es cero EJEMPLO:   Clear W Operación 00h -->(W) 1 ---> Z Sintaxis [Etiqueta] CLRW Operadores No tiene Palabras 1 Ciclos Código de Operación 00 0001 0000 0011 Descripción El registro de trabajo W se carga con 00h. El flag Z se pone a 1 Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - 1 Z Se pone a 1 si el resultado de la operación es cero EJEMPLO:    CLRW Si antes de la instrucción. W= 5Ah Al ejecutarse: W = 00 flag Z = 1

CLRWDT   Clear Watchdog Timer Operación 00h --> WDT 1 --> T0# 1 --> PD# Sintaxis [Etiqueta] CLRWDT Operadores No tiene Palabras 1 Ciclos Código de Operación 00 0000 0110 0100 Descripción Se borra tanto el registro WDT (Watchdog) como su preescaler. Los bits T0# y PD# del registro de estado se ponen a "1". Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - 1 T0# Se pone a 1 cuando se ejecuta la instrucción CLRWDT o SLEEP. Se pone a 0 si el temporizador Watchdog se desborda PD# Se pone a 1 cuando se ejecuta la instrucción CLRWDT o SLEEP EJEMPLO:    CLRWDT Si antes de ejecutarse la instrucción WDT = ? Al ejecutarse: WDT = 00 h Preescaler WDT = 0 bit de estado T0 = 1 bit de estado PD = 1

COMF Complement f Operación (f#) -----> (dest) Sintaxis   Complement f Operación                                                 (f#) -----> (dest) Sintaxis [Etiqueta] COMF f,d Operadores 0 < f < 127 d  [0,1] Palabras 1 Ciclos Código de Operación 00 1001 dfff ffff Descripción Hace el complemento del contenido del registro f bit a bit. El resultado se almacena en el registro f si d=1 y en el registro W si d=0, en este caso f no varía. Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - X Z Se pone a 1 si el resultado de la operación es cero EJEMPLO:     COMF REG1,0 Si antes de la instrucción. REG1 = 13 h como d= 0 Al ejecutarse: REG1 = 13 h = 0001 0011 b W = EC h = 1110 1100 b flag Z = 0

DECF Decrement f Operación (f)-1 --> (dest) Sintaxis   Decrement f Operación (f)-1 --> (dest) Sintaxis [Etiqueta] DECF f,d Operadores 0 < f < 127 d  [0,1] Palabras 1 Ciclos Código de Operación 00 0011 dfff ffff Descripción Se decrementa el contenido del registro f en una unidad. El resultado se almacena en f si d=1 y en W si d=0, en este caso f no varía. Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - X Z Se pone a 1 si el resultado de la operación es cero EJEMPLO:     DECF CNT,1 Si antes de la instrucción. CNT = 01 h Z = 0 Al ejecutarse: CNT = 00 h bit Z = 1

(f) -1 --> (dest) ; skip if result =0 DECFSZ   Decrement f , Skip if 0 Operación (f) -1 --> (dest) ; skip if result =0 Sintaxis [Etiqueta] DECFSZ f,d Operadores 0 < f < 127 d  [0.1] Palabras 1 Ciclos 1 (2) Código de Operación 00 1011 dfff ffff Descripción Decrementa el contenido del registro f en una unidad, el resultado se almacena en f si d=1 y en W si d=0, en este caso, f no varía. Si el resultado es cero, se ignora la siguiente instrucción y, en ese caso la instrucción tiene una duración de dos ciclos. PA2 PA1 PA0 TO# PD# Z DC C - Registro de STATUS EJEMPLO:     HERE DECFSZ CNT,1 GOTO LOOP CONTINUE Si antes de la instrucción. PC = dirección HERE Al ejecutarse: CNT = CNT -1 Si CNT = 0 entonces PC = dirección CONTINUE Si CNT no = 0 entonces PC = dirección HERE + 1

(PCLATH <4:3>) ---> (PC <12:11>) GOTO   Unconditional Branch Operación K --> PC <10:0> (PCLATH <4:3>) ---> (PC <12:11>) Sintaxis [Etiqueta] GOTO k Operadores 0 < k < 2047 Palabras 1 Ciclos 2 Código de Operación 10 1kkkk kkkk Descripción Salto incondicional, normalmente se utiliza para llamar a la subrutina situada en la dirección que se carga en PC. El modo de cálculo de la instrucción caga de bit 0 al 10 de la constante k en el PC y los bits 3 y 4 del registro PCLATH en los 11 y 12 del PC PA2 PA1 PA0 TO# PD# Z DC C - Registro de STATUS EJEMPLO:     GOTO THERE Al ejecutarse: PC = dirección THERE

INCF Increment f Operación (f) + 1 --> (dest) Sintaxis   Increment f Operación (f) + 1 --> (dest) Sintaxis [Etiqueta] INCF f,d Operadores 0 < f < 127 d  [0,1] (f) + 1 ---> (dest) Palabras 1 Ciclos Código de Operación 00 1010 dfff ffff Descripción Se incrementa en una unidad el contenido del registro f, si d=1 el resultado se almacena en f, si d=0 el resultado se almacena en W, en este caso el resultado de f no varía. Z Se pone a 1 si el resultado de la operación es cero al haber desbordamiento EJEMPLO:     INCF CNT,1 Si antes de la instrucción: CNT = FF h flag Z = 0 Al ejecutarse:     FF h +1 h = 00 h CNT = 00 flag Z = 1 Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - X

INCFSZ Increment f, SKIP if 0 Operación   Increment f, SKIP if 0 Operación (f) +1 --> (dest) , skip if result = 0 Sintaxis [Etiqueta] <INCFSZ f,d Operadores 0 < f < 127 d  [0,1] Palabras 1 Ciclos 1 (2) Código de Operación 00 1111 dfff ffff Descripción Incrementa el contenido del registro f en una unidad, el resultado se almacena de nuevo en f si d=1, y en W si d=0, en este caso, f no varía. Si el resultado es cero, se ignora la siguiente instrucción y, en ese caso la instrucción tiene una duración de dos ciclos. EJEMPLO:   HERE INCFSZ CNT,1                       GOTO LOP                       CONTINUE Si antes de la instrucción. PC = dirección HERE Al ejecutarse: CNT = CNT+1 Si CNT = 0 Entonces PC = dirección CONTINUE Si CNT no = 0 Entonces PC = dirección HERE + 1 Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C -

Inclusive OR Literal with W IORLW   Inclusive OR Literal with W Operación (W).OR.k ---> (W) Sintaxis [Etiqueta] IORLW k Operadores 0 < k < 255 Palabras 1 Ciclos Código de Operación 11 1000 kkkk Descripción Se realiza la operación lógica OR entre el registro W y el literal k. El resultado se almacena en el registro W. Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - X Z Se pone a 1 si el resultado de la operación es cero EJEMPLO:     IORLW 0x35 Si antes de la instrucción. W = 9A h Al ejecutarse: W = 1001 1010 b + 0011 0101 b = 1011 1111 b = BF h

(W) .OR.(f)--> (dest) IORWF   Inclusive OR W with f Operación (W) .OR.(f)--> (dest) Sintaxis [Etiqueta] IORWF f,d Operadores 0 < f < 127 d  [0,1] Palabras 1 Ciclos Código de Operación 00 0100 dfff ffff Descripción Efectúa la operación lógica OR entre el contenido del registro W y el contenido del registro f, y almacena el resultado en f si d=1 y en W si d=0. PA2 PA1 PA0 TO# PD# Z DC C - X Registro de STATUS Z Se pone a 1 si el resultado de la operación es cero EJEMPLO:     IORWF RESUL,0 Si antes de la instrucción. RESUL = 13 h = 0001 0011 b W = 91 h = 1001 0001 b Al ejecutarse: RESUL= 0001 0011 b OR 1001 0001 b = 1001 0011 b = 93 h

MOVLW Move literal to W Operación k --> (W) Sintaxis   Move literal to W Operación k --> (W) Sintaxis [Etiqueta] MOVLW k Operadores 0 < f < 255 Palabras 1 Ciclos Código de Operación 11 00xx kkkk Descripción El registro W se carga con el valor de 8 bits del literal k PA2 PA1 PA0 TO# PD# Z DC C - X Registro de STATUS   EJEMPLO:     MOVLW 0x5A Al ejecutarse: W = 5A h

MOVF Move f Operación (f) --> (dest) Sintaxis [Etiqueta] MOVF f,d   Move f Operación (f) --> (dest) Sintaxis [Etiqueta] MOVF f,d Operadores 0 < f < 127 d  [0,1] Palabras 1 Ciclos Código de Operación 00 10000 dfff ffff Descripción El contenido del registro f se carga en el registro destino dependiendo del valor de d. Si d=0 el destino es el registro W, si d=1 el destino es el propio registro f . Esta instrucción permite verificar dicho registro ya que el flag Z queda afectado. Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - X Z Se pone a 1 si el resultado de la operación es cero EJEMPLO:     MOVF FSR,0 Al ejecutarse: W = al valor del FSR

MOVWF Move W to f Operación (W)--> (f) Sintaxis [Etiqueta] MOVWF f   Move W to f Operación (W)--> (f) Sintaxis [Etiqueta] MOVWF f Operadores 0 ≤ f ≤ 127 Palabras 1 Ciclos Código de Operación 00 0000 1fff ffff Descripción Mueve el contenido del registro W al registro f Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - EJEMPLO:     MOVWF OPTION Si antes de la instrucción. OPTION = FF h W = 4F h Al ejecutarse: OPTION = 4F h

NOP No operation Operación no operación Sintaxis [Etiqueta] NOP   No operation Operación no operación Sintaxis [Etiqueta] NOP Operadores No tiene Palabras 1 Ciclos Código de Operación 00 0000 0xx0 Descripción No realiza operación alguna. En realidad, se consume un ciclo de instrucción sin hacer nada. PA2 PA1 PA0 TO# PD# Z DC C - Registro de STATUS EJEMPLO:     NOP

RETFIE Return from Interrupt Operación TOS --> PC 1 --> GIE   Return from Interrupt Operación TOS --> PC 1 --> GIE Sintaxis [Etiqueta] RETFIE Operadores No tiene Palabras 1 Ciclos 2 Código de Operación 00 0000 1001 Descripción Carga el PC con el valor que se encuentra en la parte alta de la Pila, asegurando así la vuelta de la interrupción. Pone a 1 el bit GIE, con el fin de autorizar de nuevo que se tengan en cuenta las interrupciones. PA2 PA1 PA0 TO# PD# Z DC C - Registro de STATUS EJEMPLO:     RETFIE Al ejecutarse: PC = TOS GIE = 1

Return with Literal in W RETLW   Return with Literal in W Operación k --> (W); TOS ---> PC Sintaxis [Etiqueta] RETLW k Operadores 0 < K < 255 Palabras 1 Ciclos 2 Código de Operación 11 01xx kkkk Descripción Carga el registro W con el literal k, y después carga el PC con el valor que se encuentra en la parte superior de la PILA, efectuando así un retorno de subrutina. EJEMPLO:    CALL TABLA        ;W contiene tabla                                 .                    ; el valor offset                                 .                    ;W nuevo valor de tabla          TABLA: ADDWF PC         ;W = offset                         RETLW k1           ; Nueva Tabla                         RETLW k2                             .                     RETLW kn         ;Fin de tabla Antes de ejecutarse la instrucción W = 07 h Al ejecutarse la instrucción W = Toma el valor de k7 Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C -

Return from Subroutine   Return from Subroutine Operación TOS ---> PC Sintaxis [Etiqueta] RETURN Operadores No tiene Palabras 1 Ciclos 2 Código de Operación 00 0000 1000 Descripción Carga el PC con el valor que se encuentra en la parte superior de la PILA, efectuando así un retorno de subrutina Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C -

Rotate Left f through Carry RLF   Rotate Left f through Carry Operación Sintaxis [Etiqueta] RLF f,d Operadores 0 < f < 127 d  [0,1] Palabras 1 Ciclos Código de Operación 00 1101 dfff ffff Descripción Rotación de un bit a la izquierda del contenido del registro f, pasando por el bit de acarreo C. Si d=1 el resultado se almacena en f, si d=0 el resultado se almacena en W. EJEMPLO:     RLF REG1,0 Si antes de la instrucción. REG1 = 1110 0110 b flag C = 0 Como d= 0 el resultado queda en W Al ejecutarse:    REG1 = 1110 0110 b                         W = 1100 1100 b                          flag C = 1 Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - X

Rotate Right f through Carry RRF   Rotate Right f through Carry Operación Sintaxis [Etiqueta] RRF f,d Operadores 0 < f < 127 d  [0,1] Palabras 1 Ciclos Código de Operación 00 1100 dfff ffff Descripción Rotación de un bit a la derecha del contenido del registro f, pasando por el bit de acarreo C. Si d=1 el resultado se almacena en f, si d=0 el resultado se almacena en W EJEMPLO:     RRF REG1,0 Si antes de la instrucción. REG1 = 1110 0110 b flag C = 1 Como d= 0 el resultado queda en W Al ejecutarse: REG1 = 1110 0110 b                     W = 0111 0011 b                     flag C = 0 Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - X

SLEEP TO Se pone a 1 al ejecutar la instrucción SLEEP o CLRWDT   Sleep Operación 00h ---> WDT 0 ---> WDT prescaler 1 ---> TO# 0 --> PD# Sintaxis [Etiqueta] SLEEP Operadores No tiene Palabras 1 Ciclos Código de Operación 00 0000 0110 0011 Descripción Pone al circuito en modo Sleep (bajo consumo) con parada del oscilador. Pone a 0 el flag PD# (Power Down) y el flag TO# (Timer Out) se pone a 1. Se puede salir de este estado por: Activación de MCLR para provocar un Reset Desbordamiento del Watchdog si quedó operativo en el modo reposo Generación de una interrupción que no sea TMR0 ya que ésta se desactiva con la instrucción SLEEP. Registro de STATUS PA2 PA1 PA0 TO# PD# Z DC C - 1 TO Se pone a 1 al ejecutar la instrucción SLEEP o CLRWDT PD Se pone a 0 al ejecutar la instrucción SLEEP EJEMPLO:     SLEEP

Subtract W from Literal SUBLW   Subtract W from Literal Operación k - (W) ---> (W) Sintaxis [Etiqueta] SUBLW k Operadores 0 < k < 255 Palabras 1 Ciclos Código de Operación. 11 110x Kkkk kkkk Descripción Resta en complemento a dos del contenido del literal k el contenido del registro W, y almacena el resultado en W. PA2 PA1 PA0 TO# PD# Z DC C - X Registro de STATUS

Z Se pone a 1 si el resultado de la operación es cero DC Se pone a 1 si se genera un acarreo del bit 3 al grupo de 4 bits superior C Se pone a 1 si se genera un acarreo del bit de mayor peso EJEMPLO:     SUBLW 0x 02 Si antes de la instrucción. W = 01 h flag C = ? Al ejecutarse: W = 01 flag C = 1 ; el resultado es positivo Si antes de la instrucción. W = 02 h flag Z = ? Al ejecutarse: W = 00 h flag C = 1 ; el resultado es cero flag Z = 1 Si antes de la instrucción. W = 03 h Al ejecutarse: W = FF h flag C = 0 ; el resultado es negativo

(f) - (W) ---> (dest) SUBWF   Subtract W from f Operación (f) - (W) ---> (dest) Sintaxis [Etiqueta] SUBW f,d Operadores 0 < f < 127 d  [0,1] Palabras 1 Ciclos Código de Operación 00 0010 dfff ffff Descripción Resta en complemento a dos el contenido del registro f menos el contenido del registro W almacena el resultado en W si d=0 y en f si d=1. PA2 PA1 PA0 TO# PD# Z DC C - X Registro de STATUS

Z Se pone a 1 si el resultado de la operación es cero DC Se pone a 1 si se genera un acarreo del bit 3 al grupo de 4 bits superior C Se pone a 1 si se genera un acarreo del bit de mayor peso EJEMPLO:     SUBWF REG1,1 a) Si antes de la instrucción. REG1 = 03 h W = 02 h flag C = ? Al ejecutarse REG1 = 01h                     W = 02 h flag C = 1 ; el resultado es positivo b) Si antes de la instrucción. REG1 = 02 h Al ejecutarse REG1 = 00h flag C = 1 ; el resultado es cero falz Z = 1 ; el resultado es cero c) Si antes de la instrucción. REG1 = 01 h bit C = ?                     W = FF h flag C = 0 ; el resultado es negativo

SWAPF EJEMPLO: SWAPF REG1,0   Swap Nibbles in f Operación (f<3:0>) ---> (dest <7:4>) (f<7:4>) ---> (dest <3:0>) Sintaxis [Etiqueta] SWAPF f,d Operadores 0 < f < 127 d  [0,1] Palabras 1 Ciclos Código de Operación 00 1110 dfff ffff Descripción Los cuatro bits de más peso del registro f se intercambian con los 4 bits de menos peso del mismo registro. Si d=0 el resultado se almacena en W, si d=1 el resultado se almacena en f. PA2 PA1 PA0 TO# PD# Z DC C - Registro de STATUS EJEMPLO:     SWAPF REG1,0 Si antes de la instrucción. REG1 = A5 h = 1010 0101 h Como d=0 el resultado se almacenará en W Al ejecutarse la instrucción: REG1 = A5 h = 1010 0101 b W = 5A h = 0101 1010 b

Exclusive OR Literal With k XORLW   Exclusive OR Literal With k Operación (W).XOR.k ---> (W) Sintaxis [Etiqueta] XORLW k Operadores 0 < f < 255 Palabras 1 Ciclos Código de Operación 11 1010 kkkk Descripción Realiza la función OR-Exclusiva entre el contenido del registro W y la constante k de 8 bits. El resultado se almacena en W PA2 PA1 PA0 TO# PD# Z DC C - X Registro de STATUS Z Se pone a 1 si el resultado de la última operación es cero EJEMPLO:    XORLW 0xAF Si antes de la instrucción. W = 1011 0101 b = B5 h  Al ejecutarse la instrucción: W = 1011 0101 b Å 1010 1111 b = 0001 1010 b = 1A h

(W).XOR.(f) ---> (des) XORWF   Exclusive OR With f Operación (W).XOR.(f) ---> (des) Sintaxis [Etiqueta] XORWF f,d Operadores 0 < f < 127 d  [0,1] Palabras 1 Ciclos Código de Operación 00 0110 dfff ffff Descripción Realiza la función OR-Exclusiva entre el contenido del registro W y el contenido del registro f, y almacena el resultado en f si d=1 y en W si f=0 PA2 PA1 PA0 TO# PD# Z DC C - X Registro de STATUS EJEMPLO:     XORWF REG1,1 Si antes de la instrucción. REG1 = AF h = 1010 1111 b W = B5 h = 1011 0101 b Como d=1, el resultado se almacena en REG1 Al ejecutarse: REG1 = 1010 1111 Å 1011 0101 =0001 1010 = 1A h W = B5 h

QUIZ 3 1. MENCIONE 3 INSTRUCCIONES LOGICAS Y 3 ARITMETICAS 2 QUIZ 3 1. MENCIONE 3 INSTRUCCIONES LOGICAS Y 3 ARITMETICAS 2. DIGA QUE ES UN MEMORIA FLASH 3. PROPORCIONES 2 DIFERENCIAS ENTRE LAS ARQUITECTURAS VON NEWMAN Y HARVARD