Работа с графическими ЖКИ на контроллере KS0108 и аналогах
Re: мерцает изображение на wg128128b
такая проблема- при изменении соотнешения темных и светлых пикселей начинает хаотично мерцать изображение. При этом мерцание удаеться убрать подстройкой контрастности, но, при дальнейшем изменеии того самого соотношения темных/светлых пикселей изображение опять начинает мерцать, блекнуть или наоборот сливаться в единую серую массу. В чем может быть проблема?
Сам разобрался:
как оказалось, стандартный подход к регулировке контрастности, когда ставиться переменный резистор входами к "земля" и "выход обратного напряжения", а ползунком к "входу регулировки контрастности", не подходит- при изменении объема информации на дисплее, напряжение на выходе ползунка начинает гулять в пределах 1 В. Придеться попробовать поставить регулируемый стабилизатор, у которого регулирующий элемент включен в минусовую цепь, что то типа LM337
Сам разобрался:
как оказалось, стандартный подход к регулировке контрастности, когда ставиться переменный резистор входами к "земля" и "выход обратного напряжения", а ползунком к "входу регулировки контрастности", не подходит- при изменении объема информации на дисплее, напряжение на выходе ползунка начинает гулять в пределах 1 В. Придеться попробовать поставить регулируемый стабилизатор, у которого регулирующий элемент включен в минусовую цепь, что то типа LM337
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
moLCHec выложи пожалуйста архив с файлами для симуляции в PROTEUS вывода текстов. И архив с файлами для компиляции проекта вывода текста в ICC.
======
Я подправил исходники под CVAVR - вывод смайлика работает, а вывод текста нет. Вот всё.
======
Я подправил исходники под CVAVR - вывод смайлика работает, а вывод текста нет. Вот всё.
- Вложения
-
- LCD 128х64 PROTEUS CVAVR.rar
- (67.33 КБ) 1624 скачивания
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
lexmulya писал(а):Вот то что писал я.
Он чуток медлиннее из за того что я сначала читаю байт из ЖК меняю что надо и пишу назад(все это происходит с опросом статуса).
Я сделал и добавил в архив проекты для CVAVR и для PROTEUS. Прекрасно компилируется и симулируется. Можно симулировать в PROTEUS без компиляции - все файлы в архиве есть.
- Вложения
-
- LCD графич MT12864 CVAVR PROTEUS.rar
- (57.89 КБ) 1501 скачивание
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- moLCHec
- Мявтор!
- Сообщения: 825
- Зарегистрирован: Вс дек 18, 2005 20:04:42
- Откуда: Свердловская обл.
- Контактная информация:
Дак вроде для протеуса я дава
л. На счет статуса фиг знает погляжу, но его не использовал и так отлично работает. Дешевле задержку чуть длиннее зделать, чем статус читать. Если ЖКИ в тайминги не укладывается то его выкидывать нада нах, а не заморачиватся. Илипроизводителю капать на нервы что мол лажаете братья
Настоящий кот всегда либо голоден,
либо невыспался ...
либо невыспался ...
WG12864 для VMLab
А не подскажите ли, добрые люди, где можно найти компонент индикатора WG12864 для VMLab
- moLCHec
- Мявтор!
- Сообщения: 825
- Зарегистрирован: Вс дек 18, 2005 20:04:42
- Откуда: Свердловская обл.
- Контактная информация:
Я все библиотеки выкладывал, а если ума не хватает адаптировать для нужного Си компилятора то уж извиняйте. Я так понял tych тебе HEX нужен, а нафиг он тебе ты его что ковырять будешь ? Не понятно
. Ну раз хочется зделаю, что на ЖК то написать ?
Настоящий кот всегда либо голоден,
либо невыспался ...
либо невыспался ...
-
demiurg301
- Опытный кот
- Сообщения: 812
- Зарегистрирован: Ср мар 18, 2009 21:14:33
Автор статьи подскажите как устроена таблица символов, что значит
<<//0x20 и далее (0x00-0x60)">>
насколько я понял символы шириной 5 и высотой 7 ?
<<constcharsym>> в квадратные скобки надо вписать кол-во используемых символов?
собираюсь использовать вашу таблицу для CodeVision .
Не могли бы вы написать "на словах" порядок записи в RAM.
<<//0x20 и далее (0x00-0x60)">>
насколько я понял символы шириной 5 и высотой 7 ?
<<constcharsym>> в квадратные скобки надо вписать кол-во используемых символов?
собираюсь использовать вашу таблицу для CodeVision .
Не могли бы вы написать "на словах" порядок записи в RAM.
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 и МК. Не факт что им это понравится.
Схему подключения посмотри здесь:
http://www.winstar.com.tw/products_deta ... 18&lang=ru
и обрати внимание на последние буквы - выводы для подключения LCD могут отличаться.
http://www.winstar.com.tw/products_deta ... 18&lang=ru
и обрати внимание на последние буквы - выводы для подключения LCD могут отличаться.
хочешь быть счастливым - немного подожди.
Ну там все просто:
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кГц
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кГц
-
B.A.S.Y.A.1
- Родился
- Сообщения: 1
- Зарегистрирован: Сб янв 09, 2010 19:56:50
898
bfchfgchfch 
-
HekuToc
- Прорезались зубы
- Сообщения: 249
- Зарегистрирован: Вт ноя 10, 2009 22:37:24
- Откуда: Латвия, Рига
Код: Выделить всё
#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, за источник инфы брал это. Тк в нём написано, что мой - аналог.
Если не трудно, то отвечайте мне названиями буржуйских схем.