Die Ausgabe-Bits würde ich in einem temporären Register vorbereiten.
1. Zahl 0...9 (von woher auch immer ?) in Temp ablegen
2. Bits 7...4 mit AND 0xF0 auf 1 setzen = alle Anzeigen aus, BI/RB0 an (sonst bleiben später die Segmente dunkel)
3. Anzeigen-Bit 7, 6 oder 5 auf 0 setzen, damit die richtige Anzeige leuchtet
4. Temp ausgeben an PortB
Nach einer Millisekunde für die nächste Anzeige wiederholen.

Ich empfehle die zwei Taster an GND anzuschließen und PullUp-Widerstände zu verwenden (so wie bei Reset).