Set de instrucciones Microcontrolador PIC.

Documentos relacionados
Instrucciones para programar el PIC16F877

Características generales

Practica de PIC 16F84

Las Instrucciones. A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro.

INSTRUCCIONES DE ENSAMBLADOR

GAMA BAJA (PIC16C5X) ARQUITECTURA BÁSICA

El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario.

PIC s 1ª PARTE RESUMEN Y EJERCICIOS_06/07

Microcontroladores PIC

Tema 6: Microcontroladores

Fundamentos Taller de interrupciones

Implementación de un microcontrolador sencillo

2.- Descripción General del PIC16F877

Microchip dispone de cuatro familias de microcontroladores de 8 bits para adaptarse a las necesidades de la mayoría de los clientes potenciales.

SISTEMA DE NUMERACIÓN DECIMAL

Control de pantallas de cristal líquido mediante PIC

Indice. Escrito por Administrator Martes, 02 de Septiembre de :45 - Actualizado Domingo, 20 de Septiembre de :45 1 / 15

Microcontrolador PIC 16F84

MANUAL DE MICROCONTROLADORES PIC

SALTOS EN FUNCIONDE UN BIT Aquéllas que pueden producir el salto en función del estado de un bit. Son btfsc y

Programación de microcontroladores usos y aplicaciones. Desde Ensamblador a C.

Carrera: Técnico Superior en Técnicas Digitales. Alumnos: Emiliano Teseo y José Luis Fernández

SISTEMAS ELECTRONICOS DIGITALES DIRECCIONAMIENTO DE REGISTROS

PIC Programable Integrates Circuit o Peripheral Interface Controller

Programación en PIC Los primeros pasos

SISTEMA MÍNIMO BASADO EN EL PIC16F84

PRÁCTICA 2: Programas básicos. Tipos de direccionamiento.

Programa del PIC 16F877A

Microcontrolador PIC16F84: Arquitectura


Manejo LCD Gráfico DSM

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA

O B J E T I V O I N T R O D U C C I O N M A R C O T E O R I C O

EDU-PIC Módulo 16F84 Manual del Usuario

Registros SFR vistos hasta ahora: Microcontroladores PIC

ESCUELA POLITÉCNICA NACIONAL

:: Microcontroladores PIC - Tabla de Referencias. Conceptos Básicos

PRÁCTICA 4 LOS BITS DE CONFIGURACIÓN DEL PIC16F628

Programación y Aplicaciones de los Microcontroladores PIC16FXXX (Nivel Básico) ING. EULER DEZA FIGUEROA

Termostato electrónico con PIC y LCD

INDICE. Introduction a los microcontroladores Ejemplo de microcontrolador minimalista: PIC10F200 El microcontrolador ARM7 LPC2103

ARQUITECTURA DEL PIC16F84A

2.- Descripción General del PIC16F877

Microcontrolador PIC 16F84

CURSO BÁSICO DE PIC16F877

MICROCONTROLADORES PIC BÁSICO (PIC 16F84A / 16F627)

Bucles: o Bucles infinitos o Bucles finitos o Bucles anidados Medir tiempos con MPLAB Ejemplos y ejercicios

DISEÑO DE TELEALARMAS. COMISIÓN FEDERAL DE ELECTRICIDAD.

1. Proponer un circuito que tenga el puerto b como salida conectando 8 leds, realizando un programa que me encienda los bits 0, 1, 3, 5, 7.

TEMA 5 LA MEMORIA DE DATOS MEMORIA RAM D.P.E. DESARROLLO DE PROYECTOS 1

Lenguaje Ensamblador sobre PIC 16F84

Capítulo VIII: PROGRAMACIÓN DEL PIC 16F876A

PROGRAMACIÓN DEL MICROCONTROLADOR PIC 16C64 COMO CONTROLADOR MULTIEJE PARA MOTORES PASO

Rutinas de programación

PRACTICA 4. REALIZAR ENCENDIDO-APAGADO DE DIODOS LED

Microcontroladores PIC16, fundamentos y aplicaciones

EDUPIC Módulo 16F628 Manual del Usuario

PRÁCTICA 6: Gobierno del display 7 segmentos

