#include<avr/pgmspace.h>
// This code is made with DATE: 2004.1.6 SPECIFICATION No.: RCU6093W-B.
// for aitendo RCU6093W-B shield.
#define RST 9 //
#define SCE_B 12 // D12 (on PORTB bit4)
#define DC_B 10 // D10 (on PORTB bit2)
#define SCLK 13 // D13 (on PORTB bit5)
#define SDIN 11 // D11 (on PORTB bit3)
//#define LED 13
#define DATA 0
#define COMMAND 1
#define LCD_WIDTH 102
#define LCD_HEIGHT 65
PROGMEM const unsigned char test [] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0xE0,
0xE0, 0xE0, 0xE0, 0xE0,
0xE0, 0xE0, 0xE0, 0xE0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x60, 0x20, 0x30,
0x90, 0x10, 0x28, 0x0C,
0x94, 0x04, 0x2E, 0x02, 0xF5, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
0xFF, 0x3F, 0x3F, 0x0F,
0xF6, 0x12, 0x2B, 0x01, 0x95, 0x01, 0x29, 0x01, 0x95, 0x01, 0xE9, 0x20,
0x34, 0x40, 0xA9, 0x81,
0x95, 0x07, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
0xFC, 0xE0, 0x69, 0x80,
0x95, 0x81, 0x29, 0x01, 0x95, 0x03, 0x2A, 0x04, 0x94, 0x04, 0x28, 0x18,
0x90, 0x10, 0x30, 0x60,
0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0E,
0x2B, 0x01, 0x52, 0x00,
0xA9, 0x80, 0x52, 0x40, 0x29, 0x10, 0x1A, 0x08, 0x0D, 0x06, 0xF3, 0x79,
0x1F, 0x13, 0x1B, 0x08,
0x0D, 0x06, 0x43, 0x42, 0x47, 0x46, 0x03, 0x04, 0x09, 0x08, 0x0A, 0x08,
0x19, 0x10, 0x12, 0x10,
0x1F, 0x1C, 0x18, 0x40, 0x40, 0x40, 0x43, 0x42, 0x03, 0x02, 0x02, 0x03,
0x01, 0x02, 0x0E, 0x18,
0x19, 0xE3, 0x53, 0x43, 0xEB, 0x86, 0xD8, 0xB1, 0xE3, 0x02, 0x0E, 0x08,
0x19, 0x70, 0x52, 0x40,
0x69, 0x80, 0xD2, 0x80, 0xA9, 0x80, 0x52, 0x40, 0x69, 0x43, 0x52, 0x6C,
0x38, 0x18, 0x18, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0xF3, 0x92, 0x8C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x30, 0x30, 0x30, 0x20,
0x60, 0xA0, 0xA0, 0x22,
0x62, 0x22, 0xE2, 0x62, 0x60, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x10, 0x10, 0x18,
0x08, 0x08, 0x08, 0x0C, 0x8E, 0xFA, 0xA7, 0x83, 0xCA, 0x82, 0xA6, 0x82,
0xCA, 0x82, 0xA7, 0x81,
0xCB, 0x81, 0xA5, 0x83, 0xCA, 0x8E, 0xF4, 0x84, 0x84, 0x84, 0x84, 0x84,
0x86, 0x86, 0x8E, 0x8A,
0x89, 0x89, 0xDB, 0x72, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x03, 0x01, 0x03,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
PROGMEM const unsigned char test2 [] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0xE0,
0xE0, 0xE0, 0xE0, 0xE0,
0xE0, 0xE0, 0xE0, 0xE0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x60, 0x20, 0x30,
0x90, 0x10, 0x28, 0x0C,
0x94, 0x04, 0x2E, 0x02, 0xF5, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
0xFF, 0x3F, 0x3F, 0x0F,
0xF6, 0x12, 0x2B, 0x01, 0x95, 0x01, 0x29, 0x01, 0x95, 0x01, 0xE9, 0x20,
0x34, 0x40, 0xA9, 0x81,
0x95, 0x07, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
0xFC, 0xE0, 0x69, 0x80,
0x95, 0x81, 0x29, 0x01, 0x95, 0x03, 0x2A, 0x04, 0x94, 0x04, 0x28, 0x18,
0x90, 0x10, 0x30, 0x60,
0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0E,
0x2B, 0x01, 0x52, 0x00,
0xA9, 0x80, 0x52, 0x40, 0x29, 0x10, 0x1A, 0x08, 0x0D, 0x06, 0xF3, 0x79,
0x1F, 0x13, 0x1B, 0x08,
0x0D, 0x06, 0x43, 0x42, 0x47, 0x46, 0x03, 0x04, 0x09, 0x08, 0x0A, 0x08,
0x19, 0x10, 0x12, 0x10,
0x1F, 0x1C, 0x18, 0x40, 0x40, 0x40, 0x43, 0x42, 0x03, 0x02, 0x02, 0x03,
0x01, 0x02, 0x0E, 0x18,
0x19, 0xE3, 0x53, 0x43, 0xEB, 0x86, 0xD8, 0xB1, 0xE3, 0x02, 0x0E, 0x08,
0x19, 0x70, 0x52, 0x40,
0x69, 0x80, 0xD2, 0x80, 0xA9, 0x80, 0x52, 0x40, 0x69, 0x43, 0x52, 0x6C,
0x38, 0x18, 0x18, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0xF3, 0x92, 0x8C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x30, 0x30, 0x30, 0x20,
0x60, 0xA0, 0xA0, 0x22,
0x62, 0x22, 0xE2, 0x62, 0x60, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x10, 0x10, 0x18,
0x08, 0x08, 0x08, 0x0C, 0x8E, 0xFA, 0xA7, 0x83, 0xCA, 0x82, 0xA6, 0x82,
0xCA, 0x82, 0xA7, 0x81,
0xCB, 0x81, 0xA5, 0x83, 0xCA, 0x8E, 0xF4, 0x84, 0x84, 0x84, 0x84, 0x84,
0x84, 0x84, 0x8C, 0x88,
0x88, 0x88, 0xD8, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x03, 0x01, 0x03,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
PROGMEM const unsigned char test3 [] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0xC0, 0xC0,
0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0xE0,
0xE0, 0xE0, 0xE0, 0xE0,
0xE0, 0xE0, 0xE0, 0xE0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x01, 0x63, 0x75, 0x3D, 0x19, 0x00, 0x00, 0x00, 0x00, 0x31, 0x3A, 0x3C,
0x18, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x60, 0x20, 0x30,
0x90, 0x10, 0x28, 0x0C,
0x94, 0x04, 0x2E, 0x02, 0xF5, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
0xFF, 0x3F, 0x3F, 0x0F,
0xF6, 0x12, 0x2B, 0x01, 0x95, 0x01, 0x29, 0x01, 0x95, 0x01, 0xE9, 0x20,
0x34, 0x40, 0xA9, 0x81,
0x95, 0x07, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
0xFC, 0xE0, 0x69, 0x80,
0x95, 0x81, 0x29, 0x01, 0x95, 0x03, 0x2A, 0x04, 0x94, 0x04, 0x28, 0x18,
0x90, 0x10, 0x30, 0x60,
0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0E,
0x2B, 0x01, 0x52, 0x00,
0xA9, 0x80, 0x52, 0x40, 0x29, 0x10, 0x1A, 0x08, 0x0D, 0x06, 0xF3, 0x79,
0x1F, 0x13, 0x1B, 0x08,
0x0D, 0x06, 0x43, 0x42, 0x47, 0x46, 0x03, 0x04, 0x09, 0x08, 0x0A, 0x08,
0x19, 0x10, 0x12, 0x10,
0x1F, 0x1C, 0x18, 0x40, 0x40, 0x40, 0x43, 0x42, 0x03, 0x02, 0x02, 0x03,
0x01, 0x02, 0x0E, 0x18,
0x19, 0xE3, 0x53, 0x43, 0xEB, 0x86, 0xD8, 0xB1, 0xE3, 0x02, 0x0E, 0x08,
0x19, 0x70, 0x52, 0x40,
0x69, 0x80, 0xD2, 0x80, 0xA9, 0x80, 0x52, 0x40, 0x69, 0x43, 0x52, 0x6C,
0x38, 0x18, 0x18, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0xF3, 0x92, 0x8C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x30, 0x30, 0x30, 0x20,
0x60, 0xA0, 0xA0, 0x20,
0x60, 0x26, 0xEA, 0x66, 0x60, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x10, 0x10, 0x18,
0x08, 0x08, 0x08, 0x0C, 0x8E, 0xFA, 0xA7, 0x83, 0xCA, 0x82, 0xA6, 0x82,
0xCA, 0x82, 0xA7, 0x81,
0xCB, 0x81, 0xA5, 0x83, 0xCA, 0x8E, 0xF4, 0x84, 0x84, 0x84, 0x84, 0x84,
0x86, 0x86, 0x8E, 0x8A,
0x89, 0x89, 0xDB, 0x72, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x03, 0x01, 0x03,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
PROGMEM const unsigned char test4 [] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xC0,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xE3, 0xEC, 0xF8, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x60, 0x73, 0x76, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0xE0,
0xE0, 0xE0, 0xE0, 0xE0,
0xE0, 0xE0, 0xE0, 0xE0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x60, 0x20, 0x30,
0x90, 0x10, 0x28, 0x0C,
0x94, 0x04, 0x2E, 0x02, 0xF5, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
0xFF, 0x3F, 0x3F, 0x0F,
0xF6, 0x12, 0x2B, 0x01, 0x95, 0x01, 0x29, 0x01, 0x95, 0x01, 0xE9, 0x20,
0x34, 0x40, 0xA9, 0x81,
0x95, 0x07, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
0xFC, 0xE0, 0x69, 0x80,
0x95, 0x81, 0x29, 0x01, 0x95, 0x03, 0x2A, 0x04, 0x94, 0x04, 0x28, 0x18,
0x90, 0x10, 0x30, 0x60,
0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0E,
0x2B, 0x01, 0x52, 0x00,
0xA9, 0x80, 0x52, 0x40, 0x29, 0x10, 0x1A, 0x08, 0x0D, 0x06, 0xF3, 0x79,
0x1F, 0x13, 0x1B, 0x08,
0x0D, 0x06, 0x43, 0x42, 0x47, 0x46, 0x03, 0x04, 0x09, 0x08, 0x0A, 0x08,
0x19, 0x10, 0x12, 0x10,
0x1F, 0x1C, 0x18, 0x40, 0x40, 0x40, 0x43, 0x42, 0x03, 0x02, 0x02, 0x03,
0x01, 0x02, 0x0E, 0x18,
0x19, 0xE3, 0x53, 0x43, 0xEB, 0x86, 0xD8, 0xB1, 0xE3, 0x02, 0x0E, 0x08,
0x19, 0x70, 0x52, 0x40,
0x69, 0x80, 0xD2, 0x80, 0xA9, 0x80, 0x52, 0x40, 0x69, 0x43, 0x52, 0x6C,
0x38, 0x18, 0x18, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0xF3, 0x92, 0x8C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x30, 0x30, 0x30, 0x20,
0x60, 0xA0, 0xA6, 0x2A,
0x69, 0x29, 0xE9, 0x6A, 0x6E, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x10, 0x10, 0x18,
0x08, 0x08, 0x08, 0x0C, 0x8E, 0xFA, 0xA7, 0x83, 0xCA, 0x82, 0xA6, 0x82,
0xCA, 0x82, 0xA7, 0x81,
0xCB, 0x81, 0xA5, 0x83, 0xCA, 0x8E, 0xF4, 0x84, 0x84, 0x84, 0x84, 0x84,
0x84, 0x84, 0x8C, 0x88,
0x88, 0x88, 0xD8, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x03, 0x01, 0x03,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
void lcdWrite(char data, char mode){
int i;
PORTB &=0b11101111; // SCE_B=0 (PORTB t4)
if (mode==DATA){
for(i=0;i<8;i++){
if(data & 0x01){
PORTB |=0b00001000; // SDIN=1 (PORTB bit3)
}
else{
PORTB &=0b11110111; // SDIN=0 (PORTB bit3)
}
if(i==7){
PORTB |=0b00000100; // DC_B=1 (PORTB bit2)
}
PORTB |=0b00100000; // SCLK=1 (PORTB bit5)
PORTB &=0b11011111; // SCLK=0 (PORTB bit5)
data>>=1;
}
}
else{
for(i=0;i<8;i++){
if(data & 0x80){
PORTB |=0b00001000; // SDIN=1 (PORTB bit3)
}
else{
PORTB &=0b11110111; // SDIN=0 (PORTB bit3)
}
if (i ==7){
PORTB &=0b11111011; // DC_B=0 (PORTB bit2)
}
PORTB |=0b00100000; // SCLK=1 (PORTB bit5)
PORTB &=0b11011111; // SCLK=0 (PORTB bit5)
data<<=1;
}
}
PORTB |=0b00010000; // SCE_B=1 (PORTB bit4)
}
void initialize(){
int i;
char x = 0,y = 0;
pinMode(SCE_B, OUTPUT);
pinMode(DC_B, OUTPUT);
pinMode(SCLK, OUTPUT);
pinMode(SDIN, OUTPUT);
pinMode(RST, OUTPUT);
digitalWrite(SCK, 0);
digitalWrite(DC_B, 0);
digitalWrite(SCE_B,0);
digitalWrite(RST, 1);
delay(10);
// See Datasheet P20 about reference initialize sequence.
lcdWrite((0b00100000 + 0b00000001),COMMAND); // FUNCTION SET:+ PD=0, V=0,EXTENDED INST
lcdWrite((0b10000000 + 0b00111100),COMMAND); // CONTRAST SET+ Reccomended value (See Datasheet P19 11-7)
lcdWrite((0b00010000 + 0b00000100),COMMAND); // BIAS SET + 1/7 (RCU6093W-B Unique parameter See DataSheet P18 11-6)
lcdWrite((0b00100000 + 0b00000000),COMMAND); // FUNCTION SET: PD=0, V=0,BASIC INST
lcdWrite((0b00001000 + 0b00000100),COMMAND); // D=1 E=0 normal disp
delay(10);
}
void setup() {
Serial.begin(9600);
initialize();
int i;
// Clear
ClearLCD();
}
void loop() {
char x,y;
int i;
i = 0;
for ( y = 0 ; y < LCD_HEIGHT / 8 ; y++ ){
for ( x = 0 ; x < LCD_WIDTH ; x++ ){
lcdWrite(0b01000000 + y, COMMAND); //
lcdWrite(0b10000000 + x, COMMAND); //
lcdWrite(pgm_read_byte_near(test + i), DATA);
i++;
}
}
delay(1500);
i = 0;
for ( y = 0 ; y < LCD_HEIGHT / 8 ; y++ ){
for ( x = 0 ; x < LCD_WIDTH ; x++ ){
lcdWrite(0b01000000 + y, COMMAND); //
lcdWrite(0b10000000 + x, COMMAND); //
lcdWrite(pgm_read_byte_near(test2 + i), DATA);
i++;
}
}
delay(1500);
i = 0;
for ( y = 0 ; y < LCD_HEIGHT / 8 ; y++ ){
for ( x = 0 ; x < LCD_WIDTH ; x++ ){
lcdWrite(0b01000000 + y, COMMAND); //
lcdWrite(0b10000000 + x, COMMAND); //
lcdWrite(pgm_read_byte_near(test3 + i), DATA);
i++;
}
}
delay(1500);
i = 0;
for ( y = 0 ; y < LCD_HEIGHT / 8 ; y++ ){
for ( x = 0 ; x < LCD_WIDTH ; x++ ){
lcdWrite(0b01000000 + y, COMMAND); //
lcdWrite(0b10000000 + x, COMMAND); //
lcdWrite(pgm_read_byte_near(test4 + i), DATA);
i++;
}
}
delay(1500);
}
void ClearLCD()
{
char x,y;
for ( y = 0 ; y < (LCD_HEIGHT / 8 + LCD_HEIGHT % 8) ; y++ ){
for ( x = 0 ; x < LCD_WIDTH ; x++ ){
lcdWrite(0b01000000 + y, COMMAND); //
lcdWrite(0b10000000 + x, COMMAND); //
lcdWrite(0, DATA);
}
}
}