0% encontró este documento útil (0 votos)
153 vistas14 páginas

Compuertas Lógicas y Microcontrolador PIC16F84

Este documento describe diferentes tipos de compuertas lógicas como AND, OR, NOT, NAND, NOR, XOR y XNOR. Explica sus tablas de verdad y fórmulas. También describe el microcontrolador PIC16F84, incluyendo sus pines de entrada/salida y su programación mediante software como MPLAB y lenguajes como BASIC y C.

Cargado por

xLMx LuNa7iicKz
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
153 vistas14 páginas

Compuertas Lógicas y Microcontrolador PIC16F84

Este documento describe diferentes tipos de compuertas lógicas como AND, OR, NOT, NAND, NOR, XOR y XNOR. Explica sus tablas de verdad y fórmulas. También describe el microcontrolador PIC16F84, incluyendo sus pines de entrada/salida y su programación mediante software como MPLAB y lenguajes como BASIC y C.

Cargado por

xLMx LuNa7iicKz
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Contenido

1. Objetivo ...................................................................................................................................... 2
2. Introducción ................................................................................................................................ 2
3. Compuertas Lógicas .................................................................................................................... 3
 Compuerta AND ...................................................................................................................... 4
 Compuerta OR ......................................................................................................................... 4
 Compuerta NOT ...................................................................................................................... 5
 Compuerta NAND .................................................................................................................... 5
 Compuerta NOR ...................................................................................................................... 6
 Compuerta XOR ....................................................................................................................... 6
 Compuerta XNOR .................................................................................................................... 7
 Compuerta IF ........................................................................................................................... 7
4. Microcontrolador 16f84 ............................................................................................................. 8
4.1 LOS PINES DEL 16F84 .......................................................................................................... 8
5. MPLAB ....................................................................................................................................... 10
5.1 LOS REGISTROS .............................................................................................................. 11
5.1.1 SIMULACION.............................................................................................................. 13
1. Objetivo
El objetivo de esta práctica es aprender los diferentes lenguajes de programación,
para ello se realizará un programa en los diferentes softwares de desarrollo
MPLAB, PIC C, MikroCode Basic y VHDL.

2. Introducción
En esta práctica se utilizarán algunos softwares para programar el
comportamiento de las compuertas lógicas (AND, OR, XNOR, NOT, NAND, NOR
y XNOR) en el PICF1684a y con la ayuda del simulador proteus poder visualizar
el programa.
En concreto, en esta programación se utilizarán los puertos de entrada/salida
digitales. Los programa realizados en MPLAB y VHDL se realizará en físico,
tomará las entradas por el puerto A mientras que las del puerto B mostrarán la
salida por la barra de leds. Se realizarán algunas pruebas simuladas antes de
quemar el PIC y las programaciones de los demás softwares serán solamente
simuladas.
3. Compuertas Lógicas
Las Compuertas Lógicas son circuitos electrónicos conformados internamente por
transistores que se encuentran con arreglos especiales con los que otorgan
señales de voltaje como resultado o una salida de forma booleana, están
obtenidos por operaciones lógicas binarias (suma, multiplicación). También
niegan, afirman, incluyen o excluyen según sus propiedades lógicas. Estas
compuertas se pueden aplicar en otras áreas de la ciencia como mecánica,
hidráulica o neumática.
Existen diferentes tipos de compuertas y algunas de estas son más complejas,
con la posibilidad de ser simuladas por compuertas más sencillas. Todas estas
tienen tablas de verdad que explican los comportamientos en los resultados que
otorga, dependiendo del valor booleano que tenga en cada una de sus entradas.

Ilustración 1. Compuertas Lógicas

Trabajan en dos estados, "1" o "0", los cuales pueden asignarse a la lógica
positiva o lógica negativa. El estado 1 tiene un valor de 5v como máximo y el
estado 0 tiene un valor de 0v como mínimo y existiendo un umbral entre estos dos
estados donde el resultado puede variar sin saber con exactitud la salida que nos
entregara. Las lógicas se explican a continuación:
La lógica positiva es aquella que con una señal en alto se acciona, representando
un 1 binario y con una señal en bajo se desactiva, representado un 0 binario.
La lógica negativa proporciona los resultados inversamente, una señal en alto se
representa con un 0 binario y una señal en bajo se representa con un 1 binario.A
continuación vamos a analizar las diferentes operaciones lógicas una por una
comenzando por la más simple:

 Compuerta AND
