/*============================================================== File........JP Serial LCD Module Test code for Arduino Purpose.....This test code for JP SerLCD Module MCU.........ATmega328 Auther......Jianping Sun Website.....www.JianpingUSA.com Email.......JP@JianpingUSA.com Started.....Jan. 1, 2011 Updated..... Note: The module Rx <===> Tx of Arduino ==============================================================*/ char txt[14] = "Hello, world!"; int CGRam[8]; int k; void setup() { // initialize the serial communication: Serial.begin(4800); delay(1000); /*============================================================== Full Screen Test ==============================================================*/ Serial.print(17, BYTE); // Clear screen Serial.print(18, BYTE); // Move cursor to home delay(10); Serial.print(" JianpingUSA "); Serial.print(192, BYTE); // 128+64,Move sursor to 2nd row delay(10); Serial.print(" JP Serial LCD "); Serial.print(144, BYTE); // 128+16,Move sursor to 3rd row delay(10); Serial.print(" Module testing "); Serial.print(208, BYTE); // 128+80,Move sursor to 4th row delay(10); Serial.print(" (16x4 or 20x4) "); delay(1000); /*============================================================ Cursor test ============================================================*/ Serial.print(17, BYTE); // Clear screen Serial.print(18, BYTE); // Move cursor to home delay(10); Serial.print(20, BYTE); // Turn underline cursor on delay(10); Serial.print("Move cursor from"); Serial.print(192, BYTE); delay(10); Serial.print(" left to right "); Serial.print(144, BYTE); delay(10); Serial.print("Move cursor from"); Serial.print(208, BYTE); delay(10); Serial.print(" right to left "); Serial.print(128, BYTE); delay(1000); for (int i = 1; i <=15; i++){ Serial.print(23, BYTE); delay(500); } Serial.print(21, BYTE); // Turn Blink cursor ON delay(10); Serial.print(160, BYTE); delay(1000); for ( int i = 0; i <= 15; i++){ Serial.print(22, BYTE); delay(500); } Serial.print(19, BYTE); // Turn off cursor /*============================================================= Backlight test =============================================================*/ Serial.print(17, BYTE); // Clear screen Serial.print(18, BYTE); // Move cursor to home delay(10); Serial.print(192, BYTE); delay(10); Serial.print(" Backlight test "); for (int i = 0; i <= 5; i++){ Serial.print(29, BYTE); //Turn backlight off delay(500); Serial.print(28, BYTE); //Turn backlight on delay(500); } /*============================================================== LCD Display turn on/off ==============================================================*/ Serial.print(17, BYTE); // Clear screen Serial.print(18, BYTE); // Move cursor to home delay(10); Serial.print(192, BYTE); // 128+64,Move sursor to 2nd row delay(10); Serial.print(" LCD Display "); delay(10); Serial.print(144, BYTE); // 128+16,Move sursor to 3rd row delay(10); Serial.print("Turn on/off test"); delay(500); for (int i = 0; i <= 5; i++){ Serial.print(25, BYTE); delay(500); Serial.print(24, BYTE); delay(500); } /*================================================================== Display defualt CDRam Characters ==================================================================*/ Serial.print(17, BYTE); // Clear screen Serial.print(18, BYTE); // Move cursor to home delay(10); Serial.print(18, BYTE); // Return cursor to home position, return a shifted //diaplay to original position. Dispaly data RAM is unaffected delay(10); Serial.print("JP SerLCD Module"); Serial.print(192, BYTE); delay(10); Serial.print(" Default Chars "); Serial.print(148, BYTE); delay(10); for (int i = 0; i <= 8; i++){ Serial.print(i, BYTE); delay(10); } delay(2000); /*============================================================== Create Custemer CGRam ==============================================================*/ Serial.print(17, BYTE); // Clear screen Serial.print(18, BYTE); // Move cursor to home CGRam[0] = B00000000; CGRam[1] = B00000000; CGRam[2] = B00000000; CGRam[3] = B00010000; // X CGRam[4] = B00000000; CGRam[5] = B00000000; CGRam[6] = B00000000; CGRam[7] = B00000000; Serial.print(9, BYTE); delay(10); for (int i = 0; i <= 7; i++){ Serial.print(CGRam[i], BYTE); delay(10); } CGRam[0] = B00000000; CGRam[1] = B00000000; CGRam[2] = B00010000; // X CGRam[3] = B00011000; // XX CGRam[4] = B00010000; // X CGRam[5] = B00000000; CGRam[6] = B00000000; CGRam[7] = B00000000; Serial.print(10, BYTE); delay(10); for (int i = 0; i <= 7; i++){ Serial.print(CGRam[i], BYTE); delay(10); } CGRam[0] = B00000000; CGRam[1] = B00010000; // X CGRam[2] = B00011000; // XX CGRam[3] = B00011100; // XXXX CGRam[4] = B00011000; // XX CGRam[5] = B00010000; // X CGRam[6] = B00000000; CGRam[7] = B00000000; Serial.print(11, BYTE); delay(10); for (int i = 0; i <= 7; i++){ Serial.print(CGRam[i], BYTE); delay(10); } CGRam[0] = B00010000; // X CGRam[1] = B00011000; // XX CGRam[2] = B00011100; // XXX CGRam[3] = B00011110; // XXXX CGRam[4] = B00011100; // XXX CGRam[5] = B00011000; // XX CGRam[6] = B00010000; // X CGRam[7] = B00000000; Serial.print(12, BYTE); delay(10); for (int i = 0; i <= 7; i++){ Serial.print(CGRam[i], BYTE); delay(10); } CGRam[0] = B00011000; // XX CGRam[1] = B00011100; // XXX CGRam[2] = B00011110; // XXXX CGRam[3] = B00011111; // XXXXX CGRam[4] = B00011110; // XXXX CGRam[5] = B00011100; // XXX CGRam[6] = B00011000; // XX CGRam[7] = B00000000; Serial.print(13, BYTE); delay(10); for (int i = 0; i <= 7; i++){ Serial.print(CGRam[i], BYTE); delay(10); } CGRam[0] = B00011100; // XXX CGRam[1] = B00011110; // XXXX CGRam[2] = B00011111; // XXXXX CGRam[3] = B00011111; // XXXXX CGRam[4] = B00011111; // XXXXX CGRam[5] = B00011110; // XXXX CGRam[6] = B00011100; // XXX CGRam[7] = B00000000; Serial.print(14, BYTE); delay(10); for (int i = 0; i <= 7; i++){ Serial.print(CGRam[i], BYTE); delay(10); } CGRam[0] = B00011110; // XXXX CGRam[1] = B00011111; // XXXXX CGRam[2] = B00011111; // XXXXX CGRam[3] = B00011111; // XXXXX CGRam[4] = B00011111; // XXXXX CGRam[5] = B00011111; // XXXXX CGRam[6] = B00011110; // XXXX CGRam[7] = B00000000; Serial.print(15, BYTE); delay(10); for (int i = 0; i <= 7; i++){ Serial.print(CGRam[i], BYTE); delay(10); } CGRam[0] = B00011111; // XXXXX CGRam[1] = B00011111; // XXXXX CGRam[2] = B00011111; // XXXXX CGRam[3] = B00011111; // XXXXX CGRam[4] = B00011111; // XXXXX CGRam[5] = B00011111; // XXXXX CGRam[6] = B00011111; // XXXXX CGRam[7] = B00000000; Serial.print(16, BYTE); delay(10); for (int i = 0; i <= 8; i++){ Serial.print(CGRam[i], BYTE); delay(10); } Serial.print(" Custom Chars "); delay(500); Serial.print(196, BYTE); delay(10); for (int i = 0; i <= 8; i++){ Serial.print(i,BYTE); delay(10); } for (int i = 0; i <= 3; i++){ Serial.print(144, BYTE); delay(50); Serial.print(i, BYTE); } for (int j = 144; j <= 159; j++){ for(int i = 4; i <= 5; i++){ Serial.print(j, BYTE); delay(50); Serial.print(i, BYTE); } for(int i = 6; i <= 8; i++){ k = i - 5; Serial.print(j, BYTE); delay(5); Serial.print(i, BYTE); Serial.print(k, BYTE); delay(50); } } for (int i = 0; i <= 3; i++){ Serial.print(208, BYTE); delay(50); Serial.print(i, BYTE); } for (int j = 208; j <= 223; j++){ for(int i = 4; i <= 5; i++){ Serial.print(j, BYTE); delay(50); Serial.print(i, BYTE); } for(int i = 6; i <= 8; i++){ k = i - 5; Serial.print(j, BYTE); delay(5); Serial.print(i, BYTE); Serial.print(k, BYTE); delay(50); } } /*================================================================== Shift test ==================================================================*/ Serial.print(17, BYTE); // Clear screen Serial.print(18, BYTE); // Move cursor to home delay(10); Serial.print(206, BYTE); // Move sursor to 2nd row, 12 col delay(10); for (int i = 206; i <= 218; i++){ k = i - 206; Serial.print(26, BYTE); //Shift dispaly left delay(10); Serial.print(i, BYTE); // Move sursor to 2nd row, 12 col delay(10); Serial.print(txt[k], BYTE); delay(200); } } void loop() { }