Pesquisar neste blog

18/02/2020

Pisca Leds 3 com PIC 16F877A

Objetivo: Piscar leds consequentemente usando for

















Código feito em CCS C Compiler

#include <16F877a.h>
#use delay(crystal=20MHz)

void main(){
   char pins[] = {PIN_B0,PIN_B1,PIN_B2,PIN_B3,PIN_B4};
 
   while(TRUE){
      for(int i=0; i<=4; i++){
         output_high(pins[i]);
         delay_ms(250);
         output_low(250);
         delay_ms(250);
      }
   
      for(i=5; i>=1; i--){
         output_high(pins[i-1]);
         delay_ms(250);
         output_low(pins[i-1]);
         delay_ms(250);
      }
   }
}

Display 7 segmentos usando PIC 16F877A (1)




















Código feito em mikro PRO for

void main() {
      trisb = 0;//definindo todos os pinos como saída
      portb = 0; //desligando
   
      portb = 0b00111111;//forma binária, 'imprimndo o [0]'
      delay_ms(500);
   
      portb = 0b00000110;//'imprimndo o [1]'
      delay_ms(500);
   
      portb = 91; //forma decimal, 'imprimindo o [2]'
      delay_ms(500);
   
      portb = 79;  // [3]
      delay_ms(500);//0,5s de espera
   
      portb = 0x66; //forma hexadecimal [4]
      delay_ms(500);
   
      portb = 0x6D; //forma hexadecimal  [5]
      delay_ms(500);
   
      portb = 0x7D; // [6]
      delay_ms(500);
   
      portb = 0x7;// forma hexadecimal  [7]
      delay_ms(500);
   
      portb = 0b01111111;//[8]
      delay_ms(500);
   
      portb = 0b01100111; //[9]
      delay_ms(500);
}

PiscaLed 2 com PIC 16F877A

Objetivo: Ligar e desligar vários leds consequentemente

Simulador usando Proteus 8.8


















Código feito no software mikroC Pro for, versão 7.2

void main() {
    trisb = 0;

    /*portb.rb0 = 1;
    portb.rb1 = 1;
    portb.rb2 = 1;
    portb.rb3 = 1;
    portb.rb4 = 1;
    portb.rb5 = 1;
    portb.rb6 = 1;
    portb.rb7 = 1;*/
 
    //método2 para ligar todos leds
    //portb = 0b11111111;//substitui o método acima, economizando linhas
 
    //método3  para ligar todos leds
    portb = 255;//forma em decimal
    //portb = 231;  //fazendo teste com com a porta 231
    delay_ms(500);//desligando os leds começando por rb7
 
    portb.RB7 = 0;
    delay_ms(500);
 
    portb.RB6 = 0;
    delay_ms(500);
 
    portb.rb5 = 0;
    delay_ms(500);//espera 0,5s
 
    portb.rb4 = 0;
    delay_ms(500);
 
    portb.RB3 = 0;
    delay_ms(500);
 
    portb.RB2 = 0;
    delay_ms(500);
 
    portb.rb1 = 0;
    delay_ms(500);
 
    portb.rb0 = 0;
    delay_ms(500);
}