[PIC] Efeito rotação de bits MikroC

Esse código demonstra como utilizar os operadores de rotação de bits para criar um efeito interessante.

Led´s devem estar conectados no PORTD, ou é necessário a mudança no código.

Testado no PIC18F4520.

Código Fonte

void main()
{
   unsigned char ucByte1;        // Aqui estamos declarando duas variáveis locais para uso no programa.
   unsigned char ucByte2;        // Convencionaremos que todas as variáveis "unsigned char" terão o prefixo "uc".
   TRISD=0;                          // Define todos os pinos do PORTD como saída.
   ucByte1 = 128;                  // Definimos que o bit7 de ucByte1 será 1 (1000 0000).
   ucByte2 = 1;                     // Definimos que o bit0 de ucByte2 será 1 (0000 0001).
   while(1){                          // Aqui definimos uma condição sempre verdadeira como parâmetro, portanto todo o bloco será repetido indefinidamente.
      PORTD=(ucByte1|ucByte2);   // Aqui unimos os valores de ucByte1 e ucByte2 (EX:(1000 0000)|(0000 0001) é igual a (1000 0001)).
      ucByte1>>=1;               // Rotacionamos os bits de ucByte1 para a direita (EX: O Valor (1000 0000) rotacionado a direita é igual a (0100 0000)).
      ucByte2< <=1;               // Rotacionamos os bits de ucByte1 para a direita (EX: O Valor (1000 0000) rotacionado a direita é igual a (0100 0000)).
      if(ucByte1==0){            // Verificamos de já houve a rotação completa do bit.
         ucByte1=128;            // Carregamos novamente ucByte1 com o valor inicial.
      }
      if(ucByte2==0){            // Verificamos de já houve a rotação completa do bit.
         ucByte2=1;               // Carregamos novamente ucByte2 com o valor inicial.
      }
      Delay_ms(50);               // Esta função é interna do compilador, portanto o tempo é de 50ms ou 0.05 segundo.    
   }
}

Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[PIC] Efeito rotação de bits MikroC
Tags:                         

Deixe uma resposta

%d blogueiros gostam disto: