I do use TMR0 for a number of tasks but in particular a "system Tick' used in the Main() loop for launching tasks. Here is how I do this and you can apply this to creating a 1 second timer.
Set up TMR0 to interrupt at some whole division of a second. 25ms, 100ms, 200msec or so.
In the TMR0 ISR:
1- re-load TMR0 taking into account the ISR latency. Use the MPLAB SIMulator and Stop watch to get the TMR0 value correct.
2- set a System Tick flag.
3- clear TMR0IF
4- exit ISR
Now in your main loop, the while(1) loop:
Test for the System Tick flag:
1- Increment a software counter
2- clear the System Tick flag
3- Test the software counter for a value that would be the number of TMR0 interrupts to make 1sec (if TMR0 interrupts every 100ms then the count would be 10).
4- If this test is TRUE:
a- clear the software counter to start timing the next 1 sec interval.
b- Save the current Encoder count to another variable.
c- clear the Encoder count.
d- set a flag to indicate that there is a new Encoder count.
Elsewhere in the main loop or in an ISR:
1- on each encoder transition (high or low) increment the encoder counter.
I would try using one of the PORT B inputs that have IOC and do the encoder pulse counting in an ISR.
Also in the main loop:
1- Test the new encoder value flag
2- get the new encoder value
3- clear the new encoder value flag
4- Use the value in what ever calculations are needed.
The code you posted is ok if the PIC does not need to do much, but is excellent to test reading the encoder pulses. A PIC really can do all sorts of things if any of the Real Time Events are interrupt driven. So one of the next things you need to learn about is using the PICs interrupts. Go back to the Gooligum tutorial and read up on interrupts.
Start with the TMR0 interrupt and get it to provide a System Tick.
Since this is a School assignment I won't write the code for you but here is a link to PIC C code for doing I2C interface to a Compass chip. Look at the third file that contains main() for how I use TMR0 ISR and a flag to signal the counter in main(). There is a good bit of other functions and code in there that could be of use.http://forum.sparkfun.com/viewtopic.php?f=6&t=22429