Esta compuerta es representada por una multiplicación en el Algebra de Boole.
Indica que es necesario que en todas sus entradas se tenga un estado binario 1
para que la salida otorgue un 1 binario.
En caso contrario de que falte alguna de sus entradas con este estado o no tenga
si quiera una accionada, la salida no podrá cambiar de estado y permanecerá en
0. Esta puede ser simbolizada por dos o más interruptores en serie de los cuales
todos deben estar activos para que esta permita el flujo de la corriente.

Tabla 1. Representación y Formula Compuerta AND

 Compuerta OR
En el Algebra de Boole esta es una suma. Esta compuerta permite que con
cualquiera de sus entradas que este en estado binario 1, su salida pasara a un
estado 1 también.
No es necesario que todas sus entradas estén accionadas para conseguir un
estado 1 a la salida pero tampoco causa algún inconveniente. Para lograr un
estado 0 a la salida, todas sus entradas deben estar en el mismo valor de 0. Se
puede interpretar como dos interruptores en paralelo, que sin importar cual se
accione, será posible el paso de la corriente.
Tabla 2. Representación y Formula Compuerta OR

 Compuerta NOT
En este caso esta compuerta solo tiene una entrada y una salida y esta actúa
como un inversor. Para esta situación en la entrada se colocara un 1 y en la salida
otorgara un 0 y en el caso contrario esta recibirá un 0 y mostrara un 1. Por lo cual
todo lo que llegue a su entrada, será inverso en su salida.

Tabla 3. Representación y Fórmula Compuerta NOT

 Compuerta NAND
También denominada como AND negada, esta compuerta trabaja al contrario de
una AND ya que al no tener entradas en 1 o solamente alguna de ellas, esta
concede un 1 en su salida, pero si esta tiene todas sus entradas en 1 la salida se
presenta con un 0.
Tabla [Link]ón y Fórmula Compuerta NAND

 Compuerta NOR
Así como vimos anteriormente, la compuerta OR también tiene su versión inversa.
Esta compuerta cuando tiene sus entradas en estado 0 su salida estará en 1, pero
si alguna de sus entradas pasa a un estado 1 sin importar en qué posición, su
salida será un estado 0.

Tabla 5. Representación y Fórmula Compuerta NOR

 Compuerta XOR
También llamada OR exclusiva, esta actúa como una suma binaria de un digito
cada uno y el resultado de la suma seria la salida. Otra manera de verlo es que
con valores de entrada igual el estado de salida es 0 y con valores de entrada
diferente, la salida será 1.
Tabla 6. Representación y Fórmula Compuerta XOR

 Compuerta XNOR
Esta es todo lo contrario a la compuerta XOR, ya que cuando las entradas sean iguales se
presentara una salida en estado 1 y si son diferentes la salida será un estado 0.

Tabla 7. Representación y Fórmula Compuerta XNOR

 Compuerta IF
Esta compuerta no es una muy utilizada o reconocida ya que su funcionamiento
en estados lógicos es parecido a si solo hubiera un cable conectado porque
exactamente lo que se le coloque en la entrada, se encontrara en la salida. Pero
también es conocido como un buffer, en la práctica se utiliza como amplificador de
corriente o como seguidor de tensión para adaptar impedancias.

Tabla [Link]ón y Fórmula Compuerta IF


