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

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
lexmulya
Встал на лапы
Сообщения: 124
Зарегистрирован: Ср авг 29, 2007 10:42:31
Контактная информация:

Сообщение lexmulya »

http://www.radiokot.ru/lab/controller/30/
У меня там в библиотечке есть все то что тебе нужно.
Merzavec
Родился
Сообщения: 18
Зарегистрирован: Пт мар 14, 2008 03:31:18

Re: мерцает изображение на wg128128b

Сообщение Merzavec »

такая проблема- при изменении соотнешения темных и светлых пикселей начинает хаотично мерцать изображение. При этом мерцание удаеться убрать подстройкой контрастности, но, при дальнейшем изменеии того самого соотношения темных/светлых пикселей изображение опять начинает мерцать, блекнуть или наоборот сливаться в единую серую массу. В чем может быть проблема?

Сам разобрался:
как оказалось, стандартный подход к регулировке контрастности, когда ставиться переменный резистор входами к "земля" и "выход обратного напряжения", а ползунком к "входу регулировки контрастности", не подходит- при изменении объема информации на дисплее, напряжение на выходе ползунка начинает гулять в пределах 1 В. Придеться попробовать поставить регулируемый стабилизатор, у которого регулирующий элемент включен в минусовую цепь, что то типа LM337
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

moLCHec выложи пожалуйста архив с файлами для симуляции в PROTEUS вывода текстов. И архив с файлами для компиляции проекта вывода текста в ICC.


======
Я подправил исходники под CVAVR - вывод смайлика работает, а вывод текста нет. Вот всё.
Вложения
LCD 128х64 PROTEUS CVAVR.rar
(67.33 КБ) 1624 скачивания
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

lexmulya писал(а):Вот то что писал я.
Он чуток медлиннее из за того что я сначала читаю байт из ЖК меняю что надо и пишу назад(все это происходит с опросом статуса).


Я сделал и добавил в архив проекты для CVAVR и для PROTEUS. Прекрасно компилируется и симулируется. Можно симулировать в PROTEUS без компиляции - все файлы в архиве есть.
Вложения
LCD графич MT12864 CVAVR PROTEUS.rar
(57.89 КБ) 1501 скачивание
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

Дак вроде для протеуса я дава :)) л. На счет статуса фиг знает погляжу, но его не использовал и так отлично работает. Дешевле задержку чуть длиннее зделать, чем статус читать. Если ЖКИ в тайминги не укладывается то его выкидывать нада нах, а не заморачиватся. Илипроизводителю капать на нервы что мол лажаете братья
Настоящий кот всегда либо голоден,
либо невыспался ...
newchok
Родился
Сообщения: 2
Зарегистрирован: Пт май 16, 2008 14:13:48

WG12864 для VMLab

Сообщение newchok »

А не подскажите ли, добрые люди, где можно найти компонент индикатора WG12864 для VMLab
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

Я все библиотеки выкладывал, а если ума не хватает адаптировать для нужного Си компилятора то уж извиняйте. Я так понял tych тебе HEX нужен, а нафиг он тебе ты его что ковырять будешь ? Не понятно :shock: . Ну раз хочется зделаю, что на ЖК то написать ?
Настоящий кот всегда либо голоден,
либо невыспался ...
QZ_
Открыл глаза
Сообщения: 70
Зарегистрирован: Чт дек 20, 2007 14:47:31
Откуда: Челябинск
Контактная информация:

Сообщение QZ_ »

Люди, подскажите, у LCD от моторолки C200 какой контроллер? мб кто знает? вроде похоже на ssd1858, но это х3, скорее всего подобный, другой немного.
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Сообщение demiurg301 »

Автор статьи подскажите как устроена таблица символов, что значит
<<//0x20 и далее (0x00-0x60)">>
насколько я понял символы шириной 5 и высотой 7 ?
<<constcharsym>> в квадратные скобки надо вписать кол-во используемых символов?
собираюсь использовать вашу таблицу для CodeVision .
Не могли бы вы написать "на словах" порядок записи в RAM.
Аватара пользователя
Alex_EXE
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Сб дек 27, 2008 12:01:35
Откуда: Россия, Екатеринбург
Контактная информация:

Сообщение Alex_EXE »

Тоже решил заняться графическим LCD, с данным контроллером:
Есть у кого-нить библиотека для PIC16
буду благодарен
Telek
Встал на лапы
Сообщения: 115
Зарегистрирован: Пт май 23, 2008 23:59:37
Откуда: Москва

Сообщение Telek »

lexmulya писал(а):http://www.radiokot.ru/lab/controller/30/
У меня там в библиотечке есть все то что тебе нужно.



В этих библиотеках нужно поправить функции записи в LCD.

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

LCD_DATA_DDR=0xFF;    
   
ClrBit(LCD_CONTROL_PORT, A0);
ClrBit(LCD_CONTROL_PORT, RDWR);


нужно заменить на

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

ClrBit(LCD_CONTROL_PORT, A0);
ClrBit(LCD_CONTROL_PORT, RDWR);

LCD_DATA_DDR=0xFF;   


т.е. нужно сначала LCD перевести в режим чтения, а потом выставть порты на МК на вывод. Иначе, определенное время порты LCD и МК работают на вывод, а соответственно если на одинаковых "ногах" МК и LCD противоположные уровни - мы делаем кз через LCD и МК. Не факт что им это понравится.
NiceMAN
Встал на лапы
Сообщения: 94
Зарегистрирован: Пн май 05, 2008 14:36:30
Откуда: г. Челябинск

