Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 7 сегменгный индикатор
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
JimBaton
Выдаю из порта контроллера Мега 8 число от 1 до 20.Хочу преобразовать чтобы показывалось число от 1 до 20 на 2ух семисегментных индикаторах.Подскажете?Счегл начать?Как реализовать чисто железным путем без всяких кодов
rezident
Аппаратно? Тогда вам нужны дешифраторы двоично-десятичного кода в код для семисегментных индикаторов. Типа К176ИД2, К176ИД3. Плюс преобразователи двоичного кода в двоично-десятичный. Только зачем все это аппаратно делать, если у вас есть микроконтроллер?
Сделайте программно таблицу преобразования, где порядковый номер символа в таблице будет соответствовать символу, индицирующемуся на индикаторе. Делов-то laughing.gif
gormih
Цитата(JimBaton @ Oct 26 2008, 02:19) *
Выдаю из порта контроллера Мега 8 число от 1 до 20.Хочу преобразовать чтобы показывалось число от 1 до 20 на 2ух семисегментных индикаторах.Подскажете?Счегл начать?Как реализовать чисто железным путем без всяких кодов

Сочувствую Вашей непросвещенности :-)
То что Вы ищете называется дешифратором. Поищите на досуге. Можно вот сюда глянуть - если отечественное не смущает.

В сети куча примеров как это реализуется программно. Гугл никто не отменял.
777777
Цитата(JimBaton @ Oct 26 2008, 01:19) *
Выдаю из порта контроллера Мега 8 число от 1 до 20.Хочу преобразовать чтобы показывалось число от 1 до 20 на 2ух семисегментных индикаторах.Подскажете?Счегл начать?Как реализовать чисто железным путем без всяких кодов

Микроконтроллеры сушествуют как раз для того, чтобы делать все программно безо всякого дополнительного железа, ибо оно стоит денег. Выводи в 2 порта 2 числа, уже преобразовынные в 7-сегментный код и будет тебе щастте. А еще лучше - в один порт с динамической индикацией.
JimBaton
Ну просто не все бывают такие просвященные как gormih , бывают и такие которые только учатся и поэтому спрашивают совета более опытных людей.Я тут подумал что действительно создать таблицу и подогнать ее под 7 сегментный индикатор будет проще.Просто я к тому, что эта таблица занимает свободную память контроллера, а она такая дефицитная.
bloodden
Цитата(JimBaton @ Oct 26 2008, 18:06) *
Ну просто не все бывают такие просвященные как gormih , бывают и такие которые только учатся и поэтому спрашивают совета более опытных людей.Я тут подумал что действительно создать таблицу и подогнать ее под 7 сегментный индикатор будет проще.Просто я к тому, что эта таблица занимает свободную память контроллера, а она такая дефицитная.

Эта таблица (на 10 цифр + немного знаков) будет занимать флешь, которой не так уже и мало. И поиском на форуме специально для новичков находится ОЧЕНЬ много тем, где подобное, а в некоторых случаях и аналогичное, рассматривается по многу раз. ИМХО.
assm
Цитата(bloodden @ Oct 26 2008, 18:59) *
Эта таблица (на 10 цифр + немного знаков) будет занимать флешь, которой не так уже и мало. И поиском на форуме специально для новичков находится ОЧЕНЬ много тем, где подобное, а в некоторых случаях и аналогичное, рассматривается по многу раз. ИМХО.


Эта таблица будет занимать 10 байт и содержать 7-сегментные коды от 0 до 9.
Если хотите буквы E, d, с,... то около 20 байт.

Если индикатора всего 2- их можно напрямую повесить на выходы портов через резисторы.
В программе- нужно значение 16-ричное преобразовать в 10-чное, тоесть в формат представления чисел BCD. ( каждые 4 бита байта шифруются как числа 0..9, тоесть максимальное число представленое байтом- 99.)
Есть простые алгоритмы такого преобразования, их легко найти в интернете.
Более сложный режим- динамическая индикация- потребует знания программирования таймера,
но индикаторов можно будет подключить значительно больше.
JimBaton
я понимаю как напрямую дать код на порт и прикрутить к нему индикатор.Таблицу смогу построить, но как прикрутить к порту 2 индикатора.Порт должен показывать двузначное число.Как я понимаю все равно нужно какое-то железо
bloodden
Цитата(JimBaton @ Oct 27 2008, 00:43) *
я понимаю как напрямую дать код на порт и прикрутить к нему индикатор.Таблицу смогу построить, но как прикрутить к порту 2 индикатора.Порт должен показывать двузначное число.Как я понимаю все равно нужно какое-то железо

