Simon dice Informe Integrantes: Gonzalez Leonardo, Franco Rojas Nahuel, Diepold Alan. Taller: Practicas profesionalizantes Curso: 7mo lera Grupo: 71 1 Especialidad: Electronica Profesor: Nakasone OF6 p Año: 2015 Escuela: E. E. T NI sumando una nueva luz a la secuencia anterior para aumentar su dificultad. Este juego tiene 4 dificultades distintas, en cual cada una varia la velocidad de encendido y apagado de los led’s en cada secuencia. Problemas técnicos: 1. En este caso hubo fallas al imprimir el PCB y a la hora de plancharlo. . A raíz del primer caso hubo inconvenientes con la soldadura las cuales levantaron pistas de la placa o hacían cortos. 3. Tuvimos que que cambiar la programación ya que no se comercializa el pic que teníamos pensado usar. 4. Se tuvo que rehacer el programa en base a fallos en la secuencia de las luces 5. Se tuvo que modificar el programa para solucionar problemas en los niveles de dificultad 6. Al cargar el pic y poner a funcionar la placa no funcionaba el buzzer. 7.
Luego de solucionar el error 6, al volver al cargar el pic y probar a placa nuevamente, uno de los leds en la secuencia y uno de los niveles,
tildaban al programa y manualmente se volvia a iniciar el Juego. Programación: #include <1 6F628A. h> #fuses INTRC #use #fuses NOWDT,NOPUT #byte #bvte PORTA 0x05 PORTB = OX06 // Puerto A its usados pulso viene determinada output_low(PlN_B3); void antirebote() delay_ms(30); // por el parámetro tono while(PORTB ! = O) {Y // No progresa hasta que ningún pulsador esté activo void comprueba() leido = read_eeprom(dir lectura); // Lee la dirección eeprom correspondiente. / Si la pulsación no es correcta, se f(leido color_pulsado) reinicia el fin_juego = true; // juego y vuelve al principio del programa void enciende_led(int color) // Enciende el led correspondiente switch(color) case 1: output_low(PlN azul alta luminosidad 3 break; PORTA – 15; encendido sale = true; antireboteo; }else if(RB5) { nivel 2; PORTA = 15; output_low(PlN_A1 ); antirebote(); }else If(RB6) { nivel = 3; PORTA 15; }else if(RB7) { nivel = 4; output_low(PlN_A3); // Nivel 1 – > led azul alta luminosidad // Nivel 2 – > led verde comun // Nivel 3 – led rojo comun // Nivel 4- > led amarillo comun else { sale = false; PORTA O; los 4 leds Jugar PORTA: 15, // Una vez seleccionado el nivel, se encienden // para indicar que podemos empezar a retardo(nivel); void short sal; dir lectura = O; aleatorio = 1; // Retardo según nivel de dificultad // Recolecta los pulsos validos y se comprobando si son correctos, hasta que // alguna no lo sea o hasta que se haya acertado todos los colores guardados // hasta el momento. dir_escritura contiene la dirección eeprom siguiente al último color guardado // y dir_lectura la usamos para ir consultando cada posición de emoria y comprobar si la pulsación es correcta. En el momento en que se falla algun pulso, fin_juego toma // el valor TRUE. // Durante la ejecución del bucle, «aleatorio» va cambiando de valor,hasta que se pulse el // último color,momento en el cual salimos del bucle y guardamos «aleatorio» en memoria. hile((dir_lectura < dir_escritura) && sal = false; // Mientras no haya pulsos se mantiene en el bucle genera_aleatorio(); los colores guardados bucle // Para conseguir aleatoriedad en // Se pulsa el verde AL y sale del 5 que se pulso dir lectura++; irección eeprom void man() 110000); RBO,RBI ,RB2 Y RB3 salidas output_low(PlN_B0); INTCON=O; // Apaga el led // Para comprobar la siguiente // y RB7 entradas // Todo salidas // RBO no se usa // RBI no se usa // RB2 no se usa // RB3 conectado al altavoz enabIe_interrupts(lNT EEPROM); // Unica interrupción habilitada durante toda la ejecución interrupciones for(;;) // se inician las variables // Habilitador general de dir escritura = dir lectura = color leido = leido - color_pulsado fin_juego = false; aleatorio = 1, escoge_nivel(); tre 4 niveles de dificultad