Está en la página 1de 4

Codificacion:

Las imágenes presentadas aquí


corresponden al código
realizado en MPLAB se
explicaran las partes mas
notables del proceso seguido
para realizar el código :

 Dejamos la
configuración de bits
del microcontrolador
tal como fueron
realizados en la
práctica (para más
detalles consulte el
primer reporte)
 En la declaración de
variables declaramos
3 variables que
utilizaremos para realizar nuestro ciclo de retardo de 600 ms

 Configuramos para trabajar con una frecuencia


de oscilador interno de 4Mhz y configuramos 2
bits del puerto B como entrada los cuales
usamos para conectar nuestros botones que
nos permitirán cambiar entre las secuencias que
realizan los leds y configuramos todo el puerto
D como salida que es donde irán conectados
nuestros leds.

El ciclo F corresponde al ciclo hacia adelante donde ira


encendiendo los leds en orden ascendente, para ello movíamos
valores potencias de 2 desde la potencia 0 hasta la 7 al registro de
trabajo y posteriormente al puerto D para encender el led
correspondiente esto difiere de lo establecido en el diagrama de
flujo pero es una manera menos complicada aunque no por ello
más eficiente de codificar lo establecido ahí, entre cada encendido de los leds se
ejecutaba la subrutina RETARDO la cual se definirá más adelante.

 Una vez que se completaba la secuencia de luces con la


operación BTFSC se checaba el estado de PB.1 si este era
1 ejecutaría la operación inmediata siguiente y se
metería al ciclo de la función especial, de ser 0 ignoraría
la operación inmediata y saltaría a otra donde ahora
haría lo mismo con PB.0 y de ser 1 saldría del ciclo y
entraría al ciclo donde realiza la misma serie pero ahora
en decremento, de ser 0 simplemente seguiría en el
mismo ciclo , de esta misma forma se realizó la
programación del ciclo en reversa y el ciclo especial, con
la única diferencia de los leds que enciende.

 Para la operación
de retardo lo
realizamos tal
como se muestra
en la imagen de
alado, cabe
destacar que aquí
varia respecto a
lo realizado en el
diagrama de
flujo, esto debido
a las operaciones
de salto que al
anidar los ciclos
se vuelven algo difíciles de contar el número de operaciones realizadas y por ende
el tiempo, sin embargo puede comprobarse perfectamente con el uso de la
simulación y el stopwatch que poniendo un Brakepoint en donde termina de
realizar la subrutina pudimos obtener el siguiente resultado:
Capturas del código completo: