Pesquisar neste blog

19/09/2020

Timer1 com PIC 16F628A

#include <16F628a.h>
#fuses intrc_io,nowdt, nomclr
#use delay(clock = 8MHz)
#use fast_io(a)
#use fast_io(b)
int cont;
int16 timer;//timer1 trabalha com 16 bits

void main(){
   set_tris_a(0x00);
   set_tris_b(0xf0);//1/2 entrada e 1/2 saída
   output_b(0x00);
   SETUP_TIMER_1(T1_EXTERNAL | T1_DIV_BY_2);//pro escale para 2
   SET_TIMER1(0);

   while(TRUE){
      timer = GET_TIMER1();//funcção que captura o timer
      if(timer == 1){
         output_a(0b00000001);
      }
      
      if(timer == 2){
         output_a(0b00000010);
      }
      
      if(timer == 3){
         output_a(0b00000100);
      }
      
      if(timer == 4){
         output_a(0b00001000);
      }
      
      if(timer == 5){
         output_b(0b00010001);
         output_a(0b00000000);
      }
      
      if(timer == 6){
         output_a(0b00000000);
         output_b(0b00000000);
         set_timer1(1);//seta novamente o timer1
      }
      //TODO: User Code
   }

}

Software Proteus 7.6


















Créditos para: Alexandro Lima

Nenhum comentário: