Sumador con pic16f84a de 2 números de 4 bits

Introducción

La práctica es construir un sumador con pic16f84a, el cual consiste en la creación de un circuito que sume 2 números de 4 bits y mostrar el número resultante en 5 bits. El trabajo fue realizado en un circuito de prueba armado en un protoboard, usando un PIC16F84A para realizar los procesos, 5 leds para mostrar la salida y un dipswitch de 8 switches como valores de entrada (4 y 4).

Desarrollo

La idea del programa del sumador con pic16f84a  es sumar 2 números de 4 bits, esos 2 números los tomaríamos del PORTB el cual dispone de 8, los 4 bits menos significativos para un numero (a), y los 4 restantes para el otro (b).

 

dipswitch

 

El número más grande que puede ser formado por 4 bits es 15, por lo tanto el conjunto de valores que podrían dar como resultado de la suma son números del 0 al 30. Y el  número más grande representable con los 5 bits del PORTA es 31, por lo tanto PORTA puede representar el número sumado máximo posible. Cabe mencionar que los bits más significativos tienen que recorrerse ya que si ejemplificamos un 1 realmente el valor es el del bit4 osea 16 en decimal. por lo tanto tiene que realizarse un corrimiento de estos bits hacia lo menos significativo.

Temporizador con Timer0 – TMR0

En este tema hablaremos sobre el Temporizador con Timer0, que constantemente se utiliza en la realización de proyectos. Es sumamente importante conocer la formula, ya que muchas veces la muestran en los blogs pero no especifican bien como salen los números que muestran, Aquí en tallerdecontrol.com  especificaremos cada uno de los parámetros de la formula del Temporizador con Timer0.

El tiempo deseado en una temporización se calcular a partir de un ciclo de instrucción, este puede variar dependiendo del Cristal con el que está trabajando nuestro Micro, ya sea de 4Mhz el TX, el tiempo de ejecución de cada instrucción es de 1 microsegundo para instrucciones sin salto.

Es necesario elegir también el valor del Divisor de Frecuencia o mejor llamado Prescaler (con los Bit’s PS2, PS1 y PS0). La ecuación que nos da la hoja de datos de los micros es la siguiente…

Temporización = (4 * (255-TMR0) * PreScaler)/Fosc 

Temporización: es el tiempo que deseamos configurar nuestro Timer. Hay que tener en cuenta las limitantes de nuestro micro. Ya que muchas veces hemos deseado hacer un timer de 1 Segundo y esto no es posible.

TMR0: es el valor con el cual empezara a contar nuestro TIMER, por ejemplo si lo iniciamos a  200 solamente se ejecutará 56 veces ya que al llegar al 256  se sobrecarga y se reinicializa a 0.

255: es el complemento, como se explicó en el punto anterior, el valor del TIMER depende de la resta con 255, porque solamente tomará valores de 0 a 255, porque nuestro ancho del TMR0 es de 8bits. Este punto es muy importante, este número de 255 no es para todos los micros, si el TMR de nuestro Micro es de 16 bits como en el caso del PIC18F4550 entonces puede sobrepasar el valor de 255 nuestro complemento es de 65535.

Hello World – con Retardos

Introducción

Esta es la segunda práctica llamada Hello World realizada en mikroC. Consiste en hacer parpadear un Led, con un retardo de 1 segundo de apagado y encendido.

Para empezar debemos de tener instalado en nuestra PC el software de MikroC. Una vez instalado, procedemos a crear un nuevo proyecto.

Nos vamos a Project / New Project.  Vea en la imagen donde se procede.

proyectoMicroC

Luego nos aparecerá otra ventana donde configuramos la ruta de nuestro proyecto (donde queda guardado y banderas) y creamos carpeta llamada Hello World, y el nombramos el proyecto como Hello World.

Hello World – PIC16F84A

Introducción

Hello World – PIC16F84A, es el primer paso para introducirnos a cualquier microcontrolador o lenguaje de programación.

Esta es la primera práctica realizada en cualquier lenguaje de programación ya que se considera la más básica, esta vez realizada en mikroC. Lo que se podrá aprender en el siguiente ejemplo, es como leer el estado de un botón conectado al PIC y tomar una decisión de prender o apagar un LED.

Para empezar debemos de tener instalado en nuestra PC el software de MikroC. Una vez instalado, procedemos a crear un nuevo proyecto.

Nos vamos a Project / New Project.  Vea en la imagen donde se procede.

proyectoMicroC

Luego nos aparecerá otra ventana donde configuramos la ruta de nuestro proyecto (donde queda guardado y banderas).

configurandobits

 

  1. Elegimos el nombre de nuestro proyecto.
  2. La ruta donde queremos alojar nuestro proyecto.
  3. En DEVICE elegimos el PIC16F84A.
  4. A la velocidad que trabaja nuestro Cristal en este caso a 4Mhz. Ya que nos puede facilitar en pantalla con un debbuger.
  5. Elegimos las banderas de inicio de nuestro PIC16F84A.  WDT ( Watch Dog Time) se inhabilita ya que nuestro programa se esta ciclando. Y este nos ayuda a que se resetie cuando este cree que se CICLO.
  6. Por último OK

 

pic16f84 y Motor a pasos

Practica de pluma con PIC16F84

Introducción

Practica Entrada a un estacionamiento con motor a pasos y pic16f84a

La practica consiste en simular el funcionamiento del control del acceso de un estacionamiento. Utilizando un motor a pasos, simularemos la pluma de la entrada a un estacionamiento. El circuito fue armado en un protoboard, usando un PIC16F84A, 1 led normal y un led infrarrojo,  1 fototransistor, 2 pushbutton y un motor a  pasos  para simular la pluma.

Desarrollo

Para desarrollar esta práctica se tiene que saber primero ¿qué es un motor a paso y cómo funciona?, al igual que también hay que saber ¿Cómo funciona un foto-transistor? Ya hecha la investigación se encontró que:
-Un motor a paso es un dispositivo que avanza paso por paso mediante un pulso electromagnético y entre ellos existen diferentes medidas en los pasos a dar y se utilizó uno de 7.5° ó 48 pasos para dar una vuelta entera.
Para hacer la práctica tenemos que saber ¿Cómo es que va avanzando paso por paso el motor? y se usaron como ejemplo las variables A, B, C y D, para tener una idea:
D C B A arreglo
0 0 0 1 1
0 0 1 1 3
0 0 1 0 2
0 1 1 0 6
0 1 0 0 4
1 1 0 0 12
1 0 0 0 8
1 0 0 1 9

Este arreglo es el utilizado, ya que un motor a pasos cuando llega al final empieza a avanzar en el espacio que este más cercano y que sea 0.
Un foto-transistor, mientras tenga reciba luz el circuito se cierra y manda un 0 a RA0 de lo contrario, si se interrumpe manda un 1 a RA0 y el circuito se abre.
Ya con esta información para hacer la práctica se tiene que armar el circuito en el protoboard.

Practica de pluma con PIC16F84

El programa debía funcionar como funciona el programa de control de un estacionamiento, el funcionamiento de este es:

-Detecta el automóvil con un sensor

-Imprime el ticket

-Espera a que recojan el ticket

-Cuando el ticket es removido  sube la pluma

-Espera a que el automóvil avanze

-Cuando  el sensor deja de detectar el automóvil espera 3 segundos

-Baja la pluma

-Regresa al estado inicial