Microcontroladores PIC

PIC16C5X (GAMA BAJA) Solo en dispositivos de 28 pins. Encapsulado y patillaje:

Práctica: Proteus, MPLab y Hitec PICC

MICROCONTOLADOR: PIC16F84

ANEXO II. PROGRAMACIÓN DEL INTEGRADO PIC16F87XA

Características PIC16F84

[CURSO BÁSICO DE PIC TABLAS]

Energía fotovoltaica y su aplicación rural

1.- INTRODUCCIÓN AL PIC16F84

Capítulo 1. Introducción a los PIC de 8 bits

IMPLEMENTACIÓN DE UNA PALANCA DE JUEGO (JOISTYCK).

MICROCONTROLADORES. 1. El PIC 16F84A es un microcontrolador de: a) 16 bits b) 8 bits c) 4 bits d) 32 bits e) 64 bits

Microcontroladores PIC

Jesús Alberto Díaz Carmona Ingeniería en Informática. Curso 2005/06. Diseño de Sistemas Basados en Microprocesador

Tema 8. Saltos. (parte I)

Experiencia con Motores paso a paso

Seguidores de clase. Universidad Pontificia de Salamanca (Madrid) Microcontrolador PIC 16F877

Microcontroladores PIC de Microchip: generalidades

CALCULADORA DE FUNCIONES BÁSICAS Oscar Gregorio Pérez Macías

CARRERA DE INGENIERÍA ELECTRÓNICA PROYECTO DE GRADO PARA LA OBTENCIÓN DEL TÍTULO EN INGENIERÍA ELECTRÓNICA EN INSTRUMENTACIÓN

Características Técnicas del PIC 16F84

RECURSOS FUNDAMENTALES

MICROPROCESADORES 2003/2004 DADO ELECTRÓNICO. Jaime Pérez Crespo Rubén Seijas Valverde

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI

INSTITUTO POLITÉCNICO NACIONAL

MICROCONTROLADORES PIC

Entrenadores de Microcontroladores PIC

Sensores inalámbricos de bajo

Dentro del PIC16F877 se distinguen tres bloques de memoria.

Tema 3: Lenguaje ensamblador. La primera abstracción de la máquina para el programador

Taller de Firmware. Introducción al PIC16F877. Facultad de Ingeniería Instituto de Com putación

HERRAMIENTA DE AUTOAPRENDIZAJE BASADO EN MICROCONTROLADOR OPERANDO EN LENGUAJE ENSAMBLADOR

APÉNDICE B APÉNDICE B. PROGRAMA DEL PIC16F874 EN LENGUAJE ENSAMBLADOR

Módulos CCP. Registro de captura Registro de comparación Registro de ciclo de servicio PWM

btfss PIR1,TMR2IF ; Checa si TMR2 interrumpio goto SAL_ISR ; No, sale de la ISR bcf PIR1,TMR2IF ; Si, borra bandera de interrupcion

Sistemas con Microprocesadores I

Tema: Utilización del módulo ADC en los microcontroladores PIC.

Proyectos con el PIC16F84

Diseño y fabricación de un dispositivo Electrónico Digital. anexo a un Sonómetro B&K 2209 que permita calcular. Nivel Equivalente (Leq)

Programación de Microcontroladores PIC-Microchip

Micro-Controlador PIC

Transcripción:

