What kind of DPCM, Biphase? Manchester? Are you generating the clock or reading one?
And maybe most important - what is your bitrate? Since there's no support for DPCM in the 16F876, you are going to have to try and bit-bang it. Unfortunately, if your bitrates are too high there won't be enough time.
Generally, you would set up a timer for an interrupt per bit. On interrupt, immediately reload the timer, check to see if you need to transmit a frame synch, fetch the AD data if it's ready (and restart it and subtract the new AD data from the old one to get the difference), increment or reset a bit-position-count for the data currently being transmitted, toggle the clock, toggle output bit on the data bit changes, and return.