also,

im groszen Ganzen schauts aml nicht schlaecht aus, nur n paar Kleinigkeiten.
Die Pins auf denen die Hardware UART liegt brauchste nicht explizit
als Input und Output deklarieren, die das schon ueber die SFR geregelt
wird.
Die Konfiguration der UART auf 8n1 ist zwar nicht verkehrt, muss aber
ebenfalls nicht sein, da dies schon die Standardeinstellungen sind.
Der zweite Baud-Aufruf gehoert auch nicht rein, den brauchste nur,
wenn Du zur Programmlaufzeit die Baudrate aendern willst.
Der ... mist, die Aegyptische Tastatur hat kein String (Dollar) Zeichen ...
also der (Dollar)baud = 9600 ist OK.

Das waers dann mal so auf die Schnelle bei 30 Grad aus Aegypten ...
Gruesse an alle Daheimgebliebenen