TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: Modulay en 21 de Marzo de 2004, 21:05:00

Título: Juego Simón para 16f84
Publicado por: Modulay en 21 de Marzo de 2004, 21:05:00
Bueno para que no sea todo preguntar y preguntar y pq este foro y su gente es de lo mejor que he encontrado,ahí va una aportación de cosecha propia para el 16f84,el famoso juego de los 4 colores para poner a prueba la memoria.
EEEEEEEEPAAA!!
Vaya,no me deja adjuntar el fichero.Bueno,pos a lo bestia...


                 /******************* SIMON *********************
                  *                                             *
                  *                  By Yors                    *
                  *                 S.I.T.T.M                   *
                  *                                             *
                  ***********************************************/

/******************************** ESPECIFICACIONES *****************************

 El dispositivo físico consta de cuatro leds (rojo,verde,amarillo y azul)
 conectados a RA0,RA1,RA2 y RA3 (en ese orden),de un altavoz conectado a RB3
 y de cinco pulsadores.
 Un pulsador está conectado a RB0 (para generar el color aleatorio) y los otros
 cuatro,que corresponden a cada uno de los leds,están conectados a RB4,RB5,RB6
 y RB7.Tanto los leds como los pulsadores son activos a nivel alto.

*******************************************************************************/



/*******************
*   PREPROCESADO   *
********************/

#include <16F84.h>
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)
#fuses XT,NOWDT,NOPUT

/****************************************
*  DEFINICIÓN DE ETIQUETAS Y VARIABLES  *
*****************************************/

#byte   PORTA = 0x05      // Puerto A

#byte   PORTB = 0x06      // Puerto B y bits utilizados
#bit  RB0 = 0x06.0
#bit  RB3 = 0x06.3
#bit  RB4 = 0x06.4
#bit  RB5 = 0x06.5
#bit  RB6 = 0x06.6
#bit  RB7 = 0x06.7

#byte   INTCON = 0x0B

int aleatorio,dir_lectura,dir_escritura,color_leido,leido,color_pulsado,nivel;
short fin_juego;


/***************
*  SUBRUTINAS  *
****************/


void retardo(int latencia)
   {
   switch(latencia)
      {
      case 1: delay_ms(200);       // Correspondiente al nivel 1
      break;
      case 2: delay_ms(100);       // Nivel 2
      break;
      case 3: delay_ms(50);       // Nivel 3
      break;
      case 4: delay_ms(15);       // Nivel 4
      break;
      default:
      break;
      }
   }


void altavoz(int tono)  // Para generar un sonido diferente para cada color
   {
   int i,j;
   for(i=0; i<=40; i++)
     {
     for(j=0; j<=4; j++)
       {
       output_high(PIN_B3);      // La distancia entre pulso y pulso viene determinada
       delay_us(300*(6-tono));   //  por el parámetro tono
       output_low(PIN_B3);
       delay_us(300*(6-tono));
       }
     }
   }


void antirebote()
   {
   delay_ms(30);
   while(PORTB != 0) {}  // No progresamos hasta que ningún pulsador esté activo
   delay_ms(30);
   }


void comprueba()
   {
   leido = read_eeprom(dir_lectura);  // Leemos la dirección eeprom correspondiente.
   if(leido != color_pulsado)         // Si la pulsación no ha sido correcta,acaba el
    {                                 //  juego y volvemos al principio del programa
    fin_juego = true;
    }
   }


void enciende_led(int color)  // Enciende el led correspondiente
   {
   switch(color)
      {
      case 1: output_high(PIN_A0);     // Led rojo
      break;
      case 2: output_high(PIN_A1);     // Led verde
      break;
      case 3: output_high(PIN_A2);     // Led amarillo
      break;
      case 4: output_high(PIN_A3);     // Led azul
      break;
      default: PORTA = 15;             // Los 4 leds
      break;
      }
   }


