Индикация LED через сдвиговые регистры
Интересует информация о принципе работы микросхем логики для 7-сегментных индикаторов, что как, примерчик исполнения. Т.е. как по 2-3 проводам с контроллера упавлять цифрой. Также совет-наставление какую микросхемку применить.
Последний раз редактировалось slesar Пн мар 29, 2010 12:38:11, всего редактировалось 1 раз.
Канифоли много не бывает!
- Реклама
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
применить можно регистры сдвига и управлять по 3 проводам.
Зайди на сайт ДиХалт-а, там есть статейка, как подключить индикаторы по 1 проводу.
Зайди на сайт ДиХалт-а, там есть статейка, как подключить индикаторы по 1 проводу.
Не умеешь - не берись, но не взявшись не научишься...
Есть такая микруха 74LS164 для управления 7 сегментного индикатора по 2 проводам !!!!!!
- Сообщения: 392
- Зарегистрирован: Сб дек 12, 2009 02:15:45
сто раз писано и разжевано, но все же.
само удобно выводить с помощью 74нс595 или 4094 регистров. я бы рекомендовал STPIC6C595MTR, это 595 регистр с мощным высоковольтным выходом, стоит всего 0,7уе, и можно прямо к нему цеплять индикаторы любого типа, без всяких транзисторных ключей. Одним словом красота, контроллер-STPIC6C595MTR-индикатор.
само удобно выводить с помощью 74нс595 или 4094 регистров. я бы рекомендовал STPIC6C595MTR, это 595 регистр с мощным высоковольтным выходом, стоит всего 0,7уе, и можно прямо к нему цеплять индикаторы любого типа, без всяких транзисторных ключей. Одним словом красота, контроллер-STPIC6C595MTR-индикатор.
- Сообщения: 13796
- Зарегистрирован: Чт сен 20, 2007 14:08:00
тематические ответы только в форуме, в приват не пишите
- Реклама
Отмечусь в теме и я.
Вопрос какой максимальный ток через выводы Vcc/GND для 74hc595? Отвечаю - +-70мА, или 10мА/сегмент это максимум при статике, при динамической индикации - соответсвенно
А теперь смотрим 74ALS164 Io (т.е. через вывод GND) - -112мА что на 60% больше.
Отсюда вывод: для индикаторов с ОА 74ALS164 предподчительнее.
Вопрос какой максимальный ток через выводы Vcc/GND для 74hc595? Отвечаю - +-70мА, или 10мА/сегмент это максимум при статике, при динамической индикации - соответсвенно
А теперь смотрим 74ALS164 Io (т.е. через вывод GND) - -112мА что на 60% больше.
Отсюда вывод: для индикаторов с ОА 74ALS164 предподчительнее.
Автору - переименовать тему, срок - сутки.
Оптимизм х (Опыт + Знания) = const
Почему-то радио любители практически не используют (встречал несколько попыток) м/с драйверы 7-сегментных LED индикаторов (самых разных цветов и разрядов), применяемых в DVD плеерах, видеомагнитофонах и другой аппаратуре. Умногих DVD плеера валяются неисправные из-за нецелесообразности ремонта и их отдают на запчасти даром или по символической цене.
Эти драйвера насколько я понял несколько упрощённые и значительно более дешёвые аналоги MAX7219, MAX7221. Например AP6928, AS1628B,CS1664EQ,PT6961,PT6964 и т.п..
Управляются они по SPI интерфейсу. Это всего 3 провода и широкие возможности вывода цифровой и некоторой текстовой информации в разнообразных режимах, регулировка яркости.
Допускается каскадное (также как и при использовании регистров 74HC595) соединение драйверов для увеличения разрядности индикаторов. Можно подключить и клавиатуру с достаточным колличеством кнопок.
На плате с индикатором уже припаяна мс драйвера, кнопки и фотоприемник, распаян разъём или кабель да ещё с маркировкой контактов. Т.е. это готовая к применению конструкция и не надо тратить время на изготовление платы для отладки и проверки своих программ.
Есть и вакумно-люминисцентные индикаторы разных размеров с большим колличеством сегментов и самых разных цветов.
В этом случае микроконтроллер освобождается от рутиной и занимающей довольно много памяти функции вывода информации.
Эти драйвера насколько я понял несколько упрощённые и значительно более дешёвые аналоги MAX7219, MAX7221. Например AP6928, AS1628B,CS1664EQ,PT6961,PT6964 и т.п..
Управляются они по SPI интерфейсу. Это всего 3 провода и широкие возможности вывода цифровой и некоторой текстовой информации в разнообразных режимах, регулировка яркости.
Допускается каскадное (также как и при использовании регистров 74HC595) соединение драйверов для увеличения разрядности индикаторов. Можно подключить и клавиатуру с достаточным колличеством кнопок.
На плате с индикатором уже припаяна мс драйвера, кнопки и фотоприемник, распаян разъём или кабель да ещё с маркировкой контактов. Т.е. это готовая к применению конструкция и не надо тратить время на изготовление платы для отладки и проверки своих программ.
Есть и вакумно-люминисцентные индикаторы разных размеров с большим колличеством сегментов и самых разных цветов.
В этом случае микроконтроллер освобождается от рутиной и занимающей довольно много памяти функции вывода информации.
- Вложения
-
- indikator.JPG
- Небольшая кучка.
- (184.62 КБ) 2301 скачивание
- Сообщения: 85
- Зарегистрирован: Сб мар 13, 2010 13:52:10
Вариант интересен только в случае, когда есть стабильный источник требуемых ИС. Изучать каждый раз по-новой систему комманд контроллера и протокол работы - не у всех и не всегда есть возможность.
misterdi<@>i.ua
В том то и дело, что благодаря нашим братьям теперь не меньшим, источник практически не ограничен. В разных изделиях используются практически однотипные драйвера с однотипной системой команд + яркие бесплатные индикаторы в комплекте.
В ремонтных мастерских этих плат скапливается уже в достаточном колличестве и всё это идёт на выброс.
В ремонтных мастерских этих плат скапливается уже в достаточном колличестве и всё это идёт на выброс.
2 pcb432
Угу, только не всегда они подписаны, а даташит например на AP6928 ненайти... =(((
Угу, только не всегда они подписаны, а даташит например на AP6928 ненайти... =(((
С уважением, А.С. Титов
Бесплатный вывоз и утилизация компьютерной техники.
т. 716-90-60 http://recycling.spb.ru/
Бесплатный вывоз и утилизация компьютерной техники.
т. 716-90-60 http://recycling.spb.ru/
Млин, чегото никак не могу разобраться как подключить AP6928 к LPT... =(((
Прочитал статейку http://kazus.ru/articles/345.html , посмотрел схему DVD от которого эта плата(схему прилагаю), но ничего не получается..., сравнив схемы я так понял что вся обвязка на плате уже есть, соединил DI/O, CS, CLC с LPT, 5в взял от USB, землю на всякий случай соединил LPT и USB ну и естенственно с платой, в итоге напряжения приходят, т.к. подключал паралельно LPT-тестеру - видно что что то ппосылается, покрайне мере при отправке светодиод на тестере один раз мигает, но дисплей молчит... =((((
Прочитал статейку http://kazus.ru/articles/345.html , посмотрел схему DVD от которого эта плата(схему прилагаю), но ничего не получается..., сравнив схемы я так понял что вся обвязка на плате уже есть, соединил DI/O, CS, CLC с LPT, 5в взял от USB, землю на всякий случай соединил LPT и USB ну и естенственно с платой, в итоге напряжения приходят, т.к. подключал паралельно LPT-тестеру - видно что что то ппосылается, покрайне мере при отправке светодиод на тестере один раз мигает, но дисплей молчит... =((((
- Вложения
-
- AP6928 копия.jpg
- (167.62 КБ) 1823 скачивания
С уважением, А.С. Титов
Бесплатный вывоз и утилизация компьютерной техники.
т. 716-90-60 http://recycling.spb.ru/
Бесплатный вывоз и утилизация компьютерной техники.
т. 716-90-60 http://recycling.spb.ru/
В статье описаны драйверы LED фирмы MAXIM. У них в отличии от драйвера типа AP6928, TM1628 и т.п. команды разные и отправляются начиная со старшего бита. Более точная информация в даташитах.
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
Что-ж, отмечусь и я...
Последнее время производим 7-сегментные инликаторы на регистре TPIC6B595, стоимость микросхемы 19руб, ток выхода более 500мА.
Пример схемы сегмента:
Произведено более 1000 экземпляров, нареканий пока не было.
Распиновка разъема:
1 - Сигнал PWM (управлению яркостью). Не стоит забывать, что при единице выходы переходят в высокоимпедансное состояние.
2 - Вход данных (DATA) (Либо выход на втором разъеме).
6 - Вход стробирования (CLK).
10 - Вход защелки (Latch, #LE).
3,5,7,9 - Общий.
В целом протокол представляет из себя однонаправленную шину SPI, следовательно, можно использовать аппаратный SPI контроллера.
Из меги (IDE - CodeVisionAVR) управляется так:
Исходники старые, код малость бредовый, зато суть показывает хорошо. Новых исходников не дам из-за NDA.
NOPы можно поудалять, без них нормально работает.
Резисторы R1..R3 имеет смысл ставить на каждую 4ю плату, начиная с первой. Нужны они для подавления помех, улавливаемых шлейфом.
Если нужна печатка в протеусе или готовый гербер на высоту цифры 150мм - могу предоставить при условии неразглашения и для некоммерческого использования - в аську 305224880, в рабочее время (в другое антиспам не пустит).
PS: Максимальная цепочка, которую испытывали - 48 цифр. Рядом с работающими силовыми установками в композитном корпусе проблем не было.
Последнее время производим 7-сегментные инликаторы на регистре TPIC6B595, стоимость микросхемы 19руб, ток выхода более 500мА.
Пример схемы сегмента:
Произведено более 1000 экземпляров, нареканий пока не было.
Распиновка разъема:
1 - Сигнал PWM (управлению яркостью). Не стоит забывать, что при единице выходы переходят в высокоимпедансное состояние.
2 - Вход данных (DATA) (Либо выход на втором разъеме).
6 - Вход стробирования (CLK).
10 - Вход защелки (Latch, #LE).
3,5,7,9 - Общий.
В целом протокол представляет из себя однонаправленную шину SPI, следовательно, можно использовать аппаратный SPI контроллера.
Из меги (IDE - CodeVisionAVR) управляется так:
Код: Выделить всё
unsigned char dig_font[16] = {
0b11111100, // 0
0b01100000, // 1
0b11011010, // 2
0b11110010, // 3
0b01100110, // 4
0b10110110, // 5
0b10111110, // 6
0b11100000, // 7
0b11111110, // 8
0b11110110, // 9
0b00000010, // Minus (10)
0b00000001, // Pset (11)
0b00000000, // None (12)
0b10011110, // E (13)
0b00001010, // r (14)
0b00010000, // _ (downshift) (15)
};
// Font defines
#define FONT_MINUS 10
#define FONT_PSET 11
#define FONT_NONE 12
#define FONT_E 13
#define FONT_r 14
#define DONT_DOWNSHIFT 15
//LED display
#define HC595_PORT PORTD
#define HC595_DATA_PIN 7
#define HC595_SCK_PIN 6
#define HC595_RCK_PIN 5
#define HC595_PWM_PIN 4
unsigned char led_bufer[LED_BUFFER_LEN];
unsigned char led_last_position = 0;
void clearBuffer(){
unsigned char i;
for(i=0;i<LED_BUFFER_LEN;i++){
led_bufer[i] = 0x00;
}
}
void HC595_shiftDigits(unsigned char length){
unsigned char i;
// Поиграем клоками, чтобы сдвинуть данные. В освободившемся месте - 0x00.
BIT_CLR(HC595_PORT,HC595_DATA_PIN);
#asm("nop");
for (i=0;i==length*8-1;i++){
BIT_CLR(HC595_PORT,HC595_SCK_PIN);
#asm("nop");
BIT_SET(HC595_PORT,HC595_SCK_PIN);
#asm("nop");
}
}
void HC595_putBuffer(){
unsigned char x,i;
// Выводим очередной буффер.
for(i=0;i<LED_BUFFER_LEN;i++){
x=1;
while (x){
BIT_CLR(HC595_PORT,HC595_DATA_PIN);
#asm("nop");
if(led_bufer[i]&x)
BIT_SET(HC595_PORT,HC595_DATA_PIN);
#asm("nop");
BIT_CLR(HC595_PORT,HC595_SCK_PIN);
#asm("nop");
BIT_SET(HC595_PORT,HC595_SCK_PIN);
#asm("nop");
x<<=1;
}
led_last_position++;
}
}
void HC595_Latch(){
BIT_CLR(HC595_PORT,HC595_RCK_PIN);
#asm("nop");
BIT_SET(HC595_PORT,HC595_RCK_PIN);
#asm("nop");
led_last_position = 0;
}
void putDigitIntoBuffer(unsigned char position,unsigned char number){
led_bufer[position] = dig_font[number];
}
void putNumberIntoBuffer(unsigned char offset, signed int number, unsigned char length, unsigned char removeZeros){
unsigned char pos=offset, dig, isMinus=number<0, isMinusShowed = 0;
number = abs(number);
while (pos<offset+length){
dig = number%10;
if((removeZeros>0)&(dig==0)&(number<10)){
if((isMinus>0)&(isMinusShowed==0)){
dig = FONT_MINUS;
isMinusShowed = 1;
}else{
dig = FONT_NONE;
}
}
number /= 10;
putDigitIntoBuffer(pos, dig);
pos++;
}
}
NOPы можно поудалять, без них нормально работает.
Резисторы R1..R3 имеет смысл ставить на каждую 4ю плату, начиная с первой. Нужны они для подавления помех, улавливаемых шлейфом.
Если нужна печатка в протеусе или готовый гербер на высоту цифры 150мм - могу предоставить при условии неразглашения и для некоммерческого использования - в аську 305224880, в рабочее время (в другое антиспам не пустит).
PS: Максимальная цепочка, которую испытывали - 48 цифр. Рядом с работающими силовыми установками в композитном корпусе проблем не было.
Последний раз редактировалось Johnson Пт май 17, 2013 10:24:53, всего редактировалось 3 раза.
Полярность светодиодов на схеме правильно показана?
Выходной драйвер у AVR'ок уже давно симметричный. Не вводите в заблуждение.Johnson писал(а):мега лучше коммутирует порты на общий провод, чем на плюсовой, ей так проще.
Each output buffer has symmetrical drive characteristics with both high sink and source capability.
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
Да, конечно. По этой схеме налажено производство. Драйверы в TPIC коммутируют на общий (инвертированные).Полярность светодиодов на схеме правильно показана?
Про симметричность меги не знал, спасибо, изучу.
Добавлено: Ой, схема не та... Разумеется, полярность неправильная.
Последний раз редактировалось Johnson Пт май 17, 2013 10:10:32, всего редактировалось 1 раз.
Да, и подключают аноды к общему проводу, в то время как катоды подключены к +Vin. Не убедили.Johnson писал(а):Драйверы в TPIC коммутируют на общий (инвертированные).
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
Выше подправил пост. Да, схему не ту отправил. Разумеется, Вы правы, полярность перепутана.
Хороший повод перетряхнуть всю документацию на наличие таких вот промежуточных ляпов...
Исправил ошибку в посте.
Хороший повод перетряхнуть всю документацию на наличие таких вот промежуточных ляпов...
Исправил ошибку в посте.
на e-bay некогда были популярны 8-ми и 16-битные регистры специально для светодиодов - питание 3.3В, выход - источник входящего тока, его величина управляется для всех выводов одним резистором - от 0 до 80ма на вывод! Распиновка довольно удобная - все сигналы управления и питание с одной стороны микросхемы, а выходы в другой. сейчас чего-то их давно не видать...
- Сообщения: 25
- Зарегистрирован: Сб апр 14, 2012 21:42:31
Я ставил 595 регистры и цеплял их на SPI микроконтроллера - данные выдаются по стандартному протоколу SPI, не надо городить библиотеки. Реализовано на 3DLed cube, так что скорости хватает.



