Det där schemat var lite märkligt!
För det första så är det inte bra att driva lysdioder utan strömbegränsningsmotstånd. I schemat förlitar sig designern på strömbegränsningen på PIC:ens portar, men det är en ful lösning! Iofs. så multiplexar han displayerna, men det är ändå inte snyggt.
Om jag vore du skulle jag driva PICen med 5V, och sedan sätta seriemotstånd på segment-katoderna. Hur mycket ström du ska ha beror på vilken frekvens du multiplexar med och vilka displayer du använder.
Angående tidssättningen, så sätts säkert ben 6 och 7 till ingångar av programmet med jämna mellanrum, och då känner man av om knapparna är intryckta eller inte. Vid displaydrivning är naturligtvis ben 6 och 7 utgångar.
EDIT: Kollade upp maxströmmen för 16F628:ans I/o-pinnar, och den var 25mA. Lägg ett motstånd på 47ohm till varje display-katod så blir det nog bra (förutsatt att dina displayer hade ett framspänningsfall på 3.8V så ger det en segmentström på 25,5mA vid 5V drivspänning).
P.S. Använd en PIC16F628 och INTE en 16F84A!

D.S: