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ónEn 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.

FuncionamientoCODIGO 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
Leer Más.....