Contador de 0-9 con PIC16F84A

Introducción
Cuando deseamos hacer un contador simple de 0-9 podemos usar flip-flops o circuitos integrados especiales para contadores, pero de cualquier manera tenemos que usar cierto número de elementos los cuales pueden ir creciendo dependiendo de lo que vamos a usar. Pero cuando usamos PICs todo se resuelve de manera más sencillo en el caso del Hardware los elementos son minimos y por lo tanto el gasto es menor comparado si lo hicieramos con flip-flops y lo bueno es que el PIC lo podemos reprogramar a nuestro antojo.

Descripción

En este pequeño proyecto utilizaremos un Display de 7 Segmentos para desplegar los números de 1 a 9 de manera que haremos un contador. Algo que tenemos que tener en cuenta es que dependiendo si usamos un display anódo común o cátodo común el programa del PIC puede cambiar. En este caso lo veremos con un display de cátodo común, lo que nos dice que para que algún segmento encienda el pin tiene que recibir un 1 lógico. Por lo tanto para saber que es lo que deseamos ver en el display necesitamos que el puerto B del PIC (RB0-RB7) tengan 1 lógicos ó 0 lógicos tal y como se ve en la siguiente tabla.




Funcionamiento


CODIGO DEL PROGRAMA

'DEFINIENDO VARIABLES 1 byte = 8 bits = 8 salidas > RB0-RB7
contador VAR byte
muestra var byte

'INICIANDO
TRISB = 0         'el PORTB como salida

inicio:
contador = 0     'inicializamos el contador a 0
programa:
gosub NUMERO     'se ve el numero elegido en PORTB
PORTB = muestra  'PORTB toma el valor de muestra
contador = contador + 1  'se incrementa contador con 1
pause 1000     'espera 1 segundo
if contador = 10 then inicio 'compara, si llega al #9 reinicia a #0
goto programa

NUMERO:
lookup contador, [63,6,91,79,102,109,125,7,127,111], muestra 'asigna valor
return

END                              'fin del programa



Ahora explicaré el codigo del programa;

inicio:
contador = 0                   'inicializamos el contador a 0
primero, contador será igual a 0 luego por la instrucción.


programa:
gosub NUMERO                        'se ve el numero elegido en PORTB
.
.
.
.

NUMERO:
lookup contador, [63,6,91,79,102,109,125,7,127,111], muestra 'asigna valor
return
END                                              'fin del programa


con gosub numero nos direcciona a una subrutina (llamada NUMERO)que contiene el comando lookup; el cual puede ser usado para obtener valores de una tabla de constantes de 8 bits, en este caso usaremos contador y si contador es igual a cero, muestra toma el valor de la primera constante ( que seria 63 y así sucesivamente hasta que tome todas las constantes disponibles) luego regresá y toma la siguiente linea,
PORTB = muestra                 'PORTB toma el valor de muestra
contador = contador + 1        'se incrementa contador con 1
pause 1000                              'espera 1 segundo
if contador = 10 then inicio    'compara, si llega al #9 reinicia a #0
goto programa


luego el valor que tomó muestra es colocado en PORTB y será el valor que se visualizará en el DISPLAY, luego contador tendrá el valor que tenia anteriormente más uno, habra una pausa de 1 segundo para que podamos ver el resultado en el display y si contador es igual a 10 reinicia el programa de lo contrario repetira la secuencia.

En la siguiente tabla se muestra las constantes que se usarón en el comando LOOKUP, usamos decimales, aunque tambien se pueden colocar hexadecimales.


DIAGRAMA explicado
DIAGRAMA

SIMULACIÓN

>> DESCARGAR ARCHIVOS <<

No response to “Contador de 0-9 con PIC16F84A”