преобразователь двоичного кода для семисегментников
- Nemo_at7
- Родился
- Сообщения: 4
- Зарегистрирован: Чт апр 29, 2010 23:50:45
- Откуда: Питер
- Контактная информация:
преобразователь двоичного кода для семисегментников
столкнулся с такой проблемой при проектировании устройства:
имеется двоичный (восьми или двенадцати разрядный) код, например, для числа 852 это : 0011 0101 0100
этот код, например, идёт с каких-нить 12ти ног одновременно и статично (не импульсно), необходимо этот код вывести на три отдельных семисегментных индикатора в виде: 8, 5 и 2 соответственно ... т.е. надо код дешифровать и передать на три индикатора по разрядам
причём для реализации могут применяться: тригеры, регистры, счётчики, дешифраторы и подомные им устройства
не предлагайте, пожалуйста, использование микроконтроллеров в сочетанием с написанием кода ...
Пы.сы. чувствую, что надо юзать здесь сумматоры или полусумматоры, но как и к чему именно их "прикрутить" не могу разобраться
имеется двоичный (восьми или двенадцати разрядный) код, например, для числа 852 это : 0011 0101 0100
этот код, например, идёт с каких-нить 12ти ног одновременно и статично (не импульсно), необходимо этот код вывести на три отдельных семисегментных индикатора в виде: 8, 5 и 2 соответственно ... т.е. надо код дешифровать и передать на три индикатора по разрядам
причём для реализации могут применяться: тригеры, регистры, счётчики, дешифраторы и подомные им устройства
не предлагайте, пожалуйста, использование микроконтроллеров в сочетанием с написанием кода ...
Пы.сы. чувствую, что надо юзать здесь сумматоры или полусумматоры, но как и к чему именно их "прикрутить" не могу разобраться
- Реклама
Re: преобразователь двоичного кода для семисегментников
Посмотрите в сторону микросхемы 155ПР7. Берете книжку Бирюков С.А. - Применение интегральных микросхем серий ТТЛ. Там есть её описание и способ каскадирования. Она преобразует двоичный код в БКД, а далее тремя дешифраторами двоичного кода в семисегментный получаете то, что вам нужно.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Re: преобразователь двоичного кода для семисегментников
74185 (аналог КМ155ПР7). Для 8-ми битного преобразования нужно 3шт., для 12 битов - 8шт. (см. даташит на стр.8, рис.6 и рис.8 соответственно)
Но вот потребление этих ИС, боюсь, может огорчить - 50..60 ма на корпус...
Но вот потребление этих ИС, боюсь, может огорчить - 50..60 ма на корпус...
Re: преобразователь двоичного кода для семисегментников
А что тут пугает? Программа на Си будет очень простой, и МК всего один с 12 портами на вход и 11 на динамическую индикацию, например ATmega8.Nemo_at7 писал(а):не предлагайте, пожалуйста, использование микроконтроллеров в сочетанием с написанием кода ...
Даже если достаточно 9 двоичных разрядов (0...511), и то проще на МК, ибо 74185 (аналог КМ155ПР7) понадобится 4шт плюс 3шт дешифраторов.
Либо делать индикацию в 16-ричном коде.
[color=#006699]In der großen Familie nicht kluven klatz-klatz![/color]
- Nemo_at7
- Родился
- Сообщения: 4
- Зарегистрирован: Чт апр 29, 2010 23:50:45
- Откуда: Питер
- Контактная информация:
Re: преобразователь двоичного кода для семисегментников
uldemir, Спасибо за идею и за книжку, на досуге поштудирую.
Digikey Спасибо за аналог
А модели для протеуса у Вас случайно не найдётся? а то в, найденной мною на просторах интернета, библиотеки 74 логики на часть элементов нет моделей, в частности и на этот экземпляр
А хочется ведь протестировать схемку, чтоб разобраться как она будет обрабатывать код
Digikey Спасибо за аналог
А модели для протеуса у Вас случайно не найдётся? а то в, найденной мною на просторах интернета, библиотеки 74 логики на часть элементов нет моделей, в частности и на этот экземпляр
А хочется ведь протестировать схемку, чтоб разобраться как она будет обрабатывать код
Вообще использование МК не пугает ... я бы все узлы туда упаковал в простеньком коде, как Вы уже заметили. Но мне необходимо реализовать схемку без участия МК. Поэтому и приходится мудрить.Eprinter писал(а):А что тут пугает? Программа на Си будет очень простой, и МК всего один с 12 портами на вход и 11 на динамическую индикацию, например ATmega8.
- Реклама
Re: преобразователь двоичного кода для семисегментников
ПР7 - это не что иное, как уже прошитая микросхема ПЗУ. С таким же успехом можно использовать любую другую микросхему ПЗУ, и даже с другим числом разрядов, самостоятельно прошив её под свои требования, например, сразу в семисегментный код... 
Если хотите, чтобы жизнь улыбалась вам, подарите ей своё хорошее настроение
Re: преобразователь двоичного кода для семисегментников
для числа 852 это : 0011 0101 0100 - пожалуйста, как код называется?
Re: преобразователь двоичного кода для семисегментников
Двоичный
Если хотите, чтобы жизнь улыбалась вам, подарите ей своё хорошее настроение
- Nemo_at7
- Родился
- Сообщения: 4
- Зарегистрирован: Чт апр 29, 2010 23:50:45
- Откуда: Питер
- Контактная информация:
Re: преобразователь двоичного кода для семисегментников
возможно я не прав, но это же микросхема на ТТЛ логике, что там может быть "прошито"?Света писал(а):ПР7 - это не что иное, как уже прошитая микросхема ПЗУ.
Re: преобразователь двоичного кода для семисегментников
Света, СПАСИБО!
А почему не так 8 - 1000, 5 - 0101, 2 - 0010?
Если не затруднит, вкратце. Спасибо.
А почему не так 8 - 1000, 5 - 0101, 2 - 0010?
Если не затруднит, вкратце. Спасибо.
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: преобразователь двоичного кода для семисегментников
Потому что 8 = 1000 и т.д. это уже так называемый шестнадцатеричный код - по сути тот же двоичный но представленный по 4 бита.
В то же время десятичное число 852 представлено двоичным кодом см. выше
В то же время десятичное число 852 представлено двоичным кодом см. выше
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: преобразователь двоичного кода для семисегментников
Посмотрите ШилоNemo_at7 писал(а):возможно я не прав, но это же микросхема на ТТЛ логике, что там может быть "прошито"?
- Вложения
-
- p0168.jpg
- (42.65 КБ) 3427 скачиваний
Если хотите, чтобы жизнь улыбалась вам, подарите ей своё хорошее настроение
Re: преобразователь двоичного кода для семисегментников
Света дала хорошую идею с ПЗУ.
Сходу придумалось - поставить три УФ ПЗУ, адресные входы трех микросхем подключить параллельно к источнику сигнала, на выходы повесить 7-сегментные индикаторы (через токоограничительные резисторы). Микросхемы ПЗУ должны быть на 4 кБайт (с 12 адресными входами), по крайней мере для старшей цифры. Прошивки ПЗУ несложно рассчитать.
Просто, статично и без микроконтроллеров
Если в учебных целях, то, наверно, можно на дешифраторах/сумматорах наворотить
Сходу придумалось - поставить три УФ ПЗУ, адресные входы трех микросхем подключить параллельно к источнику сигнала, на выходы повесить 7-сегментные индикаторы (через токоограничительные резисторы). Микросхемы ПЗУ должны быть на 4 кБайт (с 12 адресными входами), по крайней мере для старшей цифры. Прошивки ПЗУ несложно рассчитать.
Просто, статично и без микроконтроллеров
Если в учебных целях, то, наверно, можно на дешифраторах/сумматорах наворотить
Re: преобразователь двоичного кода для семисегментников
Эта ИС является заказной версией 256-битной ПЗУ(ROM) SN7488 (об этом написано в 1-й строке даташита). Поэтому можно взять похожую память, "записать" в нее таблицу, которая приведена на стр.3 (FUNCTION TABLE) и использовать для моделирования.А модели для протеуса у Вас случайно не найдётся?
Это двоичный код. Откройте Калькулятор в виндоус, наберите 852 и включите режим Bin.для числа 852 это : 0011 0101 0100 - пожалуйста, как код называется?
А это двоично-кодированный десятичный код. (Binary Coded Decimal)А почему не так 8 - 1000, 5 - 0101, 2 - 0010?
ссылка: Системы счисления в цифровой электронике
Re: преобразователь двоичного кода для семисегментников
Спасибо! Учусь.
- Aaantonnn15
- Встал на лапы
- Сообщения: 101
- Зарегистрирован: Пт авг 20, 2010 18:31:05
- Контактная информация:
Re: преобразователь двоичного кода для семисегментников
Люди добрые,помогите пожалуйста,кто может.У меня та же проблема что и у Nemo_at7.Только мне необходима таблица перекодировки для МК.Работаю с PIC. Таблицу перекодировки до 9-ти написал,а дальше засада!!!Только мне нужно всего на 2-а разряда.
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: преобразователь двоичного кода для семисегментников
Поиск рулит - не раз выкладывали методу перекодировки 
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: преобразователь двоичного кода для семисегментников
Это уже двоично-десятичный.Я писал(а):Света, СПАСИБО!
А почему не так 8 - 1000, 5 - 0101, 2 - 0010?
Если не затруднит, вкратце. Спасибо.
Двоично-десятичный код - это такой код, при котором каждый разряд десятичного числа представляется в виде 4 разрядов двоичного числа.
В дв-дес. коде запрещены числа (последовательность символов 1 и нулей) 1010, 1011, 1100, 1101 1110, 1111.
Не умеешь - не берись, но не взявшись не научишься...
Re: преобразователь двоичного кода для семисегментников
Мракочип предлагает application note 526 в которой приведены примеры как это делать.Aaantonnn15 писал(а):Только мне необходима таблица перекодировки для МК.Работаю с PIC.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Aaantonnn15
- Встал на лапы
- Сообщения: 101
- Зарегистрирован: Пт авг 20, 2010 18:31:05
- Контактная информация:
Re: преобразователь двоичного кода для семисегментников
Спасибо вам Stalker46, что ещё раз разъяснили мне и всем читающим, что такое двоично- десятичный код. Но я ведь спрашивал не об этом. На данный момент работаю с датчиком температуры DS18S20.Может сталкивались? После преобразования температуры он выдает следующий код(пусть для примера С8h) далее его необходимо поделить на 2, получаем-64h (01100100)-этот код соответствует 100 градусам Цельсия далее его необходимо отобразить на семисегментнике.(пусть я использую не 2 разряда,а три + дешифратор).И как по вашему это нужно делать???Код то у меня 0110 0100, а нужен 0001 0000 0000. Так ведь?! Для этого и нужна перекодировка или коррекция


