Страница 1 из 1

ATmega32 как вывести на ножки число от 0 до 9999

Добавлено: Вт май 02, 2023 10:00:19
son313
Добрый день! Для вывода числа к примеру 250 достаточно одного порта 8 бит. А как быть если число 999 где уже для вывода нужно 10 ножек? Я так понимаю беру 8 ножек к примеру порта А и две ножки из порта B и каждой ножке через массив переменной назначаю выход на контакт или как это реализовать? В целом у меня задача вывести на 7 сегментные индикаторы число от 0 до 9999 и при этом что бы значение числа еще и на ножках в виде двоичного кода появлялось.

Re: ATmega32 как вывести на ножки число от 0 до 9999

Добавлено: Вт май 02, 2023 10:12:11
JackSmith
[uquote="son313",url="/forum/viewtopic.php?p=4409798#p4409798"]В целом у меня задача вывести на 7 сегментные индикаторы число от 0 до 9999 и при этом что бы значение числа еще и на ножках в виде двоичного кода появлялось.[/uquote]


разные задачи. первая решается применением сдвигового регистра 74HC595. по одной микросхеме на один разряд. для "9999" нужно четыре микросхемы. но можно использовать и динамическую индикацию. тогда хватит двух.

Re: ATmega32 как вывести на ножки число от 0 до 9999

Добавлено: Вт май 02, 2023 10:23:47
son313
[uquote="JackSmith",url="/forum/viewtopic.php?p=4409805#p4409805"][uquote="son313",url="/forum/viewtopic.php?p=4409798#p4409798"]В целом у меня задача вывести на 7 сегментные индикаторы число от 0 до 9999 и при этом что бы значение числа еще и на ножках в виде двоичного кода появлялось.[/uquote]


разные задачи. первая решается применением сдвигового регистра 74HC595. по одной микросхеме на один разряд. для "9999" нужно четыре микросхемы. но можно использовать и динамическую индикацию. тогда хватит двух.[/uquote]

С выводом на индикатор это второй вопрос. Там вроди бы все понятно. Как вывести число на порты если разрядность числа больше 8? Вот допустим число 999. Это в двоичной 1111100111 то есть 10 разрядов. Как мне вывести это на ножки микроконтроллера?

Re: ATmega32 как вывести на ножки число от 0 до 9999

Добавлено: Вт май 02, 2023 10:26:43
JackSmith
да теми же 74HC595

Re: ATmega32 как вывести на ножки число от 0 до 9999

Добавлено: Вт май 02, 2023 10:33:07
veso74

Код: Выделить всё

  uint16_t c = 9999;

  DDRC = 0x3F;
  DDRD = 0xFF;

  PORTC = (uint8_t)((c >> 8) & 0x00FF);
  PORTD = (uint8_t)(c & 0x00FF);

Re: ATmega32 как вывести на ножки число от 0 до 9999

Добавлено: Вт май 02, 2023 10:35:31
Jack_A
А сказано, что вывод д. быть параллельным? Если в последовательном коде, то хоть до миллиона, достаточно 3 пин: ВЫБОР, ДАННЫЕ и СТРОБ. Как в SPI.

Re: ATmega32 как вывести на ножки число от 0 до 9999

Добавлено: Вт май 02, 2023 10:49:45
son313
[uquote="Jack_A",url="/forum/viewtopic.php?p=4409815#p4409815"]А сказано, что вывод д. быть параллельным? Если в последовательном коде, то хоть до миллиона, достаточно 3 пин: ВЫБОР, ДАННЫЕ и СТРОБ. Как в SPI.[/uquote]

Да нужен именно параллельный вывод чисел от 0 до 9999.

Re: ATmega32 как вывести на ножки число от 0 до 9999

Добавлено: Вт май 02, 2023 11:11:30
roman.com
unsigned int x = 999; // 11 1110 0111

PORTD=x; // .. 1110 0111
PORTC=(x>>8); // 11 .... ....