Mit welchem Programmiercompiler arbeitest Du denn ?
Bascom ? "C" ? oder möchtest Du den Controller in Assembler programmieren ?
Der Controller arbeitet binär, also 4Bit ist eine hex Zahl.
Da die AVR's mit 8Bit arbeiten, hast du pro Byte 2 hex Zahlen.

Zu den 2 nibbles (4 Bit) eines Bytes werden dann 0x30 bei den Zahlen von 0...9 und 0x37 für die A...F zu den hex Werten dazugezählt.

Beispiel (für Assembler):
0b10100011 = 0xA3 = 163

Damit dein PC so eine Hex Zahl über die serielle Schnittstelle in lesbarer Form übertragen bekommt, musst Du diese in ASCII umwandeln.

0xA = 0b1010 = 0b00001010
0b00001010 + 0b00110111 = 0b01000001 = 'A'

0x3 = 0b0011 = 0b00000011
0b00000011 + 0b00110000 = 0b00110011 = '3'

Wenn Du also 0b01000001 und 0b00110011 auf deiner seriellen Schnittstelle überträgtst wird dein PC A3 anzeigen.

Eine Hochsprache ("C" oder Bascom) hat Ausgabekommandos, die diese Wandlung automatisch vornehmen und direkt die ASCII Werte übertragen.