- 16x2 буквено-цифровий РК-дисплей
- 16x2 РК-бібліотека CCS для MSP430
- РК-функції для РК-дисплея 16x2 на MSP430
- Принципова схема інтерфейсного РК-дисплея з MSP430
- Програмування MSP430 за допомогою Code Composer Studio для РК-дисплея
Ця стаття є продовженням нашої навчальної серії з програмування MSP430 за допомогою Code Composer Studio. Останній підручник базувався на зовнішніх перериваннях на MSP430 за допомогою штифтів GPIO. Цей підручник стосується взаємодії дисплея з MSP430, коли мова йде про відображення РК-дисплея 16 * 2, це перший вибір для будь-якого електронного любителя. Раніше ми також поєднували РК-дисплей з MSP430 за допомогою Arduino IDE, у цьому посібнику ми використовуватимемо рідну платформу студії Code Composer замість використання Arduino IDE, таким чином, як дизайнер, ми отримаємо більшу гнучкість.
Щоб дізнатись більше про РК-дисплей розміром 16x2 та про використання його з іншими мікроконтролерами, див. Підручники нижче.
- Зв'язок РК з ATmega16
- Зв'язок РК з Raspberry Pi
- Зв'язок РК з мікроконтролером PIC
- РК-інтерфейс з ARM7-LPC2148
- Зв'язок РК з NodeMCU
- Підключення РК-дисплея до STM32
- РК-інтерфейс з MSP430G2
- Підключення РК-дисплея до STM8
Він має вбудовану мікросхему hd44780, яка може зберігати команду та дані, передані їй. РК-модуль має приблизно 16 контактів. 8 з них - це шпильки даних, 4 з них - штифти живлення для світлодіодного підсвічування та всього РК-модуля, 3 - для управління роботою та 1 - для регулювання контрасту. Підручник базується на бібліотеці, створеній Деннісом Айхманом. Використовувати бібліотеку з окремими функціями для друку різних типів даних дуже просто. Він також має положення для відображення даних у різних формах із початковими, порожніми та видаленими нулями. Це досить обширна та всебічна бібліотека, яку можна налаштувати на різні зв’язки. Тут файл заголовка модифікований для розміщення 8-контактної паралельної конфігурації для передачі даних.
16x2 буквено-цифровий РК-дисплей
Загальний дисплей 16x2 має вбудовану мікросхему hd44780 (обведену червоним внизу), яка може зберігати команду та дані, передані їй. РК-модуль має приблизно 16 контактів. 8 з них - це шпильки даних, 4 з них - штифти живлення для світлодіодного підсвічування та всього РК-модуля, 3 - для управління роботою та 1 - для регулювання контрасту.
Цей РК-модуль показаний вище універсально і використовує мінімум штифтів порівняно з іншими сегментованими РК-дисплеями. Якщо вам цікаво дізнатись, як саме все це працює, вам слід перевірити роботу РК-дисплея 16x2, де ми вже детально обговорили, як працює РК-дисплей.
RS Pin: RS = 1 увімкне регістр даних на РК-дисплеї, який використовується для запису значень у регістр даних на РК-дисплеї. RS = 0 увімкне реєстр інструкцій РК-дисплея.
Увімкнути штифт: спрацьовує негативний край; коли штифт змінюється зі стану HIGH на LOW, РК-дисплею пропонується записати на штифти даних. Позитивний край спрацьовує; коли штифт змінюється з НИЗЬКОГО стану на ВИСОКИЙ, РК-дисплею пропонується прочитати зі штифтів даних.
Вивід R / W: R / W = 0 запише в регістр команд або регістр даних відповідно до вибору виводу RS. R / W = 1 буде зчитуватися з ІЧ або DR відповідно до вибору RS-контакту.
RS R / W експлуатація
0 0 ІЧ-запис як внутрішня операція (чітке відображення тощо)
0 1 Зчитування прапора зайнятості (DB7) та лічильника адрес (DB0 до DB6)
1 0 DR запис як внутрішня операція (DR в DDRAM або CGRAM)
1 1 DR читається як внутрішня операція (DDRAM або CGRAM до DR)
D0-D7-шпильки: Дані передаються до і з команд та регістрів даних через ці шпильки.
Висновки живлення: V ss, V dd штирі використовуються для живлення РК-модуля. Виводи A, K будуть живити світлодіодне підсвічування. Виводи V 0 використовуються для контролю контрасту.
16x2 РК-бібліотека CCS для MSP430
Підручник базується на бібліотеці, створеній Деннісом Айхманом. Використовувати бібліотеку з окремими функціями для друку різних типів даних дуже просто. Він також має положення для відображення даних у різних формах із початковими, порожніми та видаленими нулями. Це досить обширна та всебічна бібліотека, яку можна налаштувати на різні зв’язки. Тут файл заголовка модифікований для розміщення 8-контактної паралельної конфігурації для передачі даних. Бібліотеку можна завантажити за посиланням нижче, після завантаження виконайте наведені нижче дії, щоб додати бібліотеку до CCS.
Завантажте бібліотеку 16x2 для MSP430 - Code Composer Studio
Крок 1: Створення файлів та проектів
Проект CCS за замовчуванням створюється за допомогою меню файлів. У діалоговому вікні Створити проект виберіть пристрій і вкажіть hd44780 як назву проекту. У розділі Тип проекту та ланцюжок інструментів виберіть тип виводу як Статичну бібліотеку та створіть проект.
На смузі Провідника проекту (ліва сторона) створіть заголовочний файл у папці включення та назвіть його hd44780.h . Потім скопіюйте вміст завантаженого файлу hd44780.h у цей нещодавно створений.
Тепер створіть основний проект, змінивши тип виводу на виконуваний файл і створіть проект з назвою CCS_LCD .
Крок 2: Включіть пошукові шляхи до головного проекту
У діалоговому вікні властивостей проекту hd44780 та всередині параметрів включення для компілятора MSP430 додайте папку включення у файл, шлях пошуку.
Потім побудуйте цей проект, щоб створити необхідні файли зв’язування, такі як файли.lib . Побудова цього створить файл hd44780.lib всередині папки налагодження.
Крок 3: Включіть шляхи пошуку для Linker
У діалоговому вікні властивостей проекту CCS_LCD та у шляху пошуку файлів на вкладці MSP430 Linker включіть hd44780.lib, що знаходиться всередині папки налагодження проекту hd44780. Папка налагодження також включена в шлях пошуку файлу.
Папка включення знову додається до параметрів включення компілятора MSP430 проекту CCS_LCD .
Бібліотека успішно скомпільована та додана до компонувальника основного проекту.
РК-функції для РК-дисплея 16x2 на MSP430
void hd44780_timer_isr (void): Це періодично називається в ISR таймера A. Таймер A використовується для періодичного виконання функцій РК, таких як очищення екрану, встановлення курсору та відображення даних. Функція повинна використовуватися в ISR. Це нічого не повертає.
uint8_t hd44780_write_string (char * ch__string, uint8_t u8__row, uint8_t u8__column, uint8_t u8__cr_lf): Він запише рядок, вказаний у першому аргументі.
char * ch__string: рядок, який слід записати в буфер даних (усередині функції hd44780_timer_isr ). Дані будуть скопійовані до реєстру даних та реєстру інструкцій мікросхеми РК-дисплея при періодичному виклику hd44780_timer_isr .
uint8_t u8__row: Він визначає рядок, в який буде записаний рядок.
uint8_t u8__column: Він визначає стовпець, у якому буде записаний рядок.
uint8_t u8__cr_lf: Якщо встановлено 1, рядок буде перенесено до наступного. Якщо воно дорівнює 0, друк зупиняється на тому ж рядку.
void hd44780_clear_screen (void): Ця функція очистить весь екран. Це нічого не повертає.
uint8_t hd44780_output_unsigned_16bit_value (uint16_t u16__value, uint8_t u8__leading_zero_handling, uint8_t u8__row, uint8_t u8__column, uint8_t u8__cr_lf): функція відображатиме непідписане значення 16.
uint16_t u16__value: Ціле число, яке буде показано, вказано в першому аргументі.
uint8_t u8__leading_zero_handling: Якщо передано 0, ведучі нулі будуть показані до цілого числа. Якщо передано 1, нулі будуть затушені. Якщо як параметр передано 2, відображатимуться лише значущі цифри.
uint8_t u8__row: вибрано рядок, у якому відображається ціле число.
uint8_t u8__column: Стовпець для друку вибирається за допомогою аргументу.
uint8_t u8__cr_lf: Якщо встановлено 1, рядок буде перенесено до наступного. Якщо воно дорівнює 0, друк зупиняється на тому ж рядку.
Принципова схема інтерфейсного РК-дисплея з MSP430
Повна електрична схема проілюстрована на зображенні нижче. Як бачите, апаратні підключення дуже прості, і ми забезпечили живлення всієї плати за допомогою адаптера 5 В.
З'єднання виконуються згідно з наведеним ескізом. Будь ласка, ознайомтесь із таблицею нижче, щоб отримати докладні зв’язки.
Vss | Земля джерела живлення 5В |
Vdd | 5 В |
V0 | Вихід потенціометра |
RS | Р2.1 |
R / W | Земля |
Е | Р2.0 |
D0 | Р1.0 |
D1 | Р1.1 |
D2 | Р1.2 |
D3 | Р1.3 |
D4 | Р1.4 |
D5 | Р1.5 |
D6 | Р1.6 |
D7 | Р1.7 |
A | Резистор 220 Ом |
К | Земля |
Анод світлодіодного підсвічування не можна підключити безпосередньо до джерела живлення 5 В. Він повинен бути підключений до опору, щоб мінімізувати струм потоку через РК-модуль. Я зробив свої з’єднання за допомогою перфідної дошки для припаювання РК-дисплея, а потім використовував перемички для підключення РК-дисплея до плати MSP430, моя настройка виглядає так, як показано нижче, але Ви також можете просто використовувати макетну плату для встановлення з’єднань.
Програмування MSP430 за допомогою Code Composer Studio для РК-дисплея
Повний код, використаний у цьому проекті, наведено внизу цієї сторінки. Пояснення використання коду є наступним. Спочатку відкрийте файл заголовка (hd44780.h) і включіть номер частини мікроконтролера в першу частину файлу.
#include "msp430g2553.h"
Спочатку слід зупинити сторожовий таймер. Регістри управління DCOCTL і BCSCTL1 використовуються для конфігурації генератора мікроконтролера. Рядки нижче налаштують MCLK на 1 МГц.
WDTCTL = (WDTPW - WDTHOLD); BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1 МГц;
Штифти порту 1 повинні бути вказані як вихідні дані, які будуть використовуватися для штифтів даних. Висновок 0 та висновок 1 також повинні бути зазначені як вихід у порту 2, який буде використовуватися для виводу RS та R / W.
P1DIR = 0xFF; P2DIR = (0x01 - 0x02);
Вбудований таймер використовується для періодичного відображення значень. Таймер A вибирається з SMCLK (1 МГц) як джерело тактової частоти, а безперервний режим є режимом роботи.
TA0CCR1 = 32768; TA0CCTL1 = CCIE; TA0CTL = (TASSEL_2 - MC_2 - TACLR);
Переривання для каналів порівняння 1 і 2 і переривання переповнення таймера мають однаковий вектор переривання ( TIMER0_A1_VECTOR ) з різними вихідними адресами. Канал порівняння захоплення 1 (CCR1) використовує 2 як адресу, яка використовується у випадку комутатора.
#pragma vector = TIMER0_A1_VECTOR __interrupt void timer_0_a1_isr (void) { switch (TA0IV) { case 2: { hd44780_timer_isr (); перерву; } } }
Після того, як ваш код буде скомпільований, ви зможете завантажити його на плату MSP430, як це пояснювалось у підручнику з MSP430. Якщо все йде належним чином, на РК-дисплеї ви побачите певний контраст, як показано нижче.
Якщо ваш тест дуже тьмяний, ви можете спробувати відрегулювати потенціометр, щоб отримати кращий контраст. Повну роботу проекту також можна знайти у відео, наведеному нижче. Сподіваюся, вам сподобався проект і вам було цікаво побудувати власний. Якщо у вас виникли запитання, залиште їх у розділі коментарів нижче. Ви також можете написати всі свої технічні запитання на форумах, щоб отримати на них відповіді або розпочати дискусію.