Я всё не пойму, чем вас не устраивают готовые шрифты?
Всё сделано до вас. пользуйтесь!
выводите последовательно 5 байт из второго измерения массива + байт нулей
void print(char t) {
for (i=0; i<5; i++)
spiTransmit(font[t+32][i]);
}
spiTransmit(0x00);
}
Вот вам и вся библиотека(кроме инициализации)
PS не люблю встроенные библиотеки, много в них "воды" и, порой, бесполезных функций забивающих место.
PPS вы всё равно не найдете фонт, который нормально "конвертируется".
Работа с графическими ЖКИ на контроллере KS0108 и аналогах
- 0867532
- Встал на лапы
- Сообщения: 142
- Зарегистрирован: Сб май 25, 2013 21:14:11
- Откуда: Москва
- Контактная информация:
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
- Вложения
-
- font.txt
- (8.57 КБ) 468 скачиваний
KS0108 последовательность действий.
Короче есть дисплей 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
Помогите чайнику в начале своего дела, как зажечь хотя бы одну точку по координате Х и Y (1,1) - что надо делать дальше? какие команды посылать?
есть ножка 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) - что надо делать дальше? какие команды посылать?
- Dj_Alex
- Открыл глаза
- Сообщения: 50
- Зарегистрирован: Пн окт 12, 2009 18:16:50
- Откуда: Саранск
- Контактная информация:
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
Подключил дисплей WG12232E к Atmega32, начал писать в Codevision 3.12 со стандартными библиотеками glcd, но сразу же возникла проблема с выводом. Изображение двоится, т.е. правая половина показывает тоже самое что и левая. Если выводить в правую часть, то выходит нечто странное. Пробовал вешать управляющие выводы CS1 и CS2 на другие порты, подтягивал на землю, но ситуация не меняется. Куда начать копать?
- Вложения
-
- IMG_7671.JPG
- (187.94 КБ) 751 скачивание
- Dj_Alex
- Открыл глаза
- Сообщения: 50
- Зарегистрирован: Пн окт 12, 2009 18:16:50
- Откуда: Саранск
- Контактная информация:
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
В общем разобрался, в настройках glcd библиотеки выбрал конфиг для SED1520 122x32 /CS1 /CS2 RES, тогда как судя по даташиту больше подходило SED1520 122x32 CS1 CS2 E /RES (что поначалу и использовал). Либо даташит не тот, либо в библиотеке напутано, но пришлось /RD подключать к 8 ноге (Е) дисплея, а /WR - к 9 ноге (R/W), чтобы заработало нормально.
PS: дисплей WG12232E-YYH-N#A
PS: дисплей WG12232E-YYH-N#A
-
sheff2441
- Родился
- Сообщения: 5
- Зарегистрирован: Вс ноя 30, 2008 11:38:08
- Откуда: Кириши
- Контактная информация:
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
Добрый день, уважаемые форумчане! Может у кого есть "сорцы" на "асме" для работы ЖКИ на контроллере KS0108 и PIC18?
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
Всем привет. По данной статье пытаюсь подключить дисплей. В протеусе всё работает, а вот на железе не особо. Пока что оставил только инициализацию дисплея, результат на картинке. Несколько раз пересобирал, в чём может быть дело, дисплей неисправен? Дисплей
