Я написал код для дисплея DL1416, это 4-разрядный 16-сегментный дисплей. Мне нужно протестировать дисплей pd2816 с помощью Arduino. pd2816 представляет собой 8-разрядный 18-сегментный дисплей. Может ли кто-нибудь помочь мне с тем, какие изменения можно внести в мой фактический код, чтобы я мог прокручивать цифры в 8 цифре вместо 4 и проверять все сегменты в PD 2816.... Техническое описание DL1416
Какие изменения нужно внести в исходный код?
Ответы (1)
Хотя я не уверен, что помешало вам прочитать таблицу данных, на которую вы ссылаетесь в своем вопросе, я отвечу на это
Проблема, с которой я сталкиваюсь, заключается в том, что это 8 цифр и как прокручивать числа во все 8 сегментов.
В соответствии с таблицей данных вы адресуете цифру, которую хотите записать, с помощью сигналов A1, A2, A3, где вы просто предоставляете биты желаемой цифры.
Поэтому, если вы хотите записать пятую цифру, вы вводите цифру через D0-D7 и устанавливаете управляющие входы в соответствии с этой таблицей. 5 — 0b101, поэтому A0 — ВЫСОКИЙ, A1 — НИЗКИЙ, A2 — ВЫСОКИЙ
Вы также можете подумать о том, как вы устанавливаете эти значения без явных вызовов 600 digitalWrite.
Используйте функцию, которая устанавливает выходы и сохраняет комбинации как числа. 7 бит представляют число. Так почему бы не использовать этот факт?
Поскольку контакты 0-7 находятся на одном порту, вы даже можете использовать манипулирование портами.
Вместо
digitalWrite(0, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
Вы могли бы просто написать
PORTD = 0b00110001;