Сообщение NiceMAN »

Так, товарищи Коты, доброго времени суток. Может кто юзал WG12232 от winstar. Там два контроллера sed1520. Поделитесь кодом, желательно на асме и схемой подключения.
Jursat
Родился
Сообщения: 9
Зарегистрирован: Чт окт 22, 2009 19:31:01
Откуда: Крым

Сообщение Jursat »

Схему подключения посмотри здесь:
http://www.winstar.com.tw/products_deta ... 18&lang=ru
и обрати внимание на последние буквы - выводы для подключения LCD могут отличаться.
хочешь быть счастливым - немного подожди.
NiceMAN
Встал на лапы
Сообщения: 94
Зарегистрирован: Пн май 05, 2008 14:36:30
Откуда: г. Челябинск

Сообщение NiceMAN »

Спасибо, Jursat, уже разобрался. Кому интересно, могу поделится опытом по подключению и работе с WG12232 от Winstar на контроллерах SED1520.
Veg@
Родился
Сообщения: 3
Зарегистрирован: Сб авг 22, 2009 17:59:01

Сообщение Veg@ »

NiceMAN писал(а):Спасибо, Jursat, уже разобрался. Кому интересно, могу поделится опытом по подключению и работе с WG12232 от Winstar на контроллерах SED1520.


По подключению к чему? Если к МК AVR, то поделитесь. :) Спасибо.
NiceMAN
Встал на лапы
Сообщения: 94
Зарегистрирован: Пн май 05, 2008 14:36:30
Откуда: г. Челябинск

Сообщение NiceMAN »

Ну там все просто:
1. Шина данных 8 бит=8 выводов МК
2. CS1, CS2 - выбор контроллера =2 вывода контроллера
3. RS выбираем что передаеи - команду или данные
4. E - строб записи
5. Rst - "железный" сброс + выбор системы работы
Вот Вам кусок кода для Mega32, ну или для любого другого AVR
http://easyelectronics.ru/forum/mcu-avr/avr-fdcg12232
Если надо, выложу даташит на SED1520, там все команды по работе с дисплеем..
Будут вопросы, обращайтесь... Да, если дисплей от Winstar WG12232E - ему для работы необходим внешний генератор 2кГц
Veg@
Родился
Сообщения: 3
Зарегистрирован: Сб авг 22, 2009 17:59:01

Сообщение Veg@ »

Спасибо. Даташит на SED1520 нашел. Вопрос касательно кварца для WG12232E: какая схема его подключения?
Даташит на дисплей крайне скупой..
NiceMAN
Встал на лапы
Сообщения: 94
Зарегистрирован: Пн май 05, 2008 14:36:30
Откуда: г. Челябинск

Сообщение NiceMAN »

В моем дисплее есть одна нога для подключения внешнего генератора, т.е. никакого кварца. Внешний сигнал 2кГц, точнее в районе 2,4кГц, взял с ШИМ выхода контроллера. Можно и на логике сваять генератор.
B.A.S.Y.A.1
Родился
Сообщения: 1
Зарегистрирован: Сб янв 09, 2010 19:56:50

898

Сообщение B.A.S.Y.A.1 »

bfchfgchfch :shock:
HekuToc
Прорезались зубы
Сообщения: 249
Зарегистрирован: Вт ноя 10, 2009 22:37:24
Откуда: Латвия, Рига

Сообщение HekuToc »

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

#include <delay>
#include <mega8>
#define E PORTB.0
#define RW PORTB.1
#define DI PORTB.2     //H:data L:Instructions
#define CS1 PORTB.3
#define CS2 PORTB.4
#define RS PORTB.5
#define dt 1000
// Declare your global variables here
char z[6]={0xFF,0x40,0x20,0x10,0x08,0x04},i;
void main(void)
{
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=T State6=T State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0xFF;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0xFF;

// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
}
RS=0;
delay_us(20);
RS=1; //restet display
E=0;

RW=0;
DI=0;
PORTD=0b00111111;//turn on
E=1;
delay_us(2);
E=0;

CS1=1;//select left chip
RW=0;
DI=0;
PORTD=0b10111001;
E=1;
delay_us(2);
E=0;//set page=1

RW=0;
DI=0;
PORTD=0b0100001;
E=1;
delay_us(2);
E=0;//set address=1

while (1)
      {
      DDRD=0x00;//inputs
      PORTD=0;
      RW=1;
      DI=0;
      E=1;
      delay_us(1);
      while(PIND.7==1){E=0;delay_us(1);E=1;delay_us(1);}//waits while BUSY
      E=0;
      DDRD=0xFF;
      RW=0;
      DI=1;
      PORTD=z[i];
      if(i++==6)i=0;
      E=1;
      delay_us(2);
      E=0;
      };
}

помогите, не могу понять что не так.
1)Код писал сам
2)В протеусе он работает
3)В жизни ЛЦД работает в устройстве - доноре (питание на макетке соответсвует донорскому)
4)На макетке, хоть убей, не хочет пахать.
У меня WM-1206, за источник инфы брал это. Тк в нём написано, что мой - аналог.
Если не трудно, то отвечайте мне названиями буржуйских схем.
Ответить

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