Работа с графическими ЖКИ на контроллере KS0108 и аналогах
- БАТАРЕЙКУС
- Потрогал лапой паяльник
- Сообщения: 346
- Зарегистрирован: Сб фев 07, 2009 19:21:25
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
Sounds. я вот все сваи дисплеии и остольные модули давно соединяю с помощью разьёмов тогда и ошибок будет меньше.
если нужно могу тестовую програмку скинуть для пик шоб проверить работу модуля.
если нужно могу тестовую програмку скинуть для пик шоб проверить работу модуля.
- Вложения
-
- экран.JPG
- (170.97 КБ) 925 скачиваний
Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
Ethereal писал(а):Значит у тебя проблемы с переводом в уме двоичных чисел в шестнадцатеричные.
Да нет у меня таких проблемав. Просто когда оцифровываешь несколько сотен изо-байтиков, чисто по вероятности несколько штук накосячишь. А прога это делает на раз и без ошибок. Только у нее должны быть как минимум 2 режима, потому что бывают графические ЖКИ, у которых байтик разворачивается построчно, у других - поколонно. Со вторыми работать проще.
БАТАРЕЙКУС
Не люблю разделывать эти плоские кабели. Если протыкать их, еще куда ни шло, а если разделывать под пайку - заморишься, да и отламываются они легко. Пару раз вставил-вынул -- заполучи бодягу.
- БАТАРЕЙКУС
- Потрогал лапой паяльник
- Сообщения: 346
- Зарегистрирован: Сб фев 07, 2009 19:21:25
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
[/quote]Не люблю разделывать эти плоские кабели.[/quote]
а какж тогда быть, что вы можите предложить? я вот пака лутшей альтернативы невстречал.
а какж тогда быть, что вы можите предложить? я вот пака лутшей альтернативы невстречал.
Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
БАТАРЕЙКУС писал(а):Не люблю разделывать эти плоские кабели.
а какж тогда быть, что вы можите предложить? я вот пака лутшей альтернативы невстречал.
Если протыкать на обоих концах разъемами - таки да, а для пайки предпочитаю скрутить из МГТФок несколько пар. Не очень эстетично, зато нервы экономит.
Но это мое мнение.
- Rinon Ninqueon
- Говорящий с текстолитом
- Сообщения: 1562
- Зарегистрирован: Ср июн 30, 2010 18:54:47
- Откуда: NO14MU
- Контактная информация:
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
не могу запустить дисплей
WG12864A (как у автора), мега16, 8МГц
менял только выводы: данные на портД, управление - портБ.
соединял шлейфом
залил для отладки "китайского" кота. Вроде, все сигналы идут, но ни одного пикселя не увидел
WG12864A (как у автора), мега16, 8МГц
менял только выводы: данные на портД, управление - портБ.
соединял шлейфом
залил для отладки "китайского" кота. Вроде, все сигналы идут, но ни одного пикселя не увидел
- Rinon Ninqueon
- Говорящий с текстолитом
- Сообщения: 1562
- Зарегистрирован: Ср июн 30, 2010 18:54:47
- Откуда: NO14MU
- Контактная информация:
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
отбой
надо было контрастность питать с Vee
всё работает!
надо было контрастность питать с Vee
всё работает!
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
А кто нибудь собирал это чудо - деталей на три копейки?
http://labkit.ru/html/toys?id=435
http://labkit.ru/html/toys?id=435
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
Помогите народ. Пробую компилировать прогу в ICC for AVR, подключил файлы, которые даны сдесь для работы с графикой. При компиляции пишет:
!ERROR file 'ks_1.o': undefined symbol '_Delay_ms'
!ERROR file 'ks_1.o': undefined symbol '_Delay_mks'
C:\iccv7avr\bin\imakew.exe: Error code 1
В чем дело?
!ERROR file 'ks_1.o': undefined symbol '_Delay_ms'
!ERROR file 'ks_1.o': undefined symbol '_Delay_mks'
C:\iccv7avr\bin\imakew.exe: Error code 1
В чем дело?
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
уважаемые помогите добавить логику выбора кристала
вот процедура инициализации
точнее просто установка всех пинов в 0а данных в 1
а вот настоящая процедура инициализации
вот процедура записи
и соответственно
а то я уже окончательно запутался
если поможете выложу схему и исходники управления WG12864A через юсб на 18f2550-18f2455
вот процедура инициализации
точнее просто установка всех пинов в 0а данных в 1
Код: Выделить всё
void OpenXLCD_1(void)
{
DATA_PORT = 0;
TRIS_DATA_PORT = 0xff;
TRIS_RW = 0; // All control signals made outputs
TRIS_RS = 0;
TRIS_E = 0;
RW_PIN = 0; // R/W pin made low
RS_PIN = 0; // Register select pin made low
E_PIN = 0; // Clock pin made low
}
а вот настоящая процедура инициализации
Код: Выделить всё
void OpenXLCD_2(unsigned char lcdtype)
{
// Delay for 15ms to allow for LCD Power on reset
DelayPORXLCD();
TRIS_DATA_PORT = 0; // Data port output
DATA_PORT = 0b00110000; // Function set cmd(8-bit interface)
E_PIN = 1; // Clock the cmd in
DelayFor18TCY();
E_PIN = 0;
// Delay for at least 4.1ms
DelayXLCD5ms();
DATA_PORT = 0b00110000; // Function set cmd(8-bit interface)
E_PIN = 1; // Clock the cmd in
DelayFor18TCY();
E_PIN = 0;
// Delay for at least 100us
DelayXLCD100();
DATA_PORT = 0b00110000; // Function set cmd(8-bit interface)
E_PIN = 1; // Clock cmd in
DelayFor18TCY();
E_PIN = 0;
TRIS_DATA_PORT = 0xff; // Make data port input
return;
}вот процедура записи
Код: Выделить всё
TRIS_DATA_PORT = 0; // Make port output
DATA_PORT = data; // Write data to port
RS_PIN = 1; // Set control bits
RW_PIN = 0;
DelayFor18TCY();
E_PIN = 1; // Clock data into LCD
DelayFor18TCY();
E_PIN = 0;
RS_PIN = 0; // Reset control bits
TRIS_DATA_PORT = 0xff; // Make port input
RS_PIN = 1; // Set control bits
RW_PIN = 0;
DelayFor18TCY();
E_PIN = 1; // Clock nibble into LCD
DelayFor18TCY();
E_PIN = 0;
DelayFor18TCY();
E_PIN = 1; // Clock nibble into LCD
DelayFor18TCY();
E_PIN = 0;и соответственно
Код: Выделить всё
#define RW_PIN PORTAbits.RA2 /* PORT for RW */
#define TRIS_RW TRISAbits.TRISA2 /* TRIS for RW */
#define RS_PIN PORTAbits.RA1 /* PORT for RS */
#define TRIS_RS TRISAbits.TRISA1 /* TRIS for RS */
#define E_PIN PORTAbits.RA3 /* PORT for D */
#define TRIS_E TRISAbits.TRISA3 /* TRIS for E */
#define CS1_PIN PORTAbits.RA4
#define TRIS_CS1 PORTAbits.TRISA4
#define CS2_PIN PORTAbits.RA5
#define TRIS_CS2 PORTAbits.TRASA5 /выбор кристалов
а то я уже окончательно запутался
если поможете выложу схему и исходники управления WG12864A через юсб на 18f2550-18f2455
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
спрошу по другому
просто обьясните для тупого на пальцах какие сигналы подавать для инициализации и с какими временными задержками
сам ни как не могу понять
есть:
D7-D0
E
RW
RS
CS1
CS2
просто обьясните для тупого на пальцах какие сигналы подавать для инициализации и с какими временными задержками
сам ни как не могу понять
есть:
D7-D0
E
RW
RS
CS1
CS2
- БАТАРЕЙКУС
- Потрогал лапой паяльник
- Сообщения: 346
- Зарегистрирован: Сб фев 07, 2009 19:21:25
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
mdscorp писал(а):для тупого
Код: Выделить всё
1) выставляеш на RW, RS нулевые уровни.
2) подаёш единичный уровень(в дальнейшем "1") на Reset
3)ждёш 2мкс.
4)подаёш 1 на CS1, CS2.
5ждёш 2мкс.
6)подаёш 0 на Reset
7)ждёш 2мкс.
8)подаёш 1на Reset
9)ждёш 2мкс.
10)подаёш B'00111111' на D7-D0
11)ждёш 2мкс.
12)подаёш 1 на E
13) ждёш 12мкс
14)подаёш 0 на E
15) очищяеш D7-D0 всё после этого дисплей готов к работе.
ктото инициализацию может проводить немножко иначе но я делаю именно так и работает и менять нечё несобираюсь. мой дисплей чернеет (тоесть все пиксели экрана принимают единичные значения) после инициализации.
Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
БАТАРЕЙКУС писал(а):для тупого
спасибо, очень доходчиво
оставлю может кому поможет
Код: Выделить всё
void OpenXLCD_2(unsigned char lcdtype)
{
// Delay for 15ms to allow for LCD Power on reset
DelayPORXLCD();
TRIS_CTRL_PORT = 0;
RW_PIN = 0;
RS_PIN = 0;
RST_PIN = 1;
DelayXLCD5ms(); //ждёш 2мкс.
CS1_PIN = 1;
CS2_PIN = 1; //4)подаёш 1 на CS1, CS2.
DelayXLCD5ms(); //5ждёш 2мкс.
RST_PIN = 0; //6)подаёш 0 на Reset все ресет отпущен
DelayXLCD5ms(); //7)ждёш 2мкс.
RST_PIN = 1; // 8)подаёш 1на Reset
DelayXLCD5ms(); // 9)ждёш 2мкс.
TRIS_DATA_PORT = 0; //
DATA_PORT = 0b00111111; // 10)подаёш B'00111111' на D7-D0
DelayXLCD5ms(); //11)ждёш 2мкс.
E_PIN = 1; // Clock the cmd in
DelayFor18TCY();
E_PIN = 0; //12)подаёш 1 на E 13) ждёш 12мкс 14)подаёш 0 на E
TRIS_DATA_PORT = 0; //
DATA_PORT = 0;
return;
}
Последний раз редактировалось mdscorp Пн мар 21, 2011 17:15:30, всего редактировалось 2 раза.
- БАТАРЕЙКУС
- Потрогал лапой паяльник
- Сообщения: 346
- Зарегистрирован: Сб фев 07, 2009 19:21:25
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
помогло?
Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
да спасибо
осталось теперь со страницами разобратся
осталось теперь со страницами разобратся
- БАТАРЕЙКУС
- Потрогал лапой паяльник
- Сообщения: 346
- Зарегистрирован: Сб фев 07, 2009 19:21:25
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
а что в них то непонятно там всё также элементарно выбираеш кристал и посылаеш команду и всё страница активна потом передаёш туда изображение. если на pic пишите могу пример скинуть.
Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
было бы просто если бы весь код мой был, а так не очень при условии изучения языка по ходу дела
и в идеале я хочу сделать в пике только "типо развёртку" и посылать на него пакеты для вывода изображения с программы на ПК
я думаю отсылать по строке 64 байт за раз и выводить её потому что в главном цикле у меня только 2 инструкции,читать юарт и писать в жк
да на PIC если что у меня 18f2550 и да пример было бы не плохо заранее спасибо.
и в идеале я хочу сделать в пике только "типо развёртку" и посылать на него пакеты для вывода изображения с программы на ПК
я думаю отсылать по строке 64 байт за раз и выводить её потому что в главном цикле у меня только 2 инструкции,читать юарт и писать в жк
да на PIC если что у меня 18f2550 и да пример было бы не плохо заранее спасибо.
- БАТАРЕЙКУС
- Потрогал лапой паяльник
- Сообщения: 346
- Зарегистрирован: Сб фев 07, 2009 19:21:25
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
;----------
; назначение порты
;----------
;RC0 -шина данных
;RC1 -шина данных
;RC2 -шина данных
;RC3 -шина данных
;RC4 -шина данных
;RC5 -шина данных
;RC6 -шина данных
;RC7 -шина данных
;RB0 - Е1 ; 1 кристалл
;RB1 - Е2 ; 2 кристалл
;RB2 - RES ; сброс
;RA3 – RS (AO) выбор регистра данных / команд
;RA5 - E строб разрешение чтения / записи
call Pause_10 ; задержка 2 мкс
; назначение порты
;----------
;RC0 -шина данных
;RC1 -шина данных
;RC2 -шина данных
;RC3 -шина данных
;RC4 -шина данных
;RC5 -шина данных
;RC6 -шина данных
;RC7 -шина данных
;RB0 - Е1 ; 1 кристалл
;RB1 - Е2 ; 2 кристалл
;RB2 - RES ; сброс
;RA3 – RS (AO) выбор регистра данных / команд
;RA5 - E строб разрешение чтения / записи
Код: Выделить всё
movlw B'10111000' ; запить в экран номер
call Stron_StolB ;; нулевой страницы
movlw B'01000000' ; запить в экран номер
call Stron_StolB ; нулевой строки
movlw B'10111111' ; запить в экран номер
call Stron_StolB ; седьмой страницы
movlw B'01111111' ; запить в экран номер
call Stron_StolB ; 63-его столбца
;----------
Stron_StolB bcf PortA,3 ;
movwf PortC ;
call Pause_10 ;
bsf PortA,5 ;
call Pause_10 ;
bcf PortA,5 ;
clrf PortC ;
return ;
;----------
call Pause_10 ; задержка 2 мкс
Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.
- Paguo-86PK
- Опытный кот
- Сообщения: 811
- Зарегистрирован: Чт авг 19, 2010 23:49:19
- Откуда: Ташкент
- Контактная информация:
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
Пробный он-лайн редактор символов.Sounds писал(а):Подскажите а в чём можно символы рисовать?
Насчёт инкладов, иногда путанница из-за этого:
Код: Выделить всё
#include "somefile.h" // <- Инкладим файл с папки проекте
#include <somefile.h> // <- Инкладим файл с папки компилятораКстати. Попался мне дисплей от калькулятора Citizen: Платка - 14 выводов, микрухи HD44100H HD44780A00, сбоку надпись C1620H.
Можно где-нибудь найти схему назначения выводов? Питание подавал - линии выходили. Гуглил - куча хлама...
P.S.: Тут выбрал несколько дисплеев:
- DG-12864 (дорогущий аналог MT-12864-2YLG)
- Nokia3510 LCD-модуль и data sheet
- LCM-1602 и data sheet
Все их планирую использовать в опытах с ПЛИС.
Или взять один 2.4" TFT LCD Display + Touch Panel + PCB adapter Module?
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
Ребят, помогите.
Есть необходимость подключить дисплей 12864 к микроконтроллеру с питанием 3,3 Вольт.
Как я понимаю есть несколько путей решения задачи:
1. Применить специальные микросхемы-согласователи уровней 5 - 3.3 В
2. Питать индикатор от 3.3 Вольта но подавать на него отрицательное напряжение -1,5 В на контраст ( Vo)
Вопрос - будет ли второй вариант нормально работать ?
Есть необходимость подключить дисплей 12864 к микроконтроллеру с питанием 3,3 Вольт.
Как я понимаю есть несколько путей решения задачи:
1. Применить специальные микросхемы-согласователи уровней 5 - 3.3 В
2. Питать индикатор от 3.3 Вольта но подавать на него отрицательное напряжение -1,5 В на контраст ( Vo)
Вопрос - будет ли второй вариант нормально работать ?
Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
Уважаемые, помогите разобраться с дисплеем WO12864A-TFH#, в нашем городе только такой и нашел.
Скачал даташит на него но не могу понять для чего у него выводы
2 - C86 -This is the MPU interface switch terminal.
с 9 по 14 - CAP2N, CAP2P, CAP1N, CAP1P, CAP3P, VOUT
27 - A0 - This is connect to the least significant bit of the Norman MPU address bus, and it determines whether the data bits are data or a command.
Это интерфейс UART или что вообще то?
И ещё:
вывод 3 - VR - это вывод отрицательно напряжения для регулировки контраста?
вывод 29 - /CS1 - выбор кристалла, если 1 - первый, 0 - второй?
Для питания у этого дисплея есть выводы (отдельно от шлейфа) A и K, как понимаю для подсветки, на них нужно 9 В?
Скачал даташит на него но не могу понять для чего у него выводы
2 - C86 -This is the MPU interface switch terminal.
с 9 по 14 - CAP2N, CAP2P, CAP1N, CAP1P, CAP3P, VOUT
27 - A0 - This is connect to the least significant bit of the Norman MPU address bus, and it determines whether the data bits are data or a command.
Это интерфейс UART или что вообще то?
И ещё:
вывод 3 - VR - это вывод отрицательно напряжения для регулировки контраста?
вывод 29 - /CS1 - выбор кристалла, если 1 - первый, 0 - второй?
Для питания у этого дисплея есть выводы (отдельно от шлейфа) A и K, как понимаю для подсветки, на них нужно 9 В?
- Вложения
-
- wo12864a_2E840d01.PDF
- Вот даташит на дисплей
- (531.09 КБ) 483 скачивания

