I have been wrestling with the basic understanding of timers and based on some examples off the internet thought I finally had my hands around it until I started inserting code inside the timer loop. Why does this run at 1 minute when there is no "test" loop toward the bottom of the code but runs at 1 minute and 3 seconds when there is a test loop. It is my understanding that the timer should be running independent of the other things going on such as the test loop. I am running this on a 16F1827. Thanks for any insight anybody has.

Also, I got the base code from http://www.instructables.com/id/PIC-micro-Timer-Code/ and it is a good simple explanation. Is anybody aware of a equally simple explanation of a timer using interrupts?

Include "modedefs.bas"
DEFINE OSC 16
OSCCON=%01111010
test var byte
time var word
msec var byte
msec = 0
sec var byte
sec = 0
mint var byte
mint = 0
hour var byte
hour = 0

high portb.4
pause 500
low portb.4

T1CON.0=1 'starts the timer
'T1CON.0=0

Start:
TMR1H = 0 'resets the timer value's high byte
TMR1L = 0 'resets the timer value's low byte
'--and--
do
time.Lowbyte = TMR1L 'puts the timer's low byte in MyTime's lower 8 bits
time.Highbyte = TMR1H 'puts the timer's high byte in MyTime's upper 8 bits


if time > 40380 then
TMR1H = 0
TMR1L = 0
time = 0
msec = msec + 1
endif
if msec = 100 then
msec = 0
sec = sec +1
endif
if sec= 60 then
sec = 0
mint = mint + 1
endif

if mint = 60 then
mint = 0
hour = hour + 1
endif

if mint = 1 then
high portb.4
pause 500
mint = 0
low portb.4
endif
test = 0
do until test = 255

test = test +1
loop
loop