На главную страницу                  На страницу выбора описаний устройств

 

Светодиодный графический дисплей 32*8  «88».

Краткое описание

Плата предназначена для построения табло отображения текстовой и графической информации.

Дополнительно на плату можно установить:

GSM модем

Порт USB

Порт RS232

Приемник ИК команд

Память для хранения изображений и текста

                Принципиальная электрическая схема представлена на рис. 1.

 

 

Рис. 1.  Принципиальная электрическая схема светодиодного дисплея.

 

D1 – микроконтроллер ATmega16A [1].          

C1 … С5 — блокировочные конденсаторы.    

C6, C7, ZQ1 – часть схемы тактового генератора микроконтроллера, который задает тактовую частоту микроконтроллера. В данном устройстве тактовая частота равна 7,3728 МГц.

Х1 — разъем для программирования микросхемы (прошивки программы).

Дисплей собран на 4-х светодиодных матрицах H1 – H4 (8х8 точек) типа TA23-11SRWA [2]. Можно использовать матрицы других размеров и других производителей. Для управления катодами матриц используются сдвиговые регистры D3 и D4 типа MBI5026CD [3]. Они соединены последовательно для получения 32 разрядного регистра. Загрузка информации в регистры производится из микроконтроллера по последовательному интерфейсу (сигналы “SI”, “SCK”). После полной загрузки новой информации в регистры используется сигнал “LE” для защелкивания новой информации в регистры. С помощью сигнала “-OE” выходы регистров отключаются от светодиодных матриц, что дает возможность избежать «паразитной засветки» светодиодов при переключении отображения строк.

Для управления анодами индикаторов используются ключи на транзисторах VT1 – VT8 для усиления тока. Поскольку аноды каждых 8 светодиодов индикатора соединены вместе, ток, протекающий через них, может быть до 8 раз больше, чем через один светодиод. Для управления ключами использована микросхема D5 ULN2803AFW, которая может быть от разных производителей. В каждый момент времени происходит отображение одной из 8-ми строк дисплея.

На рис. 2. Представлена схема расположения матриц и нумерация строк и столбцов дисплея.

Рис. 2. Схема расположения матриц и нумерация строк и столбцов светодиодного дисплея.

                Разработаем программу для управления дисплеем. Отображение информации будем осуществлять построчно. Строка 1 – строка 8, строка 1 - строка 8, … Выберем частоту сканирования дисплея 100 Гц. Формировать необходимые временные интервалы будем с помощью таймера 1:

// режим работы таймера - 0 (Normal)

// Пусть частота обновления дисплея 100 Гц (период 10 мс).

// За каждые 10 мс необходимо отобразить 8 строк.

// Т.о. прерывания таймера для отображения строки должны идти через каждые 10/8=1,25мс

// Следовательно, при тактовой частоте 7372800 Гц прерывания таймера должны быть через:

// 0,00125 с / (1 / 7372800 Гц) = 0,00125 с * 7372800 Гц = 9216 

// создадим константу для предварительной загрузки таймера

#define TCNT1_PRELOAD 65536 - 9216

// таймер выключен

TCCR1A = 0b00000000;

TCCR1B = 0b00000000;

TCNT1 = TCNT1_PRELOAD; // предварительная загрузка таймера

// разрешить прерывание от Timer1

TIMSK |= 1 << TOIE1;

                Для работы с дисплеем зададим буфер для хранения отображаемых данных, переменные для выбора нужной строки и матрицы:

// управление матрицей

#define MatrixN 4 // количество матриц 8*8

volatile unsigned char Matrix; // номер матрицы, для которой выводятся данные

volatile unsigned char Row; // номер строки, в которую выводятся данные

// буфер для хранения данных, выводимых на дисплей

char screen_buf [MatrixN*8];

Инициализируем SPI для работы с регистрами D3 и D4:

void SPI_Init(void)

{

    // регистр SPCR:

    // бит 7: прерывания запрещены

    // бит 6: SPI включен

    // бит 5: первым идет младший бит

    // бит 4: режим мастера

    // бит 3-2: режим 0

    // бит 1-0: частота SPI = fsck/2 

    SPCR = 0b01110000; 

               

    // регистр SPSR:

    // бит 0: включено удвоение частоты SPI 

    SPSR = 0x01;

}

В подпрограмме обработки прерывания таймера будем последовательно записывать данные буфера одной строки в регистры D3 и D4. И изменять номер выводимой строки “Row”, осуществляя таким образом вывод строк последовательно циклически:

ISR (TIMER1_OVF_vect)

{

TCNT1 = TCNT1_PRELOAD; // предварительная загрузка таймера

                // записываем изображения символов в сдвиговый регистр (строка) для всех матриц

for(Matrix = 0; Matrix < MatrixN; Matrix++)

                               SPI_MasterTransmit(screen_buf[Matrix*8 + Row]);

// гашение индикатора

PORTA = 0x00; // гасим строки

                PORTB |=  (1 << MBI5026_OE); // выключаем выходы сдвиговых регистров

PORTB |=  (1 << MBI5026_LE); // защелкиваем новые данные в сдвиговые регистры

PORTB &= ~(1 << MBI5026_LE);

// включение индикатора       

PORTB &= ~(1 << MBI5026_OE); // включаем выходы сдвиговых регистров       

                PORTA = (1 << Row);   // включаем текущую строку

Row++; // увеличиваем номер выводимой строки   

if(Row > 7) Row = 0; // если достигли последней - начинаем с начала

}

В качестве примера сделаем отображение на дисплее символов диода, конденсатора, резистора и переключателя. Полный текст программы этого примера для средств разработки [4, 5] есть в приложении. Результат работы программы показан на рис. 4.

 

 

Рис. 4. Отображение элементов схем на дисплее.

Питание дисплея осуществляется от источника стабилизированного напряжения +5В. При полностью светящемся дисплее (горят все точки) ток потребления порядка 0,75А. При половине светящихся точек – 0,5А.

 

Ориентировочные цены:

Для подписчиков журнала «Лаборатория электроники и программирования»  http://journal.electroniclab.ru/      предусмотрены скидки.

Стоимость печатной платы без компонентов (промышленная двухсторонняя, с маской, без маркировки) –  300р. (для подписчиков журнала 250р.)

Стоимость компонентов для сборки платы – уточняйте.

Стоимость доставки от 250р. в зависимости от места вашего проживания.

Предусмотрены скидки при заказе нескольких одинаковых изделий или при заказе разных изделий на определенную сумму.

 

Для заказа отправьте письмо на адрес micro51@mail.ru    с указанием изделий и их количества, а также город вашего проживания (для определения почтовых расходов).

Если вы хотите приобрести данное изделие дешевле указанной цены, присоединяйтесь к системе «коллективных заявок» 

Полное описание.

Опубликовано в журнале «Лаборатория электроники и программирования» в номерах 1,2. Получить его вы можете, подписавшись на журнал или при покупке устройства.

 

Список литературы и ссылки

1.        Datasheet  ATmega16A. © Atmel Corporation. http://www.atmel.com/

2.        Datasheet  TA23-11SRWA. © Kingbright Elec. Co., Ltd. http://www.kingbright.com/

3.        Datasheet MBI5026. © Macroblock, Inc. http://www.mblock.com.tw/ 

4.        WinAVRTM . http://winavr.sourceforge.net/

5.        AVR Studio®. © Atmel Corporation. http://www.atmel.com/

 

На главную страницу                  На страницу выбора описаний устройств