Usted dijo que es un novato, ¿Tiene alguna experiencia en C o en la programación de ensamblajes? En cuanto a su pregunta, el requisito de su programa no es simple.
Sin embargo, te guiaré.
Puede hacer su trabajo con un solo microcontrolador, pero necesita una técnica de multiplexación para esto, ya que su controlador descrito tiene 15 E / S y usted está interconectando 17 LED, 1 interruptor de botón y 1 timbre.
Para Buzzer se requiere una salida.
Para el botón pulsador se requiere una entrada.
Para 3 LED de rotación y 2 LED de velocidad necesitas 5 salidas
Para 12 LED, puede conectar los 12 LED en formato 4x3, 12 LED en 4 filas y 3 colores, que consumieron 7 salidas.
Por lo tanto, se consumen un total de 14 E / S, 1 aún está libre.
Supuse que tienes algunos conocimientos básicos sobre la programación de microcontroladores y todos sus registros.
Usted tiene que hacer su programa en forma modular (módulo: pequeño o un programa grande) y etiquetarlos según su nombre de función, cada función tiene su propio módulo. Digamos que el nombre del módulo de función LED Chaser puede ser LED_Chaseer o LED_Chase.
Cree un módulo para la función de temporizador y otro para la función de interruptor y buzzer.
Función de interrupción del temporizador ONE, donde está controlando todos los LED.
Obviamente, se requiere una función principal para ejecutar de forma continua. En esta función PRINCIPAL, debe leer primero la función de cambio que el temporizador de inicio enviando un valor a la función de temporizador. En cada temporizador, interrumpa los LED de la unidad como desee. y que incrementa o disminuye el valor del temporizador para el cambio visual del LED.
De esta manera puedes obtener tus resultados.
Te deseo la mejor de las suertes