Microcontroladores Pic 16F84A. Los PIC son una extensa familia microcontroladores divididos en tres gamas, la gama baja con memoria programa 12 bits, la gama media y la gama alta con memoria programa 14 bits. En la tabla 1 se presentan algunos miembros cada una estas gamas con resumen sus principales características. Nosotros utilizaremos el PIC 16f84 por sus especiales características. Los microcontroladores PIC 16f84 com memoria tipo FLASH y PIC 16c84 con memoria EEPROM, son potentes, flexibles y fáciles emplear bido entre otras carcterísticas a que este tipo memoria permite su grabación y su borrado miles veces forma casi instantánea al realizarse eléctricamente a diferencia los microcontroladores basados en memoria EPROM que necesita un borrador ultravioleta. Puen utilizarse tanto en el sarrollo como en la producción. Su coste se reduce frente a otros molos ya que no necesitan encapsulados cerámicos con ventana programación como los chips EPRPOMs. Disponen amas una EEPROM 64 bytes para datos, lo que elimina la necesidad una memoria EEPROM externa, y aun mas importante, puen ser programados "en circuito" sin necesidad ser retirados, lo que permite su grabación spués l ensamblado y que los programas puen ser actualizados o modificados para eliminar errores tectados con posterioridad o para introducir versiones mas actualizadas l programa. El PIC 16f84 pertenece a la gama media l fabricante, poseyendo unas características óptimas para su empleo en el aprendizaje. Este microntrolador con memoria FLASH ésta fabricado con tecnología CMOS. Su consumo es muy reducido siendo el circuito completamente estático por lo que su reloj pue tenerse completamente sin pérdida los contenidos los registros. Un consumo típico es 2 ma a 4 Mhz y unos 40 microamperios en modo Sleep. Al ser un circuito CMOS, todas las entradas no usadas ben ser llevadas a +5V. El encapsulado 18 pines así como la scripción l patillaje pue verse en la figura 1. Set instrucciones Microcontrolador PIC. Estas son las todas las instrucciones que hay para por programar el Pic 16c5x, 16c64, 16c76c74, 16c84, 16f84, 16f873. Las encontraremos en orn alfabetico. En total son 37 y haciendo un clic sobre una ellas pomos accer a su respectiva scripción: NOTA: Las instrucciones OPTION y TRIS incluidas en este listado, no forman parte l set instrucciones los PIC 16f84 y 16f873.

ADDLW ADDWF ANDLW ANDWF BCF BSF BTFSC BTFSS CALL CLRF CLRW CLRWDT COMF DECF DECFS GOTO SLEEP SUBLW SUBWF SWAPF TRIS XORLW XORWF ADDLW ADD Literal to W ADDLW k 11 111x kkkk kkkk W + k -> W C, DC, Aña el contenido W al contenido k, y almacena el resultado en W Atención: Esta instrucción no existe en los Pic 16c5X ADDWF ADD W to F ADDWF f, d 0001 11df ffff 00 0111 dfff ffff W + f -> f si d=1 W + f -> W si d=0 C, DC, Aña el contenido W al contenido f, y almacena el resultado en W si d=0, y en f si d=1 ANDLW AND Literal and W ANDLW k ANDWF AND W with F ANDWF f, d 1110 kkkk kkkk 11 1001 kkkk Kkkk W AND k -> W Efectúa un AND lógico entre el contenido W y el literal k, y lo almacena en W 0001 01df ffff 00 0101 dfff ffff W AND f -> f si d=1 W AND f -> W si d=0 Efectúa un AND lógico entre el contenido W y el contenido f, y almacena el resultado en W si d=0, y en f si d=1

BCF Clear F BCF f, b BSF Set F BSF f, b 0100 bbbf ffff 01 00bb bfff ffff 0 -> b(f) Pone a cero el bit numero b f 0101 bbbf ffff 01 01bb bfff ffff 1 -> b(f) Pone a uno el bit numero b f BTFSC Test, Skip If Clear BTFSC f, b BTFSS Test, Skip If Set BTFSS f, b 0110 bbbf ffff 01 10bb bfff ffff o 2 Salta si b(f)=0 Si el bit numero b f es nulo, la instrucción que sigue a esta se ignora y se trata como un NOP. En este caso, y solo en este caso, la instrucción BTFSC precisa dos ciclos para ejecutarse. 0111 bbbf ffff 01 11bb bfff ffff o 2 Salta si b(f)=1 Si el bit numero b f esta en uno, la instrucción que sigue a esta se ignora y se trata como un NOP. En este caso, y solo en este caso, la instrucción BTFSC precisa dos ciclos para ejecutarse. CALL Subrutina Call CALL k CLRF Clear F with F CLRF f 1001 kkkk kkkk 10 0kkk kkkk kkkk 1, 2 En el caso los 16c64, 71, 74, 84: PC + 1 -> Pila, k -> PC(0-10), PCLATH(3,4) -> PC(11,12) Guarda la dirección 0000 011f ffff 00 0001 1fff ffff 00 -> f Pone el contenido f a cero y activa el bit.

