Работа с графическими ЖКИ на контроллере KS0108 и аналогах
Уже решено)))
Vze
- Реклама
Если это вопрос-то еще нет.stanik писал(а):Уже решено)))
Нашел толковую статью в журнале РАДИО. 2009 номер 6 .
Изготовил макетку.Прошил контроллер.Нет не хочет мой индикатор работать.Индикатор исправен-проверял на другом устройстве.На ножках проца есть имульсы.Прогнал в PIC Simulator IDE.В симуляторе рисует картинку что надо..Все,вроде,четко,но индикатор не работает.Где-то что_то видать у меня не то.Ищу,Напомню,что у меня WG12864

Изготовил макетку.Прошил контроллер.Нет не хочет мой индикатор работать.Индикатор исправен-проверял на другом устройстве.На ножках проца есть имульсы.Прогнал в PIC Simulator IDE.В симуляторе рисует картинку что надо..Все,вроде,четко,но индикатор не работает.Где-то что_то видать у меня не то.Ищу,Напомню,что у меня WG12864

По РАДИО у меня что-то не пошло (уже не помню что). Там написано для всех моделей в общем.
Для некоторых ЭТО не работает. На 3-ю ножку WG подал напряжение контрастности?
Пока его (Vc) нет - ничего не увидишь. Обычно Vc - отрицательный потенциал и не более -2 вольт.
А листинг инициализации WG можешь выложить? Хочеться посмотреть, может что там не так.
Если можешь - брось и схемку подключения WG<-->PIC. Кстати, у меня родственники в Омске живут.
Для некоторых ЭТО не работает. На 3-ю ножку WG подал напряжение контрастности?
Пока его (Vc) нет - ничего не увидишь. Обычно Vc - отрицательный потенциал и не более -2 вольт.
А листинг инициализации WG можешь выложить? Хочеться посмотреть, может что там не так.
Если можешь - брось и схемку подключения WG<-->PIC. Кстати, у меня родственники в Омске живут.
хочешь быть счастливым - немного подожди.
[quote="Jursat"]По РАДИО у меня что-то не пошло (уже не помню что). Там написано для всех моделей в общем.
Александр Милевский нормальный мужик.Мы по интернету давно контачим.Фанат.Не думаю,чтоб ошибся.
Для некоторых ЭТО не работает. На 3-ю ножку WG подал напряжение контрастности?
Евстественно.
Пока его (Vc) нет - ничего не увидишь. Обычно Vc - отрицательный потенциал и не более -2 вольт.
А листинг инициализации WG можешь выложить? Хочеться посмотреть, может что там не так.
Да все,как обычно.Пробывал,перепысывал.=никакой разницы.
Если можешь - брось и схемку подключения WG<-->PIC. Кстати, у меня родственники в Омске живут.[
А у меня на Тарханкуте.Иногда езжу рыбачить/quote]
Александр Милевский нормальный мужик.Мы по интернету давно контачим.Фанат.Не думаю,чтоб ошибся.
Для некоторых ЭТО не работает. На 3-ю ножку WG подал напряжение контрастности?
Евстественно.
Пока его (Vc) нет - ничего не увидишь. Обычно Vc - отрицательный потенциал и не более -2 вольт.
А листинг инициализации WG можешь выложить? Хочеться посмотреть, может что там не так.
Да все,как обычно.Пробывал,перепысывал.=никакой разницы.
Если можешь - брось и схемку подключения WG<-->PIC. Кстати, у меня родственники в Омске живут.[
А у меня на Тарханкуте.Иногда езжу рыбачить/quote]
- Реклама
to Pictele:
Не может быть, чтоб все сделал правильно,- а WG не работает! Что-то не так. Пришли лист и схм по мылу. Всю схм не надо, - только ВГ-ПИК и лист инициализации ВГ. Все будет работать. jury_log@mail.ru
Не может быть, чтоб все сделал правильно,- а WG не работает! Что-то не так. Пришли лист и схм по мылу. Всю схм не надо, - только ВГ-ПИК и лист инициализации ВГ. Все будет работать. jury_log@mail.ru
хочешь быть счастливым - немного подожди.
А нет ни у кого исходника такого же только без чтения байта а только с записью..lexmulya писал(а):Вот то что писал я.
Он чуток медлиннее из за того что я сначала читаю байт из ЖК меняю что надо и пишу назад(все это происходит с опросом статуса).
Если просто писать, то я незамечал как меняеться картинка.
Еще скорость можно повысить если держать буфер экрана в памяти и хитрый алгоритм что бы писать поочередно в разные кристаллы, один человек делал так, ему удалось выжать 70гц
Не получается переписать без чтения, то мусор какойто выводит то буквы скачут
Vze
Вроде нашел причину.
Во всем виноват разьем.
Обнаружил,когда и контрастность пропала.
Ну,а на другом блоке все классно.
Нало плату переделывать и мтавить новый разьем.
Во всем виноват разьем.
Обнаружил,когда и контрастность пропала.
Ну,а на другом блоке все классно.
Нало плату переделывать и мтавить новый разьем.
- Сообщения: 43
- Зарегистрирован: Ср мар 17, 2010 23:27:58
Неа так он и не подал признаков жизни мяу-мяуJursat писал(а):to lirik. Дисплей запустили?
пока нет времени заниматься =(((
Я запустил.WG12864.
Во первых это не совсем полный аналог МЭЛТа.
В reset сбрасывается нолем и в рабочее состояние-еденица.
Включать CS1и CS2 нужно нолем,а не еденицей.И CS1и CS2 поменять местами.
Все остальное без изменений.
Где бы еще по типу TIC32 найти что-то толковое???????
Может у кого что есть?
Во первых это не совсем полный аналог МЭЛТа.
В reset сбрасывается нолем и в рабочее состояние-еденица.
Включать CS1и CS2 нужно нолем,а не еденицей.И CS1и CS2 поменять местами.
Все остальное без изменений.
Где бы еще по типу TIC32 найти что-то толковое???????
Может у кого что есть?
(pictele) Включать CS1и CS2 нужно нолем,а не еденицей.И CS1и CS2 поменять местами.
В даташите все правильно. Просто его (WG) нужно перевернуть вверх ногами.
По Тику что-то попадалось,- надо поискать. Случайно это не И2С-шина?
Мур-р-р-р-р-р-р.
В даташите все правильно. Просто его (WG) нужно перевернуть вверх ногами.
По Тику что-то попадалось,- надо поискать. Случайно это не И2С-шина?
Мур-р-р-р-р-р-р.
хочешь быть счастливым - немного подожди.
Jursat писал(а):(pictele) Включать CS1и CS2 нужно нолем,а не еденицей.И CS1и CS2 поменять местами.
В даташите все правильно. Просто его (WG) нужно перевернуть вверх ногами.
По Тику что-то попадалось,- надо поискать. Случайно это не И2С-шина?
Она самая...
Мур-р-р-р-р-р-р.
- Сообщения: 3
- Зарегистрирован: Сб сен 25, 2010 08:54:59
Простите, если не в тему. Имеется вот такой девайс. От чего он, я не знаю. Похоже, что от автомобильного бортового компьютера. Но это лишь предположение. Куда его можно прикошачить? Или его нужно выкинуть?
А еще лучше объясните, как его подключить. Может он что и покажет.
А еще лучше объясните, как его подключить. Может он что и покажет.
стандартный 16х2 символьный LCD индикатор, тема про них здесь
http://radiokot.ru/forum/viewtopic.php?f=20&t=584
http://radiokot.ru/forum/viewtopic.php?f=20&t=584
- Сообщения: 3
- Зарегистрирован: Сб сен 25, 2010 08:54:59
Спасибо. Есть еще один глупый вопрос. В эти индикаторы записывается какая либо информация, я имею в виду типа встроенной в него ПЗУ? Если да, то ее уже не стереть, так как этот индикатор БУ и он будет заточен под то, что его запрограмировали? Объясните, ПЛИЗ. А тему по приведенной ссылке я просмотрю на днях.
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
В этот дисплей встроен RAM, для хранения данных (которые вы должны туда записать, в частности - параметры отображения, а так же сами символы), а так же ROM, но в него вам доступ запрещен, поскольку в нем содержатся знакогенераторы.
Нет, ну, правда, туда залезть можно, и создать свой символ...
Нет, ну, правда, туда залезть можно, и создать свой символ...
Не умеешь - не берись, но не взявшись не научишься...
- Сообщения: 238
- Зарегистрирован: Вт май 27, 2008 23:23:24
Всем привет!
Завалялась такая штука http://www.chipdip.ru/product/me-glcd-128x64.aspx (НЕ РЕКЛАМА!!!), но я не совсем понимаю как его подключить к AVR atmega 16.
Немного почитав я сделал следующий вывод, что надо подключать так:
PORTC -> 9 to16(pin lcd)
PORTD.0->1(pin lcd)
PORTD.1->2(pin lcd)
PORTD.2->6(pin lcd)
PORTD.3->7(pin lcd)
PORTD.4->8(pin lcd)
PORTD.5->17(pin lcd)
Правильно? Если нет то помогите с правильным решением.
Завалялась такая штука http://www.chipdip.ru/product/me-glcd-128x64.aspx (НЕ РЕКЛАМА!!!), но я не совсем понимаю как его подключить к AVR atmega 16.
Немного почитав я сделал следующий вывод, что надо подключать так:
PORTC -> 9 to16(pin lcd)
PORTD.0->1(pin lcd)
PORTD.1->2(pin lcd)
PORTD.2->6(pin lcd)
PORTD.3->7(pin lcd)
PORTD.4->8(pin lcd)
PORTD.5->17(pin lcd)
Правильно? Если нет то помогите с правильным решением.
Sounds, смысл не в названии портов, а в их назначении в конкретной программе. Как запрограммируешь, так и будет.
Ставим плюсы: )
- Сообщения: 238
- Зарегистрирован: Вт май 27, 2008 23:23:24
Посмотрите пожалуйста исходник что-то не запускается экранчик.
Главный текст программы:
Вспомогательная библиотека ks0108:
P.S.
Включено всё правильно.
Кварц внешний на 8 Мгц.
Питание корректное, в соответствие с мануалом.
Этот код переделал под CodeVisionAVR V2.03.4
В теории должно работать, а на практике не хочет((
Главный текст программы:
Код: Выделить всё
#include <mega16.h>
#include <delay.h> //Включаем библиотеку для организации задержек
#define SetBit(x,y) (x|=y)
#define ClrBit(x,y) (x&=~y)
#define TestBit(x,y) (x&y)
#define LCD_RST 0b00000001
#define LCD_E 0b00000010
#define LCD_RW 0b00000100
#define LCD_RS 0b00001000
#define LCD_CS2 0b00010000
#define LCD_CS1 0b00100000
#define LCD_DB PORTD
#define LCD_COM PORTC
#include "ks0108.h"
void main()
{
DDRC=0xFF;
DDRD=0xFF;
init_lcd();
delay_ms(10);
clear();
delay_ms(1);
WriteXY(6,2,LCD_CS1);
delay_ms(1);
WriteData(0b01000100,LCD_CS1);
WriteData(0b01001000,LCD_CS1);
WriteData(0b11110000,LCD_CS1);
WriteData(0b00001000,LCD_CS1);
WriteData(0b00000100,LCD_CS1);
WriteData(0b01100010,LCD_CS1);
WriteData(0b01100001,LCD_CS1);
WriteData(0b00000010,LCD_CS1);
WriteData(0b00000100,LCD_CS1);
WriteData(0b00001000,LCD_CS1);
WriteData(0b10010000,LCD_CS1);
WriteData(0b01010000,LCD_CS1);
WriteData(0b10010000,LCD_CS1);
WriteData(0b00001000,LCD_CS1);
WriteData(0b00000100,LCD_CS1);
WriteData(0b01100010,LCD_CS1);
WriteData(0b01100001,LCD_CS1);
WriteData(0b00000010,LCD_CS1);
WriteData(0b00000100,LCD_CS1);
WriteData(0b00001000,LCD_CS1);
WriteData(0b11110000,LCD_CS1);
WriteData(0b01001000,LCD_CS1);
WriteData(0b01000100,LCD_CS1);
WriteXY(6,3,LCD_CS1);
WriteData(0b00001000,LCD_CS1);
WriteData(0b00000100,LCD_CS1);
WriteData(0b00000011,LCD_CS1);
WriteData(0b00000100,LCD_CS1);
WriteData(0b00001000,LCD_CS1);
WriteData(0b00010000,LCD_CS1);
WriteData(0b00100000,LCD_CS1);
WriteData(0b01000100,LCD_CS1);
WriteData(0b10001000,LCD_CS1);
WriteData(0b10010000,LCD_CS1);
WriteData(0b10010101,LCD_CS1);
WriteData(0b10010010,LCD_CS1);
WriteData(0b10010101,LCD_CS1);
WriteData(0b10010000,LCD_CS1);
WriteData(0b10001000,LCD_CS1);
WriteData(0b01000100,LCD_CS1);
WriteData(0b00100000,LCD_CS1);
WriteData(0b00010000,LCD_CS1);
WriteData(0b00001000,LCD_CS1);
WriteData(0b00000100,LCD_CS1);
WriteData(0b00000011,LCD_CS1);
WriteData(0b00000100,LCD_CS1);
WriteData(0b00001000,LCD_CS1);
while(1);
}
Код: Выделить всё
void WriteCom(unsigned char Com,unsigned char CS)
{
SetBit(LCD_COM,CS);
ClrBit(LCD_COM,LCD_RS);
ClrBit(LCD_COM,LCD_RW);
#asm
nop
nop
#endasm
LCD_DB=Com;
SetBit(LCD_COM,LCD_E);
#asm
nop
nop
#endasm
ClrBit(LCD_COM,LCD_E);
delay_ms(4); // В ОРИГИНАЛЬНОЙ ПРОШИВКЕ Delay_mks(4);
ClrBit(LCD_COM,(LCD_CS1+LCD_CS2));
//SetBit(LCD_COM,LCD_E);
}
void WriteData(unsigned char data,unsigned char CS)
{
SetBit(LCD_COM,CS);
SetBit(LCD_COM,LCD_RS);
ClrBit(LCD_COM,LCD_RW);
#asm
nop
nop
#endasm
LCD_DB=data;
SetBit(LCD_COM,LCD_E);
#asm
nop
nop
#endasm
ClrBit(LCD_COM,LCD_E);
delay_ms(4);// В ОРИГИНАЛЬНОЙ ПРОШИВКЕ Delay_mks(4);
ClrBit(LCD_COM,(LCD_CS1+LCD_CS2));
//SetBit(LCD_COM,LCD_E);
}
void WriteXY(unsigned char x,unsigned char y,const unsigned char CS)
{
WriteCom(0xb8+y,CS);
WriteCom(0x40+x,CS);
}
void init_lcd(void)
{
SetBit(LCD_COM,LCD_RST);
delay_ms(5);
WriteXY(0,0,(LCD_CS1+LCD_CS2));
WriteCom(0xc0,(LCD_CS1+LCD_CS2));
WriteCom(0x3f,(LCD_CS1+LCD_CS2));
}
void clear(void)
{
unsigned char x,y;
for(x=0;x<64;x++)
{
for(y=0;y<8;y++)
{
WriteXY(x,y,(LCD_CS1+LCD_CS2));
WriteData(0,(LCD_CS1+LCD_CS2));
}
}
}Включено всё правильно.
Кварц внешний на 8 Мгц.
Питание корректное, в соответствие с мануалом.
Этот код переделал под CodeVisionAVR V2.03.4
В теории должно работать, а на практике не хочет((
- Сообщения: 238
- Зарегистрирован: Вт май 27, 2008 23:23:24
Неужели ни кто не знает в чём проблема?