Нужна пара ключей на транзисторах. Вся идея в том, чтоб на 50% времени зажигать первый разряд с первой цифрой, а потом менять код и включать на вторые 50% времени общий электрод второго разряда.
ЗЫ: Поиском пользуйтесь. За эти 7 часов с моего последнего поста Вы даже теорию не искали.
777777
Цитата(assm @ Oct 26 2008, 21:27) *
Если индикатора всего 2- их можно напрямую повесить на выходы портов через резисторы.

Не согласный я. Хотя нагрузочная способность выхода 20 мА, но суммарный ток всех выходов не должен превышать 80 мА - об этом тоже не стоит забывать.
Herz
Цитата(777777 @ Oct 27 2008, 07:57) *
Не согласный я. Хотя нагрузочная способность выхода 20 мА, но суммарный ток всех выходов не должен превышать 80 мА - об этом тоже не стоит забывать.
А больше вряд ли и понадобиться. Так что соглашайтесь. smile.gif
Stanislav_S
Цитата(JimBaton @ Oct 26 2008, 03:19) *
Выдаю из порта контроллера Мега 8 число от 1 до 20.Хочу преобразовать чтобы показывалось число от 1 до 20 на 2ух семисегментных индикаторах.Подскажете?Счегл начать?Как реализовать чисто железным путем без всяких кодов

Индикатор можно подключить примерно так, я думаю хоть и индикатор на три знакоместа, но идея понятна.
Alex2578
Вот еще, как раз твой вариант под динамическую индикацию.
777777
Цитата(Herz @ Oct 27 2008, 10:47) *
А больше вряд ли и понадобиться. Так что соглашайтесь. smile.gif

Одному сегменту надо 10 мА, всего их 14, следовательно максимальное потребление - 140 мА. Где я неправ?

Цитата(Stanislav_S @ Oct 27 2008, 13:41) *
Индикатор можно подключить примерно так, я думаю хоть и индикатор на три знакоместа, но идея понятна.

Шо, прямо вот так - выход порта на анод семи светодиодов? А если там горят все сегменты - ты будешь тянуть из ноги 80 мА?

Цитата(Alex2578 @ Oct 27 2008, 17:15) *
Вот еще, как раз твой вариант под динамическую индикацию.

Это уже получче, можно только посоветовать заменить транзистор на p-канальный полевик, можно избавиться от четырех резисторов. А если в одном корпусе, как IRF7104, то и место сэкономишь.
Alex2578
Цитата(777777 @ Oct 28 2008, 15:10) *
Это уже получче, можно только посоветовать заменить транзистор на p-канальный полевик, можно избавиться от четырех резисторов. А если в одном корпусе, как IRF7104, то и место сэкономишь.


Только 2 резистора можно сэкономить. Вторые пара все равно будет нужна для подтяжки затвора.
777777
Цитата(Alex2578 @ Oct 28 2008, 15:25) *
Только 2 резистора можно сэкономить. Вторые пара все равно будет нужна для подтяжки затвора.

Зачем подтягивать затвор, если на него будет приходить конкретное напряжение - 0 или 5 В? Или вы управляете выходами переключаясь между нулем и третьим состоянием?
Stanislav_S
Цитата(777777 @ Oct 28 2008, 17:10) *
Шо, прямо вот так - выход порта на анод семи светодиодов? А если там горят все сегменты - ты будешь тянуть из ноги 80 мА?.

Там не надо столько тока, резсторы довольно большие и питание в районе 4В. Яркость конечно не ахти, но так было задумано, в целях экономии, прибор больно бюджетный smile.gif А так конечно надо транзисторы добавлять.
birden
Транзисторы ставить нужно, не стоит испытывать судьбу smile.gif
777777
Цитата(Stanislav_S @ Oct 29 2008, 13:53) *
Там не надо столько тока, резсторы довольно большие и питание в районе 4В. Яркость конечно не ахти, но так было задумано, в целях экономии, прибор больно бюджетный smile.gif

А когда они начнут гореть, клиенты скажут - нет, не могут наши делать электронику, то ли дело японцы!
Alex2578
Цитата(777777 @ Oct 28 2008, 15:46) *
Зачем подтягивать затвор, если на него будет приходить конкретное напряжение - 0 или 5 В? Или вы управляете выходами переключаясь между нулем и третьим состоянием?


Ну, мое мнение таково, что железо должно устойчиво работать и во внештатных ситуациях. Мало ли чего там программист наваяет. А если контроллер "неудачно" повесится? Мы же не знаем какой порт и какой контроллер планирует использовать автор темы.


Пардон, контроллер известен, третье состояние там получается легко и непринужденно, посему лучше перестраховаться.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.