Цитата(swisst @ Nov 12 2007, 09:47)

При обработке прерывания по приему, в созданную переменную (глобальную или локальную) не копируется содержимое регистра SBUF. Прошу знающего человека подсказать...
А, как в SBUF попало его содержимое? Вы должны помнить, что под одним именем "SBUF" в МК51 находятся
два регистра - один содержит принятые данные (его можно только считать), другой - передаваемые (в него можно только записать). C этим при отладке всегда путаница...
Чтобы в SBUF что-то попало, это что-то должно прийти "извне": например, нужно открыть окно "View->Serial window" и в нем набрать символ.
Я при отладке UART под симулятором Keil'а использовал следующий приём.
Поставил на компьютер драйвер, который создаёт виртуальные СОМ-порты и умеет их попарно "соединять". Выход симулятора UART Keil'а соединяю с одним виртуальным портом (команды отладчика ASSIGN и MODE). Ко второму виртуальному СОМ-порту ("соединенному" с первым) подключаю терминалку или программу в режиме отладки, в которой МК будет взаимодействовать в реале. В последнем случае, идет процесс отладки сразу двух программ, что несколько сложнее, но ускоряет время их общей отладки.