Sorry... I have a modification, that was an old version of the code... in that last version, the prescaler was assigned to TMR0... the code should look like: #include <16f84.h> //================================ #pragma config |= 0x3FFF,WDTE=off,FOSC=HS #pragma bit servo @ PORTA.1 //================================ //do times*cycles TMR0 Increments. void delay(long int times, int cycles) { long int i; for(i = 0;i < times;i++) { TMR0 = 0; while(TMR0 < cycles); } } //============================================================= void main(void) { INTCON = 0x00; OPTION = 0x08; //assign prescaler to WDT TRISA = 0x00; while(1) //Create a 1 Hz pulse { servo = 0; //Turns LED on (PORTA.1 used to sink current) delay(5000,250); //delays .5 sec sevro = 1; //Turns LED off delay(5000,250); //delays .5 sec } } //============================================================= This is the code that seems to blink the LED at .5 Hz, instead of 1 Hz. Sorry about that, opened the wrong source code file