Vedo tre errori prima di tutto:
- La porta B ha solo 6 uscite utilizzabili: le altre non vanno forzate, ma bisogna fare un OR (|) per le uscite d attivare e un AND(&) per le uscite da disattivare.
- La tabella display[ ] è sbagliata: la porta B sta quasi sempre tutta a 1!
- Non vedo la tabella dei numeri ma, d'altra parte, stai provando solo con num=0.
Inoltre, come dice Guglielmo, quando vengono trasmessi/ricevuti dati sulla seriale vedrai lampeggiare i segmenti collegati a Tx/Rx.
I display sono a catodo comune?
Se è a catodo comune, è giusto attivarlo portando a 0 l'uscita collegata al catodo, ma devi portare a 1 le uscite collegate agli anodi, invece io leggo:
byte values[] = {
// hgfedcxx
B00000000, // 0 -0
};
Spero che tu abbia messo una resistenza per ogni anodo (se i display sono a catodo comune) e che la corrente sia minore di 10mA/segmento, quindi almeno 330 ohm.