HD44780-based Character-LCD display PIC code

Status
Not open for further replies.

kemalkemal

Member level 1
Joined
Jan 27, 2013
Messages
38
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Visit site
Activity points
1,672
Hi everyone
i'm trying to use HD44780-based Character-LCD(4line20character) . I found some material from some forums but couldn't make it.

If you check my software steps i appreciate it:

1st: I designate port configurations

Code:
	#define		RS			PORTA,0
	#define		RW			PORTA,1
	#define		E			PORTA,2
	#define		LCD_DATA	PORTB
	#define		LCD_CTRL	PORTA

Code:
movlw	b'00000111'
	banksel	ADCON1
	movwf	ADCON1
	banksel	TRISA
	clrf	TRISA		;RA0->RS
						;RA1->R/W
						;RA2->E
	banksel	TRISB
	clrf	TRISB

	banksel	LCD_CTRL
	clrf	LCD_CTRL	;

2nd:I make function set(8 bit interface and 2line(although my LCD is 4 line)
Code:
movlw		0X38
	banksel		LCD_DATA
	movwf		LCD_DATA
	banksel		LCD_CTRL
	bcf			RW
	bsf			RS
	bsf			E
	bcf			E
	call		delay_100u ; delay for 100us

3rd:I make -display off,clear display, entry mode set, display on- in sequence
Code:
movlw		b'00001011'			;disp off
	call		send_cmd
	movlw		b'00000001'			;clear disp
	call		send_cmd
	movlw		b'00000111'			;entry inc
	call		send_cmd
	movlw		b'00001111'			;disp on

Code:
send_cmd:
	banksel		temp
	movwf		temp
	call		busy_check
	banksel		temp
	movf		temp,w
	banksel		LCD_DATA
	movwf		LCD_DATA		
	banksel		LCD_CTRL
	bcf			RW
	bcf			RS
	bsf			E
	bcf			E
	call		delay_100u	
return

Code:
busy_check:
	banksel		TRISB
	movlw		b'11111111'
	movwf		TRISB
	banksel		LCD_CTRL
	bcf			RS
	bsf			RW
	bsf			E
	bcf			E
	banksel		LCD_DATA
	movf		LCD_DATA,w
	banksel		temp_busy
	movwf		temp_busy
	btfsc		temp_busy,7
	goto		busy_check
	banksel		LCD_CTRL
	bcf			RW
	banksel		TRISB
	clrf		TRISB
return

4th:send character-L- to LCD

Code:
	movlw		b'01001100'
	call		        send_lcd

Code:
send_lcd:
	banksel		temp
	movwf		temp
	call		busy_check
	banksel		temp
	movf		temp,w
	banksel		LCD_DATA
	movwf		LCD_DATA
	banksel		LCD_CTRL
	bcf			RW
	bsf			RS
	bsf			E
	bcf			E
	call		delay_100u	
return

But it didn't work.:shock:
 

Read attached pdf carefuly! I had same problems but then I read these two documents and it worked for me!
 

Attachments

  • lcd1.pdf
    263.6 KB · Views: 142
  • lcd2.pdf
    121.5 KB · Views: 150
Status
Not open for further replies.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…