![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 24.11.2013
Сообщений: 8
|
![]()
Есть светодиодный индикатор,
есть 8-ими раздяное ацп, которое передает 256 значений(от 0 до 255) так вот надо сделать так, чтобы выводилось любое значение из этого промежутка, например "167","190" и т.д., не знаю как это программно описать, знаю, лишь что здесь что-то с нулевым битим связано подскажите пожалуйста |
![]() |
![]() |
![]() |
#2 |
Регистрация: 24.11.2013
Сообщений: 8
|
![]()
данные с ацп поступают на микроконтроллер ADuC812, тот в свою очередь соединен с сегментами индикатора
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
кошерно ...вот и преобразуйте принятое с АЦП в семисегментный код, согласно схемы подключения.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#4 |
Регистрация: 24.11.2013
Сообщений: 8
|
![]()
так с этим помощи и прошу(
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
С чем, со сферическим конем? Как именно подключен индикатор к МК (знаете ли вы принцип динамической индикации, есть ли на схеме драйверы светодиодов или преобразователи кода или сдвиговые регистры), сколько разрядов у индикатора, где в конце-концов схема?
Каждый семисегментный индикатор состоит из 7 светодиодов и одного знакового светодиода (точки, запятой) с общим анодом или катодом. Этих светодиодов достаточно для формирования цифр от 0-9 и некоторых символов-значков. Каждый из этих светодиодов промаркирован символьным обозначением A, B, C, D, E, F, G, H. Эти обозначения имеют постоянный порядок во всех индикаторах для стандартизации и унификации. С противоположной части данного индикатора выведены контакты-выводы (пины), отвечающие каждый за свой светодиод и один общий. Для того, чтобы знать какой светодиод зажечь при формировании символа-цифры разработчику при проектировании платы нужно знать какой это контакт. Данная табличка показывает какой контакт-пин соответствует какому светодиоду A-H какого индикатора (в данном случае он сдвоенный). Разработчик-программист, зная эту распиновку, может написать программу-прошивку для микроконтроллера, которая и будет зажигать определенный светодиод. В зависимости от способа формирования это будет разная реализация. При поддержке МК аппаратного SPI программисту достаточно инициализировать порт и просто послать в порт нужное количество тактов и выставить число. При динамической индикации, принцип несколько иной: одноименные линии A-H всех индикаторов объединяются и сажаются, как правило (но необязательно) на один порт 0..7 (условно, имеем порт A с разрядами A0..A7, А0 кидаем на сегмент A индикатора, A1 на сегмент B индикатора и т.д.), управляющая прошивка (микропрограмма) МК устанавливает состояние пинов порта в соответствии нужным символом. Для того, чтобы этот символ отобразился на нужной нам позиции, нужно зажечь (включить) определенный индикатор в данный момент времени, вот для этого и служит этот общий анод или катод всех сегментов одного индикатора. Т.о. включая поочередно определенный индикатор (через ключи) и выводя в этот момент нужное число в порт A0..A7 (т.е. сегменты A-H) формируется общее изображение-число-информация. Если переключать по кольцу эти индикаторы (общие аноды или катоды) за время меньшее инерционности человеческого зрения, то мы увидим практически непрерывную картинку-изображение. http://sezador.radioscanner.ru/pages...s/serialed.htm http://www.gaw.ru/html.cgi/txt/ic/Ma...ay/max6954.htm http://ahtoxa.net/micros/tiny/leds/ ЛИТЕРАТУРА - Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера / Ревич Ю. - Микроконтроллеры AVR семейства Mega / Евстифеев А.В. - AVR-RISC Микроконтроллеры/Вольфганг Трамперт И еще, где наработки? Нет наработок -> во фриланс.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 24.11.2013 в 18:37. |
![]() |
![]() |
![]() |
#6 |
Регистрация: 24.11.2013
Сообщений: 8
|
![]()
подключено вот так,
на второй фотографии процесс преобразования в ацп на последней про индикатор |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
Подключение неверное. Сопротивления нужно ставить последовательно с каждым светодиодом для ограничения и выравнивания токов.
И как вы собрались отображать три разряда десятичного числа на одноместном семисегментнике? В принципе, можно выводить последовательно цифры с перерывом между блоками. Конфигурируем порт P2 на выход и устанавливаем в ноль. Вводим массив значений для порта для символов от 0 до 9: А именно, имеем "cегмент - бит" a - 0 b - 1 c - 2 d - 3 e - 4 f - 5 g - 6 h - 7 ![]() Для отображения символа "0" требуется зажечь сегменты a-b-c-d-e-f, что соответствует 0b00111111 = 0x3F. Для отображения символа "1" требуется зажечь сегменты b-c, что соответствует 110 = 0x06. и т.д. Таким образом: Код:
Код:
Код:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 24.11.2013 в 20:25. |
![]() |
![]() |
![]() |
#8 |
Регистрация: 24.11.2013
Сообщений: 8
|
![]()
cпасибо большое за вашу помощь
только есть вопрос, после того как мы создали из символов массив и присвоили порту значение как здесь PORTD = Digit[num] как мне записать нужный мне порт? если у меня подключение в портам с P2.0 до P2.7 можно будет порт описать как PORTP2 = Digit[num] ? |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
Читайте документацию к вашему МК и среде сферической разработки.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 07.06.2010
Сообщений: 89
|
![]()
если поможет, то:
настроив порт P2 на выход (ножки P2_0 - P2_7 на выход) и записывая в регистр, отвечающий за данные этого порта (см. по даташиту, возможно это PORTP2), значения в hex (0x3F и т.д.) или двоичном (0b00111111) формате, вы управляете каждым пином порта: PORTP2 = 0b00111111 это P2_0 = 1 P2_1 = 1 P2_2 = 1 P2_3 = 1 P2_4 = 1 P2_5 = 1 P2_6 = 0 P2_7 = 0 и будет символ "0" |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
нужна помощь | ShamanK | Microsoft Office Excel | 2 | 01.12.2009 12:46 |
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) | Farridjan | Помощь студентам | 1 | 03.07.2009 12:24 |
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) | 5Paladin5 | Помощь студентам | 3 | 02.07.2009 09:12 |
Нужна помощь! | coiN | PHP | 2 | 07.11.2008 07:21 |