Programming LCD Display (16x2) With PIC16F877A
Programming LCD Display (16x2) With PIC16F877A
#include <pic.h>
#include <htc.h>
__CONFIG(0x3F3A);
#define LCD_RS RD0
#define LCD_RW RD1
#define LCD_EN RD2
#define LCD_LIGHT RD3
#define LCD_DATA PORTD //D7-D4
#define LCD_PULSE() ((LCD_EN=1),(LCD_EN=0))
#define LCD_shift RB0
void pic_init(void);
void lcd_init(void);
void lcd_write(unsigned char c);
void lcd_clear(void);
void lcd_goto(unsigned char pos);
void lcd_string(const char *s);
main()
{int a;
pic_init(); //initialize PIC
lcd_init(); //initialize LCD
lcd_goto(0x00); //select first line
lcd_string("robot-geek.blogspot"); //display string
lcd_goto(0x40); //select second line
lcd_string(" hisyamsani "); //display string
for(;;){
LCD_LIGHT=1;
for(a=1;a<=20;a++)
__delay_ms(20);
LCD_LIGHT=0;
for(a=1;a<=20;a++)
__delay_ms(20);
}}
void pic_init(void)
{
TRISA=0b00000000;
TRISB=0b00000000;
TRISC=0b00000000;
TRISD=0b00000000;
TRISE=0b00000000;
ADCON1=0b00000110;
PORTA=0b00000000;
PORTB=0b00000000;
PORTC=0b00000000;
PORTD=0b00000000;
PORTE=0b00000000;
}