Цитата(BaTpywkuH @ Apr 12 2018, 17:31)
1. питание микросхемы. проверьте, она точно допускает 12 В? техасовская SN74165 - пятивольтовая;
2. проверьте уровни. если есть логическая микросхема, а не какой-то идеальный элемент, то на ее входе должны быть достаточные уровни нуля и единицы (читайте даташит на конкретную микросхему);
3. параллельный порт. все входы должны трактоваться однозначно: единица - подтяни вход к плюсу, ноль - посади вход на общий провод;
4. насколько я понимаю структурную схему регистра, ему можно закольцевать данные, соединив прямой выход QH и вход последовательной загрузки SER;
5. еще раз. регистр работает так:
- устанавливаем единицу на SH/LD (shift/load - сдвиг/загрузка, загрузка инверсная) - запрет загрузки (непринципиально)
- устанавливаем единицу на INH (inhibit - запрет) - запрещаем тактирование
- устанавливаем единицы И НУЛИ! на нужных входах A-H так, как хочется
- устанавливаем ноль на SH/LD на время не менее 25 нс (я взял это время для техасовской SN74165. если у вас что-то иное - курим соответствующий даташит или просто от балды делаем этот импульс безобразно длинным, например, предложенные выше 10 мкс) - данные с параллельного порта транслируются на внутренние триггеры
- устанавливаем единицу на SH/LD - запрещаем трансляцию параллельного порта во внутренние триггеры (в них остается то, что стояло на параллельном порте при переходе SH/LD в единицу)
- устанавливаем ноль на INH - разрешаем тактирование
- дальше все должно корректно работать - загруженный байт будет побитно выдаваться на выходы согласно частоте тактирования
теперь, как можно реализовать эту последовательность в схеме. вариантов в общем-то несколько. например, можно повесить на указанные входы переключатели и после включения схемы вручную пощелкать в нужной последовательности.
если хочется автоматики, можно повесить на INH и SH/LD RC-цепочки. интегрирующие.
SH/LD подтягиваем к питанию через резистор и вешаем с него конденсатор на общий провод. это обеспечит на входе ноль при включении и задержку появления единицы. решили 10 мкс? - ставим 10 к и 1 нФ
INH подтягиваем через резистор к общему проводу и вешаем конденсатор на питание - это даст единицу при включении и задержку появления нуля. т.к. нам нужно для корректной и понятной работы сначала загрузить триггеры и только потом разрешить тактирование, посчитаем эту RC-цепочку на время на порядок большее, чем загрузочную RC-цепь: 100 мкс = 10 к + 10 нФ
если мы закольцевали данные (см. п.4), то дальше все это должно крутиться и вертеться без нашего участия.
если все-таки хочется, как предложено выше, грузить данные каждый раз, то снимаем закольцованность (чисто для наглядности), а на тактовый вход регистра вместо интегрирующей RC-цепочки подаем поделенную на 4 частоту через дифференцирующую цепочку с подтяжкой к плюсу питания. как делитель сварганить? так он у вас на первой картинке первого поста нарисован - только там три триггера в цепочке, поэтому делитель на 8, а вам надо оставить два триггера для получения делителя 4
вроде, всё.
ЗЫ в воркбенче должно заработать, думаю. чтоб схема корректно и долго работала в реальности, ее нужно будет допилить, иначе может помереть
--------------------
Мощность распределять нужно плавно и равномерно (ц) Гена21