We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
hey i made a code for graphic lcd for connect that with lpc2148. nd there is not an error in that code. nd code debug in gpio port 1. bt i cant got the connection of pins. the problem is on which pin of glcd i have to coonect the pin of lpc2148..
my code is atteched below..
#include <LPC214X.H>
unsigned char font[] = { 0x00, 0x00, 0x00, 0x00, 0x00,// (space) 0x00, 0x00, 0x5F, 0x00, 0x00,// ! 0x00, 0x07, 0x00, 0x07, 0x00,// " 0x14, 0x7F, 0x14, 0x7F, 0x14,// # 0x24, 0x2A, 0x7F, 0x2A, 0x12,// $ 0x23, 0x13, 0x08, 0x64, 0x62,// % 0x36, 0x49, 0x55, 0x22, 0x50,// & 0x00, 0x05, 0x03, 0x00, 0x00,// ' 0x00, 0x1C, 0x22, 0x41, 0x00,// ( 0x00, 0x41, 0x22, 0x1C, 0x00,// ) 0x08, 0x2A, 0x1C, 0x2A, 0x08,// * 0x08, 0x08, 0x3E, 0x08, 0x08,// + 0x00, 0x50, 0x30, 0x00, 0x00,// , 0x08, 0x08, 0x08, 0x08, 0x08,// - 0x00, 0x30, 0x30, 0x00, 0x00,// . 0x20, 0x10, 0x08, 0x04, 0x02,// / 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0 0x00, 0x42, 0x7F, 0x40, 0x00,// 1 0x42, 0x61, 0x51, 0x49, 0x46,// 2 0x21, 0x41, 0x45, 0x4B, 0x31,// 3 0x18, 0x14, 0x12, 0x7F, 0x10,// 4 0x27, 0x45, 0x45, 0x45, 0x39,// 5 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6 0x01, 0x71, 0x09, 0x05, 0x03,// 7 0x36, 0x49, 0x49, 0x49, 0x36,// 8 0x06, 0x49, 0x49, 0x29, 0x1E,// 9 0x00, 0x36, 0x36, 0x00, 0x00,// : 0x00, 0x56, 0x36, 0x00, 0x00,// ; 0x00, 0x08, 0x14, 0x22, 0x41,// < 0x14, 0x14, 0x14, 0x14, 0x14,// = 0x41, 0x22, 0x14, 0x08, 0x00,// > 0x02, 0x01, 0x51, 0x09, 0x06,// ? 0x32, 0x49, 0x79, 0x41, 0x3E,// @ 0x7E, 0x11, 0x11, 0x11, 0x7E,// A 0x7F, 0x49, 0x49, 0x49, 0x36,// B 0x3E, 0x41, 0x41, 0x41, 0x22,// C 0x7F, 0x41, 0x41, 0x22, 0x1C,// D 0x7F, 0x49, 0x49, 0x49, 0x41,// E 0x7F, 0x09, 0x09, 0x01, 0x01,// F 0x3E, 0x41, 0x41, 0x51, 0x32,// G 0x7F, 0x08, 0x08, 0x08, 0x7F,// H 0x00, 0x41, 0x7F, 0x41, 0x00,// I 0x20, 0x40, 0x41, 0x3F, 0x01,// J 0x7F, 0x08, 0x14, 0x22, 0x41,// K 0x7F, 0x40, 0x40, 0x40, 0x40,// L 0x7F, 0x02, 0x04, 0x02, 0x7F,// M 0x7F, 0x04, 0x08, 0x10, 0x7F,// N 0x3E, 0x41, 0x41, 0x41, 0x3E,// O 0x7F, 0x09, 0x09, 0x09, 0x06,// P 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q 0x7F, 0x09, 0x19, 0x29, 0x46,// R 0x46, 0x49, 0x49, 0x49, 0x31,// S 0x01, 0x01, 0x7F, 0x01, 0x01,// T 0x3F, 0x40, 0x40, 0x40, 0x3F,// U 0x1F, 0x20, 0x40, 0x20, 0x1F,// V 0x7F, 0x20, 0x18, 0x20, 0x7F,// W 0x63, 0x14, 0x08, 0x14, 0x63,// X 0x03, 0x04, 0x78, 0x04, 0x03,// Y 0x61, 0x51, 0x49, 0x45, 0x43,// Z 0x00, 0x00, 0x7F, 0x41, 0x41,// [ 0x02, 0x04, 0x08, 0x10, 0x20,// "\" 0x41, 0x41, 0x7F, 0x00, 0x00,// ] 0x04, 0x02, 0x01, 0x02, 0x04,// ^ 0x40, 0x40, 0x40, 0x40, 0x40,// _ 0x00, 0x01, 0x02, 0x04, 0x00,// ' 0x20, 0x54, 0x54, 0x54, 0x78,// a 0x7F, 0x48, 0x44, 0x44, 0x38,// b 0x38, 0x44, 0x44, 0x44, 0x20,// c 0x38, 0x44, 0x44, 0x48, 0x7F,// d 0x38, 0x54, 0x54, 0x54, 0x18,// e 0x08, 0x7E, 0x09, 0x01, 0x02,// f 0x08, 0x14, 0x54, 0x54, 0x3C,// g 0x7F, 0x08, 0x04, 0x04, 0x78,// h 0x00, 0x44, 0x7D, 0x40, 0x00,// i 0x20, 0x40, 0x44, 0x3D, 0x00,// j 0x00, 0x7F, 0x10, 0x28, 0x44,// k 0x00, 0x41, 0x7F, 0x40, 0x00,// l 0x7C, 0x04, 0x18, 0x04, 0x78,// m 0x7C, 0x08, 0x04, 0x04, 0x78,// n 0x38, 0x44, 0x44, 0x44, 0x38,// o 0x7C, 0x14, 0x14, 0x14, 0x08,// p 0x08, 0x14, 0x14, 0x18, 0x7C,// q 0x7C, 0x08, 0x04, 0x04, 0x08,// r 0x48, 0x54, 0x54, 0x54, 0x20,// s 0x04, 0x3F, 0x44, 0x40, 0x20,// t 0x3C, 0x40, 0x40, 0x20, 0x7C,// u 0x1C, 0x20, 0x40, 0x20, 0x1C,// v 0x3C, 0x40, 0x30, 0x40, 0x3C,// w 0x44, 0x28, 0x10, 0x28, 0x44,// x 0x0C, 0x50, 0x50, 0x50, 0x3C,// y 0x44, 0x64, 0x54, 0x4C, 0x44,// z 0x00, 0x08, 0x36, 0x41, 0x00,// { 0x00, 0x00, 0x7F, 0x00, 0x00,// | 0x00, 0x41, 0x36, 0x08, 0x00,// } };
unsigned char c; unsigned char z=0;
void ctrloff() { IOSET1=0x00000000; }
//DELAY FUNCTION void delay(unsigned int j) { unsigned int i; for(i=0;i<j;i++); }
void displayon() { ctrloff(); IOSET1=0x1C3F; delay(500); IOSET1=0x0C3F; delay(500); }
void displayoff() { ctrloff(); IOSET1=0x1C3E; delay(500); IOSET1=0x0C3E; delay(500); }
void setcolumn(unsigned char y) { if(y<64) { ctrloff(); c=y; IOSET1=0x1440 |(y&63); //0x40 represents Column 0 delay(500); IOSET1=0x0440 |(y&63); delay(500); } else { ctrloff(); c=y; IOSET1=0x1840|((y-64)&63); //0x40 represents Column 0 delay(500); IOSET1=0x0840|((y-64)&63); delay(500); } }
void setpage(unsigned char x) { ctrloff(); IOSET1= 0x1CB8|x; //0xb8 represents Page 0 delay(500); IOSET1= 0x0CB8|x; //0xb8 represents Page 0 delay(500); }
//Function to Scroll Strings void setstartline(unsigned char z) { ctrloff(); IOSET1=0x1CC0|z; //0xc0 represents Line 0 delay(500); IOSET1=0x0CC0|z; //0xc0 represents Line 0 delay(500); }
void lcddata(unsigned char *value,unsigned int limit) { unsigned int i; unsigned char v; for(i=0;i<limit;i++) { if(c<64) { v=value[i]; IOSET1=0x1500|v; delay(500); IOSET1=0x0500|v; delay(500); c++; } else { setcolumn(c); IOSET1=0x1600|v; delay(500); IOSET1=0x0600|v; delay(500); c++; } if(c>127) return; } }
void lcdputs(unsigned char y,unsigned char x,unsigned char *str) { unsigned char i; unsigned int a; setcolumn(y); setpage(x); for(i=0;str[i]!=0;i++) { a=(*(str+i)-32); a*=5; lcddata(&font[a],5); } }
void clrlcd() { unsigned char i,j; for (i=0;i < 8;i++) { setpage(i); setcolumn(0); for (j= 0 ;j < 128; j++) lcddata(&z,1); } }
unsigned char ar0[]="*************** "; unsigned char ar1[]="BJP"; unsigned char ar2[]="CNG"; unsigned char ar3[]="************** ";
int main() { unsigned char i;
displayon(); setcolumn(0); setpage(0); lcdputs(0,1,ar0); lcdputs(0,2,ar1); lcdputs(0,3,ar2); lcdputs(0,4,ar3); delay(65000); delay(65000); for(i=0;i<5;i++) { displayoff(); delay(65000); displayon(); delay(65000); delay(65000); } i=0; while(1) { setstartline(i++); //Function to Scroll Strings delay(40000); } }
man. that is right bad ass code. you must patent it.
Did you really make it - yourself? Or have you just copied it from somewhere else?
" i cant got the connection of pins. the problem is on which pin of glcd i have to coonect the pin of lpc2148."
How can you possibly have "made" this code without knowing such absolutely bassic, essential details?!
What do all those IOSET1 macros do...?
When you "make" code for a processor + GLCD, you write the code for the specific hardware bundle - which obviously includes the actual connections between processor and GLCD.
If you have code but don't know what processor pins to connect to what GLCD pins, then you haven't "made" that code. You have found it somewhere.
The bad thing about "finding" is that you may not understand the code. So time to spend some serious time reading your located code then and figure out exactly what it is doing. As a hint - you need to also retrieve the datasheets/user manuals for processor and GLCD.
check it out
a bit much
do you REALLY expect someone to pore over you code to "check it out" (for free)
Erik
No Erik. The code is tiny. Skip the font data and it is even smaller than that.
And it takes less than 30 seconds to see that the code has issues.
Look at the code for playing with the I/O pins. Does it look fun to you?
And as already noted earlier, the delay implementation stinks.
What takes time, is to give a constructing answer telling how it should have been solved. But Google have the solutions. And I have already given good answers to these issues several times before on this forum. And Google should be able to find them too - besides the descriptions from thousands of other people who have suggested solutions to these problems before.
The silly thing here is that so many expect that unknown people should be their private tutors, and specifically for them repeat the same information that is already instantly available just some few keypresses away.
We are seeing the "me, me" generation in action.
... and also expect that these unknown people in far-off lands have some magical powers to be able to know what particular components are involved without ever mentioning that essential information.
Or perhaps they think that there is only one possible "GLCD" in the world?
Or think that all "GLCD" in the world have identical interfaces and identical pinouts?
No Erik. The code is tiny. Skip the font data and it is even smaller than that it appears so, but if the OP had been able to read and followed the posting instructions it would not be