Господа программисты, такая ситуация:
Занчит связка AVR через сдвиговый регистр 74HC595 подключен на ЖКИ (HD44780).
Для снижения расходов ножек микроконтроллера.
Получается 3-х проводный интерфейс ЖКИ (плата со сдвиговым регистром находится на ЖКИ)
У микроконтроллера используются 3 ноги (Для: Е-строб для ЖКИ, С-строб для регистра и DI-данные для
регисрта).
Алгоритм приблизительно сл:
устанавливаю Е в 0
Далее в цикле перебираю биты чила, в зависимости от этого устанавливаю или сбрасываю DI и передергиваю С
После 8 раз на выходе регистра получаю D0-D7 для ЖКИ
Далее, если команда, сбрасываю С (он у меня подключен и к RS ЖКИ), если данные, то оставляю 1
Устанавливаю Е в 1
Жду
Устанавливаю Е в 0
А загвоздка вот в чем:
Когда ЖКИ не подключен (к сдвиговому регистру) то на выходах регистре число получается верное(например
вдвигаю в регистр 56-> и получаю на выходах D0-D7:00011100), в общем работа с регистром организована
правильно.
А когда подключен ЖКИ при той же операции получаю D0-D7:00011111 или D0-D7:00011110
Откуда берутся 1-цы??, контроллер ЖКИ их устанавливает?
Пробовал медленно вдвигать число в регистр, чтобы успевать мерять напряжения на выходах, так вот, когда
вдвигаю 6 например, сначала появляется первая 1ца, затем вторая 1ца, затем, при появлении 0ля, одна
единица исчезает и получается 4(00100000) вместо 6(01100000). При этом без ЖКИ вся логика верная и
работает, может как-то развязать выходы микросхемы и ЖКИ? хотя бред, уровни логики одинаковые. А может
диоды поставить?
Буду признателен за любую информацию.