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

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
stanik
Родился
Сообщения: 10
Зарегистрирован: Чт июл 23, 2009 16:59:18
Откуда: Perm
Контактная информация:

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

Сообщение stanik »

Уже решено)))
Vze
Аватара пользователя
pictele
Встал на лапы
Сообщения: 89
Зарегистрирован: Вт авг 04, 2009 20:40:37
Откуда: Омск
Контактная информация:

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

Сообщение pictele »

stanik писал(а):Уже решено)))


Если это вопрос-то еще нет.
Аватара пользователя
pictele
Встал на лапы
Сообщения: 89
Зарегистрирован: Вт авг 04, 2009 20:40:37
Откуда: Омск
Контактная информация:

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

Сообщение pictele »

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

Изображение
Jursat
Родился
Сообщения: 9
Зарегистрирован: Чт окт 22, 2009 19:31:01
Откуда: Крым

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

Сообщение Jursat »

По РАДИО у меня что-то не пошло (уже не помню что). Там написано для всех моделей в общем.
Для некоторых ЭТО не работает. На 3-ю ножку WG подал напряжение контрастности?
Пока его (Vc) нет - ничего не увидишь. Обычно Vc - отрицательный потенциал и не более -2 вольт.
А листинг инициализации WG можешь выложить? Хочеться посмотреть, может что там не так.
Если можешь - брось и схемку подключения WG<-->PIC. Кстати, у меня родственники в Омске живут.
хочешь быть счастливым - немного подожди.
Аватара пользователя
pictele
Встал на лапы
Сообщения: 89
Зарегистрирован: Вт авг 04, 2009 20:40:37
Откуда: Омск
Контактная информация:

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

Сообщение pictele »

[quote="Jursat"]По РАДИО у меня что-то не пошло (уже не помню что). Там написано для всех моделей в общем.
Александр Милевский нормальный мужик.Мы по интернету давно контачим.Фанат.Не думаю,чтоб ошибся.

Для некоторых ЭТО не работает. На 3-ю ножку WG подал напряжение контрастности?

Евстественно.

Пока его (Vc) нет - ничего не увидишь. Обычно Vc - отрицательный потенциал и не более -2 вольт.
А листинг инициализации WG можешь выложить? Хочеться посмотреть, может что там не так.
Да все,как обычно.Пробывал,перепысывал.=никакой разницы.
Если можешь - брось и схемку подключения WG<-->PIC. Кстати, у меня родственники в Омске живут.[
А у меня на Тарханкуте.Иногда езжу рыбачить/quote]
Jursat
Родился
Сообщения: 9
Зарегистрирован: Чт окт 22, 2009 19:31:01
Откуда: Крым

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

Сообщение Jursat »

to Pictele:

Не может быть, чтоб все сделал правильно,- а WG не работает! Что-то не так. Пришли лист и схм по мылу. Всю схм не надо, - только ВГ-ПИК и лист инициализации ВГ. Все будет работать. jury_log@mail.ru
хочешь быть счастливым - немного подожди.
stanik
Родился
Сообщения: 10
Зарегистрирован: Чт июл 23, 2009 16:59:18
Откуда: Perm
Контактная информация:

Re:

Сообщение stanik »

lexmulya писал(а):Вот то что писал я.
Он чуток медлиннее из за того что я сначала читаю байт из ЖК меняю что надо и пишу назад(все это происходит с опросом статуса).
Если просто писать, то я незамечал как меняеться картинка.
Еще скорость можно повысить если держать буфер экрана в памяти и хитрый алгоритм что бы писать поочередно в разные кристаллы, один человек делал так, ему удалось выжать 70гц


