View previous topic :: View next topic |
Author |
Message |
snwbnd
Joined: 28 Apr 2009 Posts: 6
|
LCD on PICDEM 2 PLUS with PIC16Fxx |
Posted: Wed Apr 29, 2009 1:27 am |
|
|
Hello,
I'm using a PIC16Fxx Device and the PICDEM 2 Plus Board. Im tried to use the flex_lcd.c Code with some modification to use the LCD.
I'm using the 18-Pin Socket, which has no connection to the lcd. Because of that I connect it with cables over the other two sockets:
Code: | 28-PIN-Socket 40-PIN-Socket
------------------------------------------------
21 -> 19
22 -> 20
23 -> 21
24 -> 22
25 -> 27
26 -> 28
27 -> 29
28 -> 30 |
In the flex_lcd I've corrected the beginning part with port declaration:
Code: | // These pins are for the Microchip PicDem2-Plus board,
// which is what I used to test the driver. Change these
// pins to fit your own board.
#define LCD_DB4 PIN_B0
#define LCD_DB5 PIN_B1
#define LCD_DB6 PIN_B2
#define LCD_DB7 PIN_B3
#define LCD_E PIN_B6
#define LCD_RS PIN_B5
#define LCD_RW PIN_B4
// If you only want a 6-pin interface to your LCD, then
// connect the R/W pin on the LCD to ground, and comment
// out the following line.
// #define USE_LCD_RW 1 |
No I hopped this should work with the following code in the main.c:
Code: | output_high(LCD_POWER); // Turn on power to LCD
output_low(LCD_RW); // Set R/W pin on LCD to a low level
lcd_init(); // Always call this first.
lcd_putc("\fHello World\n");
lcd_putc("Line Number 2"); |
What's wrong? Can somebody help or have somebody also tried to use a PIC16 Device with the LCD? |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
|
snwbnd
Joined: 28 Apr 2009 Posts: 6
|
|
Posted: Wed Apr 29, 2009 11:07 am |
|
|
I have the new Rohs Version from 2006!
Since i've wrote the thread, I've changed some pins. I saw that RB6 and 7 are used for Debugging and RB0 is connected to S3.
RA1...RA3 -> RS, R/W and E
RB1...RB4 -> DB4...DB7
RB5 -> VCC Transistor to activate the Display
This connections are made and tested on the hardware
in the flex_lcd I've wrote this:
Code: | #define LCD_DB4 PIN_B1
#define LCD_DB5 PIN_B2
#define LCD_DB6 PIN_B3
#define LCD_DB7 PIN_B4
#define LCD_E PIN_A3
#define LCD_RS PIN_A1
#define LCD_RW PIN_A2
// If you only want a 6-pin interface to your LCD, then
// connect the R/W pin on the LCD to ground, and comment
// out the following line.
// #define USE_LCD_RW 1 |
In main.c I've added this:
Code: | #define LCD_POWER PIN_B5
output_high(LCD_POWER); // Turn on power to LCD
output_low(LCD_RW); // Set R/W pin on LCD to a low level
|
|
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Wed Apr 29, 2009 11:13 am |
|
|
Post your PIC and your compiler version. |
|
|
snwbnd
Joined: 28 Apr 2009 Posts: 6
|
|
Posted: Thu Apr 30, 2009 2:11 am |
|
|
CCS Version 4.057
MPLAB Version 8.00
PIC16F87 |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Thu Apr 30, 2009 12:12 pm |
|
|
You jumpered Port B to Port D on a 1:1 basis. The LCD uses pins
on Port D only. The connections are shown in the schematic in the
back of the PicDem2-Plus User's Guide. So to create the new #define
statements, you simply have to edit the table shown in this post
http://www.ccsinfo.com/forum/viewtopic.php?t=24661&start=51
and change PIN_Dx into PIN_Bx. Also, the #define for the power pin
should be changed in the same way. Do it like this:
Code: |
#define LCD_DB4 PIN_B0
#define LCD_DB5 PIN_B1
#define LCD_DB6 PIN_B2
#define LCD_DB7 PIN_B3
#define LCD_E PIN_B6
#define LCD_RS PIN_B4
#define LCD_RW PIN_B5
// If you only want a 6-pin interface to your LCD, then
// connect the R/W pin on the LCD to ground, and comment
// out the following line.
// #define USE_LCD_RW 1
#define LCD_POWER PIN_B7
|
If you copy this code exactly, it should work. But to be safe, remove
jumper J6. There are 4 LEDs on pin B0 to B3. It's possible that these
might interfere with the LCD operation if they are connected. If you
remove jumper J6, they will be disabled. |
|
|
snwbnd
Joined: 28 Apr 2009 Posts: 6
|
|
Posted: Thu Apr 30, 2009 12:24 pm |
|
|
No, I jumpered it like this:
RA1...RA3 -> RS, R/W and E
RB1...RB4 -> DB4...DB7
RB5 -> VCC Transistor to activate the Display
I removed J6 and I don't want to usw RB0 because of the connection to the RB0 Button and RB6&7 because they are used for the Debugger....
I've changed the code like my post before:
Code: | #define LCD_DB4 PIN_B1
#define LCD_DB5 PIN_B2
#define LCD_DB6 PIN_B3
#define LCD_DB7 PIN_B4
#define LCD_E PIN_A3
#define LCD_RS PIN_A1
#define LCD_RW PIN_A2 |
Also the Power Pin is changed! |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Thu Apr 30, 2009 12:30 pm |
|
|
So you changed the jumpers ? Here is your previous list of jumpers.
Quote: | 28-PIN-Socket 40-PIN-Socket
------------------------------------------------
21 -> 19
22 -> 20
23 -> 21
24 -> 22
25 -> 27
26 -> 28
27 -> 29
28 -> 30 |
Apparently this is no longer in effect.
Post the exact list of pin-to-pin jumpers (not names) that you currently have. |
|
|
snwbnd
Joined: 28 Apr 2009 Posts: 6
|
|
Posted: Thu Apr 30, 2009 12:36 pm |
|
|
At the moment, I've released the connections to test the lcd with a 40pin device, which is working perfectly by the way.
I've always made the connections from the 40pin to the 28pin socket and after I've tested them with a multimeter. Directly measured from my 16f87 and the LCD Connections.
Did you ever used the lcd on the picdem 2 with a 18pin PIC device? |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Thu Apr 30, 2009 12:38 pm |
|
|
No. |
|
|
snwbnd
Joined: 28 Apr 2009 Posts: 6
|
|
Posted: Thu Apr 30, 2009 12:43 pm |
|
|
So I test it tomorrow again, the connections are correct...
Do you think it should work like I said here:
Quote: | No, I jumpered it like this:
RA1...RA3 -> RS, R/W and E
RB1...RB4 -> DB4...DB7
RB5 -> VCC Transistor to activate the Display
I removed J6 and I don't want to usw RB0 because of the connection to the RB0 Button and RB6&7 because they are used for the Debugger....
I've changed the code like my post before:
Code: |
#define LCD_DB4 PIN_B1
#define LCD_DB5 PIN_B2
#define LCD_DB6 PIN_B3
#define LCD_DB7 PIN_B4
#define LCD_E PIN_A3
#define LCD_RS PIN_A1
#define LCD_RW PIN_A2
|
Also the Power Pin is changed! |
|
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Thu Apr 30, 2009 12:52 pm |
|
|
It will probably work, provided that it's jumpered correctly. |
|
|
|