Desplazamiento de Luces usando LEDs
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
















Anónimo
21 de diciembre de 2008 20:17
Para tener informacion sobre topicos de micrcontroladores entren a la siguiente pagina de la ESPOL, encontraran algunas materias que se dictan en FIEC entre las cuales encontraran la materia de microcontroladores, podran ver los temas basicos de la
materia de microcontroladores
www.fiec.espol.edu.ec/index.php?view=article&catid=30%3AMaterias&id=270%3Amaterias-por-orden-alfabetico-mopqr&option=com_content&Itemid=110
OptimusTronic
27 de diciembre de 2008 13:34
Gracias por la informacion....
Anónimo
17 de julio de 2009 15:59
ola no tienes el circuito hecho para cargarlo en el isis proteus para poder simularlo
solo quiero comprobar si funciona
o quizas ya está y nosé donde me podrias decir please
de antemano gracias