As Bert pointed out, the solder pads PS2 and PS3 are soldered and PS1, PS0 are open. This tells the controller that we will use 8 Bit parallel. If you want to use SPI or 16 bit parallel you need to change the solder pads as required.
The next step is to set up your ports and pins and the basic communication to the display. In my project I used a 18F4550, you can change the pins to suit your Pic.
Code:
LCD_Dat var PORTD
LCD_CS var PORTA.0
LCD_RS var PORTA.1
LCD_WR var PORTA.2
LCD_RD var PORTA.3
LCD_RST var PORTA.4
The next item is communication with the display.
Code:
'******************************************************************************
LCD_Write_CMD:
high lcd_RD
low lcd_rs
low lcd_cs
low lcd_wr
lcd_dat = cmd.highbyte
high lcd_wr
low lcd_wr
LCD_Dat = cmd.lowbyte
high lcd_wr
high lcd_rs
high lcd_cs
Return
'******************************************************************************
LCD_Write_Dat:
high lcd_RD
high lcd_rs
low lcd_cs
low lcd_wr
lcd_dat = dat.highbyte
high lcd_wr
low lcd_wr
LCD_Dat = dat.lowbyte
high lcd_wr
high lcd_cs
return
'******************************************************************************
LCD_Read_Dat: ' only works with 16 bit control
TRISD = $FF
color_buf = 0
low lcd_cs
high lcd_rs
high lcd_wr
low lcd_rd 'dummy read
high lcd_rd
low lcd_rd
color_buf.lowbyte = lcd_dat
high lcd_rd
'lcd_dat
low lcd_rd
color_buf.highbyte = lcd_dat
high lcd_rd
'lcd_dat
TRISD = $00
high lcd_cs
return
'******************************************************************************
LCD_RESET:
low lcd_rst
pause 500
high lcd_rst
pause 1000
return
'******************************************************************************
Then you need to initialize the display.
Code:
LCD_INIT:
gosub lcd_reset
cmd = $0028 : gosub lcd_write_CMD : dat = $0006 : gosub lcd_write_dat
pause 10
cmd = $0000 : gosub lcd_write_CMD : dat = $0001 : gosub lcd_write_dat ' Start OSC
cmd = $0010 : gosub lcd_write_CMD : dat = $0000 : gosub lcd_write_dat
cmd = $0001 : gosub lcd_write_CMD : dat = $30EF : gosub lcd_write_dat ' Driver output 32EF
cmd = $0002 : gosub lcd_write_CMD : dat = $0600 : gosub lcd_write_dat
cmd = $0003 : gosub lcd_write_CMD : dat = $6A64 : gosub lcd_write_dat
cmd = $0011 : gosub lcd_write_CMD : dat = $6830 : gosub lcd_write_dat
cmd = $000F : gosub lcd_write_CMD : dat = $0000 : gosub lcd_write_dat
cmd = $000B : gosub lcd_write_CMD : dat = $5308 : gosub lcd_write_dat
cmd = $000C : gosub lcd_write_CMD : dat = $0003 : gosub lcd_write_dat
cmd = $000D : gosub lcd_write_CMD : dat = $000A : gosub lcd_write_dat
cmd = $000E : gosub lcd_write_CMD : dat = $2E00 : gosub lcd_write_dat
cmd = $001E : gosub lcd_write_CMD : dat = $002B : gosub lcd_write_dat '
cmd = $0025 : gosub lcd_write_CMD : dat = $8000 : gosub lcd_write_dat
cmd = $0026 : gosub lcd_write_CMD : dat = $7000 : gosub lcd_write_dat
cmd = $004E : gosub lcd_write_CMD : dat = $0000 : gosub lcd_write_dat
cmd = $004F : gosub lcd_write_CMD : dat = $0000 : gosub lcd_write_dat
cmd = $0012 : gosub lcd_write_CMD : dat = $08D9 : gosub lcd_write_dat
' Gama Curve
cmd = $0030 : gosub lcd_write_CMD : dat = $0000 : gosub lcd_write_dat
cmd = $0031 : gosub lcd_write_CMD : dat = $0104 : gosub lcd_write_dat
cmd = $0032 : gosub lcd_write_CMD : dat = $0100 : gosub lcd_write_dat
cmd = $0033 : gosub lcd_write_CMD : dat = $0305 : gosub lcd_write_dat
cmd = $0034 : gosub lcd_write_CMD : dat = $0505 : gosub lcd_write_dat
cmd = $0035 : gosub lcd_write_CMD : dat = $0305 : gosub lcd_write_dat
cmd = $0036 : gosub lcd_write_CMD : dat = $0707 : gosub lcd_write_dat
cmd = $0037 : gosub lcd_write_CMD : dat = $0300 : gosub lcd_write_dat
cmd = $003A : gosub lcd_write_CMD : dat = $1200 : gosub lcd_write_dat
cmd = $003B : gosub lcd_write_CMD : dat = $0800 : gosub lcd_write_dat
pause 150
cmd = $0007 : gosub lcd_write_CMD : dat = $0033 : gosub lcd_write_dat
pause 200
Return
Now you can start writing to the display.
You will need several sub routines to do things like "Text" shapes etc.
You should read the data sheet for the display to try to understand how the display works. I attached the PBP code that has a number of different subs in another post, http://www.picbasic.co.uk/forum/showthread.php?t=14824 feel free to use it and hopefully improve upon it.
Dave
Bookmarks