void escoge_nivel()    // El led que se mantiene encendido corresponde al nivel elegido
   {
   nivel = 1;
   PORTA = 0;
   output_high(PIN_A0);  // Por defecto,encendemos el led rojo (nivel 1).
   while(!RB0)              // El nivel por defecto es el 1.Hasta que pulsemos RB0
      {                     //  podremos seleccionar cualquiera de los 4 niveles
      if(RB4)
       {
       nivel = 1;
       PORTA = 0;
       output_high(PIN_A0);      // Nivel 1 - > led rojo encendido
       antirebote();
       }else if(RB5) {
        nivel = 2;
        PORTA = 0;
        output_high(PIN_A1);     // Nivel 2 - > led verde encendido
        antirebote();
       }else if(RB6) {
        nivel = 3;
        PORTA = 0;
        output_high(PIN_A2);     // Nivel 3 - > led amarillo encendido
        antirebote();
       }else if(RB7) {
        nivel = 4;
        PORTA = 0;
        output_high(PIN_A3);     // Nivel 4 - > led azul encendido
        antirebote();
       }
      }
   antirebote();
   PORTA = 15;            // Una vez hemos escogido nivel,se encienden los 4 leds
   delay_ms(1000);        //  para indicar que podemos empezar a jugar
   PORTA = 0;
   }


void genera_aleatorio()   // Al pulsar RB0 genera un número entre 1 y 4 que se guardará
   {                      // tal cual en memoria...
   aleatorio = 1;               // 1 -> Rojo
   while(!RB0)                  // 2 -> Verde
     {                          // 3 -> Amarillo
     if(aleatorio == 4)         // 4 -> Azul
       {
       aleatorio = 1;
       }else {
       aleatorio++;
       }
     }
   antirebote();
   }


void guarda_color()
   {
   write_eeprom(dir_escritura,aleatorio);  // Guardamos el color generado y apuntamos a
   dir_escritura++;                        //  la siguiente dirección para una próxima
   }                                       //  escritura


void has_fallado(int tono)     // Si entramos aquí es que hemos pulsado incorrectamente
   {
   int i,j;
   enciende_led(color_pulsado);
   for(i=0; i<=100; i++)          // Generamos tono de error (más grave)
     {
     for(j=0; j<=4; j++)
       {
       output_high(PIN_B3);
       delay_ms(1*(6-tono));
       output_low(PIN_B3);
       delay_ms(1*(6-tono));
       }
     }
   delay_ms(1000);
   }


void muestra_colores()
   {
// Desde el primero hasta el último que se ha guardado en memoria,los vamos mostrando
//  con una rapidez que vendrá determinada por el nivel de dificultad elegido al principio.
   for(dir_lectura = 0; dir_lectura < dir_escritura; dir_lectura++)
      {
      color_leido = read_eeprom(dir_lectura);   // Lectura eeprom
      enciende_led(color_leido);                // Enciende led correspondiente
      altavoz(color_leido);                     // Emite tono
      retardo(nivel);                           // Retardo según nivel de dificultad
      PORTA = 0;                                // Apaga led
      retardo(nivel);                           // Retardo según nivel de dificultad
      }
   }


void pulsa_secuencia()
   {
   short sal;
   dir_lectura = 0;
// Recogemos las pulsaciones y se va comprobando si son correctas hasta que
//  alguna no lo sea o hasta que hayamos 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 memoria y comprobar
//  si la pulsación ha sido correcta.En el momento en que fallemos alguna,fin_juego toma
//  el valor TRUE.
   while((dir_lectura < dir_escritura) && (!fin_juego))
      {
      sal = false;
      while(!sal)  // Mientras no haya pulsación nos mantenemos dentro del bucle
         {
         if(input(PIN_B4))             // Se ha pulsado el rojo,salimos del bucle
          {
          color_pulsado = 1;
          sal = true;
          }else if(input(PIN_B5)) {    // Se ha pulsado el verde,salimos del bucle
          color_pulsado = 2;
          sal = true;
          }else if(input(PIN_B6)) {    // Se ha pulsado el amarillo,salimos del bucle
          color_pulsado = 3;
          sal = true;
          }else if(input(PIN_B7)) {    // Se ha pulsado el azul,salimos del bucle
          color_pulsado = 4;
          sal = true;
          }else {                      // No se ha pulsado ninguno,continuamos
          sal = false;                 //  dentro del bucle
          }
         }
      comprueba();   // Algoritmo que comprueba si la pulsación ha sido correcta
      enciende_led(color_pulsado);  // Enciende el led del color que hemos pulsado
      altavoz(color_pulsado);       // Genera el tono del color que hemos pulsado
      antirebote();                 // No comment
      PORTA = 0;                    // Apagamos led
      dir_lectura++;                // Para comprobar la siguiente dirección eeprom
      }
   }


