|
|
View previous topic :: View next topic |
Author |
Message |
artohautala
Joined: 17 Nov 2011 Posts: 187
|
how to get display LCD module DEM 16215 to work? |
Posted: Tue Nov 19, 2013 1:04 pm |
|
|
Hello,
I'm trying to get DEM 16215 2x16 display to work ...
I followed this document to initialize it:
http://www.display-elektronik.de/DEM16215SYH-LY.PDF
but no success...
does anybody know to make things going ?
brgds
arto |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Tue Nov 19, 2013 3:15 pm |
|
|
Try the Flex driver:
http://www.ccsinfo.com/forum/viewtopic.php?t=24661
The data sheet for that LCD says it requires at least a 40 ms delay after
power-up before you can write to it. The flex driver has a 15ms delay
because that's what is normally required for HD44780 compatible LCDs.
I suggest to just add an additional delay before calling the flex driver init
function:
Quote: |
void main()
{
delay_ms(40); // Do this delay before calling lcd_init
lcd_init();
.
.
.
.
}
|
See if that works. Of course, you have to setup your pin definition
statements at the beginning of the Flex driver, so they match your
hardware connections between the LCD and the PIC. |
|
|
artohautala
Joined: 17 Nov 2011 Posts: 187
|
|
Posted: Sun Nov 24, 2013 10:55 am |
|
|
PCM programmer wrote: | Try the Flex driver:
http://www.ccsinfo.com/forum/viewtopic.php?t=24661
The data sheet for that LCD says it requires at least a 40 ms delay after
power-up before you can write to it. The flex driver has a 15ms delay
because that's what is normally required for HD44780 compatible LCDs.
I suggest to just add an additional delay before calling the flex driver init
function:
Quote: |
void main()
{
delay_ms(40); // Do this delay before calling lcd_init
lcd_init();
.
.
.
.
}
|
See if that works. Of course, you have to setup your pin definition
statements at the beginning of the Flex driver, so they match your
hardware connections between the LCD and the PIC. |
ok,
It was not so simple but very much thanks for your answer ..
If someone is using that display here is way to things going ...
to get it initialzed ...
all the best
-arto-
Code: |
void lcd_init(void)
{
/*INIT FOR 4 BIT INTERFACE
LCD:n ohjaussignaalit:
(PIN_D1) = lcd_reg = RS //LCD:N reg select, 0 = käsky, 1 = data
(PIN_D0) = lcd_en //LCD:n enable
LCD : n dataportti on D4...D7, 4 bittiä, D2 JA D3 ei käytössä, ne on nyt inputteja
PIN C0 on LCD write / read, 1 = read 0 = write */
delay_ms(60); //min. wait time after powerup 40ms
//reset LCD display:
output_high(RW_LCD); //read LCD
enable_lcd();
delay_ms(100);
output_low(RW_LCD); //write LCD
enable_lcd();
delay_ms(100);
output_low(RW_LCD); //write LCD
delay_ms(100);
//lohko 1-3,function set
PORTD = 0B00110000;
enable_lcd();
PORTD = 0B00110000;
enable_lcd();
PORTD = 0B00110000;
enable_lcd();
//lohko 4,function set DL = BIT D4 = "0"
PORTD = 0B00100000;
enable_lcd();
//lohko 5,function set DL = BIT D4 = "0"
PORTD = 0B00100000;
enable_lcd();
PORTD = 0B10000000; //D7 = "1" on 2 riviä, D6 = font, muut X
enable_lcd();
//lohko 6, display OFF
PORTD = 0B00000000;
enable_lcd();
PORTD = 0B10000000;
enable_lcd();
//lohko 7, display ON
PORTD = 0B00000000;
enable_lcd();
PORTD = 0B00010000;
enable_lcd();
//lohko 8, entry mode set:
PORTD = 0B00000000;
enable_lcd();
PORTD = 0B01100000; //D5 on I/D, D4 = shift , normaalisti "0"
enable_lcd();
//noi on oltava
PORTD = 0B00100000;
enable_lcd();
PORTD = 0B10000000;
enable_lcd();
PORTD = 0B00000000;
enable_lcd();
PORTD = 0B11000000; //bit D5 cursor on/off
enable_lcd();
PORTD = 0B00000000;
enable_lcd();
PORTD = 0B01100000;
enable_lcd();
}
|
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|