Короче есть дисплей WG12864. Ночью не могу уснуть. Я видел много тем как люди его подцепляли, и сам копировал их программы, вставлял, разбирался, но мне всё же охота сделать своё. Я открыл даташит и много чего не понял. Прошу помощи разобраться в нём.
есть ножка R/W - (Read/Write) что она делает, что читает и что записывает? Если я правильно понял то дисплей сначала записывает в себя W, а потом при выводе на экран нужно R что бы он прочитал то что записал и вывел на экран - Верно ли я понял?
есть ножка D/I - (Data/Instruction) - Data - я понял это параллельный порт, DB0-DB7 по которому передаётся 8 бит информации, а Instruction - это команды типа, Вкл/Выкл Дисплей, и т.п.? верно ли я понял?
Дальше есть стробирующий E - тактовый сигнал, после каждой команды или информации мне его надо посылать длительностью не менее 450нс? верно?
PORT B / PORT D
E RS RW DI S1 S2 / D0 D1 D2 D3 D4 D5 D6 D7
0 1 2 3 4 5 6 7 / 0 1 2 3 4 5 6 7
0 0 0 0 0 0 / 1 1 1 1 1 1 0 0 - Start // Запускаем дисплей
0 0 0 0 0 0 / (0 0 0 0 0 0) 1 0 - X(0-64) // Устанавливаем курсор в ноль по Х
0 0 0 0 0 0 / (0 0 0) 1 1 1 0 1 - Y(0-7) // Устанавливаем курсор в ноль по Y
Код:
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRD = 0xFF; // - порт D как вывод
DDRB = 0xFF; // - порт B как вывод
PORTB = 0b00000000;
_delay_us(1);
PORTD = 0b00111111; //включаем дисплей
_delay_us(1);
PORTD = 0b01000000; //курсор по Х на 0
_delay_us(1);
PORTD = 0b10111000; //курсор по Y на 0
_delay_us(1);
while(1)
{
}
}
Помогите чайнику в начале своего дела, как зажечь хотя бы одну точку по координате Х и Y (1,1) - что надо делать дальше? какие команды посылать?