Графический ЖК-модуль Datasheet (150 балла)

M

Maverickmax

Guest
Привет

Я не уверен, что я написал код в правильном пути, потому что я легко спутать с E1 и E2.Я считаю, что они используются для передачи сигнала по позволило освоить и работорговля, соответственно.Bascially я бы напечатать строку сверху и слева от ЖК-дисплея.Исправьте меня, если я сделал ошибку в моем код

Спасибо заранее

ММ

PS Если вы помочь мне решить этот вопрос, я буду вам награду колоссальные 150 точек

Код:/ / Функция Прототипы

Дисплей недействительным (INT положению);

недействительным Display_Start_Line (INT строки);

недействительным Static_Drive (INT Drive);

недействительным Column_Address (INT адресов);

Page недействительным (INT Количество);

недействительным DutyCycle (INT Switch);

недействительным ADC_Select (INT OUTPUT);

Конец недействительными ();недействительным Write_Display (INT линия);Задержка недействительными ();Задержка недействительными ()

(

INT I;для (i = 0; I <100; I );

)Дисплей недействительным (INT Статус)

(

статические INT ДАННЫХ;ДАННЫЕ = 0x5E | Статус;

PORTB=DATA;
PORTE = 0x00; / / A0 - 0 Bit

/ / R / W - 1 бит

/ / E2 - 2 Bit (Славянский)

/ / E1 - 3 Bit (Master)

PORTE = 0x04;

Задержка ();

PORTE = 0x00;

PORTB = 0x00;)недействительным Display_Start_Line (INT строк)

(

статические INT ДАННЫХ;ДАННЫЕ = 0xCE | Строка;

PORTB = данные;

PORTE = 0x00; / / A0 - 0 Bit

/ / R / W - 1 бит

/ / E2 - 2 Bit (Славянский)

/ / E1 - 3 Bit (Master)

PORTE = 0x04;

Задержка ();

PORTE = 0x00;

PORTB = 0x00;)
недействительным Static_Drive (INT Drive)

(

статические INT ДАННЫХ;ДАННЫЕ = 0xAE | Drive;

PORTB = данные;

PORTE = 0x00; / / A0 - 0 Bit

/ / R / W - 1 бит

/ / E2 - 2 Bit (Славянский)

/ / E1 - 3 Bit (Master)

PORTE = 0x04;

Задержка ();

PORTE = 0x00;

PORTB = 0x00;

)недействительным Column_Address (INT Адрес)

(

статические INT ДАННЫХ;ДАННЫЕ = адресов;

PORTB = данные;

PORTE = 0x00; / / A0 - 0 Bit

/ / R / W - 1 бит

/ / E2 - 2 Bit (Славянский)

/ / E1 - 3 Bit (Master)

PORTE = 0x04;

Задержка ();

PORTE = 0x00;

PORTB = 0x00;

)Page недействительным (INT номер)

(

статические INT ДАННЫХ;ДАННЫЕ = 0xB8 | Количество;

PORTB = данные;

PORTE = 0x00; / / A0 - 0 Bit

/ / R / W - 1 бит

/ / E2 - 2 Bit (Славянский)

/ / E1 - 3 Bit (Master)

PORTE = 0x04;

Задержка ();

PORTE = 0x00;

PORTB = 0x00;

)недействительным DutyCycle (INT Switch)

(

статические INT ДАННЫХ;ДАННЫЕ = 0xA8 | Switch;

PORTB = данные;

PORTE = 0x00; / / A0 - 0 Bit

/ / R / W - 1 бит

/ / E2 - 2 Bit (Славянский)

/ / E1 - 3 Bit (Master)

PORTE = 0x04;

Задержка ();

PORTE = 0x00;

PORTB = 0x00;

)недействительным ADC_Select (INT OUTPUT)

(

статические INT ДАННЫХ;ДАННЫЕ = 0xA0 | продукции;

PORTB = данные;

PORTE = 0x00; / / A0 - 0 Bit

/ / R / W - 1 бит

/ / E2 - 2 Bit (Славянский)

/ / E1 - 3 Bit (Master)

PORTE = 0x04;

Задержка ();

PORTE = 0x00;

PORTB = 0x00;

)Конец недействительными ()

(

PORTB = 0xEE;

PORTE = 0x00; / / A0 - 0 Bit

/ / R / W - 1 бит

/ / E2 - 2 Bit (Славянский)

/ / E1 - 3 Bit (Master)

PORTE = 0x04;

Задержка ();

PORTE = 0x00;

PORTB = 0x00;

)недействительным Write_Display (INT линия)

(

статические INT ДАННЫХ;ДАННЫЕ = линия;

PORTB = данные;

PORTE = 0x01; / / A0 - 0 Bit

/ / R / W - 1 бит

/ / E2 - 2 Bit (Славянский)

/ / E1 - 3 Bit (Master)

PORTE = 0x05;

Задержка ();

PORTE = 0x00;

PORTB = 0x00;)INT основных (вакуума)

