Можеш да ползваш HyperTerminal-а на Windows, препоръчвам ти да ползваш RealTerm, доста повече контрол имаш с нея. Можеш да ползваш вътрешния осцилатор, тия 3% не те бъркат, тъй като бодрейта на UART-a се получава с делене на този такт и реално в бодрейта ще имаш по-малко от 1% колебания (плюс това тези 3% се отнасят за целия температурен обхват, в който работи чипа).
На въпроса с часовника - може да сверяваш, няма как ние да знаем ти дали ще можеш

Формата който се ползва в терминала е ASCII - вероятно това те бърка. Като пратиш числото "3" от клавиатурата в терминала, процесора получава 0x33, "5" изпраща 0x35 и т.н това са основни неща, с които трябва да се запознаеш ако още не си (питай Google).
Прекъсването в процесора не е задължително да го включваш, въпрос на реализация - ако си включиш прекъсването и си напишеш функция RX_ISR() ще ти е по-лесно да хващаш приетите символи по UART-a, отколкото в главния цикъл на програмата да проверяваш дали има нещо в буфера - това е и идеята на прекъсването, процесора може да прекъсне някаква задачка, която изпълнява (мига диоди, управлява LCD-та или каквото и да е) и при приет символ влиза в прекъсване - обработва приетата информация и пак се връща в главния цикъл.
Можеш да покажеш малко код, ще е по-лесно да ти се помогне
