Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Пт май 30, 2014 13:06:06

Я всё не пойму, чем вас не устраивают готовые шрифты?
Всё сделано до вас. пользуйтесь!

выводите последовательно 5 байт из второго измерения массива + байт нулей

void print(char t) {
for (i=0; i<5; i++)
spiTransmit(font[t+32][i]);
}
spiTransmit(0x00);
}
Вот вам и вся библиотека(кроме инициализации)
PS не люблю встроенные библиотеки, много в них "воды" и, порой, бесполезных функций забивающих место.
PPS вы всё равно не найдете фонт, который нормально "конвертируется".
Вложения
font.txt
(8.57 KiB) Скачиваний: 389

KS0108 последовательность действий.

Вт дек 30, 2014 10:04:41

Короче есть дисплей 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) - что надо делать дальше? какие команды посылать?

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Сб сен 05, 2015 12:53:27

Подключил дисплей WG12232E к Atmega32, начал писать в Codevision 3.12 со стандартными библиотеками glcd, но сразу же возникла проблема с выводом. Изображение двоится, т.е. правая половина показывает тоже самое что и левая. Если выводить в правую часть, то выходит нечто странное. Пробовал вешать управляющие выводы CS1 и CS2 на другие порты, подтягивал на землю, но ситуация не меняется. Куда начать копать?
Вложения
IMG_7671.JPG
(187.94 KiB) Скачиваний: 653

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Вс сен 06, 2015 14:07:33

В общем разобрался, в настройках glcd библиотеки выбрал конфиг для SED1520 122x32 /CS1 /CS2 RES, тогда как судя по даташиту больше подходило SED1520 122x32 CS1 CS2 E /RES (что поначалу и использовал). Либо даташит не тот, либо в библиотеке напутано, но пришлось /RD подключать к 8 ноге (Е) дисплея, а /WR - к 9 ноге (R/W), чтобы заработало нормально.

PS: дисплей WG12232E-YYH-N#A

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Пн фев 08, 2016 10:34:15

Добрый день, уважаемые форумчане! Может у кого есть "сорцы" на "асме" для работы ЖКИ на контроллере KS0108 и PIC18?

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Вс июл 03, 2016 08:59:08

Всем привет. По данной статье пытаюсь подключить дисплей. В протеусе всё работает, а вот на железе не особо. Пока что оставил только инициализацию дисплея, результат на картинке. Несколько раз пересобирал, в чём может быть дело, дисплей неисправен? Дисплей
Изображение
Ответить