нужно применять команду 0x40 - автоматический инкремент адреса.
я в самом начале передаю команду 0x88+плюс код яркости - управление дисплеем.
поэтому у меня есть определения:
.equ command_auto = 0x40
.equ start_address = 0xc0
.equ control_display= 0x88 ; плюс код яркости
после передачи стартового адреса команда стоп дается только один раз - после передачи всех символов.
а ты передаешь стоп сразу же после первого символа, поэтому следующий символ просто не воспринимается.
вот мой код вывода 4-х символов:
ldi ZL, digits_for_out
rcall start
ldi R26, command_auto
rcall write_byte
rcall stop
rcall start
ldi R26, start_address
rcall write_byte
ld R26, Z+
rcall write_byte
ld R26, Z+
rcall write_byte
ld R26, Z+
rcall write_byte
ld R26, Z+
rcall write_byte
rcall stop
digits_for_out - у меня адрес в ОЗУ (буфер), откуда брать символы.
но ты для проверки можешь сам каждый раз загружать в R26 нужный проверочный код символа.
ещё.
тут в теме писали, что в модули на входы TM1637 ставят конденсаторы большой емкости (до 10 нФ), вместо 100 пФ, как указано в даташите. поэтому модули оказываются очень медленные. я на своих модулях эти конденсаторы вообще убрал с платы.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


