Paso 3: programación
Puesta en marcha:
Cuando se enciende el microcontrolador lee el reloj y se asegura de que el reloj corre a poco ajuste 7 de registro 0 (osciloscopio permiten poco) a 0. Como indica la hoja de datos, esto es necesario porque no se define el estado inicial de encendido de los registros.
Bucle principal:
Una vez que el programa entra en el bucle principal, se lee el reloj de nuevo y convertir a los números decimales 3 (categoría, horas, segundos) en 6 columnas.
He utilizado después de cálculo(ver foto de las columnas):
segundos:
valor / 10 (disgard los decimales) te da columna 2
valor - (colum2 * 10) le da columna 1
Categoría:
valor / 10 (disgard los decimales) te da columna 4
valor - (colum2 * 10) le da columna 3
horas:
valor / 10 (disgard los decimales) te da columna 6
valor - (colum2 * 10) le da columna 5
Cuando los valores de la columna pasan a Puerto C según la columna que se permite en el puerto B. Esta multiplexación nos permite usar menos pines y mantiene la corriente inferior a 100 mA.
Después de esto se reinicia el bucle
Cuando se pulsa un botón, se llama la interrupción correspondiente y las horas o categoría se incrementaron 1 por consiguiente. El reloj se encuentra inmediatamente después de aumentar un valor mediante una subrutina de conjunto.
He añadido una hexfile con el programa.