hi Caleb Overbay,
ok fine ill put the while loop.
Today i tried interfacing 16*2 lcd on msp430f5529 here is my program.
/*port pin details*/
/*P1.2=RS
P1.3=RW
P1.3=EN
P2.4=D4 //sending data using 4-bit
P2.5=D5
P2.6=D6
P2.7=D7*/
#include <msp430.h>
#include <in430.h>
#include <math.h>
/*
* main.c
*/
unsigned int cnt,j,dat;
void init_lcd();
void cmd_wr(unsigned char ch);
void data_wr();
void delay(unsigned int i);
void enable();
int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
P1DIR = 0x1c;
P2DIR = 0xF0;
init_lcd();
cmd_wr(0x85);
dat = 'A';
data_wr();
while(1);
}
void init_lcd()
{
delay(5);
delay(5);
delay(5);
cmd_wr(0x03);
delay(5);
cmd_wr(0x03);
delay(5);
cmd_wr(0x03);
delay(5);
cmd_wr(0x02);
delay(5);
cmd_wr(0x28);
delay(5);
cmd_wr(0x0e);
delay(5);
cmd_wr(0x01);
delay(5);
}
void cmd_wr(unsigned char ch)
{
P1OUT=0x00; //RS=0 ,RW=0
P2OUT=(ch & 0xf0 | P2OUT & 0x0f);
enable();
P2OUT=(ch<<4 & 0xf0 | P2OUT & 0x0f);
enable();
}
void data_wr()
{
P1OUT=0x40; // RS=1,RS=0
P2OUT=(dat & 0xf0 | P2OUT & 0x0f);
enable();
P2OUT=(dat<<4 & 0xf0 | P2OUT & 0x0f);
enable();
}
void enable()
{
P1OUT=0x10; //enable=1
_nop();
_nop();
_nop();
_nop();
_nop();
P1OUT=0x00; //enable=0
}
/*void delay(unsigned int i)
{
for(cnt=0;cnt<=i;cnt++)
{
for(j=0;j<=120;j++)
{
}
}
}*/
void delay(unsigned int delay_time)
{
unsigned int count;
for(count = 0;count < delay_time;count++)
{
}
}
The program is not working can u plz guide me.
Regards,
Neha.