Сім сегментних дисплеїв є важливими елементами відображення в електроніці та широко використовуються для відображення чисел від 0 до 9. Він також може відображати деякі алфавіти символів, такі як A, B, C, H, F, E тощо. Як взаємодіяти 7-сегментний дисплей з мікроконтролером 8051 -. Ми використовуємо мікроконтролер AT89S52 серії 8051.
Перш ніж взаємодіяти, ми повинні дізнатися про 7-сегментний дисплей. Це найпростіша одиниця для відображення цифр і символів. Він просто складається з 8 світлодіодів, кожен світлодіод використовується для освітлення одного сегмента блоку, а 8- й світлодіод використовується для освітлення DOT на 7-сегментному дисплеї. Ми можемо позначати кожен сегмент РЯДКОМ, оскільки ми бачимо, що в одиниці є 7 рядків, які використовуються для відображення числа / символу. Ми можемо посилатися на кожен рядок / відрізок "a, b, c, d, e, f, g", а для крапкового символу будемо використовувати "h". Є 10 висновків, в яких 8 висновків використовуються для позначення a, b, c, d, e, f, g та h / dp, два середніх висновки є загальним анодом / катодом усіх світлодіодів. Ці загальні аноди / катоди внутрішньо закорочені, тому нам потрібно підключити лише один COM-контакт.
Існує два типи 7-сегментних дисплеїв: загальний анод і загальний катод:
Загальний анод: У цьому всі негативні клеми (катоди) усіх 8 світлодіодів з'єднані між собою (див. Схему нижче), названі COM. І всі позитивні термінали залишаються наодинці.
Загальний катод: У цьому всі позитивні клеми (аноди) всіх 8 світлодіодів з'єднані між собою, іменовані як COM. І всі негативні терміки залишаються в спокої.
Принципова схема та робоче розширення
Тут ми використовуємо типовий анод 7-сегментного типу, оскільки нам потрібно підключити світлодіоди в зворотному напрямку. Оскільки ми знаємо, що мікроконтролер не забезпечує достатню потужність для свічення світлодіода, тому нам потрібно підключити катод світлодіода до штифта мікроконтролера, а анод світлодіода до джерела живлення. Ви можете зрозуміти цю негативну логічну концепцію в цій статті “Співвідношення світлодіодів з мікроконтролером 8051”. Ви також повинні прочитати цю статтю, щоб зрозуміти основне підключення мікроконтролера, як кристал і схему скидання.
Як показано вище, принципова схема для взаємодії 7-сегментного дисплея з мікроконтролером 8051, ми підключили a, b, c, d, e, f, g, h до контактів 2,0-2,7 означає, що ми підключаємо 7 сегмент до порту 2 мікроконтролера. Тепер припустимо, що ми хочемо відобразити 0, тоді нам потрібно засвітити всі світлодіоди, за винятком світлодіода, який належить до лінії “g” (див. Схему вище), тому висновки від 2,0 до 2,6 повинні бути на 0 (має бути 0 для УВІМКНЕННЯ світлодіода як для негативної логіки), а висновки 2.7 та 2.8 повинні бути в 1 (має бути 1, щоб ВИМКНУТИ світлодіод відповідно до негативної логіки) Отже, світлодіоди, підключені до висновків 2,0-2,6 (a, b, c, d, e, f), будуть ввімкнені, а світлодіоди, підключені до 2,7 та 2,8 (g і h), будуть вимкнені, що створить "0" у 7 сегмент. Отже, нам потрібен бітовий шаблон 11000000 (Pin 8 - найвищий біт, тому починаючи з P2.7 до P2.0), а шістнадцятковий код для двійкового файлу 11000000 - це «C0». Подібним чином ми можемо розрахувати для всіх цифр. Тут ми повинні зауважити, що ми завжди залишаємо "крапка / год" ВИМКНЕНО,тому нам потрібно щоразу давати йому логіку “1”. Нижче наведена таблиця для всіх чисел при використанні сегмента Common Anode 7.
Цифра для відображення |
hgfedcba |
Шістнадцятковий код |
0 |
11000000 |
C0 |
1 |
11111001 |
F9 |
2 |
10100100 |
A4 |
3 |
10110000 |
B0 |
4 |
10011001 |
99 |
5 |
10010010 |
92 |
6 |
10000010 |
82 |
7 |
11111000 |
F8 |
8 |
10000000 |
80 |
9 |
10010000 |
90 |
Пояснення коду
Ми створили функцію ms_delay, щоб забезпечити затримку в мілісекундах. Ця затримка зазвичай надається в будь-якій програмі мікроконтролера, щоб мікроконтролер міг завершити свою внутрішню роботу.
Потім ми створили масив шістнадцяткових кодів для 0 до 9 (див. Таблицю вище) і, нарешті, надіслали шістнадцяткові коди до порту 2, який підключений до загального сегмента анода 7. Таким чином, таким чином цифри відображаються на 7-сегментному дисплеї.
Зараз у нас є лише 4 порти в мікроконтролері, і що, якщо ми хочемо відображати дані в більш ніж чотирьох 7 сегментах ?? Для вирішення цієї проблеми застосовується техніка мультиплексування. Нам потрібно мультиплексувати декілька 7-сегментних одиниць. Також прочитайте інтерфейс 7-сегментного дисплея з мікроконтролером AVR.