Изменить значение только одного регистра на 8-разрядной регистровой интегральной схеме (74hc273 / DM74LS273)?
Во-первых, пожалуйста, наберитесь терпения, я не электронный человек. Я изучаю Arduino и электронику для хобби, и это мой первый опыт работы с интегральными схемами.
- Ситуация: Я хочу расширить контакты Arduino Nano (Де/мультиплексор) и сохранить состояние (Высокое/низкое) новых контактов, пока я не решу изменить его снова. Для сохранения состояний я думаю, что система на основе памяти Flipflop типа D может помочь .
- Вопрос 1: В этой системе я могу изменить только один бит с уникальным сигналом или мне нужно установить все состояния битов ?
- Пример (эталонное изображение):
- Память, предыдущее состояние:
Q0=0, Q1=1, Q2=1, Q3=0
- Arduino: Установите pin17 (D2) на высокий -> Память: Ожидание новых данных.>
- Arduino: Установите pin16 (D3) в высокое значение -> Mux: Передайте значение в память при >D0
- Память: Прочитал 1 на D0 (это мое сомнение. D1, D2 и D3 не имеют значения ?)
- Arduino: Установите pin17 (D2) на НИЗКИЙ -> Память: Сохранение новых данных>
- Память, новое состояние:
Q0=1, Q1=1, Q2=1, Q3=0
? илиQ0=1, Q1=0, Q2=0, Q3=0
?
Вопрос 2: Правильно ли это ? Вопрос 3. Есть ли более эффективный способ сделать это?
Примечания:
- Я использовал симулятор для построения диаграммы памяти на основе этой таблицы данных: https://pdf1.alldatasheet.com/datasheet-pdf/view/8337/NSC/74273.html Кажется, что это возможно, но я хочу быть уверенным.
- В настоящее время мое решение-использовать отдельные флип-флопы, но я хочу упростить его.
- Соединения на эталонном изображении упрощены.
- Извините за плохую диаграмму, я не знаю программ для красивых электронных диаграмм.
- Извините за опечатки, здесь не родной английский человек.
@faanbece, 👍1
Обсуждение1 ответ
▲ 1
Вопрос 1 и Вопрос 2: Я был неправ, это неправильный путь. @jsotola и @the_busybee, спасибо за разъяснение
Вопрос 3: @Nick_Gammon и @Majenko Я думаю, что вы правы, использование i2c является более эффективным способом. Но предложение @StarCat более совместимо с моим текущим решением. 74hc259 позволяет мне устанавливать состояние по одному и сохранять его до тех пор, пока я не изменю его снова.
,
@faanbece
Смотрите также:
- Использование библиотеки емкостных датчиков с мультиплексором 74HC4067
- Пространство, занимаемое глобальными переменными
- Использование CD74HC4067 16-канальный аналоговый мультиплексор Демультиплексор работает не так, как ожидалось
- Помогите уменьшить размер скетча!
- Как долго программа будет оставаться в памяти без питания?
- Мультиплексирование трех ламп VFD — почему сегменты и синхронизация отображения неверны?
- Могу ли я подключить аналоговый мультиплексор к Arduino Nano?
- Выход TPIC6B595 не может обеспечить подачу питания на 7-сегментный дисплей
Я не хочу отвечать в комментарии, но слышали ли вы о чипе 74HC595? Это позволяет настроить 8 выходов, используя только 3 контакта от Arduino, и они могут быть скованы цепью. Это выглядит проще, чем ваше предложение., @Nick Gammon
Или, если вы хотите использовать еще меньше выходов, вы можете рассмотреть расширитель ввода-вывода I2C, такой как MPC23017., @Majenko
подача demux в защелку не позволит вам установить выходные контакты в различные состояния, @jsotola
Существует простой и дешевый компонент, который может делать то, что вы хотите, - [адресуемая защелка 74HC259](https://assets.nexperia.com/documents/data-sheet/74HC_HCT259.pdf). По сути, это demux и 8-битная защелка, в которой биты адресуются индивидуально., @StarCat
Посмотрите на технический паспорт модели '273: вы не можете установить ее шлепанцы по отдельности. Все или ничего, вот и все. Используйте другую микросхему., @the busybee
Большое спасибо за ваши комментарии. Очень ценю ваше время и терпение., @faanbece