This program is for SG12864A(128 x 64 mono-LCD display) with Starboard Orange. Many of source code is referred from below website(in Japanese). (http://www.picfun.com/PIC24H/app24H01.html) Connection between SG12864A and mbed: (these connection are defined in SG12864A.h) pin1(VSS) pin2(VDD) : 5V pin3(V0) : pin4(DI) : p23 pin5(RW): p22 pin6(E): p21 pin7(DB0):p20 pin8(DB1):p19 pin9(DB2):p14 pin10(DB3):p13 pin11(DB4):p12 pin12(DB5):p11 pin13(DB6):p10 pin14(DB7):p9 pin15(CS1):p17 pin16(CS2):p16 pin17(RST):p15 pin18:VOUT pin19:LED Anode pin20:LED Cathode Note: lcd_Line function is not correct(maybe)... Other function is correctly working.

Dependencies:   mbed

Revision:
0:d0cd5139479f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Jan 09 11:44:15 2011 +0000
@@ -0,0 +1,113 @@
+#include "mbed.h"
+
+//////////////////////////////////////////////////////////
+////////    For TextLCD on StarBoard Orage        ////////
+//////////////////////////////////////////////////////////
+#include "TextLCD.h"
+#ifdef  USE_TextLCD_20x4
+//TextLCD     lcd( p24, p26, p27, p28, p29, p30, TextLCD::LCD20x4 ); // rs, e, d0-d3
+#else
+TextLCD     lcd( p24, p26, p27, p28, p29, p30 ); // rs, e, d0-d3
+#endif
+
+#include "SG12864A.h"
+#include "imagedata.h"
+SG12864A bwlcd;
+
+DigitalOut myled1(LED1);
+DigitalOut myled2(LED2);
+DigitalOut myled3(LED3);
+DigitalOut myled4(LED4);
+
+int main() {
+    char status;
+    char s[8];
+    myled1 = 0;
+    myled2 = 0;
+    myled3 = 0;
+    myled4 = 0;
+    lcd.cls();
+    lcd.printf("SG12864A test");
+    bwlcd.lcd_Init();
+    wait(1);
+    bwlcd.lcd_Clear(0); 
+    wait(1);
+    while(1) {
+        int index;
+        wait(1);
+        bwlcd.lcd_Clear(0x00);
+        myled1 = 1;
+        wait(1);
+        bwlcd.lcd_Clear(0xFF);
+        myled1 = 0;
+        myled2 = 1;
+        wait(1);
+        bwlcd.lcd_Clear(0x00);
+        for(int i=0;i<=64;i++)
+        {
+            bwlcd.lcd_Pixel(i,i,1);
+            bwlcd.lcd_Pixel(64+i,i,1);
+        }
+        myled1 = 1;
+        wait(3);
+        bwlcd.lcd_Clear(0xFF);
+        for(int i=0;i<64;i++)
+        {
+            bwlcd.lcd_Pixel(64+i,i,0);
+        }
+        myled1 = 0;
+        myled2 = 0;
+        myled3 = 1;
+        wait(3);
+        bwlcd.lcd_Clear(0);
+        for(int j=0;j<8;j++)
+        {
+            for(int i=0;i<16;i++)
+            {
+                index = j*16+i+0x20;
+                bwlcd.lcd_Char(j,i,index);
+            }
+        }
+        myled1 = 1; //0101
+        wait(3);
+        bwlcd.lcd_Clear(0);
+        for(int j=0;j<8;j++)
+        {
+            for(int i=0;i<18;i++)
+            {
+                index = j*18+i+0x50;
+                bwlcd.lcd_Char1(j,i,index);
+            }
+        }
+        myled1=0;
+        myled2=1; //0101 -> 0110
+        wait(3);
+        bwlcd.lcd_Image(Header2);
+        myled1=1; //0110 -> 0111
+        wait(3);
+        bwlcd.lcd_Scroll(50);
+        bwlcd.lcd_Image(Header3);
+        myled4=1;
+        myled3=0;
+        myled2=0;
+        myled1=0;
+        wait(3);
+        bwlcd.lcd_Scroll(100);
+        wait(1);
+        bwlcd.lcd_Clear(0);
+        wait(1);
+        bwlcd.lcd_Str(0,0,"Hello World!!");
+        bwlcd.lcd_Str(2,0,"Graphic LCD test");
+        myled1=1; //1000 -> 1001
+        wait(1);
+        bwlcd.lcd_Clear(0);
+        for(int j=0; j<32; j+=2){				// Box 
+					bwlcd.lcd_Line(j,j, 127-j, j);		// display small box
+					bwlcd.lcd_Line(j,j, j, 63 -j);
+					bwlcd.lcd_Line(127-j,63-j, 127-j,j);
+					bwlcd.lcd_Line(128-j,63-j, j,63-j);
+            wait_ms(500);
+        }
+        
+    }
+}