Microcontroladores

Mostrando apenas artigos deste assunto.

Comparador Analógico(Microcontroladores)

publicado em 25 Aug 2010 15:23 por Munif Gebara Junior

int tabela[]={0b01111110,0b00001100,0b10110110,0b10011110,0b11001100,
                  0b11011010,0b11111000,0b00001110,0b11111110,0b11001110,
                  0b11101110,0b11111000,0b01110010,0b10111100,0b11110010,
                  0b11100010};


int baixa(int n)
{
   return 5*10*n/24;
}




main(){
      //  76543210
  int i;
  int vrbaixa=0b10100000;
  CMCON=0b00101010;
  TRISA=0b00111111;
  TRISB=0b00000001;
  PORTB=tabela[3];
  Delay_ms(300);
  PORTB=tabela[2];
  Delay_ms(300);
  PORTB=tabela[1];
  Delay_ms(300);
  
  for(;;)
  {
    for (i=0;i<16;i++)
    {
      VRCON=vrbaixa|i;
      if (CMCON.F7==0){
         PORTB=tabela[baixa(i)/10];
         Delay_ms(300);
         PORTB=tabela[baixa(i)%10];
         Delay_ms(300);
         PORTB=0;
         Delay_ms(100);
         break;
      }
    }
  }

 }

comparador.zip (Arquivo do Artigo Comparador Analógico) tamanho:33762 bytes Upload em 25/08/2010 15:24
carro.zip (Exemplo Tanque e Velocimetro) tamanho:22258 bytes Upload em 25/08/2010 16:39

Interrupção com Timer 0(Microcontroladores)

publicado em 18 Aug 2010 16:48 por Munif Gebara Junior

Exemplo para utilizar a interrupção com Timer 0 no MikroC, incrementa o contador de um em um segundo.

int vezes=0;
int pontos=0;

int tabela[]={0b01111110,0b00001100,0b10110110,0b10011110,0b11001100,
                  0b11011010,0b11111000,0b00001110,0b11111110,0b11001110,
                  0b11101110,0b11111000,0b01110010,0b10111100,0b11110010,
                  0b11100010};


void interrupt() {
    vezes++;
    if (vezes>125){
      vezes=0;
      pontos++;
      pontos=pontos%10;
      PORTB=tabela[pontos];
    }
    TMR0 = 6;
    INTCON=0b10100000;
}

main(){
  CMCON=7;
  TRISA=255;
  TRISB=1;
  
  PORTB=0b10000;
  Delay_ms(300);
  PORTB=0b10000000;
  Delay_ms(300);
  PORTB=0b10;
  Delay_ms(300);


         //        E  PRE
         //      76543210
  OPTION_REG = 0b10000100;  //32x
      INTCON = 0b10100000;
        TMR0 = 6;



  for(;;)
  {
  }
 }

Timer0.zip (Arquivo do Artigo Interrupção com Timer 0) tamanho:20413 bytes Upload em 18/08/2010 16:48

Introdução MikroC(Microcontroladores)

publicado em 28 Jul 2010 16:10 por Munif Gebara Junior

void main() {
   int i;
   CMCON=7;
   TRISB = 0;
   TRISA = 255;

   for(;;) {
    for (i=1;i<=128;i*=2){
      PORTB = i ;
      
              //   A 43210
      if ((PORTA & 0b01000)==0) {
        Delay_ms(250);
      }
      else{
        Delay_ms(500);
      }
    }
  }
}

mikroC.zip (Arquivos Projetos MikroC) tamanho:118853 bytes Upload em 28/07/2010 16:11
aula11082010.zip (Mais exemplos) tamanho:97759 bytes Upload em 11/08/2010 16:44