Este documento describe el conjunto de instrucciones del microcontrolador PIC16F628. Incluye cinco categorías de instrucciones: 1) instrucciones de byte que operan con registros, 2) instrucciones de byte que operan sobre W y literales, 3) instrucciones de bit, 4) instrucciones de control como GOTO y CALL, y 5) descripciones de los pines y bancos de registros del PIC16F628. Explica cada instrucción y cómo afectan los bits de estado.
Este documento explica la transformada de Fourier y la serie de Fourier. La serie de Fourier describe señales periódicas como una combinación de señales sinusoidales. La transformada de Fourier amplía este concepto a señales no periódicas mediante la aproximación de una señal no periódica como una señal continua de período infinito. La transformada de Fourier relaciona el dominio del tiempo con el dominio de la frecuencia y viceversa, permitiendo analizar el contenido espectral de una señal.
Utp pds_sl3_procesamiento de señales con mat_lab ijcbenitezp
Este documento presenta el laboratorio 3 de Procesamiento Digital de Señales. El objetivo es que los estudiantes demuestren habilidad en la adquisición, almacenamiento, reproducción y procesamiento de señales de audio en MatLab. Se describen 8 ejercicios que incluyen la captura, guardado, lectura y reproducción de señales, así como el análisis espectral. Finalmente, se indican los requisitos para el informe de laboratorio que debe entregarse.
The document provides information about the 74HC/HCT373 integrated circuit. It is an octal D-type transparent latch with 3-state outputs. It features separate data and latch enable inputs for each latch, as well as a common 3-state output enable input. When the latch enable input is high, data enters the latches transparently from the data inputs. When low, the latches store the previous data. The 3-state outputs provide high impedance when the output enable is high.
Guía de ejercicios resueltos y propuestos tema 4Luis Zurita
Este documento presenta dos ejercicios resueltos sobre el uso del timer 0 y las interrupciones en microcontroladores PIC. El primer ejercicio muestra un programa que genera diferentes respuestas dependiendo de la causa de la interrupción, ya sea un pin, cambios en los bits del puerto B o un desbordamiento del timer 0. El segundo ejercicio genera una señal cuadrada de 200 Hz utilizando el desbordamiento del timer 0, presentando soluciones con y sin interrupciones.
Este documento proporciona información técnica detallada sobre el microcontrolador PIC16F84A, incluyendo sus características de CPU y periféricos, diagrama de bloques, pines de entrada/salida, organización de memoria de programa y datos, y descripción de los registros de propósito especial.
PWM con PIC16F877A: Modulos y Registros InvolucradosEduardo Henriquez
El documento describe cómo generar una señal PWM con un microcontrolador utilizando los módulos CCP. Los módulos CCP pueden operar en modo captura, comparación o PWM. En modo PWM, cada módulo CCP puede generar una onda cuadrada con resolución de hasta 10 bits y frecuencia y ciclo de trabajo configurables utilizando los registros CCPxCON, CCPRxL y TMR2.
Este documento describe dos programas para un microcontrolador que usan puertos paralelos para leer sensores ópticos reflectivos. El primer programa indica cual sensor está reflejando la luz mediante LEDs conectados a un puerto. El segundo programa controla los motores de un robot según la entrada de los sensores, siguiendo las instrucciones de tablas provistas. El objetivo es demostrar el uso de puertos paralelos para controlar dispositivos externos basado en sensores.
El documento describe la introducción a los microcontroladores PIC18F4550. Explica que los PIC18F4550 son microcontroladores de 8 bits con características avanzadas como una arquitectura Harvard de 16 bits con 8 bits de datos. También describe las diferentes memorias internas como la memoria de programa, RAM y EEPROM y cómo almacenan y gestionan los datos.
Este documento explica la transformada de Fourier y la serie de Fourier. La serie de Fourier describe señales periódicas como una combinación de señales sinusoidales. La transformada de Fourier amplía este concepto a señales no periódicas mediante la aproximación de una señal no periódica como una señal continua de período infinito. La transformada de Fourier relaciona el dominio del tiempo con el dominio de la frecuencia y viceversa, permitiendo analizar el contenido espectral de una señal.
Utp pds_sl3_procesamiento de señales con mat_lab ijcbenitezp
Este documento presenta el laboratorio 3 de Procesamiento Digital de Señales. El objetivo es que los estudiantes demuestren habilidad en la adquisición, almacenamiento, reproducción y procesamiento de señales de audio en MatLab. Se describen 8 ejercicios que incluyen la captura, guardado, lectura y reproducción de señales, así como el análisis espectral. Finalmente, se indican los requisitos para el informe de laboratorio que debe entregarse.
The document provides information about the 74HC/HCT373 integrated circuit. It is an octal D-type transparent latch with 3-state outputs. It features separate data and latch enable inputs for each latch, as well as a common 3-state output enable input. When the latch enable input is high, data enters the latches transparently from the data inputs. When low, the latches store the previous data. The 3-state outputs provide high impedance when the output enable is high.
Guía de ejercicios resueltos y propuestos tema 4Luis Zurita
Este documento presenta dos ejercicios resueltos sobre el uso del timer 0 y las interrupciones en microcontroladores PIC. El primer ejercicio muestra un programa que genera diferentes respuestas dependiendo de la causa de la interrupción, ya sea un pin, cambios en los bits del puerto B o un desbordamiento del timer 0. El segundo ejercicio genera una señal cuadrada de 200 Hz utilizando el desbordamiento del timer 0, presentando soluciones con y sin interrupciones.
Este documento proporciona información técnica detallada sobre el microcontrolador PIC16F84A, incluyendo sus características de CPU y periféricos, diagrama de bloques, pines de entrada/salida, organización de memoria de programa y datos, y descripción de los registros de propósito especial.
PWM con PIC16F877A: Modulos y Registros InvolucradosEduardo Henriquez
El documento describe cómo generar una señal PWM con un microcontrolador utilizando los módulos CCP. Los módulos CCP pueden operar en modo captura, comparación o PWM. En modo PWM, cada módulo CCP puede generar una onda cuadrada con resolución de hasta 10 bits y frecuencia y ciclo de trabajo configurables utilizando los registros CCPxCON, CCPRxL y TMR2.
Este documento describe dos programas para un microcontrolador que usan puertos paralelos para leer sensores ópticos reflectivos. El primer programa indica cual sensor está reflejando la luz mediante LEDs conectados a un puerto. El segundo programa controla los motores de un robot según la entrada de los sensores, siguiendo las instrucciones de tablas provistas. El objetivo es demostrar el uso de puertos paralelos para controlar dispositivos externos basado en sensores.
El documento describe la introducción a los microcontroladores PIC18F4550. Explica que los PIC18F4550 son microcontroladores de 8 bits con características avanzadas como una arquitectura Harvard de 16 bits con 8 bits de datos. También describe las diferentes memorias internas como la memoria de programa, RAM y EEPROM y cómo almacenan y gestionan los datos.
Diseño de un Oscilador Controlado por Tensión (VCO) en Tecnología SiGe 0.35µm...RFIC-IUMA
Este documento describe el diseño de un oscilador controlado por tensión (VCO) en tecnología SiGe 0.35 μm para el estándar DVB-H. Se presenta la introducción al estándar DVB-H y sus requisitos, así como la estructura y objetivos del proyecto de diseño del VCO. Se explican también conceptos básicos sobre osciladores como su funcionamiento, clasificación y tipos de osciladores LC.
El documento presenta una introducción al procesamiento digital de señales. Explica conceptos clave como procesamiento de señal, procesamiento digital de señal, procesamiento digital en tiempo real y DSP. También describe aplicaciones comunes como procesamiento de voz y audio, e introduce alternativas de implementación como ASIC, FPGA y DSP. Finalmente, resume tipos y familias populares de DSP y conceptos matemáticos como la función impulso y escalón.
El circuito integrado 555 puede funcionar como oscilador astable u oscilador monostable. Como astable, genera una señal cuadrada con frecuencia determinada por los valores de dos resistores y un capacitor externos. Como monostable, mantiene su salida en un nivel durante un tiempo determinado por un resistor y capacitor antes de volver a su estado inicial. El documento describe las funciones y conexiones de cada terminal del 555 así como fórmulas para calcular los tiempos de oscilación en modo astable y monostable.
This document discusses sequential circuits and their design. It covers:
1. The difference between combinational and sequential logic and examples like finite state machines and pipelines that require sequential logic.
2. Methods for sequencing tokens through pipelines using flip-flops, latches, and pulsed latches and the associated timing diagrams.
3. Design considerations for sequential circuits like max/min delays, time borrowing, and clock skew.
4. Circuit designs for various latches and flip-flops including transparent latches, CMOS transmission gate latches, dynamic flip-flops, and true single phase clock elements.
El documento describe diferentes tipos de circuitos digitales como sumadores, codificadores, decodificadores, multiplexores y demultiplexores. Específicamente, define un sumador binario, semisumador, demultiplexor, multiplexor, y explica cómo codificadores y decodificadores convierten entre formatos codificados y no codificados de datos.
Este documento presenta un examen parcial de 50 puntos sobre microcontroladores. Contiene 10 temas con preguntas de selección múltiple y completar sobre conceptos como instrucciones, registros, puertos y temporización. El estudiante debe responder marcando o escribiendo la respuesta correcta en los espacios provistos.
El documento trata sobre las series y transformadas de Fourier. Explica que Joseph Fourier descubrió que las funciones periódicas pueden representarse como una suma infinita de términos en senos y cosenos (serie de Fourier), mientras que las funciones no periódicas se representan mediante una integral (transformada de Fourier). Esto dio origen al análisis armónico y tiene aplicaciones en ingeniería, medicina y otros campos para descomponer señales en componentes de frecuencia.
VHDL is a hardware description language used to design digital systems. It allows systems to be modeled at different levels of abstraction like behavioral and structural. The behavioral model describes a system's behavior as inputs and outputs, while the structural model shows how system components are interconnected. VHDL uses entities to define a system's ports and architectures to describe its structure or behavior. Examples show implementing a half adder using behavioral and structural modeling in VHDL.
Este documento describe los flip flops, dispositivos de memoria digital básicos. Define un flip flop como un circuito biestable que puede almacenar un bit de datos y mantiene su estado hasta que se cambia intencionalmente. Luego describe varios tipos comunes de flip flops como el RS, T, JK y D, explicando sus tablas de estado, ecuaciones características y usos. Finalmente, destaca las ventajas del flip flop JK por su versatilidad universal y del flip flop D por su capacidad de retardo.
Este documento proporciona una hoja de datos para el chip ALU 74181, que describe sus funcionalidades principales como la entrada y salida de palabras A, B y F de 4 bits cada una, así como las entradas y salidas de carry y control de modo. También resume las tablas de operaciones posibles mediante las entradas S3, S2, S1 y S0.
El documento proporciona una descripción general del microcontrolador PIC16F877. En resumen:
1) Explica las características generales de la familia PIC16 como su arquitectura Harvard y tecnología RISC.
2) Describe las características del PIC16F877 como su CPU de 8 bits, memoria flash de hasta 8k, y periféricos como timers y puertos I/O.
3) Muestra un diagrama de bloques del PIC16F877 con su arquitectura interna y diagrama de patas.
Este documento describe diferentes tipos de contadores digitales, incluyendo contadores asíncronos, síncronos y de anillo. Los contadores asíncronos usan flip-flops conectados en cadena donde cada flip-flop depende del anterior, mientras que los contadores síncronos usan una señal de reloj común para cambiar todos los flip-flops al mismo tiempo. Los contadores de anillo conectan los flip-flops en un bucle donde los datos se desplazan circularmente.
Unidad I Introduccion a Señales Y SistemasGrupo05N
Este documento describe diferentes tipos de señales, incluyendo señales discretas y continuas, determinísticas y aleatorias, periódicas y no periódicas, de energía y potencia, así como señales especiales como sinusoidales, exponenciales, rampa, escalón y Delta de Dirac. También define los sistemas como cualquier transformación realizada sobre una señal, donde la entrada del sistema se representa como X(t) y la salida como Y(t).
Este documento describe diferentes métodos para diseñar filtros digitales, incluyendo implementaciones directas, en cascada y en paralelo. También explica técnicas de síntesis en el dominio del tiempo y de la frecuencia, como el diseño de impulso invariante y la transformada z bilineal. Finalmente, detalla el método general para diseñar filtros FIR partiendo de una respuesta en frecuencia deseada mediante truncamiento de la serie de Fourier.
Este documento describe diferentes tipos de convertidores CC/CC, incluyendo convertidores conmutados (también llamados convertidores conmutados) y convertidores lineales. Analiza los tres convertidores básicos: el convertidor reductor, el convertidor elevador y el convertidor reductor-elevador, describiendo su funcionamiento, análisis matemático y comparaciones. También discute el modo de conducción de estos convertidores.
Este documento describe los diferentes modos de direccionamiento en microcontroladores, incluyendo inherente, literal, directo e indirecto. También explica conceptos como pipelining de instrucciones, instrucciones especiales como GOTO y CALL, y fuentes de reset como power on reset y watchdog timer reset.
Introducción a Quartus II v15.0 - (Quartus II 2015 Introduction)alvarezpedro
Este documento resume las principales diferencias y mejoras entre las versiones 9.0 y 15.0 del software de diseño FPGA Quartus II de Altera. La versión 15.0 ofrece un mayor rendimiento, menor tiempo de compilación, compatibilidad con más FPGAs, menor consumo de energía y una interfaz más fácil de usar. También introduce nuevas herramientas como Qsys, SoC EDS y Spectra Q-Engine que mejoran el diseño y verificación de sistemas en chip.
El documento describe los transistores de efecto de campo JFET y MOSFET. Los JFET controlan la corriente mediante la tensión de puerta-fuente, formando un canal variable entre drenador y fuente. Los MOSFET controlan la corriente mediante la tensión de puerta, formando un canal mediante acumulación o deplexión de portadores en el sustrato entre drenador y fuente. Ambos se usan comúnmente como interruptores, amplificadores y en circuitos digitales.
Este documento describe los diferentes tipos de flip flops y sus aplicaciones en circuitos digitales. Explica que los flip flops son circuitos básicos de memoria que pueden almacenar datos binarios en dos estados posibles. Detalla los flip flops más comunes como RS, D, T y JK, describiendo sus tablas de verdad y cómo cambian sus estados de acuerdo a las señales de entrada. Finalmente, menciona algunas aplicaciones como contadores y máquinas de estado finitas.
Instrucciones para programar el PIC16F877 (1).pdfssusere7e6cd
El documento proporciona instrucciones para programar el microcontrolador PIC16F877. Explica las 35 instrucciones que puede reconocer el PIC16F877, agrupadas en operaciones orientadas a registros, operaciones orientadas a bits, y operaciones con constantes y de control. Para cada instrucción se describe su sintaxis, operación, ciclos de instrucción y efectos en los bits del registro de estados.
Diseño de un Oscilador Controlado por Tensión (VCO) en Tecnología SiGe 0.35µm...RFIC-IUMA
Este documento describe el diseño de un oscilador controlado por tensión (VCO) en tecnología SiGe 0.35 μm para el estándar DVB-H. Se presenta la introducción al estándar DVB-H y sus requisitos, así como la estructura y objetivos del proyecto de diseño del VCO. Se explican también conceptos básicos sobre osciladores como su funcionamiento, clasificación y tipos de osciladores LC.
El documento presenta una introducción al procesamiento digital de señales. Explica conceptos clave como procesamiento de señal, procesamiento digital de señal, procesamiento digital en tiempo real y DSP. También describe aplicaciones comunes como procesamiento de voz y audio, e introduce alternativas de implementación como ASIC, FPGA y DSP. Finalmente, resume tipos y familias populares de DSP y conceptos matemáticos como la función impulso y escalón.
El circuito integrado 555 puede funcionar como oscilador astable u oscilador monostable. Como astable, genera una señal cuadrada con frecuencia determinada por los valores de dos resistores y un capacitor externos. Como monostable, mantiene su salida en un nivel durante un tiempo determinado por un resistor y capacitor antes de volver a su estado inicial. El documento describe las funciones y conexiones de cada terminal del 555 así como fórmulas para calcular los tiempos de oscilación en modo astable y monostable.
This document discusses sequential circuits and their design. It covers:
1. The difference between combinational and sequential logic and examples like finite state machines and pipelines that require sequential logic.
2. Methods for sequencing tokens through pipelines using flip-flops, latches, and pulsed latches and the associated timing diagrams.
3. Design considerations for sequential circuits like max/min delays, time borrowing, and clock skew.
4. Circuit designs for various latches and flip-flops including transparent latches, CMOS transmission gate latches, dynamic flip-flops, and true single phase clock elements.
El documento describe diferentes tipos de circuitos digitales como sumadores, codificadores, decodificadores, multiplexores y demultiplexores. Específicamente, define un sumador binario, semisumador, demultiplexor, multiplexor, y explica cómo codificadores y decodificadores convierten entre formatos codificados y no codificados de datos.
Este documento presenta un examen parcial de 50 puntos sobre microcontroladores. Contiene 10 temas con preguntas de selección múltiple y completar sobre conceptos como instrucciones, registros, puertos y temporización. El estudiante debe responder marcando o escribiendo la respuesta correcta en los espacios provistos.
El documento trata sobre las series y transformadas de Fourier. Explica que Joseph Fourier descubrió que las funciones periódicas pueden representarse como una suma infinita de términos en senos y cosenos (serie de Fourier), mientras que las funciones no periódicas se representan mediante una integral (transformada de Fourier). Esto dio origen al análisis armónico y tiene aplicaciones en ingeniería, medicina y otros campos para descomponer señales en componentes de frecuencia.
VHDL is a hardware description language used to design digital systems. It allows systems to be modeled at different levels of abstraction like behavioral and structural. The behavioral model describes a system's behavior as inputs and outputs, while the structural model shows how system components are interconnected. VHDL uses entities to define a system's ports and architectures to describe its structure or behavior. Examples show implementing a half adder using behavioral and structural modeling in VHDL.
Este documento describe los flip flops, dispositivos de memoria digital básicos. Define un flip flop como un circuito biestable que puede almacenar un bit de datos y mantiene su estado hasta que se cambia intencionalmente. Luego describe varios tipos comunes de flip flops como el RS, T, JK y D, explicando sus tablas de estado, ecuaciones características y usos. Finalmente, destaca las ventajas del flip flop JK por su versatilidad universal y del flip flop D por su capacidad de retardo.
Este documento proporciona una hoja de datos para el chip ALU 74181, que describe sus funcionalidades principales como la entrada y salida de palabras A, B y F de 4 bits cada una, así como las entradas y salidas de carry y control de modo. También resume las tablas de operaciones posibles mediante las entradas S3, S2, S1 y S0.
El documento proporciona una descripción general del microcontrolador PIC16F877. En resumen:
1) Explica las características generales de la familia PIC16 como su arquitectura Harvard y tecnología RISC.
2) Describe las características del PIC16F877 como su CPU de 8 bits, memoria flash de hasta 8k, y periféricos como timers y puertos I/O.
3) Muestra un diagrama de bloques del PIC16F877 con su arquitectura interna y diagrama de patas.
Este documento describe diferentes tipos de contadores digitales, incluyendo contadores asíncronos, síncronos y de anillo. Los contadores asíncronos usan flip-flops conectados en cadena donde cada flip-flop depende del anterior, mientras que los contadores síncronos usan una señal de reloj común para cambiar todos los flip-flops al mismo tiempo. Los contadores de anillo conectan los flip-flops en un bucle donde los datos se desplazan circularmente.
Unidad I Introduccion a Señales Y SistemasGrupo05N
Este documento describe diferentes tipos de señales, incluyendo señales discretas y continuas, determinísticas y aleatorias, periódicas y no periódicas, de energía y potencia, así como señales especiales como sinusoidales, exponenciales, rampa, escalón y Delta de Dirac. También define los sistemas como cualquier transformación realizada sobre una señal, donde la entrada del sistema se representa como X(t) y la salida como Y(t).
Este documento describe diferentes métodos para diseñar filtros digitales, incluyendo implementaciones directas, en cascada y en paralelo. También explica técnicas de síntesis en el dominio del tiempo y de la frecuencia, como el diseño de impulso invariante y la transformada z bilineal. Finalmente, detalla el método general para diseñar filtros FIR partiendo de una respuesta en frecuencia deseada mediante truncamiento de la serie de Fourier.
Este documento describe diferentes tipos de convertidores CC/CC, incluyendo convertidores conmutados (también llamados convertidores conmutados) y convertidores lineales. Analiza los tres convertidores básicos: el convertidor reductor, el convertidor elevador y el convertidor reductor-elevador, describiendo su funcionamiento, análisis matemático y comparaciones. También discute el modo de conducción de estos convertidores.
Este documento describe los diferentes modos de direccionamiento en microcontroladores, incluyendo inherente, literal, directo e indirecto. También explica conceptos como pipelining de instrucciones, instrucciones especiales como GOTO y CALL, y fuentes de reset como power on reset y watchdog timer reset.
Introducción a Quartus II v15.0 - (Quartus II 2015 Introduction)alvarezpedro
Este documento resume las principales diferencias y mejoras entre las versiones 9.0 y 15.0 del software de diseño FPGA Quartus II de Altera. La versión 15.0 ofrece un mayor rendimiento, menor tiempo de compilación, compatibilidad con más FPGAs, menor consumo de energía y una interfaz más fácil de usar. También introduce nuevas herramientas como Qsys, SoC EDS y Spectra Q-Engine que mejoran el diseño y verificación de sistemas en chip.
El documento describe los transistores de efecto de campo JFET y MOSFET. Los JFET controlan la corriente mediante la tensión de puerta-fuente, formando un canal variable entre drenador y fuente. Los MOSFET controlan la corriente mediante la tensión de puerta, formando un canal mediante acumulación o deplexión de portadores en el sustrato entre drenador y fuente. Ambos se usan comúnmente como interruptores, amplificadores y en circuitos digitales.
Este documento describe los diferentes tipos de flip flops y sus aplicaciones en circuitos digitales. Explica que los flip flops son circuitos básicos de memoria que pueden almacenar datos binarios en dos estados posibles. Detalla los flip flops más comunes como RS, D, T y JK, describiendo sus tablas de verdad y cómo cambian sus estados de acuerdo a las señales de entrada. Finalmente, menciona algunas aplicaciones como contadores y máquinas de estado finitas.
Instrucciones para programar el PIC16F877 (1).pdfssusere7e6cd
El documento proporciona instrucciones para programar el microcontrolador PIC16F877. Explica las 35 instrucciones que puede reconocer el PIC16F877, agrupadas en operaciones orientadas a registros, operaciones orientadas a bits, y operaciones con constantes y de control. Para cada instrucción se describe su sintaxis, operación, ciclos de instrucción y efectos en los bits del registro de estados.
El documento proporciona información sobre la estructura de datos, sistemas de numeración, registros y bancos de memoria en microcontroladores. Explica la organización básica de un programa, incluyendo la declaración de variables, configuración de registros y cuerpo del programa. También describe las instrucciones comunes orientadas a registros, literales, control y bits.
El documento describe el conjunto de instrucciones del microcontrolador PIC 16F87x. Explica que tiene 35 instrucciones de 14 bits clasificadas en instrucciones orientadas a bytes, bits, y de control con literales. Todas las instrucciones se ejecutan en 1 ciclo excepto saltos e instrucciones de retorno que tardan 2 ciclos. Describe los formatos y operaciones de varias instrucciones importantes como MOV, ADD, CALL, RETURN y otras.
Este documento clasifica las instrucciones de un microcontrolador en tres categorías: orientadas a registros, bits y literales/control. Las instrucciones orientadas a registros realizan operaciones matemáticas y lógicas entre los registros W y f, afectando los estados C, Z, DC. Las orientadas a bits modifican los valores de los bits individuales en f. Finalmente, las orientadas a literales/control manejan constantes numéricas k y realizan funciones como saltos y llamadas a subrutinas.
El documento describe las instrucciones del conjunto de instrucciones del microcontrolador PIC16F87XA. Se dividen en instrucciones orientadas a registros, que manejan registros como W y F, instrucciones que manejan bits, de salto, que manejan operandos inmediatos, de control y especiales como CALL, RETURN y SLEEP.
Este documento introduce los microcontroladores PIC de la familia PIC16F8xx. Explica que un microcontrolador incluye un microprocesador, memoria y periféricos de entrada/salida. Describe algunas aplicaciones comunes de los PIC como en vehículos y robótica. Detalla periféricos como puertos, timers, PWM y convertidores A/D. Incluye ejemplos de código y aplicaciones en MPLAB y Proteus.
Este documento describe la organización de la unidad central de procesamiento (CPU). Explica que la CPU ejecuta instrucciones, busca datos e instrucciones en memoria, procesa datos y escribe resultados. Describe las subunidades de la CPU como la unidad aritmética y lógica (ALU), la unidad de control y los registros. Finalmente, explica los diferentes tipos de instrucciones de máquina y modos de direccionamiento.
El documento describe el uso del ensamblador MPASM con el entorno MPLAB para programar PICs. Explica directivas como LIST, ORG, END y REM. También muestra ejemplos de código en ensamblador para contar en un display y medir distancias usando el temporizador TMR0.
El documento describe el ensamblador MPASM que se usa con el entorno de trabajo MPLAB para programar PICs. Explica algunas directivas como LIST, ORG, END y REM y cómo se usan. Luego presenta un ejemplo de código en ensamblador para un PIC16F84A que cuenta hasta 59 y muestra el valor en LEDs, usando directivas como EQU, BSF y MOVWF. Finalmente, discute aspectos del PIC16F84A como su memoria y periféricos.
El documento describe el ensamblador MPASM que se usa con el entorno de trabajo MPLAB para programar PICs. Explica algunas directivas como LIST, ORG, END y REM y cómo se usan. Luego presenta un ejemplo de código en ensamblador para un PIC16F84A que cuenta hasta 59 y muestra el valor en LEDs, y otro ejemplo que muestra dígitos en un display de 7 segmentos.
Este documento proporciona instrucciones sobre las banderas del registro de estado del procesador y describe varias instrucciones de ensamblador como AAA, AAD, AAM, AAS, ADC, ADD, AND, CALL, CBW, CLC, CLD, CLI, CMC, CMP, CMPS, CWD y DAA. Explica cómo afectan estas instrucciones a las banderas del registro de estado y proporciona ejemplos de su uso.
Organizacion de la unidad central de procesamientoHarold Torres
El documento describe la organización de la unidad central de procesamiento (CPU). Explica que la CPU ejecuta instrucciones para procesar datos, realizando operaciones aritméticas y lógicas usando su unidad aritmética y lógica (ALU). También describe los registros y modos de direccionamiento que utiliza la CPU para acceder a instrucciones y datos en memoria de forma rápida.
Lab.270910.instrucciones basicas del pic 16 f84almendi
El documento proporciona una introducción a las instrucciones básicas del microcontrolador PIC16F84A. Explica que el PIC16F84A tiene un conjunto de 35 instrucciones, menos que otros microprocesadores. Describe algunas de las instrucciones básicas como MOV, ADD, SUB, CLR y también instrucciones lógicas como AND, OR y XOR.
Lab.270910.instrucciones basicas del pic 16 f84almendi
Este documento proporciona una introducción al conjunto de instrucciones del microcontrolador PIC16F84A. Explica que el PIC16F84A tiene un conjunto de 35 instrucciones, menos que otros microprocesadores como el Pentium IV. Describe varias de las instrucciones básicas como MOV, ADD, SUB, AND, OR, entre otras. También incluye ejemplos de código ensamblador para ilustrar el uso de estas instrucciones.
Este documento describe las aplicaciones y el funcionamiento básico del microcontrolador PIC16F84. Explica la organización de la memoria, los registros internos como el contador de programa y la pila, y los puertos de entrada y salida. También resume el conjunto de instrucciones del PIC16F84, incluidas las instrucciones de byte, bit y control, así como su programación y depuración usando MPLAB.
Este documento describe las aplicaciones y el funcionamiento básico del microcontrolador PIC16F84. Explica la organización de la memoria, los registros internos como el contador de programa y la pila, y los puertos de entrada y salida. También resume el conjunto de instrucciones del PIC16F84 incluyendo instrucciones lógicas, aritméticas, de control y especiales.
Este documento proporciona una descripción detallada del PIC16F87, incluyendo:
1) Una explicación de los puertos de entrada/salida y su configuración.
2) Ejemplos de código para configurar los puertos y controlar LEDs y botones.
3) Una discusión sobre el efecto rebote de los botones y cómo eliminarlo en el código.
4) Diferentes implementaciones de una subrutina para pausas de 20 milisegundos.
Este documento proporciona instrucciones sobre programación en CODE 2. Explica la operación lógica NAND, el uso de subrutinas mediante las instrucciones CALL y RET, y cómo manipular arreglos (tablas) mediante punteros y direcciones de memoria. Muestra ejemplos de código para intercambiar registros, llamar a subrutinas y recorrer arreglos.
Similar a pic-16F628 generalidades y prog 1y2.pdf (20)
TIA portal Bloques PLC Siemens______.pdfArmandoSarco
Bloques con Tia Portal, El sistema de automatización proporciona distintos tipos de bloques donde se guardarán tanto el programa como los datos
correspondientes. Dependiendo de la exigencia del proceso el programa estará estructurado en diferentes bloques.
ESPERAMOS QUE ESTA INFOGRAFÍA SEA UNA HERRAMIENTA ÚTIL Y EDUCATIVA QUE INSPIRE A MÁS PERSONAS A ADENTRARSE EN EL APASIONANTE CAMPO DE LA INGENIERÍA CIVIŁ. ¡ACOMPAÑANOS EN ESTE VIAJE DE APRENDIZAJE Y DESCUBRIMIENTO
1. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
MICROCONTROLADOR 16F628
DESCRIPCION DE PINES
N o m b r e Pin # Tipo E/S/P Tipo Buffer
RA0 / AN0 17 E/S ST
RA1 / AN1 18 E/S ST
RA2 / AN2 / VREF 1 E/S ST
RA3 / AN3 / CMP1 2 E/S ST
RA4 / TOCKI / CMP2 3 E/S ST
RA5 / MCLR / THV 4 E/P ST
RA6 / OSC2 / CLKOUT 15 E/S ST
RA7 / OSC1 / CLKIN 16 E/S ST
RB0 / INT 6 E/S TTL
RB1 / RX / DT 7 E/S TTL
RB2 / TX / CK 8 E/S TTL
RB3 / CCP1 9 E/S TTL
RB4 / PGM 10 E/S TTL
RB5 11 E/S TTL
RB6 / T1OSO / T1CKI 12 E/S/P TTL
RB7 / T1OSI 13 E/S/P TTL
VSS 5 P ----
VDD 14 P ----
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 1
2. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
BANCOS DE REGISTROS DEL PIC 16F628
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 2
3. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
CONJUNTO DE INSTRUCCIONES
El conjunto de instrucciones de los microprocesadores PIC 16FXXX consiste en un
pequeño repertorio de solo 35 instrucciones. En este curso se ha optado por clasificarlas,
desde el punto de vista del programador, en cinco categorías bien definidas de acuerdo con
la función y el tipo de operandos involucrados.
Instrucciones de Byte que operan con Registros
Estas instrucciones pueden ser de simple o doble operando de origen. El primer operando
de origen será siempre el registro seleccionado en la instrucción, el segundo, en caso de
existir, será el registro W.
El destino, es decir donde se guardara el resultado, será el registro seleccionado o el W,
según se seleccione con un bit de la instrucción.
El formato genérico de estas instrucciones es el siguiente :
11 10 9 8 7 6 5 4 3 2 1 0
d f f f f f
Los bits 0 a 4 (5 bits), denominados “f” permiten seleccionar uno de 35 registros de la
memoria interna. El bit 5, denominado “d”, permite especificar el destino del resultado.
Si d = 1 el resultado se guardara en el registro seleccionado. Si d = 0 el resultado se
guardara en W. Los bits 6 a 11 identifican la instrucción especifica a realizar.
Instrucciones de operaciones lógicas de doble operando :
ANDWF f,d ;operación AND lógica, destino = W Ù f
IORWF f,d ;operación OR lógica, destino = W Ú f
XORWF f,d ;operación XOR lógica, destino = W Å f
Los nombres mnemónicos de estas instrucciones provienen de :
AND W con F, Inclusive OR W Con F y XOR W con F.
Instrucciones de operaciones aritméticas y lógicas sencillas de simple operando :
MOVF f,d ;movimiento de datos, destino = f
COMF f,d ;complemento lógico, destino = NOT f
INCF f,d ;incremento aritmético, destino = f + 1
DECF f,d ;decremento aritmético, destino = f - 1
Los mnemónicos de estas instrucciones provienen de :
MOVe File, COMplement File, NCrement File y DECrement File.
En las siete instrucciones anteriores el único bit afectado de la palabra de estado del
procesador es el Z, que se pone en 1 si el resultado de la operación es 00000000, y se
pone en 0 si el resultado tiene cualquier otro valor.
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 3
4. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
Instrucciones de rotación de bits a través del CARRY :
RLF f,d ;rotación a la izquierda, destino = f ROT
RRF f,d ;rotación a la derecha, destino = f ROT
En estas operaciones (Rotate Left File y Rotate Right File) los bits son desplazados de cada
posición a la siguiente, en sentido derecho o izquierdo. El desplazamiento es cerrado,
formando un anillo, con el bit C (CARRY) de la palabra de estado.
En estas dos instrucciones, el único bit afectado de la palabra de estado del procesador es
el bit C, que tomará el valor que tenia el bit 7 o el bit 0, según sea el sentido del
desplazamiento.
Estas instrucciones son muy útiles para la manipulación de bits, y además para realizar
operaciones aritméticas, ya que en numeración binaria, desplazar un número a la izquierda
es equivalente a multiplicarlo por 2, y hacia la derecha, a dividirlo por 2.
Instrucción que realiza el intercambio de posiciones entre los cuatro bits menos
significativos y los cuatro más significativos (nibble bajo y nibble alto).
SWAPF f,d ;intercambia nibbles, destino = SWAP f
Esta instrucción (SWAP File) no afecta ninguno de los bits de la palabra de estado del
procesador. Esta instrucción es muy útil para el manipuleo de números BCD
empaquetados, en los que en un solo byte se guardan dos dígitos BCD (uno en cada
nibble).
Instrucciones de operaciones de la suma y la resta aritméticas :
ADDWF f,d ;suma aritmética, destino = f + W
SUBWF f,d ;resta aritmética, destino = f - W
Estas operaciones (ADD W a F y SUBstract W de F) afectan a los tres bits de estado C, DC
y Z.
El bit Z se pone en 1 si el resultado de la operación es 00000000, y se pone en 0 si el
resultado tiene cualquier otro valor.
La suma se realiza en aritmética binaria pura sin signo. Si hay un acarreo del bit 7, es decir
que el resultado es mayor que 255, el bit C (carry) resulta 1, en caso contrario resulta 0.
Si hay un acarreo del bit 3, es decir que la suma de las dos mitades (nibbles) menos
significativas (bits 0 a 3) resulta mayor que 15, se pone en 1 el bit DC (digit carry), en caso
contrario se pone en 0.
Ejemplos :
1010 0010 1101 0000
+ 0100 1111 C DC Z + 0110 1111 C DC Z
1111 0001 0 1 0 0011 1111 1 0 0
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 4
5. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
La resta se realiza sumando, en binario puro sin signo, el registro f más el complemento a
dos de W (el complemento a 1, o complemento lógico, más 1)
Ejemplos :
f 0100 0100 0010 1000
W - 0010 1000 C DC Z - 0100 0100 C DC Z
0001 1100 1 0 0 1110 0100 0 1 0
equivalente a :
f 0100 0100 0010 1000
cmp.2 W + 1101 1000 C DC Z + 1011 1100 C DC Z
0001 1100 1 0 0 1110 0100 0 1 0
Los bits de estado C y DC toman el valor normal correspondiente a la suma de f con el
complemento a 2 de W. De esta manera el significado para la operación de resta resulta
invertido, es decir que C (carry) es 1 si no hubo desborde en la resta, o dicho de otra
manera, si el contenido de W es menor que el de f.
El bit DC se comporta de manera similar, es decir que DC es 1 si no hubo desborde en la
mitad menos significativa, lo que equivale a decir que el nibble bajo del contenido de W es
menor que el del registrof.
Instrucciones de simple operando y el destino es siempre el registro seleccionado :
CLRF f ;borrado de contenido, f = 0
MOVWF f ;copia contenido W a f, f = W
La instrucción CLRF (CLeaR File) afecta solo al bit Z que resulta siempre 0.
La instrucción MOVWF (MOVe W a F) no afecta ningún bit de la palabra de estado.
- Instrucciones de Byte que operan sobre W y Literales
Estas instrucciones se refieren todas al registro W, es decir que uno de los operandos de
origen y el operando de destino son siempre el registro W. En las instrucciones de este
grupo que tienen un segundo operando de origen, este es siempre una constante de
programa literalmente incluida en la instrucción, llamada constante literal o simplemente
literal.
El formato genérico de estas instrucciones es el siguiente :
11 10 9 8 7 6 5 4 3 2 1 0
k k k k k k k k
Los bits 0 a 7 especifican la constante literal de 8 bits que se utilizara en la operación.
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 5
6. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
Las tres instrucciones que siguen son las operaciones lógicas tradicionales, similares a las
que ya vimos anteriormente, pero realizadas entre una constante de programa y el registro
W :
IORLW k ; operación OR lógica, W = W Ú k
ANDLW k ; operación AND lógica, W = W Ù k
XORLW k ; operación XOR lógica, W = W Å k
En estas tres instrucciones (Inclusive OR Literal W, AND Literal W y XOR Literal W) el único
bit afectado de la palabra de estado del procesador es el Z, que se pone en 1 si el resultado
de la operación es 00000000, y se pone en 0 si el resultado tiene cualquier otro valor.
Instrucción que cargar una constante de programa en el registro W :
MOVLW k ;carga constante en W, W = K
Esta (MOVe Literal W) instrucción no afecta ninguno de los bits de estado del procesador.
La instrucción que sigue (CLeaR W) no correspondería incluirla en este grupo, y pertenece
en realidad al primero, el de las instrucciones que operan sobre registros, ya que se trata de
un caso especial de la instrucción CLRF, con destino W, y f = 0.
La incluimos aquí porque como se le ha asignado un mnemónico particular referido
específicamente al registro W, creemos que, desde el punto de vista del programador, es
más útil verla dentro del grupo de instrucciones referidas a W.
CLRW ;borra el contenido de W, W = 0
Al igual que en la instrucción CLRF, el único bit de estado afectado es el Z que resulta1
- Instrucciones de Bit
El formato genérico de estas instrucciones es el siguiente :
11 10 9 8 7 6 5 4 3 2 1 0
b b b F f f f f
Los bits 0 a 4 (5 bits), denominados “f”, permiten seleccionar uno de 35 registros de la memoria
interna. Los bits 5 a 7, denominados “b”, permiten especificar el numero de bit (0 a 7) sobre el que se
operara. Estas instrucciones operan solamente sobre el bit especificado, el resto de los bits del registro
no son alterados.
Estas instrucciones no tienen especificación de destino, ya que el mismo es siempre el registro
seleccionado.
BCF f,b ; borra el bit b de f ;bit f(b) = 0
BSF f,b ; coloca en uno el bit b de f ;bit f(b) = 1
Estas instrucciones (Bit Clear File y Bit Set File) no afectan ningún bit de la palabra de
estado del procesador.
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 6
7. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
- Instrucciones de Control
GOTO k ;salto a la posición k (9 bits) del programa
Esta es la típica instrucción de salto incondicional a cualquier posición de la memoria de
programa .
La constante literal k es la dirección de destino del salto, es decir la nueva dirección de
memoria de programa a partir de la cual comenzarán a leerse las instrucciones después de
ejecutar la instrucción GOTO.
Esta instrucción simplemente carga la constante k en el registro PC (contador de
programa). La única complicación de esta instrucción es que la constante k es de solo 9
bits, mientras que el registro PC es de 11 bits, ya que en el 16F628 debe permitir
direccionar una memoria de programa de 2 K.
Los dos bits faltantes, bit 9 y 10 del PC, son tomados respectivamente de los bits de
selección de página PA0 y PA1 de la palabra de estado.
Este comportamiento particular hace que la memoria de programa aparezca como dividida
en paginas de 512 posiciones como se vera más adelante.
El programador debe tener en cuenta que antes de ejecutar una instrucción GOTO es
posible que haya que programar los bits PA0 y PA1.
CALL k ;salto a la subrutina en la posición k (8 bits)
Su comportamiento es muy similar al de la instrucción GOTO, salvo que además de saltar
guarda en el stack la dirección de retorno de la subrutina (para la instrucción RETLW).
Esto lo hace simplemente guardando en el stack una copia del PC incrementado, antes de
que el mismo sea cargado con la nueva dirección k.
La única diferencia con la instrucción GOTO respecto de la forma en la que se realiza el
salto, es que en la instrucción CALL la constante k tiene solo 8 bits en vez de 9.
En este caso también se utilizan PA0 y PA1 para cargar los bits 9 y 10 del PC, pero
además el bit 8 del PC es cargado siempre con 0.
Esto hace que los saltos a subrutina solo puedan realizarse a posiciones que estén en las
primeras mitades de las paginas mencionadas.
El programador debe tener en cuenta este comportamiento y asegurarse de ubicar las
posiciones de inicio de las subrutinas en las primeras mitades de las paginas.
La instrucción que aparece a continuación es la de retorno de subrutina:
RETLW k ;retorno de subrutina con constante k, W = k
Esta (RETurn con Literal in W) instrucción produce el retorno de subrutina con una constante literal
k en el registro W. La operación que realiza consiste simplemente en sacar del stack un valor y
cargarlo en el PC.
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 7
8. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
Ese valor es el PC incrementado antes de realizar el salto, de la ultima instrucción CALL
ejecutada, por lo tanto es la dirección de la instrucción siguiente a dicho CALL.
Dado que el stack es de 11 bits, el valor cargado en el PC es una dirección completa, y por
lo tanto se puede retornar a cualquier posición de la memoria de programa, sin importar
como estén los bits de selección de pagina.
Esta instrucción además carga siempre una constante literal en el registro W. Ya que esta
es la única instrucción de retorno de subrutina de los PIC16FXXX, no hay en estos
microprocesadores forma de retornar de una subrutina sin alterar el registro W.
Por otro lado, y con una metodología especial de programación, un conjunto de sucesivas
instrucciones RETLW puede ser usado como una tabla de valores constantes incluida en el
programa (Ej. : tablas BCD/7 seg.).
Instrucciones de “salto” (skip) condicional.
Estas instrucciones son los únicos medios para implementar bifurcaciones condicionales en
un programa.
Son muy generales y muy poderosas ya que permiten al programa tomar decisiones en
función de cualquier bit de cualquier posición de la memoria interna de datos, y eso incluye
a los registros de periféricos, los puertos de entrada/salida e incluso la palabra de estado
del procesador.
Estas dos instrucciones reemplazan y superan a todo el conjunto de instrucciones de salto
condicional que poseen los microprocesadores sencillos convencionales
(salto por cero, por no cero, por carry, etc.).
BTFSC f,b ;salta si bit = 0
BTFSS f,b ;salta si bit = 1
BTFSC (Bit Test File and Skip if Clear) saltea la próxima instrucción si el bit b del registro f
es cero.
BTFSS (Bit Test File and Skip if Set) saltea si el bit es 1.
Estas instrucciones pueden usarse para realizar o no una acción según sea el estado de un
bit, o, en combinación con GOTO, para realizar una bifurcación condicional.
Ejemplo 1 : Ejemplo 2:
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 8
9. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
Las instrucciones que siguen son casos especiales de las de incremento y decremento
Estas instrucciones podrían categorizarse dentro del grupo de instrucciones orientadas a
byte sobre registros (primer grupo), ya que efectivamente operan sobre los mismos, y el
formato del código de la instrucción responde al de ese grupo, pero, a diferencia de las
otras, pueden además alterar el flujo lineal del programa y por eso se les incluyó en este
grupo.
DECFSZ f,d ;decrementa y salta sí 0, destino= f - 1
INCFSZ f,d ;incrementa y salta sí 0, destino= f + 1
Estas dos instrucciones (DECrement File and Skip if Zero, e INCrement File and Skip if
Zero) se comportan de manera similar a DECF e INCF, salvo que no afectan a ningún bit de
la palabra de estado.
Una vez realizado el incremento o decremento, si el resultado es 00000000, el
microprocesador salta la próxima instrucción del programa. Estas instrucciones se utilizan
generalmente en combinación con una instrucción de salto (GOTO), para el diseño de ciclos
o lazos (loops) de instrucciones que deben repetirse una cantidad determinada de veces.
- Instrucciones Especiales
Instrucciones que controlan funciones específicas del microprocesador o que actúan sobre
registros especiales no direccionados como memoria interna normal.
La instrucción que sigue es la típica NO OPERATION.
NOP ;no hace nada, consume tiempo
Esta instrucción solo sirve para introducir una demora en el programa, equivalente al tiempo
de ejecución de una instrucción. No afecta ningún bit de la palabra de estado.
La instrucción que sigue borra el contador del watch dog timer.
Este registro tampoco esta accesible como memoria, y esta es la única instrucción que lo
modifica.
CLRWDT ;borra el watch dog timer, WDT = 0
Esta instrucción, además, coloca en uno los bits PD (power down) y TO (time-out) de la
palabra de estado.
La siguiente es una instrucción especial de control del microcontrolador que lo pone en el
modo power down. En este modo el microprocesador se detiene, el oscilador se apaga, los
registros y puertos conservan su estado, y el consumo se reduce al mínimo. La única forma
de salir de este estado es por medio de un reset o por time-out del watch dog timer.
SLEEP ;coloca el µC en modo sleep, WDT = 0
Esta instrucción, además, borra el bit PD (power down) y setea el bit TO (time-out) de la
palabra de estado.
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 9
10. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 10
INSTRUCCIONES DEL PIC 16FXXX
11. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
ENCENDER UN LED A TRAVES DEL PUERTOB DEL PIC
Puertos de Entrada y Salida
La principal utilidad de las patitas que contiene un microcontrolador es soportar las líneas
de E/S que comunican al computador interno con los periféricos exteriores.
Según los controladores de periféricos de los microcontroladores, las líneas de E/S se
destinan a proporcionar el soporte a las señales de entrada, salida y control.
Reloj principal
El oscilador genera una onda cuadrada de alta frecuencia, que configura los impulsos de
reloj usados en la sincronización de las operaciones del sistema.
Generalmente, el circuito de reloj está incorporado en el microcontrolador y sólo se
necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia
de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos
pasivos o bien un resonador cerámico o una red R-C.
Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las
instrucciones pero lleva aparejado un incremento del consumo de energía
Para las personas que no están de todo familiarizados con el tema es bueno recordar que
es el led. LED según sus siglas en ingles (Light Emitting Diode) se traduce como diodo
emisor de luz, que es un dispositivo semiconductor (vea el dibujo de abajo) de dos
terminales nominados como cátodo (terminal negativa) y ánodo (terminal positiva).
Si polarizamos nuestro led directamente este va a producir un haz de luz y con la
polarización inversa va a permanecer apagado. A veces el funcionamiento de los diodos es
comparado con los switches que se prenden y se apagan.
Polarización directa Polarización inversa
Una vez familiarizados con el hardware podemos proseguir con el software.
Antes de ponerse a escribir el programa es aconsejable analizar primero los registros que
se van a emplear en el dicho programa.
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 11
Ánodo
+
Cátodo
Ánodo
--
+
Cátodo
luz
PRACTICA
1
12. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
Registro STATUS
Nosotros respetaremos la nomenclatura inglesa, pero escribiremos las variables que nos
interesan. El motivo es muy simple: en ese PIC16F628 no se ha considerado el problema
de los bancos de memoria, que se deben intercambiar a través del registro de estado.
De este modo para nosotros PORTB representará al puerto B, TRISB será el mismo y W
será el registro de trabajo.
El programa, por lo demás, es bastante evidente. Necesitamos sólo introducir el sentido de
los TRIS. Este registro está asociado a los distintos puertos y en él cada bit representa un
pin del puerto al que se refiera. Un 0 en uno de sus bits representará que el pin es de
salida, y un 1 que es de entrada.
De este modo cada pin será independiente, dándonos mayor flexibilidad para la
implementación física de los diseños. Es posible incluso, aunque no habitual, cambiar la
dirección del pin durante la ejecución del programa.
Esta opción puede llegar a darnos la posibilidad de manejar varios dispositivos con un solo
puerto.
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 12
13. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
SET DE INSTRUCCIONES UTILIZADAS EN LA PROGRAMACION
1. BCF f, b : Con esta instrucción se pone en 0 el bit b del registro f
Ejemplo: Si se tiene en el puerto A ( PORTA ) = 1010 y se quiere colocar en cero el tercer bit, la
instrucción es la siguiente: BCF PORTA , 3.
2. BSF f, b : Con esta instrucción se pone en 1 el bit b del registro f
Ejemplo: Si se tiene en el puerto A ( PORTA ) = 1010 y se quiere colocar en UNO el tercer bit, la
instrucción es la siguiente: BSF PORTA , 3.
3. GOTO K : realiza un salto incondicional a la dirección llamada k del programa
Ejemplo: GOTO CONFIG quiere decir salte a la parte de configuración del programa.
4.CLRF F : Borra el contenido del registro, cuyo valor quedaría en 00000000
DESCRIPCIÓN DE NUESTRA PRACTICA
ENCENDER UN LED
Como inicio antes de empezar el programa en si, se deberá configurar el PIC, de forma que
funciones a nuestras necesidades, esto quiere decir que debemos decirle como vamos a
usar sus puertos, si van a ser de entrada o de salida, en nuestro caso solo requerimos de
un solo puerto (puerto b7), y conectado a él, el respectivo led a encender con su
resistencia para evitar un flujo de corriente muy grande, tal que pueda dañar nuestro pic.
Después de la configuración inicial, y haber pasado por los respectivos bancos como se
ilustrará en el programa, aseguraremos de que el puertob este en ceros y para ello
borraremos el contenido con la instrucción de borra registro (CLRF), en este caso dirigido
al registro PORTB, que es el puerto b que
vamos a manipular. Luego sencillamente daremos la orden de encender el led, y esto se
logra con enviar un uno o positivo por el puertob,7, y con ello se encenderá el led.
Se explica en cuadro los registros TRISB,PORTB Y el bit RP0 del registro STATUS
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 13
14. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
DIAGRAMA ESQUEMATICO DEL CIRCUITO
.
DIAGRAMA DE FLUJO DEL PROGRAMA DE ENCENDER EL LED
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 14
INICIO
BANCO1
TRIS,7 => 0
BANCO0
Borrar puertoB
Portb,7=> 1
15. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
PROGRAMA PARA ENCENDER UN LED CON EL PIC 16F628
LIST P=16F628
INCLUDE <P16F628.INC>
ORG 00
GOTO INI
ORG 05
INI BSF STATUS,RP0 ;IREMOS AL BANCO1
BCF TRISB,7 ;EL PUERTO RB7 ESTARA COMO SALIDA
BCF STATUS,RP0 ;DEVUELTA AL BANCO0
CLRF PORTB ;PARA BORRAR EL PUERTO Y QUEDE EN CEROS
BSF PORTB,7 ;ENVIA UN 1(5V) A RB7 PARA ENCENDER LED
GOTO $ ;EL CONTADOR DEL PROGRAMA SE QUEDARÁ AQUI
END
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 15
16. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
El ENCENDIDO DE UN LED EN FORMA INTERMITENTE
Acordémonos que el objetivo esta vez no es solamente prender el led sino también
apagarlo y volver a prender en una forma periódica o cíclica La pregunta es: ¿Cómo se
logra la semejante operación?
La respuesta a esa pregunta es SUBRUTINA. La pregunta de inmediata que surge es:
¿y que es una subrutina? Una subrutina es una parte del programa principal que se
dedica a una tarea especifica.
Ejemplos de subrutinas:
- una subrutina que periódicamente me observa el estado lógico de un puerto
- una subrutina que se encargue de realizar cálculos de determinadas variables
en fin es la libertad del programador de asignar una determinada tarea a la subrutina.
El uso de subrutinas, siendo sencillo y no requiriendo un apartado específico, es esencial,
puesto que simplifica los programas, haciéndolos, además, más modulares. Llamaremos a
una subrutina con la instrucción CALL, seguida de la etiqueta que la encabeza o su
dirección en memoria.
Para regresar a la siguiente instrucción tras el CALL bastará con situar, en la última línea
de la subrutina, el comando RETURN; también será posible emplear RETLW k, el cuál se
diferencia del anterior por situar en el registro W el valor k.
En el caso de nuestra practica vamos a desarrollar una subrutina que se conoce con el
nombre de retardo.
El retardo o subrutina se encarga de que el programa principal en un determinado
momento se queda parada por un tiempo que nosotros queremos que se detenga.
Para ser mas concreto, al prender el led necesitamos que se quede prendido por un
tiempo, después tenemos que apagarlo y mantenerlo apagado por otro rato y volver a hacer
todo el procedimiento de nuevo.
Ahora, como se arma una subrutina en el lenguaje de programación que nosotros estamos
usando o sea MPLAB? La forma mas clásica de armar una subrutina es usando las
instrucciones CALL y RETURN.
Donde la instrucción CALL es usado por el programa principal para llamar la subrutina ,
donde esa a su vez realiza su tarea asignada ( en nuestro caso es un retardo en el
tiempo) y retorna al programa principal de donde la llamaron usando la instrucción
RETURN.
Ya sabiendo como se arma una subrutina necesitamos saber como se hace el dicho retardo
del tiempo que es la tarea de la subrutina, para eso observamos la siguiente subrutina:
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 16
PRACTICA
2
17. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
RETARDO MOVLW .255 ;Se carga un registro CONTADOR
MOVWF CONTADOR ;con un valor máximo decimal de 255
OTRAVEZ DECFSZ CONTADOR ;Se decrementa el dicho registro en uno
GOTO OTRAVEZ ;Si CONTADOR no es cero se decrementa
;otra vez
RETURN ;Al llegar a cero la subrutina RETARDO
;retorna al programa principal
Usando un diagrama de flujos la rutina anterior se puede representar de la siguiente forma.
Del ejemplo anterior lo que vemos es que la subrutina RETARDO se toma 255 veces
haciendo la misma instrucción DECFSZ antes de retornar al programa principal.
Sí nos acordamos que estamos trabajando con un cristal de 4 MHz, donde esa frecuencia
es dividida internamente por el µC por cuatro, 4MHz/4 = 1MHz, eso quiere decir que el
micro se demora 1 microsegundo para realizar una instrucción
T = 1/f = 1/1MHz = 1µseg.
Por lo tanto la subrutina RETARDO lo que hace es hacer un retardo aproximadamente de
255 microsegundos. Desafortunadamente en la vida real un retardo de 255 microsegundos
es demasiado rápido para el ojo humano y no es percibido.
Para solucionar este problema se recurre a una técnica llamada anidamiento, lo que hace
es en si es manipular varias variables, y decrementarlas de forma que cuando termine una
continúe con la otra, mejor que cuando una variable termine, decremente la otra en una
unidad, y vuelva y se cargue de nuevo con un valor, lo que quiere decir que sus cantidades
se multiplicarían.
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 17
CONTADOR ←255
CONTADOR - 1
¿CONTADO
R
= 0 ?
RETORNAR
SI
NO
18. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
Veamos un ejemplo:
Cuando reg3 se va decrementando, ,lo sigue haciendo hasta que su valor establecido
llegue a cero, y cuando esto pasa, decrementa a la siguiente variable (reg2), una unidad, y
de nuevo se carga reg3 con el valor establecido, lo que quire decir que este anidamiento
consumira aproximadamente 90.000 ciclos de instrucion aproximadamente, o quizas
mucho mas si es implementado en un pic, pues las instrucciones aplicadas para estos
decrementos según el caso en un pic, suelen consumir 2 ciclos de instruccion, por lo que
quiere decir que si tenemos en cuenta estos retornos (el volver a un punto del
anidamiento), podrian consumir con estos valores no 90.000 sino hasta casi 270.000
ciclos de instruccion aproximadamente, aunque los anidamientos se pueden hacer de
muchas formas según el programador, por lo que no existe un solo metodo, sino muchos y
cada cual se acomoda a varias
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 18
retardo
reg1=100
reg2=30
reg3=30
reg3 - 1=reg3
reg3=
0
reg2 - 1=reg2
reg2=
0
reg1 - 1=reg1
reg1=
0
retorne
19. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
necesidades, pero en nuestra practica se implementará una de las mas sencillas formas, e
incluso de las mas usadas.
El anidamiento tiene como funcion mas comun la de crear retardos en el programa, esto es
porque algunas actividades que hace el pic son muy rapidas, y para que los humanos las
podamos percibir, debemos dilatar el tiempo para percibir lo que pasa.
Precisamente , el percibir o retener tiempo,será la aplicación en nuestra practica, pues el
objetivo es el de encender y apagar el led, y entre el encendido y apagado, debemos dejar
que dure un tiempo encendido y un tiempo apagado.
SET DE INSTRUCCIONES NUEVAS UTILIZADAS EN LA PROGRAMACION
DECFSZ f,d: decrementa el registro f en uno y salta si el resultado es cero, el
valor lo almacena en el registro w o en el registro f.
Ejemplo: Se carga la variable numero con 5 y se desea decrementar la
variable numero en 1 hasta que el resultado sea cero, si es así salte a la
dirección fin , si no continué decrementando hasta que sea cero
MOVLW D`05
MOVWF NUMERO
SIGUE DECFSZ NUMERO,1
GOTO SIGUE
GOTO FIN
DESCRIPCION DEL CIRCUITO
Como se había dicho anteriormente, el objetivo era el de encender un led de forma
intermitente, para que se observara este efecto, de debe recurrir a los retardos por
anidamiento.
Iniciamos primero configurando el pic, en el caso para que el pin RB7 nos funcione como
salida.
Después para asegurar de que empiece apagado, borraremos el puerto con la instrucción
CLRF PORTB, luego si damos la orden que se encienda el led, y para que podamos ver si
se enciende y se apaga, daremos un retardo de encendido, que durara mas o menos un
segundo, si se usa un cristal de 4MHz, luego de que termine el retardo, apagaremos el led,
y de nuevo llamaremos el retardo, y se repetirá este ciclo indefinidamente, por lo que no
tiene final, a menos que quitemos la alimentación.
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 19
20. NIVEL 1 PIC 16F628 TEORIA Y PRACTICA
DIAGRAMA DE FLUJO PARA EL LED INTERMITENTE
DIAGRAMA ESQUEMATICO DEL CIRCUITO
DIGIT ELECTRONIC CRA 9 23 – 49 LOCAL 207 TEL 2 86 36 72 20
CONFIGURACIÓN
DEL PUERTO
ENCENDER LED
LLAMAR RETARDO
LLAMAR RETARDO
APAGAR EL LED
INICIO
LIMPIAR PORTB