Hi,

TMR1L = timerone.byte0
TMR1H = timerone.byte1

This loads the value stored in the variable timerone (which is a WORD) to the two individual 8-bit registers making up TMR1.

TeMP = sineval[STEPCOUNT]
This makes TeMP equal to the value at location STEPCOUNT in array sineval.

CCP1CON.4 = Temp.0 ' bit 0
CCP1CON.5 = Temp.1 ' bit 1
CCPR1L = Temp >>2 'Bit 2-7

This sets the duty cycles of the PWM signal generated by the CCP1 module by first taking the lower bits of Temp and copying those to CCP1CON.4 and CCP1CON.5. Then it takes the reminding 8 bits of the 10bit dutycycle value (stored in Temp) and copies those to CCPR1L.

if stepcount = 0 then stepcount =36
stepcount = stepcount -1

This first checks if the index into the array is 0, if so it "resets" it to 36 in order to restart the cycle. Then it decrements it the same index by one.

Stepcount counts from 35 to 0 and then starts over. It's used to retrieve values from the array sineval (which should contain 36 values). The retrieved value is desired dutycycle of the generated PWM.