Hi,
To start off with, the timer increases its value from 0 upwards every clock cycle. At 20MHz, the clock cycle is 0.2us. So every 200ns the timer increments its value by 1. When the value reaches 0xff it rolls over to 0 and sets the interrupt flag. If interrupt and global interrupt are enabled, then by going to the interrupt vector, you can carry out the functions you want done every time the timer rolls over.
So, at 20MHz, your timer rolls over at 51.2us. That means, every 51.2us, you can have an interrupt. The prescaler simply elongates the time of each tick. When you have prescaler set to 256, instead of 0.2us, each increment will occur at 0.2 * 256 = 51.2us. Therefore, the timer rolls over at 51.2 * 256 = 13.1ms.
In the interrupt routine, increment the value of a register every 13.1ms and in turn increment another register, keeping track as to when 10sec occurs.
For explanation, if you don't get the datasheet, look for the mid-range PIC Reference Manual. It explains everything fairly well.
Hope I could make you understand. Hope this helps.
Tahmid.