Для начала, объясни что ты хочешь получить от USART'а.
Какая тактовая частота процессора?
В соответствии с ней необходимо выбрать значения UBRRH, UBRRL и бита U2X.
Зачем два раза присваеваешь значения UBRRH (да, ещё и разные)?
Самое главное в твоём куске кода
Цитата
ldi Temp,$9c
out UCSRB,Temp
ldi Temp,$85
out UCSRC,Temp ; в даташите
задана недопустимая (зарезервированная) длинна символа.
У тебя значение битов
UCSZ2:0 равно
110 - соответствует
reserved, а необходимо (наверное, не знаю на что ты расчитываешь) должно быть
011, что соответствует
8 бит.
Вроде так, если не ошибся...