You are on page 1of 1

#include<mega16.

h>
#include<delay.h>
#define CPRT PORTB //Control port
#define DPRT PORTA //DATA port
#define RS PORTB.0
#define E PORTB.1

void cmnd(unsigned char a) //For Instructions


{
DPRT=a;
RS=0; //Instuctions Mode
E=1; //Instructions Transferred to LCD
delay_us(2); //Not Necessary
E=0;
delay_us(100); // Minimum 14 Micro-Seconds
}

void data_W(unsigned char d) //For DATA Write


{
DPRT=d;
RS=1; //DATA Write Mode
E=1; //DATA Transferred to LCD
delay_us(2); //Not Necessary
E=0;
delay_us(100); //Not Necesaarry
}

void init_LCD()
{
DDRA=0xFF;
E=0;
delay_ms(2); //Not Necessary
cmnd(0x38); //2 line 5x7 matrix
cmnd(0x0E); //display on,cursor on
cmnd(0x01); //clear LCD Screen
delay_ms(2); //Minimum 2 Milli-Seconds
cmnd(0x06); //shift cursor right
}

void lcd_goxy(unsigned char x,unsigned char y)


{
unsigned char fir_char_Ad[]={0x80,0xC0,0x94,0xD4};
cmnd(fir_char_Ad[y-1]+x-1);
delay_us(100); //Not Necessary
}

void print(char *str)


{
unsigned char i=0;
label:
while(str[i]!=0)
{
data_W(str[i]);
delay_ms(50); //Time Between printing each character
i++;
}
}

void main()
{
DDRA=0xFF;
DDRB=0xFF;
init_LCD(); //initialize LCD
lcd_goxy(1,1); //1st Row 1st Box
print("0123456789ABCDEF");
lcd_goxy(1,2); //2nd Row 1st Box
print("FEDCBA9876543210");
while(1); //Not Necessary
}

You might also like