(/ / неподписанными символ борьбы;DDRB = 0xFF;

DDRE = 0xFF;PORTB = 0x00;

PORTE = 0x00;Дисплей (0x01);

Display_Start_Line (0x00);

Static_Drive (0x00);

Column_Address (0x00);

Страница (0x03);

DutyCycle (0x01);

ADC_Select (0x00);

End ();Write_Display (0xFF);
в то время как (1)

(возврат 1;

))

 
Ли кто использовали SED1520 раньше?

ММ

 
Да я, это очень легко использовать контроллер.

Я могу послать вам несколько старых кодов инициализации ECT.Может быть полезно.?

 
Это было бы замечательно, если вы предоставите мне некоторые кодексы.

Я должен спросить вас о E1 и E2.Я легко спутать с командой, которая была предоставлена в Datasheet.

Например,

Если я хочу написать отображать данные, я просто 0xff за D0 чтобы D7, а также установить R / W с логикой ноль или поставить ее в 0В и, наконец, установить АО 1.Что E1 и E2?Привет

ммДобавлено через 5 часов 7 минут:Должен ли я выполнить A0, RW и D0-D7 в последовательности?

Исправьте меня, если ошибаюсь Im

Привет

ММ

 
Дорогие ребята

Я несколько разочарован отсутствием ответа от вас, ребята.Я предполагаю, что вы не famaliar с SED1520?

ММ

 
E1 E2 является acess левой части LCD или правой части
actialy LCD имеет два sed1520 каждый из контроль часть ЖК так что если вы придете к левой части ЖК-E1 = 0, E2 = 1.Право разделе E1 = 1, E2 = 0
SO E1, E2 ли включить линию для двух sed1520

есть две модели этого попробуйте два метода и показать, кто будет работа (запись данных на дисплее)

1-установить данных (D0-D7)
2 набора A0, E1, E2
3 -
комплект R / W
на повышение краю R / W данные будут записываться

ИЛИ

1-установить данных (D0-D7)
2 набора A0 R / W
3 - установить E1, E2
на повышение краю E1 или E2 данные будут записываться

PS:
отметить, что ШАГ 3 выбранный сигнал должен быть активирован ООН, прежде чем установить ее, поскольку эта мера принимается только по краю

хорошо

 
Я вновь попытался работать с теми же LCD с моим ATMEGA128, но я не мог получить черными точками на моем экране ....

Вот мой обновленный кодекс

Код:# включить <avr/io.h>

# включить "STRING.H"

# включить <stdio.h>

# включить <avr/iom128.h>

# включить <compat/deprecated.h># определить F_OSC 16000000 / * генератор частоты в Гц *

# определить UART_BAUD_RATE 2400

# определить UART_BAUD_CALC (UART_BAUD_RATE, F_OSC) ((F_OSC) / ((UART_BAUD_RATE) * 16l) -1)# определить LCD_A0 PB0

# определить LCD_E1 PB1

# определить LCD_E2 Pb2

# определить LCD_RW PB3

# определить ДАННЫЕ PORTE

# определить LCD_EL PB4Задержка недействительными ();

LCD_On недействительным (недействительными);

LCD_Off недействительным (недействительными);

LCD_Power_Up недействительным (недействительными);

LCD_Power_Down недействительным (недействительными);

LCD_Reset недействительным (недействительными);

недействительным LCD_Write_Command (символ Command);

недействительным LCD_Write_Data (символ LCD_Data);/ / -------------------- Задержка Loop -----------------------Задержка недействительным (недействительными)

(

INT I;для (i = 0; I <100; I );

)/ / -------------------- Недействительным LCD_On () -----------------------LCD_On недействительным (недействительными)

(

LCD_Write_Command (0xAF);

LCD_Write_Command (0xA4); / / Статический вождению Off

)/ / -------------------- Недействительным LCD_Off () -----------------------LCD_Off недействительным (недействительными)

(

CBI (PORTB, LCD_EL);

Задержка ();

LCD_Write_Command (0xAE); / / Статический вождению Off

)/ / -------------------- Недействительным LCD_Power_Up () -----------------------LCD_Power_Up недействительным (недействительными)

(

/ / LCD_POWER = 0;

CBI (PORTB, LCD_EL);

LCD_Write_Command (0xAE); / / Off Дисплей

Задержка ();

LCD_Write_Command (0xC0); / / Пуск линии Com 0

LCD_Write_Command (0xA4); / / Статический вождению Off

LCD_Write_Command (0x00); / / Колонка = 0 (0-59)

LCD_Write_Command (0xB8); / / Page = 0 (0-3)

LCD_Write_Command (0xA9); / / 1 / 32 пошлине

LCD_Write_Command (0xA9); / / ADC = CW (Вперед)

LCD_Write_Command (0xEE); / / конец чтения-записи изменить код

LCD_Write_Command (0xAF); / / Display On

)/ / -------------------- Недействительным LCD_Power_Down () -----------------------LCD_Power_Down недействительным (недействительными)

