Documentos de Académico
Documentos de Profesional
Documentos de Cultura
COMPARADORES DEL
PIC16F887
Profesora
Bernal Díaz Arcelia
Integrantes
Flores Cano Karen
Gallegos Alvarado Sergio Antonio
Hernández Moreno Jesús Alfredo
Materia
Microprocesadores y Microcontroladores
Grupo
2857
Trabajo
Práctica #2
Fecha
08 de abril de 2011
Objetivo General
Conocer las características de los comparadores del PIC16F887, así como tener noción de las aplicaciones que
pueden generar. Esto con el fin de realizar un programa el cual tendrá como propósito realizar una comparación.
Objetivos Específicos
Conocer cómo funciona los comparadores del PIC16F887
Introducción
Un circuito comparador combinatorio compara dos entradas binarias (A y B de n bits) para indicar la relación de
igualdad o desigualdad entre ellas por medio de "tres banderas lógicas" que corresponden a las relaciones A igual
B, A mayor que B y A menor que B. Cada una de estas banderas se activara solo cuando la relación a la que
corresponde sea verdadera, es decir, su salida será 1 y las otras dos producirán una salida igual a cero.
Mediante álgebra de Boole y diagramas se quiere mostrar cómo se puede construir fácilmente un comparador
binario de n bits a partir de comparadores más simples de dos y cuatro bits para implementar de manera rápida
uno de estos circuitos combinatorios.
Comúnmente se necesitan realizar comparaciones en ciertos procesos, por esa razón los PIC tienen integrados
módulos comparadores, en el caso del PIC16F887 contiene un módulo comparador que contiene dos
comparadores analógicos.
Comparadores se utilizan para interconectar circuitos analógicos a un circuito digital mediante la comparación de
dos voltajes analógicos y proporciona una indicación digital de sus magnitudes relativas.
Los comparadores son la construcción de señal mixta muy útiles, ya que proporcionan una funcionalidad análoga
independiente de la ejecución del programa. El módulo comparador análogo incluye las siguientes características:
• Control independiente de comparación
• Cambio de Interrupciones
• modo Sleep
• Sincronización de salida a la entrada de reloj temporizador Timer1
La siguiente figura muestra la estructura de los comparadores analógico dentro del PIC16F887
Cuestionario
1. Que es una interrupción y cuántos tipos existen
Una interrupción es un evento que hace que el microcontrolador deje de ejecutar la tarea que está realizando para
ejecutar otro proceso y posteriormente vuelva a tomar el control y continúe con la tarea que estaba realizando.
Existen 10 fuentes de interrupción estas son
El repertorio de instrucciones del PIC16F84 incluye cuatro instrucciones de salto condicional clasificadas en dos
grupos:
Si el bit número 'b' del registro 'f es "l" la instrucción que sigue a ésta se ejecuta normalmente.
Si el bit número 'b' del registro 'f es "0" la instrucción que sigue a ésta se ignora y se salta.
Instrucción "btfss f,b" esta instrucción actúa de forma contraria a la instrucción anterior:
Si el bit número 'b' del registro T es "0" la instrucción que sigue a ésta se ejecuta normalmente.
Aquéllas que pueden producir el salto en función del contenido de un registro distinto de cero.
Las instrucciones de salto condicional "decfsz" e "incfsz" pueden producir el salto en función del contenido de un
registro distinto de cero y son casos especiales de las de incremento y decremento de un registro analizadas en el
capítulo 8. Estas instrucciones podrían categorizarse dentro del grupo de instrucciones aritméticas ya que
efectivamente operan de forma aritmética (decrementando o incrementando) sobre los registros. Pero, a diferencia
de las otras, además pueden alterar el flujo lineal del programa y por eso se las incluye en este grupo. Su forma de
actuar se describe a continuación:
Instrucción "decfsz f,d" esta instrucción decrementa en una unidad el contenido del registro T. Almacena el
resultado en W si 'd' = 0 (en cuyo caso 'f no varía) y en el registro T si 'd' = 1. Después de decrementar, pueden
Instrucción "incfsz f,d" esta instrucción incrementa en una unidad el contenido del registro T. Almacena el
resultado en W si 'd' = 0 (en cuyo caso 'f no varía) y en el registro T si 'd' = 1. Después de incrementar, pueden
Activo
0 0 Banco 0
0 1 Banco 1
1 0 Banco 2
1 1 Banco 3
TO - Time-out bit (bit de salida del temporizador)
Después de encender el microcontrolador, después de ejecutarse la instrucción CLRWDT que reinicia al WDT
(temporizador) o después de ejecutarse la instrucción SLEEP que pone al microcontrolador en el modo de bajo
consumo.
Después de ejecutarse la instrucción SLEEP que pone al microcontrolador en el modo de bajo consumo.
Hubo acarreo del cuarto bit de orden bajo (nibble bajo) en el resultado.
No hubo acarreo del cuarto bit de orden bajo (nibble bajo) en el resultado.
Carry/Borrow bit (bit de acarreo/préstamo)
pila y después llama a la subrutina situada en la dirección cargada en el PC, Es similar a GOTO pero coloca en la
pila la dirección de la siguiente instrucción que se debe ejecutar después realiza la llamada de la subrutina.
Cuando se realiza una operación de suma o resta envía estos datos a los registros y pasa por el comparador para
determinar si es mayor o menor para esto se ocupa los registros Z y C de WF
Condiciones
Cuando se realiza una operación de comparación en los registros generalmente se usan en los saltos condiciones
Operaciones Booleanas
Cuando se realiza una operación booleana altera el valor de los registros y pasa por el comparador para
código.
Semejante a la instrucción “goto”, simplemente transferir el control a otro punto del programa.
7. Dibuja la carta asm del programa de componentes realizado por el PIC16F887
Prog_comparador.asm
Configura
Puertos B, C, D, E como digitales.
Principal
NO
PORTB < PORTC
SI
NO
PORTB == PORTC
SI
Código fuente
#include <P16F887.INC>
__config _CONFIG2, _WDT_OFF & _XT_OSC
ORG 00h
Init
BANKSEL ANSELH ; Se posiciona sobre el banco que contenga ANSELH.
CLRF ANSELH ; Se limpia para que ANSELH contenga 0 y se configure como digital
el puerto B, C, D, E.
Esquema
Foto al Circuito original
Esquema del circuito
Se limpia para que ANSELH contenga 0 y se configure como digital el puerto B, C, D, y E, Se posiciona
sobre TRISB.
Realiza una comparacion y evalua si es el puerto B es mayor, o menor que el puerto C, y manda una
senal de respuesta al puerto D y regresa al Inicio del programa
Se realizó el programa de acuerdo a las especificaciones del maestro. Los datos del puerto del puerto B se
restaban con los datos del puerto C, comparando que el valor del puerto B > al valor del puerto C y se enviaban
los resultados al puerto D.
Se realizaron las simulaciones con éxito y se obtuvieron los resultados deseados. El circuito funcionó de acuerdo a
las especificaciones.
Conclusiones
Para poder realizar aplicaciones mas complejas se nesesitan trabajar con comparadores, ya que con los mismos se
pueden realizar diferentes circuitos como semaforos, cerraduras combinacionales, etc. Pero antes de realizar el
programa es necesario conocer y entender la configuración, arquitectura y funcionamiento interno del los
comparadores.
En conclusion se lograron los objetivos propuestos anteriormente, como conocer el funcionamiento de los
compzradores analogicos del PIC16F887, ademas que se realizo el programa y el circuito, finalmente fue una