vuelta en la pila y spués llama a la subrutina situada en la dirección cargada en el PC. Atención: En el modo cálculo la dirección hay que posicionar bien el registro PCLATH antes ejecutar la instrucción CALL CLRW Clear W register CLRW CLRWDT Clear Watchdog Timer CLRWDT COMF 0000 0100 0000 00 0001 0xxx xxxx 00 -> W Pone el registro W a cero y activa el bit Complement F COMF f, d 0010 01df ffff 00 1001 dfff ffff ~f -> f su d=1 ~f -> W si d=0 Hace un complemento f bit a bit. El resultado lo almacena nuevo en f si d=1 (borra el anterior), o en W si d=0 (f no varía) DECF 0000 0000 0100 00 0000 0110 0100 00 -> WDT y 0 -> predivisor l temporizador 1 -> TO y 1 -> PD Pone a cero el registro contador l temporizador watchdog, asi como el predivisor Decrement F to F DECF f, d 0000 11df ffff 00 0011 dfff ffff f - 1 -> f si d=1 f - 1 -> W si d=0 Decrementa el contenido f en una unidad. El resultado se guarda en W si d=0 (f no varia), y en f si d=1 DECFS Decrement F, Skip If ero DECFS f, d GOTO Salto Incondicional with F

INCF 0010 11df ffff 00 1011 dfff ffff (2) f - 1 -> f si d=1 f - 1 -> W si d=0 Decrementa el contenido f en una unidad. El resultado se guarda en W si d=0 (f no varia), y en f si d=1 Si el reusltado es nulo, se ignora la siguiente instrucción y en este caso la instrucción dura dos ciclos. Increment F INCF f, d 0010 10df ffff 00 1010 dfff ffff f + 1 -> f si d=1 f + 1 -> W si d=0 Incrementa el contenido f en una unidad. El resultado se almacena nuevo en f si d=1 y en W si d=0(en este caso f no varía) INCFS GOTO k 101k kkkk kkkk 10 1kkk kkkk kkkk 1, 2 En el caso los 16c64,71,74 y 84: k -> PC(0-10), PCLATH(3,4) -> PC(11,12) LLama a la subrutina situada en la dirección cargada en el PC Atención: En el modo cálculo la dirección hay que posicionar correctamente el registro PCLATH antes ejecutar la instrucción GOTO Increment F, Skip if ero INCFS f, d 0011 11df ffff 00 1111 dfff ffff (2) f + 1 -> f si d=1 f + 1 -> W si d=0 En ambos casos: Salto si f + 1 = 0 Incrementa el contenido f en 1. El resultado se guarda en f si d=1 y en w si d=0 (en este caso f no varía). Si el resultado es nulo, se ignora la siguiente instrucción y esta instrucción dura dos ciclos IORLW Inclusive OR Literal With W IORLW k IORWF Inclusive OR W With f IORWF f, d

MOVF 1101 kkkk kkkk 11 1000 kkkk kkkk W OR k -> W Efectúa un OR lógico inclusivo entre el contenido W y el literal K, y almacena el resultado en W Move F MOVF f, d 0010 00df ffff 00 1000 dfff ffff f -> f si d=1 f -> W si d=0 Pone el contenido f en f si d=1 o f en W si d=0 MOVLW 0001 00df ffff 11 0100 dfff ffff W OR f -> f si d=1 W OR f -> W si d=0 Efectúa un OR lógico inclusivo entre el contenido W y el contenido f, y almacena el resultado en f si d=1 o en W si d=0 Move Literal to W with F MOVLW k 1100 kkkk kkkk 11 00xx kkkk kkkk k -> W Carga W con el literal k MOVWF Atención: El splazamiento f en f que parecería inútil, permite comprobar el contenido f con respecto a cero ya que esta instrucción actúa sobre el bit Move W to F MOVWF f 0000 001f ffff 00 0000 1fff ffff W -> f NOP No Operation NOP 0000 0000 0000 00 0xx0 0000 Ninguna

