ATmega32 как вывести на ножки число от 0 до 9999
- Сообщения: 4
- Зарегистрирован: Чт фев 09, 2023 07:56:59
Добрый день! Для вывода числа к примеру 250 достаточно одного порта 8 бит. А как быть если число 999 где уже для вывода нужно 10 ножек? Я так понимаю беру 8 ножек к примеру порта А и две ножки из порта B и каждой ножке через массив переменной назначаю выход на контакт или как это реализовать? В целом у меня задача вывести на 7 сегментные индикаторы число от 0 до 9999 и при этом что бы значение числа еще и на ножках в виде двоичного кода появлялось.
- Реклама
- Сообщения: 333
- Зарегистрирован: Ср мар 09, 2016 08:07:41
[uquote="son313",url="/forum/viewtopic.php?p=4409798#p4409798"]В целом у меня задача вывести на 7 сегментные индикаторы число от 0 до 9999 и при этом что бы значение числа еще и на ножках в виде двоичного кода появлялось.[/uquote]
разные задачи. первая решается применением сдвигового регистра 74HC595. по одной микросхеме на один разряд. для "9999" нужно четыре микросхемы. но можно использовать и динамическую индикацию. тогда хватит двух.
разные задачи. первая решается применением сдвигового регистра 74HC595. по одной микросхеме на один разряд. для "9999" нужно четыре микросхемы. но можно использовать и динамическую индикацию. тогда хватит двух.
- Сообщения: 4
- Зарегистрирован: Чт фев 09, 2023 07:56:59
[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 разрядов. Как мне вывести это на ножки микроконтроллера?
разные задачи. первая решается применением сдвигового регистра 74HC595. по одной микросхеме на один разряд. для "9999" нужно четыре микросхемы. но можно использовать и динамическую индикацию. тогда хватит двух.[/uquote]
С выводом на индикатор это второй вопрос. Там вроди бы все понятно. Как вывести число на порты если разрядность числа больше 8? Вот допустим число 999. Это в двоичной 1111100111 то есть 10 разрядов. Как мне вывести это на ножки микроконтроллера?
- Сообщения: 333
- Зарегистрирован: Ср мар 09, 2016 08:07:41
Код: Выделить всё
uint16_t c = 9999;
DDRC = 0x3F;
DDRD = 0xFF;
PORTC = (uint8_t)((c >> 8) & 0x00FF);
PORTD = (uint8_t)(c & 0x00FF);
Последний раз редактировалось veso74 Вт май 02, 2023 11:02:29, всего редактировалось 2 раза.
- Реклама
А сказано, что вывод д. быть параллельным? Если в последовательном коде, то хоть до миллиона, достаточно 3 пин: ВЫБОР, ДАННЫЕ и СТРОБ. Как в SPI.
- Сообщения: 4
- Зарегистрирован: Чт фев 09, 2023 07:56:59
[uquote="Jack_A",url="/forum/viewtopic.php?p=4409815#p4409815"]А сказано, что вывод д. быть параллельным? Если в последовательном коде, то хоть до миллиона, достаточно 3 пин: ВЫБОР, ДАННЫЕ и СТРОБ. Как в SPI.[/uquote]
Да нужен именно параллельный вывод чисел от 0 до 9999.
Да нужен именно параллельный вывод чисел от 0 до 9999.
unsigned int x = 999; // 11 1110 0111
PORTD=x; // .. 1110 0111
PORTC=(x>>8); // 11 .... ....
PORTD=x; // .. 1110 0111
PORTC=(x>>8); // 11 .... ....



