вимагається власна керуюча лінія. Для матриці 4х4 пікселів потрібно 16 драйверів при статичному управлінні. При використанні мультиплексного управління їх число знизиться до восьми - по одному на кожен стовпець і рядок.
Малюнок 7 - Приклад мультиплексного управління.
На платі STM8L-Discovery використовується дисплей з 24 сегментними і 4 загальними лініями. Таким чином, для управління цим дисплеєм потрібно 28 ніжок мікроконтролера з 48 наявних. Коли дисплей встановлений в платі, ці ніжки недоступні для іншого використання. Для того, щоб їх можна було використовувати, дисплей необхідно акуратно витягти з плати.
Список ніжок, зайнятих дисплеєм:
Порт А: 4-7
Порт B: 0-7
Порт С: 2-3
Порт D: 0-7
Порт E: 0-5
РК потрібно для управління змінна напруга, інакше вони швидко деградують і термін їх служби значно скорочується, більше того, навіть певна асиметрія керуючих напруг призводить до появи постійної складової, також небажаної для ЖК. Зазвичай граничні значення цієї складової і рекомендована частота вказуються виробником дисплея. Але в кожному разі величина постійної складової не повинна перевищувати 30-50 мВ, а частота вибирається в межах від 30 Гц до 100 Гц. Очевидно, що при частоті нижче зазначеної з'являтиметься візуально спостережувана мерехтіння, а й завищувати частоту теж не варто, тому що ЖК властива істотна інерційність (для переорієнтування кристалів потрібен якийсь час). Формуванням сигналів правильної форми і амплітуди займається вбудований LCD-контролер. Нам залишається лише помістити в LCD_RAM ??інформацію про те, які пікселі ми хочемо включити або вимкнути.
Малюнок 8 - LCD-дисплей, встановлений на платі.
3. Розробка алгоритму вимірювання
Проектований прилад повинен мати діапазон вимірювання 100 - 10000 об/хв, похибка вимірювання не більше 0,5%. Таким чином, максимальна абсолютна похибка становить 0,5? 10000=50 об/хв (або 1 оборот на 1,2 с). Т.к. на валу знаходиться два магніти, за один оборот надходить два імпульси. Таким чином щоб не вийти за межі похибки, період вимірювання повинен становити не менше 0,6 с. Візьмемо період вимірювання, рівний 3 с, тоді похибка становитиме
Визначення періоду індикації.
Якщо оновлювати показання на дисплеї з періодом, рівним періоду виміру (3 с), то свідчення будуть оновлюватися повільно і з запізненням, що робить зчитування незручним, особливо при частих змінах частоти. Тому використовуємо «ковзний» алгоритм: показання на дисплеї оновлюються кожну секунду, при цьому виводяться дані за попередні 3 секунди. Показання будуть рівні кількості оборотів за 3 секунди, помноженому на 20.
Блок-схема алгоритму вимірювання представлена ??на малюнку 9.
Рисунок 9 - Блок-схема алгоритму вимірювання.
4. Розробка керуючої програми для мікроконтролера
Програма написана на мові високого рівня C з використанням бібліотек для налаштування вводу-виводу і для управління LCD-дисплеєм. Для розробки використана середу IAR Embedded Workbench for STMicroelectronics v.1.40.1. Безкоштовна версія цієї програми має обмеження в 8 кБ на що завантажується в пам'ять контролера код, чого цілком достатньо для виконання поставленого завдання. Лістинг програми представлений нижче.
# include stm8L15x_clk.h
# include LCD.h
# include iostm8l151k6.h // підключаємо бібліотекіchar display_str [4];
void IntToStr (uint32_t value)//Функція перекладу рядка в число
{
uint32_t temp1;
uint32_t temp2;
uint32_t temp3;
uint32_t temp4; =Value% 10;
value /=10;
temp2=value% 10;
value /=10;
temp3=value% 10;
value /=10;
temp4=value; |=0x30;// тисячі
display_str [0]=temp4;
temp3 |=0x30;// сотні
display_str [1]=temp3;
temp2 |=0x30;// десятки
display_str [2]=temp2;
temp1 |=0x30;// одиниці
display_str [3]=temp1;
};
//Опис змінних: long obSec=0;// Оборотов за поточну секундуlong obMin;// Оборотов в мінутуlong a=0;// Оборотов за останню секундуlong b=0;// Оборотов за передостанню секундуlong c=0;// Оборотов за ...