(

LCD_Write_Command (0xAE); / / Off Дисплей

LCD_Write_Command (0xA5); / / Статический рулемЗадержка ();

CBI (PORTB, LCD_E1);

Задержка ();

CBI (PORTB, LCD_E2);

Задержка ();

CBI (PORTB, LCD_RW);

Задержка ();

CBI (PORTB, LCD_A0);

Задержка ();

/ / LCD_POWER = 1;

)/ / -------------------- Недействительным LCD_Reset () -----------------------

LCD_Reset недействительным (недействительными)

(

LCD_Write_Command (0xE2); / / Off Дисплей

)/ / -------------------- Недействительным LCD_Write_Command (символ) -----------------------

/ /

недействительным LCD_Write_Command (символ Command)

(

CBI (PORTB, LCD_E1);

Задержка ();

CBI (PORTB, LCD_E2);

Задержка ();

CBI (PORTB, LCD_RW);

Задержка ();

CBI (PORTB, LCD_A0);

Задержка ();

ВОО (PORTB, LCD_E1);

Задержка ();

ВОО (PORTB, LCD_E2);

Задержка ();

PORTE = командования;

Задержка ();

CBI (PORTB, LCD_E1);

Задержка ();

CBI (PORTB, LCD_E2);

Задержка ();

)/ / -------------------- Недействительным LCD_Write_Data (символ) -----------------------

/ /

недействительным LCD_Write_Data (символ LCD_Data)

(

/ / Если (xaxis == 60) (LCD_Write_Command (0x00));

CBI (PORTB, LCD_E1);

Задержка ();

CBI (PORTB, LCD_E2);

Задержка ();

CBI (PORTB, LCD_RW);

Задержка ();

ВОО (PORTB, LCD_A0);

Задержка ();/ / Если (xaxis <60) (ВОО (PORTB, LCD_E1);)

/ / Если другое (xaxis> 59) (ВОО (PORTB, LCD_E2);)

PORTE = LCD_Data;

Задержка ();ВОО (PORTB, LCD_E1);

Задержка ();

ВОО (PORTB, LCD_E2);

Задержка ();

PORTE = LCD_Data;

Задержка ();

CBI (PORTB, LCD_E1);

Задержка ();

CBI (PORTB, LCD_E2);

Задержка ();

)
INT основных (вакуума)

(/ / неподписанными символ борьбы;DDRB = 0xFF;

DDRE = 0xFF;PORTB = 0x00;

PORTE = 0x00;LCD_Power_Up ();

LCD_Write_Data (0xFF);

LCD_Write_Data (0xFF);

LCD_Write_Data (0xFF);делать

(а) (1);)
 
voltage?

Какова ваша V LCD
напряжение?

 
На данный момент он подключен к 0В

ММ

 
Ну, то, вероятно, ваши проблемы.

ЖК напряжения, также известный как LCD отклонения напряжения, будет определять контрастность
дисплея, например, как темные или яркие его пикселов.
В Datasheet говорит (абсолютный максимум оценок):
Напряжение питания для LCD: VDD-VLCD: мин 0: макс 10.0 V

Так что если вы имеете в VDD 5V, VLCD должна быть от 5 до 5V.
К сожалению, рекомендованные LCD рабочее напряжение отсутствует в таблице 6.1
в таблицу, но если у вас есть переменные напряжения на руках вы можете подключиться, что
к VLCD и посмотреть, что происходит.
Моя догадаться, что вам нужно отрицательное напряжение на отличие -
это всегда
было в случае с дисплеями я столкнулся.

 
Ммм .....

Я не иметь двойное электропитание на данном этапе ....

Кстати я измерил, не VLCD и это 5V.Я не очень понимаю, почему.Пожалуйста, сообщите мнеММ
Последний раз редактировалось Maverickmax от 02 декабря 2007 18:16;, всего редактировалось 1 раз

 
Попробуйте 9В батареи.Крюк позитивные терминала VDD и негативные для VLCD.
Это должно дать вам о-4V в VLCD.

По крайней мере вы должны увидеть разницу на дисплее.

 
XNOX_Rambo писал:

Попробуйте 9В батареи.
Крюк позитивные терминала VDD и негативные для VLCD.

Это должно дать вам о-4V в VLCD.По крайней мере вы должны увидеть разницу на дисплее.
 

Welcome to EDABoard.com

Sponsor

Back
Top