Ээээээээээ, шо-шо?
Не обращай внимания, это специфические грабли таких вот многострочных табло. Он потом захочет с ПК ею управлять и ему понадобится система команд. Так вот, это сразу надо понимать, закладывая архитектуру, а архитектур там всего две - распределенная система с центральным блоком и строками, или один блок и хуева туча сдвиговых регистров, включаемых последовательно.
Если в системе на сдвиговых регистрах всё проще, там один адресат и массив символов, то в распределенной символы физически в массив завязаны разве-что саморезами, которыми прикручены в конструкцию. Там контроллер в каждой строке и у него физически свой адрес и своя матрица.
На практике применяются и те и те системы. Из за плюсов и минусов - та, или иная.
Минус сдвигового табло - выпадение одной платы в даун (или микросхемы в ней, или тупо попадание воды в разъем, что происходит регулярно) = в дауне все платы за ней, тогда как распределенная система висит параллельно на 485й линии и если одна плата умерла - всем остальным нас - рать.
На что так жестко влияет эта разница? А на вопли клиента и неустойки. Одно дело когда сдохла строка, но табло работает в целом - АЗС продает бензин, обменка - барыжит баксами, но с некоторым дискомфортом, а другое - табло сдохло к ебеням.
При этом народ считает, что пункт не работает и хозяева несут убытки, о чем незамедлительно сообщают вам в истерической форме
Короче, в каждой отрасли свои нюансы

P.S. Система ТСа, конечно, однострочная по вводной, но так же будет не всегда
І навіщо цей непотріб, коли є хардварний уарт?
Я казав про реалізацію буферів та методів для зручного читаня чи писання в них.
и я про них. Уарт хардовый. У меня - любое количество буферов (через указатель показываешь куда или откуда сувать);
задание битрейта через прямое числовое значение (вызвал функцию с параметром 19200 - контроллер сам пересчитывает BRH BRL);
перекодировка int -> ASCII и обратно;
процедурки пихания в буфер из SRAM и Flash.
Самое длинное во всем этом - расчет BRH/L средствами МК из int значения. Если им принебречь - прога сдувается очень серьезно.
Чисто буфера FIFO кольцевые и методы PUSH и PULL для них - 300 с чем-то байт, это вместе с уартом физическим и настройкой пинов.