Você está na página 1de 2

/*====================================================================

Inicializa��o do PIC
====================================================================*/
#include <16F628A.h> //Define o modelo do microcontrolador

// Fus�veis de configura��o do microcontrolador

#FUSES NOWDT //Watch Dog Timer desabilitado


#FUSES HS //oscilador cristal
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //sem prote��o para leitura da eprom
#FUSES NODEBUG //No Debug mode for ICD
#FUSES BROWNOUT //Resetar quando detectar brownout
#FUSES NOMCLR //Reset desabilitado
#FUSES NOLVP //prog. baixa voltagem desabilitado
#FUSES NOCPD //Sem travar o chip

#use delay(clock=20000000) //Define o cristal utilizado, neste caso: 20Mhz

/*====================================================================
Minhas vari�veis:
====================================================================*/

int8 periodo=0;
int8 ciclo1=0;
int8 p1 = 1;
int16 delay = 65478; //65478 = 4960Hz e 60000 = 57Hz
int1 aux;

/*===================================================================
A interrup��o:
===================================================================*/
#int_timer1
void TIMER1_isr (void)
{
p1++;
aux++;
set_timer1(delay);
}

/*===================================================================
Rotina Principal:
===================================================================*/

void main()
{
output_low (PIN_B0);
output_low (PIN_B1);
SETUP_TIMER_1 (T1_INTERNAL|T1_DIV_BY_8); //Configurar timer1 para clock
iterno/8
enable_interrupts (INT_TIMER1); //Habilitar Interrup��es
enable_interrupts (global);
set_timer1(delay); //Preload do timer1

while (TRUE)
{
if (aux)
{
if (p1 < 118)
{
output_toggle (PIN_B0);
output_toggle (PIN_B1);
}
else
{
output_high (PIN_B0);
output_high (PIN_B1);
}
if (p1 == 120)
{
p1 = 0;
}
aux++;
}
}
}

Você também pode gostar