OPTION Carga f con el contenido W Load Option Register Option 0000 0000 0010 00 0000 0110 0010 W -> OPTION Carga el registro OPTION con el contenido W Atención: Esta instrucción es correctamente interpretada por los circuitos 16c64, 71, 74, 84 con el fin asegurar una compatibilidad ascennte RETFIE Ninguna Consume tiempo la maquina y ocupa un lugar en la memoria programa. Return From Interrupt RETFIE 00 0000 0000 1001 1, 2 Pila -> PC, 1 -> GIE Carga el PC con el valor que se encuentra en la parte superior la pila, asegurando así la vuelta la interrupción. Pone a 1 el bit GIE, con el fin autorizar nuevo que se tengan en cuenta las interrupciones Atención: Esta interrupción dura dos ciclos RETLW Return Literal to W RETLW k 1000 kkkk kkkk 11 01xx kkkk kkkk 1, 2 k -> W, Pila -> PC Carga W con el literal k, y spués carga el PC con el valor que se encuentra en la parte superior la pila, efectuando así un retorno subrutina. Atención: Esta instrucción dura dos ciclos RETURN Return from Subroutine with F RETURN 00 0000 0000 0000 1, 2 Pila -> PC Carga el PC con el valor que se encuentra en la parte superior la pila, efectuando así una vuelta a la subrutina. Se trata la instrucción RETLW simplificada. Atención: Esta instrucción dura dos ciclos

RLF Rotate Left F through Carry RLF f,d 0011 01df ffff 00 1101 dfff ffff ver scr. C Rotación un bit a la izquierda l contenido f, pasando por el bit acarreo C. Si d=1 el resultado se almacena en f si d=0 el resultado se almacena en W RRF Rotate Right F through Carry RRF f, d 0011 00df ffff 00 1100 dfff ffff Ver scr. C Rotación un bit a la recha l contenido f, pasando por el bit acarreo C. Si d=1 el resultado se introduce en f, si d=0 el resultado se amacena en W SLEEP Sleep SLEEP 0000 0000 0011 00 0000 0110 0011 0 -> PD, 1 -> TO, 00 -> WDT, 0 -> Predivisor l WDT PD, TO Pone el circuito a dormir con parada l oscilador. Su consumo es inferior. SUBLW 11 Substract W from Literal SUBLW k k - W -> W C, DC, 110x kkkk kkkk Sustrae el contenido W l literal k, y almacena el resultado en W. La sustracción se realiza en complemento a dos Atención: Use esta instrucción con mucho cuidado, pues pue provocar que el micro no spierte si no se ha seteado correctamente. SUBWF Substract W from F SUBWF f, d 0000 10df ffff 00 0010 dfff ffff SWAPF Swap F to F SWAPF f, d 0011 11df ffff 00 1110 dfff ffff

TRIS f - W -> f si d=1 f - W -> W si d=0 C, DC, Sustrae el contenido W l contenido f, y almacena el resultado en W si d=0 y en f si d=1. La sustracción se realiza en complemento a dos Load TRIS Register TRIS f 0000 0000 0fff 00 0000 0110 0fff W -> registro TRIS l puerto f Carga el contenido W en el registro TRIS l puerto f. Atención: Esta instrucción, es correctamente interpretada por los circuitos 16c64, 71, 74, 84, con el fin asegurar una compatibilidad ascennte XORLW f(0-3) -> f(4-7) y f(4-7) -> f(0-3) Resultado -> f si d=1 Resultado -> W si d=0 Intercambia los cuatro bit mayor peso por los cuatro menor peso f, y almacena el resultado en W si d=0, y en f si d=1 Exclusive OR Literal With W XORLW k 1111 kkkk kkkk 11 1010 kkkk kkkk W OR (Exclusivo) k -> W Efectúa un OR lógico exclusivo entre el contenido W y el contenido l Literal K y almacena el resultado en W XORWF Exclusive Or W with F XORWF f,d 0001 10df ffff 00 0110 dfff ffff W OR (Exclusivo) f -> f si d=1 W OR (Exclusivo) f -> W si d=0 Efectúa un Or lógico exclusivo entre el contenido W y el contenido f y almacena el resultado en f si d=1 o en W si d=0