Interfacing LPC2148 with Graphical LCD ks0108

Thread Starter

Rachit

Joined Nov 23, 2012
1
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-

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:
Top