А нет ни у кого исходника такого же только без чтения байта а только с записью..
Не получается переписать без чтения, то мусор какойто выводит то буквы скачут :(
Vze
Аватара пользователя
pictele
Встал на лапы
Сообщения: 89
Зарегистрирован: Вт авг 04, 2009 20:40:37
Откуда: Омск
Контактная информация:

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

Сообщение pictele »

Вроде нашел причину.
Во всем виноват разьем.
Обнаружил,когда и контрастность пропала.
Ну,а на другом блоке все классно.
Нало плату переделывать и мтавить новый разьем.
lirik
Открыл глаза
Сообщения: 43
Зарегистрирован: Ср мар 17, 2010 23:27:58

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

Сообщение lirik »

Jursat писал(а):to lirik. Дисплей запустили?

Неа так он и не подал признаков жизни мяу-мяу
пока нет времени заниматься =(((
Аватара пользователя
pictele
Встал на лапы
Сообщения: 89
Зарегистрирован: Вт авг 04, 2009 20:40:37
Откуда: Омск
Контактная информация:

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

Сообщение pictele »

Я запустил.WG12864.
Во первых это не совсем полный аналог МЭЛТа.
В reset сбрасывается нолем и в рабочее состояние-еденица.
Включать CS1и CS2 нужно нолем,а не еденицей.И CS1и CS2 поменять местами.
Все остальное без изменений.

Где бы еще по типу TIC32 найти что-то толковое???????
Может у кого что есть?
Jursat
Родился
Сообщения: 9
Зарегистрирован: Чт окт 22, 2009 19:31:01
Откуда: Крым

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

Сообщение Jursat »

(pictele) Включать CS1и CS2 нужно нолем,а не еденицей.И CS1и CS2 поменять местами.

В даташите все правильно. Просто его (WG) нужно перевернуть вверх ногами.
По Тику что-то попадалось,- надо поискать. Случайно это не И2С-шина?

Мур-р-р-р-р-р-р.
хочешь быть счастливым - немного подожди.
Аватара пользователя
pictele
Встал на лапы
Сообщения: 89
Зарегистрирован: Вт авг 04, 2009 20:40:37
Откуда: Омск
Контактная информация:

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

Сообщение pictele »

Jursat писал(а):(pictele) Включать CS1и CS2 нужно нолем,а не еденицей.И CS1и CS2 поменять местами.

В даташите все правильно. Просто его (WG) нужно перевернуть вверх ногами.
По Тику что-то попадалось,- надо поискать. Случайно это не И2С-шина?
Она самая...

Мур-р-р-р-р-р-р.
Котокотов
Родился
Сообщения: 3
Зарегистрирован: Сб сен 25, 2010 08:54:59

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

Сообщение Котокотов »

Простите, если не в тему. Имеется вот такой девайс. От чего он, я не знаю. Похоже, что от автомобильного бортового компьютера. Но это лишь предположение. Куда его можно прикошачить? Или его нужно выкинуть?
А еще лучше объясните, как его подключить. Может он что и покажет.
индикатор.JPG
(132.44 КБ) 956 скачиваний

индикатор 1.JPG
(162.06 КБ) 831 скачивание
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

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

Сообщение GP1 »

стандартный 16х2 символьный LCD индикатор, тема про них здесь
viewtopic.php?f=20&t=584
Чем дальше, тем больше становлюсь занудой...
Изображение
Котокотов
Родился
Сообщения: 3
Зарегистрирован: Сб сен 25, 2010 08:54:59

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

Сообщение Котокотов »

Спасибо. Есть еще один глупый вопрос. В эти индикаторы записывается какая либо информация, я имею в виду типа встроенной в него ПЗУ? Если да, то ее уже не стереть, так как этот индикатор БУ и он будет заточен под то, что его запрограмировали? Объясните, ПЛИЗ. А тему по приведенной ссылке я просмотрю на днях.
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

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

Сообщение Arlleex »

В этот дисплей встроен RAM, для хранения данных (которые вы должны туда записать, в частности - параметры отображения, а так же сами символы), а так же ROM, но в него вам доступ запрещен, поскольку в нем содержатся знакогенераторы.
Нет, ну, правда, туда залезть можно, и создать свой символ...
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

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

Сообщение Sounds »

Всем привет!
Завалялась такая штука 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)

Правильно? Если нет то помогите с правильным решением.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

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

Сообщение ibiza11 »

Sounds, смысл не в названии портов, а в их назначении в конкретной программе. Как запрограммируешь, так и будет.
Ставим плюсы: )
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

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

Сообщение Sounds »

Посмотрите пожалуйста исходник что-то не запускается экранчик.
Главный текст программы:

Код: Выделить всё

#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);
}

Вспомогательная библиотека ks0108:

Код: Выделить всё

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));   
  }
 }
}

P.S.
Включено всё правильно.
Кварц внешний на 8 Мгц.
Питание корректное, в соответствие с мануалом.
Этот код переделал под CodeVisionAVR V2.03.4
В теории должно работать, а на практике не хочет((
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

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

Сообщение Sounds »

Неужели ни кто не знает в чём проблема?
Ответить

Вернуться в «Периферия»