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.
The next item is communication with the display.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
Then you need to initialize 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 '******************************************************************************
Now you can start writing to 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
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