/*********************
* PROGRAMA PRINCIPAL *
**********************/


void main()
   {
// Inicialización periféricos
   set_tris_B(0b11110001);    // RB0,RB4,RB5,RB6 y RB7 entradas --- RB1,RB2 Y RB3 salidas
   set_tris_A(0b00000000);    // Todo salidas
   output_low(PIN_B1);               // RB1 no la usamos
   output_low(PIN_B2);               // RB2 no la usamos
   output_low(PIN_B3);               // RB3 conectado al altavoz
   INTCON=0;
   enable_interrupts(INT_EEPROM); // Unica interrupción habilitada durante toda la ejecución
   enable_interrupts(GLOBAL);     // Habilitador general de interrupciones

// Bucle principal (Se ejecuta de forma indefinida)
   for(;
     {
     dir_escritura = dir_lectura = color_leido = leido = color_pulsado = 0;  // Inicializamos variables
     fin_juego = false;
     escoge_nivel();  // Para escoger entre 4 niveles de dificultad
     while(!fin_juego)
        {
        genera_aleatorio();      // Generamos color
        guarda_color();          // Guardamos color en memoria
        muestra_colores();       // Mostramos colores guardados hasta el momento
        pulsa_secuencia();       // Recogemos pulsaciones
        if(!fin_juego)        // Cada vez que acertamos una secuencia completa,encendemos
         {                    //  los 4 leds y generamos tres tonos musicales
         enciende_led(5);     //
         altavoz(1);          //
         altavoz(2);          //
         altavoz(4);          //
         PORTA = 0;           //
         }                    //
        }
     has_fallado(4);     // Si hemos salido del bucle anterior es porque hemos fallado,de
     }                   //  aquí volvemos al principio del bucle principal.
   }



Título: RE: Juego Simón para 16f84
Publicado por: viti29 en 22 de Marzo de 2004, 13:37:00
Me podrias facilitar el fichero HEX???

Mi correo es vdelapa@hotmail.com

Gracias y un saludo.
Título: RE: Juego Simón para 16f84
Publicado por: Modulay en 23 de Marzo de 2004, 01:06:00
Ok ya te lo mando
Título: RE: Juego Simón para 16f84
Publicado por: MGLSOFT en 23 de Marzo de 2004, 05:30:00
Podrias enviarme el codigo y el esquematico por el privado??
Lo copie tal cual pero me da error en la parte del For, porque el servidor de Mi@rroba te cambio los caracteres por una carita feliz...
Título: RE: Juego Simón para 16f84
Publicado por: angelmoi123 en 23 de Marzo de 2004, 07:38:00
SALUDOS

BIOT, DE IGUAL FORMA PUEDE ENVIARLO AL CORREO.

angelmoi@telcel.net.ve

angelmoi123
Título: RE: Juego Simón para 16f84
Publicado por: MGLSOFT en 23 de Marzo de 2004, 07:42:00
Biot, me parece muy bueno lo tuyo.
Queria invitarte a incluirlo en el foro de C, en Ejemplos y rutinas en lenguaje C.
Seria un buen aporte...
Título: RE: Juego Simón para 16f84
Publicado por: cucaracha en 23 de Marzo de 2004, 09:06:00
Para que el código no varíe, pulsen el botón que tiene la almohadilla (#), pulsen intro y luego entre los códigos (lo de "code" entre paréntesis) que crea peguen el programa.

p.ejemplo:
Codigo:

hola hola+=caracola


Saludos!
Título: RE: Juego Simón para 16f84
Publicado por: Modulay en 23 de Marzo de 2004, 10:22:00
Gracias MGLSOFT.
¿Te refieres a dejarlo en un post o a colgar el fichero?
cucaracha no pillé bien la técnica
Título: RE: Juego Simón para 16f84
Publicado por: Modulay en 23 de Marzo de 2004, 10:38:00
Melospliken que esto empieza a parecer un servicio expres!!!!
Título: RE: Juego Simón para 16f84
Publicado por: cucaracha en 23 de Marzo de 2004, 10:44:00
La verdad es no lo expliqué muy bien. A ver si ahora mejor...
Al contestas, encima del campo donde se escribe hay unos botones para cambiar el color del texto, tamaño, insertar imágenes de direcciones de internet... Entre ellos hay una (el décimo por la izquierda) que tiene un # dibujado. Es ese.
Lo pulsas y sale una ventana donde pone que pegues el código. Pues no lo hagas. Sólo pulsa aceptar. Entonces te crea en el campo donde se escibe esto (code)(/code). Bueno, pero con los otros paréntesis, pero si los dejaba no salía así, entienden.
Pues entre eso pegas tu código:
(code)

#define ....
ljfa
fah
kdhfiei
fkhoia
.
.
.


(/code)

Prueba. Puedes editar tu primer mensaje por ejemplo y hacerlo así.

Se entendió ahora
Título: RE: Juego Simón para 16f84
Publicado por: MGLSOFT en 23 de Marzo de 2004, 12:07:00
Gracias Cuca por la explicacion, nunca me habia fijado, siempre puse separadores para evitar mezclas, creia que era asi..

Para Biot:
Me referia a que por un tema de orden y porque el ejemplo es muy bueno, insertarlo en el foro de C antes que en este, ademas te estaoy invitando a que lo insertes en el Post de Rutinas y ejemplos de C.
Tal vez Cuca o alguno de los moderadores te pueda ofrecer ayuda para mover el tema completo...
Título: RE: Juego Simón para 16f84
Publicado por: cucaracha en 23 de Marzo de 2004, 14:38:00
Ummmm... por casualidad no serás tú uno de los moderadores de este subforo, aparte de Norberto, claro.
Que te duermes!! jejeje

Debajo de los temas verás que hay un desplegable que pone "Opciones para moderadores". Ahí tienes la opción para hacer eso.

Saludos!!
Título: RE: Juego Simón para 16f84
Publicado por: Modulay en 23 de Marzo de 2004, 17:20:00
A ver ahora...

Codigo:


                 /******************* SIMON *********************
                  *                                             *
                  *                  By Yors                    *
                  *                 S.I.T.T.M                   *
                  *                                             *
                  ***********************************************/

/******************************** ESPECIFICACIONES *****************************

 El dispositivo físico consta de cuatro leds (rojo,verde,amarillo y azul)
 conectados a RA0,RA1,RA2 y RA3 (en ese orden),de un altavoz conectado a RB3
 y de cinco pulsadores.
 Un pulsador está conectado a RB0 (para generar el color aleatorio) y los otros
 cuatro,que corresponden a cada uno de los leds,están conectados a RB4,RB5,RB6
 y RB7.Tanto los leds como los pulsadores son activos a nivel alto.

*******************************************************************************/



/*******************
*   PREPROCESADO   *
********************/

#include <16F84.h>
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)
#fuses XT,NOWDT,NOPUT

/****************************************
*  DEFINICIÓN DE ETIQUETAS Y VARIABLES  *
*****************************************/

#byte   PORTA = 0x05      // Puerto A

#byte   PORTB = 0x06      // Puerto B y bits utilizados
#bit  RB0 = 0x06.0
#bit  RB3 = 0x06.3
#bit  RB4 = 0x06.4
#bit  RB5 = 0x06.5
#bit  RB6 = 0x06.6
#bit  RB7 = 0x06.7

#byte   INTCON = 0x0B

int aleatorio,dir_lectura,dir_escritura,color_leido,leido,color_pulsado,nivel;
short fin_juego;


/***************
*  SUBRUTINAS  *
****************/


void retardo(int latencia)
   {
   switch(latencia)
      {
      case 1: delay_ms(200);       // Correspondiente al nivel 1
      break;
      case 2: delay_ms(100);       // Nivel 2
      break;
      case 3: delay_ms(50);       // Nivel 3
      break;
      case 4: delay_ms(15);       // Nivel 4
      break;
      default:
      break;
      }
   }


void altavoz(int tono)  // Para generar un sonido diferente para cada color
   {
   int i,j;
   for(i=0; i<=40; i++)
     {
     for(j=0; j<=4; j++)
       {
       output_high(PIN_B3);      // La distancia entre pulso y pulso viene determinada
       delay_us(300*(6-tono));   //  por el parámetro tono
       output_low(PIN_B3);
       delay_us(300*(6-tono));
       }
     }
   }


void antirebote()
   {
   delay_ms(30);
   while(PORTB != 0) {}  // No progresamos hasta que ningún pulsador esté activo
   delay_ms(30);
   }


void comprueba()
   {
   leido = read_eeprom(dir_lectura);  // Leemos la dirección eeprom correspondiente.
   if(leido != color_pulsado)         // Si la pulsación no ha sido correcta,acaba el
    {                                 //  juego y volvemos al principio del programa
    fin_juego = true;
    }
   }


void enciende_led(int color)  // Enciende el led correspondiente
   {
   switch(color)
      {
      case 1: output_high(PIN_A0);     // Led rojo
      break;
      case 2: output_high(PIN_A1);     // Led verde
      break;
      case 3: output_high(PIN_A2);     // Led amarillo
      break;
      case 4: output_high(PIN_A3);     // Led azul
      break;
      default: PORTA = 15;             // Los 4 leds
      break;
      }
   }


void escoge_nivel()    // El led que se mantiene encendido corresponde al nivel elegido
   {
   nivel = 1;
   PORTA = 0;
   output_high(PIN_A0);  // Por defecto,encendemos el led rojo (nivel 1).
   while(!RB0)              // El nivel por defecto es el 1.Hasta que pulsemos RB0
      {                     //  podremos seleccionar cualquiera de los 4 niveles
      if(RB4)
       {
       nivel = 1;
       PORTA = 0;
       output_high(PIN_A0);      // Nivel 1 - > led rojo encendido
       antirebote();
       }else if(RB5) {
        nivel = 2;
        PORTA = 0;
        output_high(PIN_A1);     // Nivel 2 - > led verde encendido
        antirebote();
       }else if(RB6) {
        nivel = 3;
        PORTA = 0;
        output_high(PIN_A2);     // Nivel 3 - > led amarillo encendido
        antirebote();
       }else if(RB7) {
        nivel = 4;
        PORTA = 0;
        output_high(PIN_A3);     // Nivel 4 - > led azul encendido
        antirebote();
       }
      }
   antirebote();
   PORTA = 15;            // Una vez hemos escogido nivel,se encienden los 4 leds
   delay_ms(1000);        //  para indicar que podemos empezar a jugar
   PORTA = 0;
   }


void genera_aleatorio()   // Al pulsar RB0 genera un número entre 1 y 4 que se guardará
   {                      // tal cual en memoria...
   aleatorio = 1;               // 1 -> Rojo
   while(!RB0)                  // 2 -> Verde
     {                          // 3 -> Amarillo
     if(aleatorio == 4)         // 4 -> Azul
       {
       aleatorio = 1;
       }else {
       aleatorio++;
       }
     }
   antirebote();
   }


void guarda_color()
   {
   write_eeprom(dir_escritura,aleatorio);  // Guardamos el color generado y apuntamos a
   dir_escritura++;                        //  la siguiente dirección para una próxima
   }                                       //  escritura


void has_fallado(int tono)     // Si entramos aquí es que hemos pulsado incorrectamente
   {
   int i,j;
   enciende_led(color_pulsado);
   for(i=0; i<=100; i++)          // Generamos tono de error (más grave)
     {
     for(j=0; j<=4; j++)
       {
       output_high(PIN_B3);
       delay_ms(1*(6-tono));
       output_low(PIN_B3);
       delay_ms(1*(6-tono));
       }
     }
   delay_ms(1000);
   }


void muestra_colores()
   {
// Desde el primero hasta el último que se ha guardado en memoria,los vamos mostrando
//  con una rapidez que vendrá determinada por el nivel de dificultad elegido al principio.
   for(dir_lectura = 0; dir_lectura < dir_escritura; dir_lectura++)
      {
      color_leido = read_eeprom(dir_lectura);   // Lectura eeprom
      enciende_led(color_leido);                // Enciende led correspondiente
      altavoz(color_leido);                     // Emite tono
      retardo(nivel);                           // Retardo según nivel de dificultad
      PORTA = 0;                                // Apaga led
      retardo(nivel);                           // Retardo según nivel de dificultad
      }
   }


void pulsa_secuencia()
   {
   short sal;
   dir_lectura = 0;
// Recogemos las pulsaciones y se va comprobando si son correctas hasta que
//  alguna no lo sea o hasta que hayamos 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 memoria y comprobar
//  si la pulsación ha sido correcta.En el momento en que fallemos alguna,fin_juego toma
//  el valor TRUE.
   while((dir_lectura < dir_escritura) && (!fin_juego))
      {
      sal = false;
      while(!sal)  // Mientras no haya pulsación nos mantenemos dentro del bucle
         {
         if(input(PIN_B4))             // Se ha pulsado el rojo,salimos del bucle
          {
          color_pulsado = 1;
          sal = true;
          }else if(input(PIN_B5)) {    // Se ha pulsado el verde,salimos del bucle
          color_pulsado = 2;
          sal = true;
          }else if(input(PIN_B6)) {    // Se ha pulsado el amarillo,salimos del bucle
          color_pulsado = 3;
          sal = true;
          }else if(input(PIN_B7)) {    // Se ha pulsado el azul,salimos del bucle
          color_pulsado = 4;
          sal = true;
          }else {                      // No se ha pulsado ninguno,continuamos
          sal = false;                 //  dentro del bucle
          }
         }
      comprueba();   // Algoritmo que comprueba si la pulsación ha sido correcta
      enciende_led(color_pulsado);  // Enciende el led del color que hemos pulsado
      altavoz(color_pulsado);       // Genera el tono del color que hemos pulsado
      antirebote();                 // No comment
      PORTA = 0;                    // Apagamos led
      dir_lectura++;                // Para comprobar la siguiente dirección eeprom
      }
   }


/*********************
* PROGRAMA PRINCIPAL *
**********************/


void main()
   {
// Inicialización periféricos
   set_tris_B(0b11110001);    // RB0,RB4,RB5,RB6 y RB7 entradas --- RB1,RB2 Y RB3 salidas
   set_tris_A(0b00000000);    // Todo salidas
   output_low(PIN_B1);               // RB1 no la usamos
   output_low(PIN_B2);               // RB2 no la usamos
   output_low(PIN_B3);               // RB3 conectado al altavoz
   INTCON=0;
   enable_interrupts(INT_EEPROM); // Unica interrupción habilitada durante toda la ejecución
   enable_interrupts(GLOBAL);     // Habilitador general de interrupciones

// Bucle principal (Se ejecuta de forma indefinida)
   for(;;)
     {
     dir_escritura = dir_lectura = color_leido = leido = color_pulsado = 0;  // Inicializamos variables
     fin_juego = false;
     escoge_nivel();  // Para escoger entre 4 niveles de dificultad
     while(!fin_juego)
        {
        genera_aleatorio();      // Generamos color
        guarda_color();          // Guardamos color en memoria
        muestra_colores();       // Mostramos colores guardados hasta el momento
        pulsa_secuencia();       // Recogemos pulsaciones
        if(!fin_juego)        // Cada vez que acertamos una secuencia completa,encendemos
         {                    //  los 4 leds y generamos tres tonos musicales
         enciende_led(5);     //
         altavoz(1);          //
         altavoz(2);          //
         altavoz(4);          //
         PORTA = 0;           //
         }                    //
        }
     has_fallado(4);     // Si hemos salido del bucle anterior es porque hemos fallado,de
     }                   //  aquí volvemos al principio del bucle principal.
   }





¿Como sería eso de trasladar el tema completo?
Título: RE: Juego Simón para 16f84
Publicado por: pocher en 24 de Marzo de 2004, 02:15:00
MGLSOFT se refiere a que lo pegues aquí: http://miarroba.com/foros/ver.php?temaid=1654587&foroid=46840

Título: RE: Juego Simón para 16f84
Publicado por: pacalaconcurso en 24 de Marzo de 2004, 06:40:00
Biot si quieres te lo cuelgo en la web con una pequeña descripcion adicional que puedas hacerle. es un ejemplo interesantisimo para todos los que andamos con C.
saludos
Título: RE: Juego Simón para 16f84
Publicado por: Modulay en 24 de Marzo de 2004, 07:28:00
Bueno,si os parece voy a hacerlo al completo: código,esquemas,componentes,descripción,especificaciones,etc..
Se mete todo juntito y lo colgais.
¿Q tal la idea?
SALUDOS MIL
Título: RE: Juego Simón para 16f84
Publicado por: Modulay en 24 de Marzo de 2004, 07:41:00
Ah otra cosa
Si quereis se puede añadir la versión del mismo juego que hice pero ésta para el ordenata(es la que hice primero,antes de ponerme con esto de los microcontroladores),bajo windows,tiene un interface gráfico muy chulo basado en allegro y en unas pocas horas de  pelea con 3dstudio.Es un ejemplo algo más complejo y quizá quede un poco fuera de lugar,pero sigue siendo C!!!
Título: RE: Juego Simón para 16f84
Publicado por: MGLSOFT en 24 de Marzo de 2004, 07:55:00
Seria F...antastico !!
Título: RE: Juego Simón para 16f84
Publicado por: pacalaconcurso en 25 de Marzo de 2004, 09:54:00
si ocupa menos de 160 gigas entra en el server.

mi idea es recopilar todas las rutinas que pueda y colocarlas juntas en la pagina web pero esto se merece una pagina para el solito. si quieres la preparas y te la cuelgo.

saludos

por cierto marquitos te debo un ejemplo con modbus a ver si tengo tiempo...pero estoy trabajando en un proyecto que se me presento y me ha ilusionado muchiiiiisimo. en breve contare algo pero si sigue adelante cuando se termine alucina el que se que le va a molar.

saludos
Título: RE: Juego Simón para 16f84
Publicado por: leobiofa en 26 de Marzo de 2004, 13:35:00
hola biot

me llamo leonardo soy de colombia y estoy muy interesado en el programa que hiciste para el simon y queria saber si me puedes regalar el esquematico y el .HEX del programa.

ok muchas gracias biot

bye

leonardo
Título: RE: Juego Simón para 16f84
Publicado por: Modulay en 26 de Marzo de 2004, 13:51:00
Dame una direccion de email y te lo mando.
Biot
Título: RE: Juego Simón para 16f84
Publicado por: marce025 en 23 de Mayo de 2004, 20:09:00
HOLAA
YO TAMBIEN QUISIERA TENER EL .HEX Y EL ESQUEMA
PARA ARMARLO
MI MAIL ES marce025@argentina.com
SALUDOSS y gracias
Marcelo
Título: RE: Juego Simón para 16f84
Publicado por: Nomademc en 16 de Agosto de 2005, 20:29:00
Yo tambien quisiera el .hex y el esquema si es posible, sinó, lo que tengas. Muchas gracias mat_cim@yahoo.com
Título: RE: Juego Simón para 16f84
Publicado por: RaDoN en 17 de Agosto de 2005, 06:03:00
¿Estan disponible el esquematico?
Flash
Título: RE: Juego Simón para 16f84
Publicado por: Modulay en 19 de Agosto de 2005, 12:27:00
Ahora estoy trabajando y tengo poco tiempo.Dadme unos días y colocaré todo lo necesario en mi web,que de momento sólo es un boceto totalmente vacío de contenidos.
http://personal.auna.com/asencio5
Saludos
Título: RE: Juego Simón para 16f84
Publicado por: toovic en 21 de Agosto de 2005, 14:20:00
hola biot,

he estado mirando el foro y he visto el programa para el simon. Me ha interasado y queria saber si me puedes pasar el esquematico y el .HEX del programa.
mi correo es vilches_vic@hotmail.com.

ok muchas gracias biot

--------------
RebotadoRebotadoAngelito
Título: Re: Juego Simón para 16f84
Publicado por: Rubenxg en 24 de Junio de 2009, 23:04:13
mi hermano podrias enviarme ese programa de simon dice pero para una PIC16f877A peron en ensamblador .ASM en MPLAB muchas gracias e antemano mis hermanos
Título: Re: Juego Simón para 16f84
Publicado por: zziber en 26 de Julio de 2009, 23:27:15
Saludos podrias mandarme el esquema y el HEX

mi mail es jljr.1989@gmail.com

Muchas gracias
Título: Re: Juego Simón para 16f84
Publicado por: xdjmartin en 03 de Agosto de 2009, 21:50:19
hola! estaria muy agradecido si me enviaran el .hex con el esquematico, mi correo es martingerlero@hotmail.com

salu2
Título: Re: Juego Simón para 16f84
Publicado por: Modulay en 04 de Agosto de 2009, 13:32:16
Aquí dejo todos los archivos necesarios para el proyecto, tanto el de la primera version (PIC16F84), como el de la segunda versión (PIC16F88). Ésta última utiliza menos componentes y lleva alguna mejora funcional.

No obstante, recomiendo que antes de montarlo probeis el .hex en proteus (los archivos para proteus también los incluyo), para comprobar que se corresponde con el hardware, no sea que yo hiciese algún cambio que no recuerde...

Un saludo