예제 #1
0
파일: main.c 프로젝트: Sel2016/microchip
void aferir (void)
{
    unsigned short int i;
    unsigned short int T, L;
    unsigned short int temperatura, luminosidade;
    bool change;

    char msg [12];  //  = "256,30,100 " (12) ou "65535,1024,1024;" (16char)

    
        piscaVermelho();
        ///////////////////////////////////////////////////

        ADCON0bits.CHS=0b0000;  //usa o AN0 para CONversao DS39626E-page 223
                                // AN0 = Termistor LM35
        ADCON0bits.ADON=1;  // liga o AD para CONversao
        Delay1KTCYx(1);     // delay aproximado de 1 ms

        ADCON0bits.GO=1;    // inicia a CONversao
        while (ADCON0bits.GO) ;
                            //  aguarda o termino da CONversao

            while(BusyXLCD()) ;
            SetDDRamAddr(0x14); //linha 2
                      //0123456789_123456789
            putrsXLCD ("Temp: ");
            temperatura = ( ADRES * 500 ) / 1023 ;
            T = temperatura ;

            //temperature = (ADCResult*5.0)/10.24;       //convert data into temperature (LM35 produces 10mV per degree celcius)

            //putrsXLCD("Temp is ");                     //Display "Temp is" on the screen
            //sprintf(buf, "%.3g", temperature );        //Convert temperature float value to string
            //putsXLCD(buf);


            //putrsXLCD ( ltoa (null_0,((ADRES*5)/1023)+9,10) ); // era usado com o ADRESL e ADRESH invertido errado
            //putrsXLCD ( ltoa (null_0,( ADRES * 500) / 1023 ,10) );
            while(BusyXLCD()) ;
            putrsXLCD ( ltoa (NULL, T , 10 ) );
            /*
             * Equacao realizada para ajustar a temperatura, com
             * ajuste fino de +9 graus centigrados para temperatura local
             *
             */
            while(BusyXLCD()) ;
            putcXLCD(0xDF); // imprime o caractere de "grau" (degree)
            putrsXLCD ("c ");

        ///////////////////////////////////////////////////



        piscaVermelho();
        //Delay10KTCYx(50);     // delay aproximado de 100 ms

        ///////////////////////////////////////////////////

        ADCON0bits.CHS=0b0001;  //usa o AN0 para CONversao DS39626E-page 223
                                // AN1 = Termistor LDR
        ADCON0bits.ADON=1;  // liga o AD para CONversao
        Delay1KTCYx(1);     // delay aproximado de 1 ms

        ADCON0bits.GO=1;    // inicia a CONversao
        while (ADCON0bits.GO) ;
                            //  aguarda o termino da CONversao
        //corrente = ADRES;

            while(BusyXLCD()) ;
                //SetDDRamAddr(0x54); //linha 2
                SetDDRamAddr(0x20);
                          //0123456789_123456789
                putrsXLCD ("Luz: ");

                luminosidade = (  ADRES / 8 ) ;
                L = luminosidade;

            while(BusyXLCD()) ;
                putrsXLCD ( ltoa ( NULL,L,10) );
                //putrsXLCD ( ltoa (null_1,ADRES,10) );
                putrsXLCD ("% ");

        ///////////////////////////////////////////////////

    if (T != temp0)   { temp0=T; change=true; }
    else
    if (L != lumi0)  { lumi0=L; change=true;}

    if (change)
        {
        contador++;
        if (T < min) min=T;
        else
            if (T > max) max=T;

        if (L < lmin) lmin=L;
        else
            if (L > lmax) lmax=L;

        while(BusyXLCD()) ;
        SetDDRamAddr(0x40);
            putrsXLCD ("Tmin"); putrsXLCD (ltoa (NULL,min,10));
            putrsXLCD ("/");    putrsXLCD (ltoa (NULL,max,10));
            putrsXLCD (" Luz"); putrsXLCD (ltoa (NULL,lmin,10));
            putrsXLCD ("/");    putrsXLCD (ltoa (NULL,lmax,10));
            putrsXLCD (" ");


        

            //i=sizeof(msg)-1; // apenas um teste para mostrar o tamanho da msg

        sprintf(msg, "%u,%u,%u%s", contador, T, L, ";");

        while(BusyXLCD()) ;
            SetDDRamAddr(0x54);
            putrsXLCD (msg);
            putrsXLCD ("  ");

        LED1=1; // LED Verde Ligado

        while(BusyXLCD()) ;
            SetDDRamAddr(0x66); //linha 4 nas duas ultimas posicoes
                  //456789abcdef0123456_
            putrsXLCD ("TX");

            Delay1KTCYx(100);
            vw_send(msg, sizeof(msg)-1);

        LED1=0; // LED Verde Desligado

        while(BusyXLCD()) ;
            SetDDRamAddr(0x66); //linha 2
                  //456789abcdef0123456_
            //putrsXLCD ("__");
            putcXLCD ('_');putcXLCD ('_');
            
        change=false;
        
    }



}
int main(){
   
    int retorno = 1, pontuacao = 0, escolha;
    printxy(16, 9, "Vamos comecar a Jogar o SUPER GENIUS?");
    printxy(16, 11, "Se acha que esta preparado aperte 1 e ENTER");
    printxy(16, 12, "Se nao outro numero e ENTER:  ");
    scanf("%i", &escolha);
    system("cls");
    while(escolha!=1){
    printxy(16, 9, "Que medo e esse? Aperta 1 e ENTER logo!  ");
    scanf("%i", &escolha);
    
    if (escolha == 1){
                            printxy(16, 11, "Boa escolha, bora jogar!");
                            wait(2.0);
                      }
    }
    system("cls");
       
 
 while(retorno==1){
 azul();
 amarelo();
 verde();
 branco();
 vermelho();
 marrom();
 azulClaro();      
 verdeClaro();
 magentaClaro();
 //setas();
 
 int nivel=1, aleatorio, cor;
 int vetor[nivel-1], i, j, sair=0;
 
 do{
     srand(time(NULL));
     aleatorio = rand() % 9; //antes era 4 
   
  vetor[nivel-1] = aleatorio;
  
  for(i=0; i<9; i++){
  wait(0.5);
   if(vetor[i]==1){
    piscaAzul();   
         }
   if(vetor[i]==2){
    piscaVerde();   
         }
   if(vetor[i]==3){
    piscaAmarelo();   
         }
   if(vetor[i]==4){
    piscaVermelho();   
         } 
   if(vetor[i]==5){
    piscaBranco();   
         }    
   if(vetor[i]==6){
    piscaMarrom();   
         }    
   if(vetor[i]==7){
    piscaAzulClaro();   
         }   
   if(vetor[i]==8){
    piscaVerdeClaro();   
         }  
   if(vetor[i]==9){
    piscaMagentaClaro();   
         }          
     }
  for(j=0; j<nivel; j++){
   textbackground(BLACK);
   printxy(36, 23, "COR : ");
   scanf("%i", &cor);
   printxy(42, 23, "   ");
   if(vetor[j]==cor){
    pontuacao = pontuacao + 10;
    gotoxy(16, 22);//antes era (4, 4)
    printf("PONTUACAO : %i", pontuacao);
    gotoxy(16, 23);//antes era (4, 5)
    printf("NIVEL     : %i", (nivel));
         }
   if(vetor[j]!= cor){
    j = nivel;
    sair = 1;   
        } 
     }     
  nivel++;
}while(sair != 1);
   system("cls");
   printxy(33, 9, "VOCE PERDEU!!!");
   gotoxy(33, 11);
   printf("PONTUACAO : %i", pontuacao);
   gotoxy(33, 12);
   printf("NIVEL     : %d", nivel);
   gotoxy(33,14);
   printf("Tecla Enter");
   getch();
   
   system("cls");
   printxy(32, 8,  "JOGAR NOVAMENTE?");
   printxy(32, 9,  "    1 - SIM");
   printxy(32, 10, "    2 - NAO");
   printxy(32, 12, "    OPCAO : ");
   scanf("%i", &retorno);
   system("cls");
   nivel = 1;
   pontuacao = 0;
  
}
  }