Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

HD44780 LCD Hi Tech C sample code needed

Status
Not open for further replies.
Joined
Jul 25, 2012
Messages
1,192
Helped
171
Reputation
342
Reaction score
162
Trophy points
1,343
Activity points
0
Hello!

I want an example Hi Tech C example code for displaying some text on a HD44780/Compatible LCD. I am using 20X4 LCD.

Thanks
Jayanth D
 

Code:
//Project: LCD HD44780 Lesson, LCD 16X2 Example
//Programmer: Shahrulnizam Mat Rejab
//PIC: PIC16F877A, PIC16F887, PIC18F4550
//Crystal Frequency: 20MHz
//Compiler: HI-TECH C for PIC10/12/16 V9.83, PIC18 V9.65
//Last Modified: 31 August 2012
//Website: http://shahrulnizam.com

#define	HD44780
#define	HD44780_ADVANCE
#define	ROW		2
#define	COLUMN	16

#include "LibraryHardware.h"
#include "LibraryUniversalDisplay.h"

void pic_init(void);
void horse1(void);
void horse2(void);

main()
{char a;
int i,j;
pic_init();								//initialize PIC
lcd_init();								//initialize LCD
for(;;){
	lcd_goto(0,0);						//select first line
	lcd_string("hello, world!   ");		//display string
	i=0;
	while(i<=5000){
		lcd_goto(0,1);					//select second line
		lcd_number(i++,10,4);}
	delay(1000);

	lcd_goto(0,0);						//select first line
	lcd_string(" Scrolling Text ");		//display string
	lcd_goto(0,1);
	lcd_speed(250);
	lcd_scroll("Hai, nama saya Shahrul Nizam dari Malaysia");
	for(i=0;i<COLUMN;i++) lcd_scroll(" ");
	lcd_scroll("This is example scrolling text on 16X2 Character LCD");
	for(i=0;i<COLUMN;i++) lcd_scroll(" ");

	lcd_goto(0,0);						//select first line
	lcd_string("Custom Character");		//display string
	delay(1000);
	lcd_goto(0,0);						//select first line
	lcd_string("                ");		//display string

	for(i=0;i<COLUMN;i++){
		horse1();
		lcd_goto(i,0);
		for(a=0;a<=3;a++) lcd_write(a);
		lcd_goto(i,1);
		for(a=4;a<=7;a++) lcd_write(a);
		delay(500);
	
		horse2();
		lcd_goto(i,0);
		for(a=0;a<=3;a++) lcd_write(a);
		lcd_goto(i,1);
		for(a=4;a<=7;a++) lcd_write(a);
		delay(500);

		lcd_goto(0,0);
		for(j=0;j<COLUMN;j++) lcd_write(' ');						
		lcd_goto(0,1);				
		for(j=0;j<COLUMN;j++) lcd_write(' ');}

	lcd_goto(0,0);						//select first line
	lcd_string("   PIC is fun   ");		//display string
	lcd_goto(0,1);						//select second line
	lcd_string("shahrulnizam.com");		//display string
	delay(1000);

	lcd_goto(0,0);					
	lcd_string("                ");		
	lcd_goto(0,1);				
	lcd_string("                ");
}}

void pic_init(void)
{
TRISA=0b00000000;
TRISB=0b00000000;
TRISC=0b00000000;
TRISD=0b00000000;
TRISE=0b00000000;
set_digital();			
PORTA=0b00010000;
PORTB=0b00000000;
PORTC=0b00000000;
PORTD=0b00000000;
PORTE=0b00000000;
}

void horse1(void){
LCD_RS=0;
lcd_write(0x40);
LCD_RS=1;
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00111);
lcd_write(0b01111);
lcd_write(0b11110);

LCD_RS=0;
lcd_write(0x48);
LCD_RS=1;
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b01110);
lcd_write(0b11111);
lcd_write(0b11111);
lcd_write(0b11111);

