Дисплей nokia 5110 - підключення до мікроконтролеру, програмування мікроконтролерів pic

Замовити дисплей можна тут. У дисплеї встановлений контролер PCD8544, напруга живлення може знаходитися в межах 2,7 ... 3,3 В, струм споживання становить 240 ... 320 мкА. Модуль має наступні висновки для підключення:

  1. RST - висновок скидання контролера дисплея
  2. CE - висновок дозволу передачі даних
  3. DC - вибір режиму передачі, команда або дані
  4. DIN - вхід передачі даних інтерфейсу SPI
  5. CLK - висновок тактирования інтерфейсу SPI
  6. VCC - виведення живлення дисплея
  7. LIGHT - висновок управління підсвічуванням, для включення необхідно подати низький логічний рівень
  8. GND - загальний провід (негативний полюс джерела живлення)

Передача даних здійснюється за допомогою стандартного інтерфейсу SPI, частота тактирования до 4 МГц. Під час сеансу передачі даних, на лінії CE необхідно встановити низький логічний рівень, тим самим дозволяючи передачу. Коли на дисплей передається команда, лінію DC необхідно "притягти" до загального проводу (лог. 0), при високому логічному рівні на лінії DC, можна передавати дані, які безпосередньо будуть відображатися на дисплеї.

При включенні дисплея, необхідно обов'язково виконати процедуру скидання, протягом 30 мс після подачі живлення, видати на лінію RST негативний імпульс, мінімальна тривалість імпульсу (низького логічного рівня) становить 100 нс. Лог. 0 на лінії RST може бути присутнім до подачі живлення.

У наступній таблиці наведено команди управління дисплеєм:

Після процедури скидання, контролер дисплея знаходиться у вимкненому стані, всі сегменти погашені, відповідно необхідно виконати ініціалізацію, відправивши на дисплей такі байти:

Після ініціалізації дисплей готовий до роботи, але необхідно виконати ще одну дію, після скидання і ініціалізації стан сегментів не визначено, і дисплей буде показувати сміття, тому слід виконати очистку, записавши в усі стовпці значення 0x00.
На наступній картинці показана схема підключення дисплея Nokia 5110 до мікроконтролеру PIC16F628A:

Дисплей nokia 5110 - підключення до мікроконтролеру, програмування мікроконтролерів pic

Основна частина коду програми приведена нижче (повний код доступний для скачування в кінці статті):

__CONFIG H'3F18 '; Конфігурація мікроконтролера

errorlevel -302; не виводити повідомлення з помилкою 302 в лістингу

Sec equ 0020h; допоміжні регістри рахунки

nomer equ 0023h; регістр зберігання коду ascii символу

scetbit equ 0024h; регістр рахунки кількості біт

perem equ 0025h; допоміжний регістр передачі байта по spi

temp equ 0026h; допоміжний регістр рахунки

tmp_tab equ 0027h; регістр зберігання номера таблиці

#DEFINE res_lcd PORTB, 0; привласнення назв лініях введення-виведення

#DEFINE cs PORTB, 1; для роботи з LCD дисплеєм Nоkiа 5110

#DEFINE dat_com PORTB, 2;

#DEFINE sdata PORTB, 3;

Даний код виводить на дисплей послідовно 6 рядків, з паузою в 1 сек: "Radiolaba.ru", Тестовий код, * Дисплей *, Nоkiа 5110, Контролер, PIC16F628A.

Кожен символ має розміри 5 × 7 пікселів, тобто складається з 5 байт. Контролер дисплея не має вбудованого знакогенератора, тому байти для промальовування символів включені в код програми у вигляді таблиць даних. Всього підтримується відображення 162 символів, це спецзнаки, цифри, латинські та кириличні символи, всі вони розділені на 4 таблиці даних, так як одна таблиця може вміщати тільки 256 байт даних.

Підпрограма знакогенератора (viv_symb) на основі ASCII коду символу витягує байти з відповідної таблиці, і виводить їх на дисплей. Спочатку визначається таблиця даних, в якій знаходяться байти символу, потім з ASCII коду символу віднімається певне значення, щоб в подальшому не вийти за межі таблиці, при виконанні обчислюється переходу. Отримане значення множиться на 5, це необхідно для потрапляння на перший байт символу при обчислюваному переході, так як кожен символ займає в таблиці 5 байт. Далі послідовно виводяться інші 4 байта.

У підпрограмі viv_symb додатково вставляється порожній стовпець (байт 0x00) для поділу символів на екрані, тобто на один рядок дисплея уміщається 84/6 = 14 символів. Байти для промальовування символів займають значну частину пам'яті програм мікроконтролера: 162 * 5 = 810 слів, або 40,5% пам'яті.

Для виведення символу розмірності кута і температури, в підпрограму viv_symb потрібно передати значення 176 (ASCII код символу).

В кінці статті також можна скачати коду програми для виведення шрифту подвоєного розміру 9 × 14. При використанні такого шрифту на дисплеї поміститься 3 рядки по 8 символів. Програма виводить на дисплей послідовно 3 рядки, з паузою в 1 сек: + PIC16 +, Nokia, 5110.

У цьому коді закладені не всі символи: цифри 0-9, великі латинські символи A-Z, точка, пробіл, тире, плюс, і символ розмірності кута і температури. Цим символом займають 41 * 18 = 738 байт, або 37% пам'яті програм.

Крім символів, на дисплей можна виводити графічні зображення з роздільною здатністю 48 × 84 пікселів, і навіть анімовані ролики. Одна картинка буде займати 504 байта, тому для зберігання великої кількості зображень доведеться використовувати зовнішню EEPROM пам'ять, або SD карту.

Дисплей nokia 5110 - підключення до мікроконтролеру, програмування мікроконтролерів pic
Дисплей nokia 5110 - підключення до мікроконтролеру, програмування мікроконтролерів pic