If that bus is an I2C bus the frequency doesn't have to be exact because there is a separate line (SCK) to send the clock signal too. 8kHz is a very low frequency for such a type of bus, what device are you talking to?
With such low frequencies it might be easier to program a timer to generate an interrupt in the right interval and shift out the data in that interrupt handler.
the frequency slightly changed.
Define what slightly changed means.