LCD_RS=0;
lcd_write(0x50);
LCD_RS=1;
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00111);
lcd_write(0b11111);
lcd_write(0b11111);
lcd_write(0b11111);

LCD_RS=0;
lcd_write(0x58);
LCD_RS=1;
lcd_write(0b00000);
lcd_write(0b00010);
lcd_write(0b11111);
lcd_write(0b11111);
lcd_write(0b11111);
lcd_write(0b11011);
lcd_write(0b10011);
lcd_write(0b10000);

LCD_RS=0;
lcd_write(0x60);
LCD_RS=1;
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00001);
lcd_write(0b00001);
lcd_write(0b00001);
lcd_write(0b00000);

LCD_RS=0;
lcd_write(0x68);
LCD_RS=1;
lcd_write(0b11111);
lcd_write(0b11111);
lcd_write(0b11011);
lcd_write(0b10010);
lcd_write(0b00001);
lcd_write(0b00001);
lcd_write(0b10001);
lcd_write(0b00000);

LCD_RS=0;
lcd_write(0x70);
LCD_RS=1;
lcd_write(0b11111);
lcd_write(0b11111);
lcd_write(0b00001);
lcd_write(0b00001);
lcd_write(0b00001);
lcd_write(0b00001);
lcd_write(0b00000);
lcd_write(0b00000);

LCD_RS=0;
lcd_write(0x78);
LCD_RS=1;
lcd_write(0b11000);
lcd_write(0b11100);
lcd_write(0b00100);
lcd_write(0b01000);
lcd_write(0b10000);
lcd_write(0b00000);
lcd_write(0b10000);
lcd_write(0b00000);
}

void horse2(void){
LCD_RS=0;
lcd_write(0x40);
LCD_RS=1;
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00111);
lcd_write(0b01111);
lcd_write(0b01110);
lcd_write(0b11100);
lcd_write(0b11000);

LCD_RS=0;
lcd_write(0x48);
LCD_RS=1;
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b01111);
lcd_write(0b11111);
lcd_write(0b11111);
lcd_write(0b11111);
lcd_write(0b11111);

LCD_RS=0;
lcd_write(0x50);
LCD_RS=1;
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00011);
lcd_write(0b11111);
lcd_write(0b11111);
lcd_write(0b11111);
lcd_write(0b11111);

LCD_RS=0;
lcd_write(0x58);
LCD_RS=1;
lcd_write(0b00000);
lcd_write(0b00001);
lcd_write(0b11111);
lcd_write(0b11111);
lcd_write(0b11111);
lcd_write(0b11011);
lcd_write(0b10011);
lcd_write(0b10000);

LCD_RS=0;
lcd_write(0x60);
LCD_RS=1;
lcd_write(0b10011);
lcd_write(0b10011);
lcd_write(0b00010);
lcd_write(0b00010);
lcd_write(0b00100);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);

LCD_RS=0;
lcd_write(0x68);
LCD_RS=1;
lcd_write(0b11111);
lcd_write(0b00111);
lcd_write(0b01110);
lcd_write(0b00110);
lcd_write(0b00001);
lcd_write(0b00000);
lcd_write(0b00000);
lcd_write(0b00000);

LCD_RS=0;
lcd_write(0x70);
LCD_RS=1;
lcd_write(0b01111);
lcd_write(0b00111);
lcd_write(0b10011);
lcd_write(0b01111);
lcd_write(0b00000);
lcd_write(0b10000);
lcd_write(0b00000);
lcd_write(0b00000);

LCD_RS=0;
lcd_write(0x78);
LCD_RS=1;
lcd_write(0b10000);
lcd_write(0b11000);
lcd_write(0b01100);
lcd_write(0b00100);
lcd_write(0b00010);
lcd_write(0b00001);
lcd_write(0b00000);
lcd_write(0b00000);
}
https://www.youtube.com/watch?v=SZL0i-PS5M8
 

Thanks for the code. I want to know what Commands I have to use to make the code work for HD44780 20X4 lcd?
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top