4. Microcontrolador 16f84
Microchip fabrica una serie de microcontroladores llamados PIC. Los hay
disponibles de distintas capacidades, desde algunos tipos básicos con poca
memoria, hasta los que tienen convertidores Analógico a Digital (ADC) incluidos o
incluso los que llevan dentro PWMs (Pulse Width Modulators = Modulación por
Ancho de Pulso.
Hay diversas formas de programar el PIC, usando BASIC, C, o Lenguaje
Ensamblador.

4.1 LOS PINES DEL 16F84

Ilustración 2. Representación del PIC16F84

RA0 a RA4
RA es un puerto bidireccional. Eso quiere decir que puede ser configurado como
entrada o como salida. El número que hay después de RA indica el número de bit
(0 a 4). Por tanto, tenemos un puerto bidireccional de 5 bits donde cada bit puede
ser configurado como entrada o como salida.

RB0 a RB7
RB es un segundo puerto bidireccional. Se comporta exactamente de la misma
manera que RA, excepto que este tiene 8 bits.

VSS y VDD
Estos son los pins de alimentación. VDD es la alimentación positiva, y VSS es el
negativo de la alimentación, o 0 Voltios. La tensión máxima de alimentación que
puedes utilizar son 6 Voltios, y el mínimo son 2 Voltios.
OSC1/CLK IN y OSC2/CLKOUT
Estos pines son donde conectaremos el reloj externo, para que el microcontrolador
disponga de algún tipo de temporización.

MCLR
Este pin se utiliza para borrar las posiciones de memoria dentro del PIC ([Link].
cuando quiero reprogramarlo). Durante el funcionamiento normal está conectado a
la alimentación positiva.

INT
Este es un pin de entrada que puede ser monitorizado. Si el pin se pone a nivel
alto, podemos hacer que el programa se reinicie, se pare o cualquier otra función
de deseemos.

TOCK1
Esta es otra entrada de reloj, que opera con un temporizador interno. Opera
aisladamente del reloj principal.
5. MPLAB
MPLAB es un editor IDE gratuito, destinado a productos de la marca Microchip.
Este editor es modular, permite seleccionar los distintos microcontroladores
soportados, además de permitir la grabación de estos circuitos integrados
directamente al programador. Es un programa que corre bajo Windows, Mac OS y
Linux.
Una vez en la Interfaz del software hay que realizar un proyecto en donde se
colocará el PIC a utilizar, se pondrá la ubicación en donde se quiera guardar el
archivo (es recomendable hacer una carpeta en el disco local).
Una vez hecho eso se procederá con el Encabezado.

Ilustración 3. Encabezado MPLAB

__CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON
En este software al programar es importante colocar el encabezado; la
configuración permite que en software entienda que cosas estarán activadas y
desactivadas.

&_XT_OSC
De igual forma se puede colocar la frecuencia dependiendo del oscilador que
utilizará el PIC.

LIST p=16F84a
INCLUDE <[Link]>
Además se llamará la librería del PIC que se utilizará; cuando se esté realizando
el programa, el código escrito anteriormente le va a permitir al software que
entienda los códigos.
Una vez puesto lo anterior se podrá comenzar a programar.

5.1 LOS REGISTROS


Un registro es un lugar dentro del PIC que puede ser escrito, leído o ambas cosas.
Piensa en un registro como si fuese un trozo de papel donde tú puedes ver la
información o escribirla.

Ilustración 4. Registros del PIC16F84

La primera cosa que notarás es que está dividido en dos, Banco 0 y Banco 1. El
Banco 1 es utilizado para controlar las propias operaciones del PIC, por ejemplo
para decirle al PIC cuales bits del Puerto A son entradas y cuales son salidas. El
Banco 0 se utiliza para manipular los datos.
Los registros que vamos a usar más comunes en el Banco 1 son STATUS, TRISA
y TRISB.
El primero permite volver al Banco 0, TRISA nos permite establecer los pines que
serán entradas y los que serán salidas del Puerto A, TRISB nos permite establecer
los pines que serán entradas y los que serán salidas del puerto B.

STATUS
Para cambiar del Banco 0 al Banco 1 utilizamos el registro STATUS. Hacemos
esto poniendo el bit 5 del registro STATUS a 1. Para cambiar de nuevo al Banco 0,
ponemos el bit 5 del registro STATUS a 0. El registro STATUS se localiza en la
dirección 03h (la ‘h’ significa que el número es hexadecimal).

TRISA y TRISB
Están localizados en las direcciones 85h y 86h respectivamente. Para programar
que un pin sea una salida o una entrada, simplemente enviamos un 0 o un 1 al bit
en cuestión en el registro. Ahora, podemos hacer esto ya sea en binario o en
hexadecimal.
Entonces en el puerto A tenemos 5 pines, por tanto 5 bits. Si deseamos poner uno
de los pines como entrada, enviamos un 1 al bit en cuestión. Si deseamos poner
uno de los pines como salida, ponemos un 0 en ese bit. Los bits están definidos de
manera correspondiente con los pines, en otras palabras el bit 0 es el RA0, el bit 1
es el RA1, el bit 2 es el RA2, y así sucesivamente.

Pin del Puerto A RA4 RA3 RA2 RA1 RA0


Numero de bit 4 3 2 1 0
Valor Binario 0 0 1 1 0
Tabla 9. Representación de los pines

PORTA y PORTB
Para poner uno de nuestros pines de salida a nivel alto, simplemente ponemos un
1 el bit correspondiente en nuestro registro PORTA o PORTB. El formato es el
mismo que para los registros TRISA y TRISB.
W
El registro W es un registro de propósito general al cual le puedes asignar
cualquier valor que desees. Una vez que has asignado un valor a ese registro,
puedes sumarle cualquier otro valor, o moverlo. Si le asignas otro valor a W, su
contenido es sobrescrito.
Para continuar aún faltan demasiados códigos como son los Operadores de
Carga, Aritméticos, de Bit, Lógicos, Saltos etc.

5.1.1 SIMULACION

Al terminar el Programa se compilo y se simulo en Proteus.

Ilustración 5. Simulación con las entradas en 00


Ilustración [Link]ón con las entradas en 10

Ilustración [Link]ón con las entradas en 11

Al observar la simulación sin tener algún error se continuó a quemar el PIC

Common questions

Con tecnología de IA

La compuerta AND requiere que todas sus entradas estén en estado binario 1 para que su salida sea 1. Si alguna de sus entradas no está en 1, la salida permanecerá en 0. Esta compuerta se simboliza por dos o más interruptores en serie, todos deben estar activos para permitir el flujo de corriente .

La compuerta IF se comporta como un buffer, transmitiendo directamente su entrada a la salida sin alteración lógica. A diferencia de otras que modifican o controlan señales, sirve para amplificar corriente y adaptar impedancias. Su aplicación es menos en operaciones lógicas y más en la interconexión y adaptación de señales dentro de un circuito .

La compuerta OR en el Algebra de Boole se representa como una suma. Permite que si cualquiera de sus entradas está en estado binario 1, la salida también será 1. No requiere que todas las entradas estén activas para una salida en alto, pero todas deben ser 0 para que la salida sea 0. Se representa en circuitos como interruptores en paralelo, donde con al menos uno activo, permite el flujo de corriente .

MPLAB es un IDE gratuito que permite programar microcontroladores, como el PIC16F84, seleccionando y configurando circuitos integrados directamente al programador. En la simulación de circuitos, MPLAB integra librerías del PIC utilizado y su encabezado de configuración, facilitando pruebas y verificación previa a la grabación física del microcontrolador .

La compuerta NAND es la negación de la AND y genera un 1 mientras no todas sus entradas sean 1. La NOR es la negación de la OR y produce un 1 solo si todas las entradas son 0, volviendo a 0 si alguna es 1. Ambas son útiles para construir circuitos más complejos debido a que cualquier función lógica puede ser implementada usando solo NAND o NOR, facilitando el diseño y simplificación de circuitos .

La compuerta XOR produce una salida de 1 solo cuando las entradas son diferentes, mientras que la XNOR genera una salida de 1 cuando las entradas son iguales. En la práctica, XOR se usa para detección de diferencias binarias o sumas binarias, mientras XNOR es útil para comparaciones de igualdad binaria, importante en circuitos de detección de paridad .

La compuerta NOT actúa como un inversor con una sola entrada y salida; intercambia un valor de 1 por 0 y viceversa. Su uso es crucial para revertir una señal en situaciones donde es necesario cambiar el sentido lógico de una entrada, como cuando se necesita un valor inverso para activar otro componente del sistema .

La simulación en Proteus permite verificar la correcta programación del PIC antes de su implementación física, reduciendo errores potenciales. Visualiza las operaciones según el programa desarrollado, asegurando que las funciones lógicas y de control respondan como se espera, optimizando así el proceso de desarrollo del circuito .

El registro STATUS controla cambios de banco en el PIC16F84, estableciendo 1 o 0 en el bit 5 para alternar entre Banco 1 y Banco 0. TRISA y TRISB establecen la configuración de los pines como entradas o salidas mediante asignación de 1 o 0 a los bits correspondientes, permitiendo el control individual de cada pin como necesario .

El PIC16F84 tiene capacidades de memoria y puede ser programado usando BASIC, C o ensamblador. Tiene puertos bidireccionales como RA (5 bits) y RB (8 bits), los cuales se configuran para entradas o salidas mediante los registros TRISA y TRISB, asignando 1 para entrada y 0 para salida en los bits correspondientes a cada pin .

También podría gustarte