Индикаторный модуль "МИ-3"
Модуль "МИ-3" представляет собой трёхразрядный семисегментный индикатор со встроенным контроллером. Данные загружаются в модуль по последовательному интерфесу,
совместимому с интерфейсом микросхем 74HC595.
Модуль имеет встроенный преобразователь питания с выходным диапазоном от 9 до 40 В и выходом 5 В, 3 А. От данного преобразователя можно запитывать и внешние устройства.
Используемые в модуле светодиодные индикаторы имеют высоту цифр 57 мм.
Последовательный интерфейс для загрузки данных использует три линии:
DATA – данные;
CLK – строб данных;
STORE – строб регистра-защёлки.
Основой модуля являются драйверы MBI5026GF, соединённые последовательно. Сегменты индикаторов разведены несколько хаотично, исходя исключительно из возможности
разводки сигналов на печатной плате. Расположение индикаторов на печатной плате и нумерация их сегментов приведена на рисунке ниже:
Последовательность сегментов, предназначенная для непосредственной загрузки в модуль, представляет из себя 24-битное значение, которое передаётся старшим битом вперёд:
G3 F3 H3 E3 D3 C3 A3 B3 B1 A1 H1 F1 G1 B2 A2 H2 G2 F2 E2 D2 C2 E1 D1 C1
Ниже приведён пример на языке Си для загрузки данных, соответствующих числу "847" на индикаторах:
// Определения сегментов
#define A1 (1UL << 14)
#define B1 (1UL << 15)
#define C1 (1UL << 0)
#define D1 (1UL << 1)
#define E1 (1UL << 2)
#define F1 (1UL << 12)
#define G1 (1UL << 11)
#define H1 (1UL << 13)
#define A2 (1UL << 9)
#define B2 (1UL << 10)
#define C2 (1UL << 3)
#define D2 (1UL << 4)
#define E2 (1UL << 5)
#define F2 (1UL << 6)
#define G2 (1UL << 7)
#define H2 (1UL << 8)
#define A3 (1UL << 17)
#define B3 (1UL << 16)
#define C3 (1UL << 18)
#define D3 (1UL << 19)
#define E3 (1UL << 20)
#define F3 (1UL << 22)
#define G3 (1UL << 23)
#define H3 (1UL << 21)
//------------------------------
void PutLED(unsigned long value)
{
STORE = 0;
for (char i = 24; i > 0; i--)
{
CLK = 0;
DATA = (value & (1UL << 23)) > 0;
CLK = 1;
value <<= 1;
}
STORE = 1;
}
...
// Вызов функции для отображения числа 847
PutLED(A3+B3+C3+D3+E3+F3+G3 + F2+G2+B2+C2 + A1+B1+C1);