Доброе время суток!
Помогите с решением проблемы. Бьюсь уже третий день.
Есть плата с контроллером (отладочная) PIC24FJ128GB206. К ней подключил дисплей (новый) графический WB320240C0-YGH-TP.
Не получается его проинициализировать. На экране при подаче питания появляются в разных местах линии. Одна, две. Сайтов с документацией на этот дисплей много, много читал, но не выходит.
Может кто-то поделится своими наработаками? Интересуют подпрограммы: вывод команды, вывод данных и инициализация.
Вот моя писанина, может кто ошибки найдет
К порту Е подключена шина данных
Пины управления:
lcd_cs
lcd_wr
lcd_rd
lcd_rst
lcd_a0
//==================================================================================================
void lcd_out_cmd(unsigned char lcd_data)
//==================================================================================================
{
lcd_a0=1;
__delay_us(1);
PORTE=lcd_data;
__delay_us(1);
lcd_cs=0;
__delay_us(1);
lcd_wr=0;
__delay_us(1);
lcd_wr=1;
__delay_us(1);
lcd_cs=1;
}
//==================================================================================================
void lcd_out_data(unsigned char lcd_data)
//==================================================================================================
{
lcd_a0=0;
__delay_us(1);
PORTE=lcd_data;
__delay_us(1);
lcd_cs=0;
__delay_us(1);
lcd_wr=0;
__delay_us(1);
lcd_wr=1;
__delay_us(1);
lcd_cs=1;
}
//==================================================================================================
void lcd_init(void)
//==================================================================================================
{
lcd_cs=1;
lcd_rd=1;
lcd_wr=1;
lcd_rst=1;
__delay_ms(1);
lcd_rst=0;
__delay_ms(1);
lcd_rst=1;
TRISE=0x0000;
// --->>> SYSTEM
lcd_out_cmd(0x40);
lcd_out_data(0x30);
lcd_out_data(0x87);
lcd_out_data(0x07);
lcd_out_data(0x27);
lcd_out_data(0x39);
lcd_out_data(0xEF);
lcd_out_data(0x28);
lcd_out_data(0x00);
// --->>> SCROLL
lcd_out_cmd(0x44);
lcd_out_data(0x00);
lcd_out_data(0x00);
lcd_out_data(0xEF);
lcd_out_data(0xB0);
lcd_out_data(0x04);
lcd_out_data(0xEF);
lcd_out_data(0x00);
lcd_out_data(0x00);
lcd_out_data(0x00);
lcd_out_data(0x00);
// --->>> CSR FORM
lcd_out_cmd(0x5D);
lcd_out_data(0x04);
lcd_out_data(0x86);
// --->>> CURSOR DIRECTION
lcd_out_cmd(0x4C);
// --->>> OVLAY
lcd_out_cmd(0x5B);
lcd_out_data(0x01);
// --->>> HDOT SCR
lcd_out_cmd(0x5A);
lcd_out_data(0x00);
// --->>> DISP ON/ OFF
lcd_out_cmd(0x59);
lcd_out_data(0x16);
}
//==================================================================================================
Спасибо.
Раздел: Периферия и внешние устройства
Помогите с решением проблемы. Бьюсь уже третий день.
Есть плата с контроллером (отладочная) PIC24FJ128GB206. К ней подключил дисплей (новый) графический WB320240C0-YGH-TP.
Не получается его проинициализировать. На экране при подаче питания появляются в разных местах линии. Одна, две. Сайтов с документацией на этот дисплей много, много читал, но не выходит.
Может кто-то поделится своими наработаками? Интересуют подпрограммы: вывод команды, вывод данных и инициализация.
Вот моя писанина, может кто ошибки найдет
К порту Е подключена шина данных
Пины управления:
lcd_cs
lcd_wr
lcd_rd
lcd_rst
lcd_a0
//==================================================================================================
void lcd_out_cmd(unsigned char lcd_data)
//==================================================================================================
{
lcd_a0=1;
__delay_us(1);
PORTE=lcd_data;
__delay_us(1);
lcd_cs=0;
__delay_us(1);
lcd_wr=0;
__delay_us(1);
lcd_wr=1;
__delay_us(1);
lcd_cs=1;
}
//==================================================================================================
void lcd_out_data(unsigned char lcd_data)
//==================================================================================================
{
lcd_a0=0;
__delay_us(1);
PORTE=lcd_data;
__delay_us(1);
lcd_cs=0;
__delay_us(1);
lcd_wr=0;
__delay_us(1);
lcd_wr=1;
__delay_us(1);
lcd_cs=1;
}
//==================================================================================================
void lcd_init(void)
//==================================================================================================
{
lcd_cs=1;
lcd_rd=1;
lcd_wr=1;
lcd_rst=1;
__delay_ms(1);
lcd_rst=0;
__delay_ms(1);
lcd_rst=1;
TRISE=0x0000;
// --->>> SYSTEM
lcd_out_cmd(0x40);
lcd_out_data(0x30);
lcd_out_data(0x87);
lcd_out_data(0x07);
lcd_out_data(0x27);
lcd_out_data(0x39);
lcd_out_data(0xEF);
lcd_out_data(0x28);
lcd_out_data(0x00);
// --->>> SCROLL
lcd_out_cmd(0x44);
lcd_out_data(0x00);
lcd_out_data(0x00);
lcd_out_data(0xEF);
lcd_out_data(0xB0);
lcd_out_data(0x04);
lcd_out_data(0xEF);
lcd_out_data(0x00);
lcd_out_data(0x00);
lcd_out_data(0x00);
lcd_out_data(0x00);
// --->>> CSR FORM
lcd_out_cmd(0x5D);
lcd_out_data(0x04);
lcd_out_data(0x86);
// --->>> CURSOR DIRECTION
lcd_out_cmd(0x4C);
// --->>> OVLAY
lcd_out_cmd(0x5B);
lcd_out_data(0x01);
// --->>> HDOT SCR
lcd_out_cmd(0x5A);
lcd_out_data(0x00);
// --->>> DISP ON/ OFF
lcd_out_cmd(0x59);
lcd_out_data(0x16);
}
//==================================================================================================
Спасибо.
Раздел: Периферия и внешние устройства