Sunteți pe pagina 1din 4

CONTADOR DE 0 A 9 CON PIC16F84A

Siguiendo con las prcticas en Pic Basic Pro y utilizando el MicroCode Studio para nuestros Microcontroladores PIC, en esta ocasin utilizaremos un Display de 7 Segmentos para visualizar los nmeros del 0 al 9 de manera que haremos un contador, fcil de realizar. Adems es una pequea demostracin de la gran cantidad de formas en las cuales podemos utilizar el ya conocido PIC16F84A. Algo que tenemos que tener en cuenta es que el cdigo cambia dependiendo si usamos un display de nodo comn o de ctodo comn. En este caso lo veremos con un display de ctodo comn, lo que nos dice que para que algn segmento encienda el pin tiene que recibir un 1 lgico. Por lo tanto para saber qu es lo que deseamos ver en el display necesitamos que el puerto B del PIC o salidas (RB0-RB7) tengan 1 lgicos 0 lgicos. Como lo que queremos ver en el display con los nmeros del 0 al 9 tenemos la siguiente tabla que nos mostrara mejor lo antes mencionado. Tambin se muestra los nmeros en decimal, hexadecimal y binario esto nos ser til al momento de realizar la programacin, que son las tres formas de mandar datos al puerto B de nuestro PIC.

Figura 1. Tabla de verdad del display de 7 segmentos con PIC.

1 Pedro Snchez

mrchunckuee.psr@gmail.com

http://electronicayrobotica.wordpress.com/

El circuito es sencillo consta de un display de 7 segmentos de ctodo comn conectado al puerto B del PIC16F84A con sus debidas resistencias y tambin su oscilador a 4MHz cons sus respectivos capacitores de 22pF, en este ejemplo no se utiliza el Master Clear por lo que nada mas tiene una resistencia a Vcc para que el PIC trabaje adecuadamente. Recordar que los pines de alimentacin del PIC son: 5 para GND y 14 para Vcc=5 Volts. El circuito se muestra a continuacin:

El comando que se utilizara para mostrar el valor en el puerto B es LOOKUP el cual puede ser usado para obtener valores de una tabla de constantes de 8 bits en este caso utilizaremos la variable DIGITO. Los valores que irn dentro de LOOKUP en este ejemplo sern en forma hexadecimal para ello el compilador requiere que se utilice el smbolo $, si se quisiera utilizar los nmeros en binario se debe de agregar el % y para los decimales solo basta escribir el numero tal y como es, estas tres posibilidades deben de ir separadas por comas. 2 Pedro Snchez mrchunckuee.psr@gmail.com http://electronicayrobotica.wordpress.com/

El cdigo en Basic para este circuito es el siguiente: CONTADOR_CON_PIC.pbp


TRISB = 0 'Puerto B como salida DIGITO VAR byte 'Declaramos la variable digito PORTB = 0 'Inicializamos puerto B en cero INICIO: DIGITO = 0 'Inicializamos digito en cero CONTADOR_MAIN: lookup DIGITO, [$3F, $06, $5B, $4F, $66, $6D, $7D, $07, $7F, $6F, $3F], PORTB 'El valor seleccionado por lookup se muestra en el Puerto B DIGITO = DIGITO + 1 'Va incrementando uno a digito pause 1000 'Espera un segundo y muestra el siguiente digito if DIGITO = 10 then INICIO 'Si digito=10 reiniciara el conteo goto CONTADOR_MAIN 'Si es falso la condicion anterior sige incrementando END 'Fin del programa

Se declara el puerto B como salida, se declara la variable DIGITO, se inicializa el puerto un cero, etiqueta de inicio y luego inicializa la variable, etiqueta de CONTADOR_MAIN que es la principal y es la encargada de hacer el conteo e ir incrementando. La instruccin LOOKUP va mostrar una variable DIGITO en el puerto B y se tiene la siguiente sintaxis: LOOKUP digito, [$3F, $06, $5B, $4F, $66, $6D, $7D, $07, $7F, $6F, $3F], PORTB Se utiliza la variable DIGITO para saber que dato es que se va a mostrar recordar que esta variable, despus de mostrar se incrementa en uno, despus de le coloca un retardo de 1 segundo para visualizar el display, si el valor se pasa de 10 la variable DIGITO vuelve a ser cero y empieza el conteo otra vez. Dejo la lista de material para poder realizar este ejemplo y seguir aprendiendo de la programacin.

3 Pedro Snchez

mrchunckuee.psr@gmail.com

http://electronicayrobotica.wordpress.com/

MATERIAL: 1 PIC16F84A 1 Display de 7 segmentos de ctodo comn 1 Cristal de cuarzo de 4MHz 2 Condensadores de 22pF 8 Resistores de 330

4 Pedro Snchez

mrchunckuee.psr@gmail.com

http://electronicayrobotica.wordpress.com/

S-ar putea să vă placă și