Програмиране дисплей st7920 на контролера
Искам да разкажа за програмирането на дисплея на контролера с помощта на контролера ST7920 ATtiny2313.
Този дисплей има два режима на работа:
И тя има 3 режима за връзка:
- Връзка 8 битова шина
- Връзка 4 битова шина
- Връзки за SPI (3 или 2 битова шина)
В този пост ще говорим за:
- Работа в текстов режим
- Връзките и програмиране от 8 битова шина
- Свързаност и програмиране SPI
За да се свържете на дисплея на контролера, ние трябва:
- Дисплеят на ST7920 на контролера
- Индекс 2 х 320 ома резистор.
- За 8 битов режим резистор 4.7 ома (или повече)
- контролер ATtiny2313
- Електрозахранването на 5V.
схема на свързване
Свързване с 8 битова шина данни
контакти Pinout:
GND - партер
VCC - + 5V
V0 - настройка на контраста
РС - Определя режим на предаване на данни (1 - данни 0 - екип)
RW - запис или четене (1 - Четене 0 - запис)
E - Strobe
D0-D7 - Автобус Информация
PSB - Определя протокол за пренос на данни, за да бъдат използвани (1 - 8/4 битова шина, 0 - SPI)
BLA - задно осветяване анод (+)
BLK - Cathode осветление (-)
Свързване на SPI
контакти Pinout:
GND - партер
VCC - + 5V
V0 - настройка на контраста
RS - (CS) позволява и деактивира дисплея за получаване на данни (1 - Забранява 0 - разрешителни)
RW - (SID) за трансфер на данни
Е - (SCLK) строб
PSB - Определя протокол за пренос на данни, за да бъдат използвани (1 - 8/4 битова шина, 0 - SPI)
BLA - задно осветяване анод (+)
BLK - Cathode осветление (-)
Таван резистори
RP1 - Contrast Control
RP2 - Dimmer
Описание протоколи показват програмиране
8 битов режим
И така, от самото начало, аз ще ви кажа как изобщо има работа с дисплей.
За да работи на екрана, трябва да изпраща команди и данни на дисплея.
Тя се отнася до екипа: Включване / изключване на дисплея, екрана на курсора, преместване на курсора и т.н. Данните включват например символи, които искате да видите на дисплея.
Нека разгледаме един пример за това как се инициализира с 8 битов режим.
Нека разгледаме един пример за това как, инициализира:
- Забавяне 50 микросекунди.
- Изпрати режим за настройка на команда 8 бита.
- Забавяне 120 микросекунди.
- Изпрати команда за превключване на дисплея (това е указва дали курсорът ако курсора и мига)
- Забавяне 50 микросекунди.
- Повторно изпращане на функцията Настройката на режима за 8-битов
- Забавяне 120 микросекунди.
- Изпраща команда за почистване на екрана
- Забавяне 20 микросекунди.
- Задайте режима за въвеждане (Тази команда казва по какъв начин да преместите курсора, след написването на характер, ние трябва да се прави, съответно)
Това е всичко, след като изпълните тези стъпки, ако сте посочили в дисплея на командването се даде възможност да покаже курсора на екрана ще видите курсора.
Помислете как да изпратите команда за показване на режима на 8-битова:
- Задайте Ниско ниво E
- Инсталирайте ниско ниво на РС
- Задайте ниско ниво RW
- Забавяне 1 мс.
- Създаване на високо ниво на E
- Ние изпращаме данни порт команда байт
- Забавяне 1 мс.
- Задайте Ниско ниво E
- Забавяне 50 микросекунди.
За да изпратите един байт данни се прави точно същото нещо, само в началото високо поставени
ниво RS.
RS = 0 Command
RS = 1 Данни
Ето как да се изпрати един байт данни:
- Задайте Ниско ниво E
- Инсталиране на високо ниво на РС
- Задайте ниско ниво RW
- Забавяне 1 мс.
- Създаване на високо ниво на E
- Ние изпращаме данни порт команда байт
- Забавяне 1 мс.
- Задайте Ниско ниво E
- Забавяне 50 микросекунди.
Нека да разгледаме изпращане на кода на командата
На първо място, инсталиране на константите, които биха били по-удобно:
команда изпращане на функция:
Изпращане на данни функция:
Макросът код LCD8_MACRO_DELAY е бил използван, че неговият код
А сега да разгледаме командите за инициализация на дисплея текст, 8-битов режим:
ФУНКЦИЯ SET команда: DL 0 0 1 0 0 0 RE
DL:
- Ако е 1, а след това определете данните от 8-битови
- Ако е 0, 4 бита данни, определени предаване
- Ако е 1, той определя набор от разширени команди
- Ако трябва да е 0, а след това да определи набор от основни команди
След това е състоянието на команда езика: 0 0 0 0 1 D C B
D:
- Ако е 1, дисплеят е включен
- Ако трябва да е 0 дисплея е изключен
- Ако е 1, а след това на курсора е включена
- Ако трябва да е 0, курсорът е изключен
- Ако е 1, тогава курсорът ще мига
- Ако трябва да е 0, курсорът не ще започне да мига
Следната команда простите CLEAR - почистване на екрана: 0 0 0 0 0 0 0 1
И последната команда е режим на въвеждане на SET - настройване на посоката на движение на курсора: 0 0 0 0 0 1 I / D S
- Ако I / D = 1, тогава курсорът се премества в дясно
- Ако I / D = 0, тогава курсорът се премества наляво
Въз основа на тези четири функции можете да напишете функция за инициализиране на дисплея:
След екрана на инициализиране, трябва да видите мигащ курсор.
Сега, за функцията на получаване на предаване команда / данни за SPI.
Този режим се състои от две линии:
- SID е контакт с данни, на дисплея известен също като RW
- SCLK - линия на вратата, на панела на дисплея, е E
В режим SPI, предаването на една команда или един байт данни възниква при трансфер на 24-битов
трансфер на данни протокол е както следва:
- Ние премине ред на 4 единици
- Pass 1 бит RW - четат или пишат
- Pass 1 бит RS - команда или данни
- премине 0
- Минаваме горната половина на 4 бита от байт данни
- Pass 4 нули
- Pass 4 бита на ниско половин байт данни
- Прекарайте четири последователни нула
В този трансфер един байт е завършена.
След всяка изпратена малко е портата, която е:
- Забавяне 1 мс.
- Създаване на високо ниво на SCLK
- Забавяне 1 мс.
- Задайте SCLK ниско ниво
- Забавяне 1 мс.
Обмислете предаване команда функция / данни в режим SPI, но първо да декларира константи:
Сега, самата функция:
режим на текст
Сега, след като сте се научили как да се инициализира на дисплея можете да изберете някой от героите на екрана, например, да се оттегли буквата А:
И на дисплея ще видите буквата А.