Програмиране дисплей st7920 на контролера

Искам да разкажа за програмирането на дисплея на контролера с помощта на контролера ST7920 ATtiny2313.

Програмиране дисплей st7920 на контролера

Този дисплей има два режима на работа:

И тя има 3 режима за връзка:

  1. Връзка 8 битова шина
  2. Връзка 4 битова шина
  3. Връзки за SPI (3 или 2 битова шина)

В този пост ще говорим за:

  • Работа в текстов режим
  • Връзките и програмиране от 8 битова шина
  • Свързаност и програмиране SPI

За да се свържете на дисплея на контролера, ние трябва:

  1. Дисплеят на ST7920 на контролера
  2. Индекс 2 х 320 ома резистор.
  3. За 8 битов режим резистор 4.7 ома (или повече)
  4. контролер ATtiny2313
  5. Електрозахранването на 5V.

схема на свързване

Свързване с 8 битова шина данни

Програмиране дисплей st7920 на контролера

контакти Pinout:
GND - партер
VCC - + 5V
V0 - настройка на контраста
РС - Определя режим на предаване на данни (1 - данни 0 - екип)
RW - запис или четене (1 - Четене 0 - запис)
E - Strobe
D0-D7 - Автобус Информация
PSB - Определя протокол за пренос на данни, за да бъдат използвани (1 - 8/4 битова шина, 0 - SPI)
BLA - задно осветяване анод (+)
BLK - Cathode осветление (-)

Свързване на SPI

Програмиране дисплей st7920 на контролера

контакти 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, но първо да декларира константи:

Сега, самата функция:

режим на текст

Сега, след като сте се научили как да се инициализира на дисплея можете да изберете някой от героите на екрана, например, да се оттегли буквата А:

И на дисплея ще видите буквата А.

графичен режим

Библиотека за ST7920