Desplazando de izq a derecha y de derecha a izq
Practica:Desplazando LEDs
Descripción: 8 LEDs son conectados al PORTB del PIC. Los LEDs cuentan con una separacion de tiempo de 240ms. El contador empieza de 1 (10000000) y llega a 128 (00000001) y lo repite nuevamente, lo explicare mas detalladamente, contamos con 8 LEDs, los cuales se encenderan de a uno, ¿de que manera? encendiendo los leds hacia la izquierda:
se enciende el led1 equivale a 00000001 en decimal 1
se enciende el led2 equivale a 00000010 en decimal 2
se enciende el led3 equivale a 00000100 en decimal 4
se enciende el led4 equivale a 00001000 en decimal 8
se enciende el led5 equivale a 00010000 en decimal 16
se enciende el led6 equivale a 00100000 en decimal 32
se enciende el led7 equivale a 01000000 en decimal 64
se enciende el led8 equivale a 10000000 en decimal 128
y hacia la derecha es a la inversa. Nuestro programa constara de dos fases inciara desplazando hacia la izquierda (en decimal seria en 1) y comparará si es igual a 64(en decimal) si no es asi pues sigue desplazando hacia la izquierda eso lo hace con el operador aritmetico << si la comparacion sale cierta se salta a inicioDOS (etiqueta utilizada en el programa) el cual coloca el contador en 128 (osea 10000000) con esto empieza el desplazamiento hacia la derecha y realiza nuevamente la comparacion si es igual a 1(en decimal) se pasa al desplazamiendo hacia la izquierda sino sigue igual desplazando hacia la derecha con el operador aritmetico >> para entenderlo chequen el codigo y la simulacion.
Nota: El voltaje consumido por el LED es aproximadamente de 2V. Asumiendo que la corriente que consume el LED es de 10mA, calculando la resistencia:
R=V/I=(5-2)/10mA= 0.3K = 330 Ohms
Materiales:
PIC16F84A
Resistencia de 330Ohms, 4.7K
8 LEDs
Cristal de 4MHZ
Estructura del Programa
'DEFINICIONES
contador var byte
contadorDOS var byte
'DEFINIENDO PUERTO
TRISB = 0
'iniciando programa
'desplazando hacia la izquierda
inicio:
contador = 1
repetir:
PORTB = contador
pause 240
if contador = 64 then inicioDOS
contador = contador <<>
'desplazando hacia la derecha
inicioDOS:
contadorDOS = 128
repetirDOS:
PORTB = contadorDOS
PAUSE 240
if contadorDOS = 2 then inicio
contadorDOS = contadorDOS >> 1
goto repetirDOS
END
DIAGRAMA

SIMULACION
++ DESCARGAR ARCHIVO ++
Leer Más.....