Немножко "дёгтю"...
Относительно КОТУИНКО.
(А возможно и иных устройств на mcs51...)
Собственно относительно "нюанса" при холодной инициализации самой АТ89S52 касательно UART.
При включении питания на консоли терминальной программы выскакивает "лидирующий нулик" (<0>).
Для работы с консольной терминалкой я на тот "нулик" (в hex окне терминала значение 0х00) особо
внимания не обращал - появляется однократно, при "горячем перезапуске" не наблюдается, на работу программ (в том числе и программатора для АТ89Сх051) не влияет - ну и...
Однако при проверке с терминалкой на основе QBasic этот "мусор" проявился как "ошибка ввода/вывода" - т.е. ошибка СОМ порта - приходится делать программный обход этой единичной ошибки.
Однако интерес к вопросу "откуда роги?" привел к более детальному тестированию.
С тем, что у меня из средств тестов - разве что комп да программные "заплатки" в самой АТ89S52 в наличии...
В результате нескольких тестов с печалькой обнаружил, что при подаче питания и последующей инициализации порта UART
в линию TxD сбрасывается какой-то пакет информации, воспринимаемый обычным терминалом как 0х00 (<0>)...
Что, в свою очередь, требуется учитывать при проектировании устройств, в которых один из блоков (терминал на ПК к примеру)
запускается в режиме ожидания приема данных, а устройство с МК подключается к питанию позднее (и сразу высылает контрольное сообщение ведущему).
Данный эффект обнаружился у обеих имеющихся в наличии AT89S52.
