Hello!... Actually, I am working on a project "Interfacing Graphical LCD ks0108 with LPC2148". And i have used Proteus to check my program.I just wanna ask that "Does proteus not work on LPC2148" and "Can i run my lpc2148 program in lpc2138 as i have seen proteus has lpc2138 microcontoller chip.
My lpc2148 source code is-
If you find anything wrong plzzzz comment
Thank you in advance.... plzzzzz reply
My lpc2148 source code is-
Rich (BB code):
//glcd.c
#include <LPC214X.H>
#include "font.h"
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;
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!=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[]="ENGINEERSGARAGE";
unsigned char ar2[]="Inspiring Creations ";
unsigned char ar3[]="************** ";
int main()
{
unsigned char i;
clrlcd();
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);
}
}
//font.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,// }
};
If you find anything wrong plzzzz comment
Thank you in advance.... plzzzzz reply
Last edited by a moderator: