搜索
bottom↓
回复: 17

目前最火热流行的OLED驱动程序(针对最流行的SSD1325驱动IC)

[复制链接]

出0入0汤圆

发表于 2010-4-10 10:05:32 | 显示全部楼层 |阅读模式
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//
//  UG-2864ASYDT01 (2864-27E)
//  UG-2864ASYDT02 (2864-28E)
//  UG-2864ASYDT03 (2864-31E)
//  UG-2864ASYDT04 (2864-32E)
//  UG-2864ASYDT05 (2864-33E)
//  UG-2864ALBDT05 (2864-34E) Reference Code
//
//    Dot Matrix: 128*64
//    Driver IC : SSD1325 (Solomon Systech)
//    Interface : 8-bit 68XX/80XX Parallel, 4-wire SPI
//    Revision  :
//    Date      : 2007/11/25
//    Author    :
//    Editor    : Humphrey Lin
//
//  Copyright (c) Univision Technology Inc.
//
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

#include <at89x51.h>

//#define        M68                                // 8-bit 68XX Parallel
                                                //   BS1=0; BS2=1
#define                I80                                // 8-bit 80XX Parallel
                                                //   BS1=1; BS2=1
//#define        SPI                                // 4-wire SPI
                                                //   BS1=0; BS2=0
                                                //   The unused pins should be connected with VSS mostly or floating (D2).
                                                //   Please refer to the SSD1329 specification for detail.


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Pin Definition
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#define xData        P1                                // Parallel Data Input

#define SCLK        P1_0                                // Serial Clock Input
#define SDIN        P1_1                                // Serial Data Input

#define RES        P3_3                                // Reset
#define CS        P3_4                                // Chip Select
#define DC        P3_2                                // Data/Command Control

#define E        P3_0                                // Read/Write Enable
#define RW        P3_1                                // Read/Write Select

#define RD        P3_0                                // Read Signal
#define WR        P3_1                                // Write Signal


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Delay Time
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void uDelay(unsigned char l)
{
        while(l--);
}


void Delay(unsigned char n)
{
unsigned char i,j,k;

        for(k=0;k<n;k++)
        {
                for(i=0;i<131;i++)
                {
                        for(j=0;j<15;j++)
                        {
                                uDelay(203);       
                        }
                }
        }
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Read/Write Sequence
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#ifdef M68                                        // 8-bit 68XX Parallel
void Write_Command(unsigned char Data)
{
        DC=0;
        CS=0;
        RW=0;
        E=1;
        xData=Data;
        E=0;
        RW=1;
        CS=1;
        DC=1;
}

void Write_Data(unsigned char Data)
{
        DC=1;
        CS=0;
        RW=0;
        E=1;
        xData=Data;
        E=0;
        RW=1;
        CS=1;
        DC=1;
}
#endif


#ifdef I80
void Write_Command(unsigned char Data)
{
        DC=0;
        CS=0;
        WR=0;
        xData=Data;
        WR=1;
        CS=1;
        DC=1;
}

void Write_Data(unsigned char Data)
{
        DC=1;
        CS=0;
        WR=0;
        xData=Data;
        WR=1;
        CS=1;
        DC=1;
}
#endif


#ifdef SPI
void Write_Command(unsigned char Data)
{
unsigned char i;

        CS=0;
        DC=0;
        for (i=0; i<8; i++)
        {
                SCLK=0;
                SDIN=(Data&0x80)>>7;
                Data = Data << 1;
//                uDelay(1);
                SCLK=1;
//                uDelay(1);
        }
//        SCLK=0;
        DC=1;
        CS=1;
}

void Write_Data(unsigned char Data)
{
unsigned char i;

        CS=0;
        DC=1;
        for (i=0; i<8; i++)
        {
                SCLK=0;
                SDIN=(Data&0x80)>>7;
                Data = Data << 1;
//                uDelay(1);
                SCLK=1;
//                uDelay(1);
        }
//        SCLK=0;
        DC=1;
        CS=1;
}
#endif


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Instruction Setting
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Set_Column_Address(unsigned char a, unsigned char b)
{
        Write_Command(0x15);                        // Set Column Address
        Write_Command(a);                        //   Default => 0x00
        Write_Command(b);                        //   Default => 0x3F (Total Columns Devided by 2)
}


void Set_Row_Address(unsigned char a, unsigned char b)
{
        Write_Command(0x75);                        // Set Row Address
        Write_Command(a);                        //   Default => 0x00
        Write_Command(b);                        //   Default => 0x4F
}


void Set_Contrast_Current(unsigned char d)
{
        Write_Command(0x81);                        // Set Contrast Value
        Write_Command(d);                        //   Default => 0x40
}


void Set_Current_Range(unsigned char d)
{
        Write_Command(0x84|d);                        // Set Current Range
                                                //   Default => 0x84
                                                //     0x84 (0x00) => Quarter Current Range
                                                //     0x85 (0x01) => Half Current Range
                                                //     0x86 (0x02) => Full Current Range
}


void Set_Remap_Format(unsigned char d)
{
        Write_Command(0xA0);                        // Set Re-Map & Data Format
        Write_Command(d);                        //   Default => 0x00
                                                //     Column Address 0 Mapped to SEG0
                                                //     Disable Nibble Re-Map
                                                //     Horizontal Address Increment
                                                //     Scan from COM0 to COM[N-1]
                                                //     Disable COM Split Odd Even
}


void Set_Start_Line(unsigned char d)
{
        Write_Command(0xA1);                        // Set Display Start Line
        Write_Command(d);                        //   Default => 0x00
}


void Set_Display_Offset(unsigned char d)
{
        Write_Command(0xA2);                        // Set Display Offset
        Write_Command(d);                        //   Default => 0x00
}


void Set_Display_Mode(unsigned char d)
{
        Write_Command(0xA4|d);                        // Set Display Mode
                                                //   Default => 0xA4
                                                //     0xA4 (0x00) => Normal Display
                                                //     0xA5 (0x01) => Entire Display On, All Pixels Turn On at GS Level 15
                                                //     0xA6 (0x02) => Entire Display Off, All Pixels Turn Off
                                                //     0xA7 (0x03) => Inverse Display
}


void Set_Multiplex_Ratio(unsigned char d)
{
        Write_Command(0xA8);                        // Set Multiplex Ratio
        Write_Command(d);                        //   Default => 0x5F
}


void Set_Master_Config(unsigned char d)
{
        Write_Command(0xAD);                        // Set Master Configuration
        Write_Command(0x02|d);                        //   Default => 0x03
                                                //     0x02 (0x00) => Select External VCC Supply
                                                //     0x03 (0x01) => Select Internal DC/DC Voltage Converter
}


void Set_Display_On_Off(unsigned char d)
{
        Write_Command(0xAE|d);                        // Set Display On/Off
                                                //   Default => 0xAE
                                                //     0xAE (0x00) => Display Off
                                                //     0xAF (0x01) => Display On
}


void Set_Phase_Length(unsigned char d)
{
        Write_Command(0xB1);                        // Phase 1 & 2 Period Adjustment
        Write_Command(d);                        //   Default => 0x53 (5 Display Clocks [Phase 2] / 3 Display Clocks [Phase 1])
                                                //     D[3:0] => Phase 1 Period in 1~15 Display Clocks
                                                //     D[7:4] => Phase 2 Period in 1~15 Display Clocks
}


void Set_Frame_Frequency(unsigned char d)
{
        Write_Command(0xB2);                        // Set Frame Frequency (Row Period)
        Write_Command(d);                        //   Default => 0x25 (37 Display Clocks)
}


void Set_Display_Clock(unsigned char d)
{
        Write_Command(0xB3);                        // Display Clock Divider/Osciallator Frequency
        Write_Command(d);                        //   Default => 0x41
                                                //     D[3:0] => Display Clock Divider
                                                //     D[7:4] => Oscillator Frequency
}


void Set_Precharge_Compensation(unsigned char a, unsigned char b)
{
        Write_Command(0xB4);                        // Set Pre-Charge Compensation Level
        Write_Command(b);                        //   Default => 0x00 (No Compensation)

        if(a == 0x20)
        {
                Write_Command(0xB0);                // Set Pre-Charge Compensation Enable
                Write_Command(0x08|a);                //   Default => 0x08
                                                //     0x08 (0x00) => Disable Pre-Charge Compensation
                                                //     0x28 (0x20) => Enable Pre-Charge Compensation
        }
}


void Set_Precharge_Voltage(unsigned char d)
{
        Write_Command(0xBC);                        // Set Pre-Charge Voltage Level
        Write_Command(d);                        //   Default => 0x10 (Connect to VCOMH)
}


void Set_VCOMH(unsigned char d)
{
        Write_Command(0xBE);                        // Set Output Level High Voltage for COM Signal
        Write_Command(d);                        //   Default => 0x1D (0.81*VREF)
}


void Set_VSL(unsigned char d)
{
        Write_Command(0xBF);                        // Set Segment Low Voltage Level
        Write_Command(0x02|d);                        //   Default => 0x0E
                                                //     0x02 (0x00) => Keep VSL Pin Floating
                                                //     0x0E (0x0C) => Connect a Capacitor between VSL Pin & VSS
}


void Set_NOP()
{
        Write_Command(0xE3);                        // Command for No Operation
}


//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Global Variables
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#define Max_Column        0x3F                        // 128/2-1 (Total Columns Devided by 2)
#define Max_Row                0x3F                        // 64-1
#define        Brightness        0x7F


//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Patterns
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
unsigned char code Logo[][64]={                        // Univision Logo
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X21,0X32,0X33,0X12,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,0X20,0X62,0X56,0X64,0X66,0X63,0X56,0X22,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X41,0X56,0X63,0X56,0X72,0X56,0X62,0X66,0X64,0X25,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X40,0X66,0X66,0X66,0X66,0X67,0X66,0X66,0X66,0X66,0X66,0X25,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X66,0X63,0X56,0X62,0X46,0X61,0X46,0X61,0X66,0X65,0X56,0X66,0X04,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X63,0X66,0X64,0X56,0X63,0X46,0X61,0X46,0X61,0X66,0X65,0X56,0X66,0X56,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,0X30,0X66,0X66,0X66,0X66,0X66,0X66,0X66,0X66,0X66,0X66,0X66,0X66,0X66,0X66,0X05,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X62,0X67,0X66,0X64,0X56,0X63,0X46,0X62,0X47,0X52,0X66,0X65,0X66,0X66,0X66,0X56,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,0X10,0X66,0X26,0X67,0X40,0X36,0X40,0X17,0X40,0X16,0X30,0X46,0X70,0X26,0X64,0X15,0X66,0X04,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X50,0X66,0X66,0X66,0X65,0X66,0X64,0X46,0X63,0X56,0X63,0X66,0X65,0X66,0X66,0X66,0X66,0X36,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X64,0X66,0X66,0X66,0X66,0X66,0X66,0X56,0X63,0X57,0X63,0X66,0X66,0X66,0X66,0X66,0X66,0X76,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,0X10,0X46,0X66,0X35,0X56,0X31,0X26,0X40,0X06,0X20,0X06,0X20,0X26,0X50,0X16,0X63,0X25,0X66,0X64,0X04,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X40,0X56,0X66,0X46,0X67,0X41,0X36,0X40,0X06,0X20,0X06,0X20,0X36,0X60,0X38,0X85,0X25,0X66,0X64,0X16,0X32,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X60,0X66,0X66,0X66,0X66,0X67,0X66,0X65,0X56,0X63,0X56,0X63,0X66,0X76,0XDB,0XCD,0X67,0X66,0X66,0X56,0XD9,0XDD,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X63,0X66,0X66,0X66,0X66,0X54,0X37,0X50,0X06,0X20,0X06,0X20,0X26,0X61,0XDB,0XCD,0X56,0X66,0X66,0X66,0XDA,0XDD,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X43,0X36,0X65,0X14,0X46,0X20,0X06,0X20,0X03,0X10,0X03,0X00,0X05,0X20,0XDB,0XCD,0X03,0X65,0X41,0X16,0XDA,0XDD,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X22,0X02,0X00,0X00,0X00,0X00,0X00,0X10,0X22,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X02,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X22,0X10,0X66,0X76,0X66,0X66,0X66,0X53,0X36,0X40,0X05,0X20,0X06,0X10,0X26,0X50,0XDB,0XCD,0X46,0X66,0X66,0X66,0XDB,0XDD,0X00,0X00,0X00,0X00,0X00,0X00,0X40,0XBB,0X08,0X00,0X00,0X00,0X00,0X00,0X60,0XCC,0X05,0X00,0X00,0X00,0X00,0X00,0X20,0XDC,0X0A,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X52,0X02,0X20,0X66,0X66,0X66,0X66,0X66,0X66,0X66,0X64,0X36,0X51,0X36,0X41,0X56,0X64,0XDB,0XCD,0X67,0X66,0X66,0X66,0XDB,0XDD,0X00,0X00,0X00,0X00,0X00,0X00,0X40,0XBB,0X08,0X00,0X00,0X00,0X00,0X00,0X60,0XCC,0X05,0X00,0X00,0X00,0X00,0X00,0X20,0XDC,0X0A,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X40,0X1B,0X00,0X30,0X67,0X56,0X66,0X24,0X46,0X20,0X06,0X10,0X03,0X10,0X03,0X00,0X04,0X20,0XDB,0XCD,0X15,0X66,0X65,0X66,0XDB,0XDD,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X22,0X01,0X00,0X00,0X00,0X00,0X00,0X10,0X22,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X22,0X02,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0XB5,0X02,0X00,0X40,0X43,0X16,0X62,0X00,0X24,0X00,0X03,0X10,0X00,0X00,0X00,0X00,0X01,0X10,0XDB,0XCD,0X02,0X63,0X20,0X16,0XDA,0XDD,0X50,0X77,0X53,0X99,0X89,0X05,0X20,0X77,0X56,0X77,0X06,0X00,0X40,0X77,0X37,0X77,0X03,0X62,0X98,0X99,0X99,0X37,0X10,0X76,0X06,0X40,0X97,0X99,0X99,0X68,0X01,0X73,0X27,0X84,0X99,0X69,0X01,
        0X30,0X6D,0X00,0X00,0X40,0X67,0X56,0X66,0X25,0X46,0X20,0X06,0X20,0X03,0X10,0X03,0X00,0X04,0X20,0XDB,0XCD,0X25,0X66,0X65,0X76,0XDB,0XDD,0X90,0XDD,0XDA,0XDD,0XDD,0X8D,0X50,0XDD,0X5B,0XDD,0X2C,0X00,0XA0,0XDD,0X67,0XDD,0X16,0XDC,0XDD,0XDD,0XDD,0XCD,0X22,0XDC,0X0A,0XD6,0XDD,0XDD,0XDD,0XDD,0X0A,0XD5,0X8D,0XDD,0XDD,0XDD,0X0A,
        0XA1,0X3C,0X00,0X00,0X40,0X66,0X66,0X66,0X66,0X66,0X66,0X56,0X63,0X26,0X41,0X26,0X40,0X56,0X74,0XDB,0XCD,0X67,0X66,0X66,0X66,0XDB,0XDD,0X90,0XDD,0XAD,0X88,0XDA,0XDD,0X52,0XDD,0X0B,0XDC,0X5D,0X00,0XD2,0XCD,0X61,0XDD,0X46,0XDD,0X5B,0X44,0XA5,0XAA,0X22,0XDC,0X0A,0XDA,0XCD,0X89,0XA8,0XDD,0X2D,0XD5,0XDD,0X8B,0XA8,0XDD,0X3D,
        0XD3,0X2C,0X00,0X00,0X40,0X66,0X56,0X66,0X24,0X46,0X20,0X06,0X20,0X03,0X10,0X03,0X00,0X04,0X20,0XDB,0XCD,0X26,0X66,0X65,0X76,0XDB,0XDD,0X90,0XDD,0X09,0X00,0XA0,0XDD,0X54,0XDD,0X0B,0XD5,0XAD,0X00,0XD9,0X8D,0X60,0XDD,0X46,0XDD,0X6C,0X55,0X44,0X03,0X20,0XDC,0X0A,0XDB,0X2D,0X00,0X00,0XD9,0X4D,0XD5,0XCD,0X00,0X00,0XD8,0X5D,
        0XD5,0X3C,0X00,0X00,0X40,0X43,0X16,0X62,0X00,0X24,0X00,0X04,0X00,0X00,0X00,0X00,0X00,0X01,0X00,0XDA,0XDD,0X04,0X63,0X20,0X36,0XDC,0XCD,0X90,0XDD,0X07,0X00,0XA0,0XDD,0X55,0XDD,0X0B,0XB0,0XDD,0X22,0XDD,0X3D,0X60,0XDD,0X26,0XDC,0XDD,0XDD,0XDD,0XCD,0X23,0XDC,0X1A,0XDB,0X0C,0X00,0X00,0XD7,0X5D,0XD5,0X8D,0X00,0X00,0XD6,0X6D,
        0XD5,0X6D,0X00,0X00,0X30,0X66,0X56,0X66,0X24,0X46,0X20,0X06,0X20,0X03,0X10,0X03,0X00,0X04,0X20,0XDB,0XDD,0XBD,0XBB,0XA9,0XDC,0XDD,0XBD,0X90,0XDD,0X06,0X00,0X90,0XDD,0X55,0XDD,0X0B,0X70,0XDD,0X69,0XDD,0X0B,0X60,0XDD,0X06,0XA3,0XDD,0XDD,0XDD,0XDD,0X28,0XDC,0X0A,0XDB,0X0C,0X00,0X00,0XD8,0X5D,0XD5,0X7D,0X00,0X00,0XD6,0X6D,
        0XC3,0XCD,0X02,0X00,0X20,0X66,0X66,0X66,0X66,0X66,0X66,0X66,0X64,0X36,0X51,0X36,0X41,0X56,0X64,0XDA,0XDD,0XDD,0XDD,0XDD,0XDD,0XDD,0X7D,0X90,0XDD,0X06,0X00,0X90,0XDD,0X55,0XDD,0X0B,0X20,0XDD,0XBD,0XDD,0X03,0X60,0XDD,0X26,0X77,0X06,0X00,0X50,0XDD,0X29,0XDC,0X0A,0XDA,0X6D,0X22,0X32,0XDB,0X3D,0XD5,0X7D,0X00,0X00,0XD6,0X6D,
        0XA0,0XDD,0X1B,0X00,0X10,0X67,0X66,0X66,0X66,0X66,0X52,0X27,0X40,0X05,0X20,0X05,0X10,0X26,0X50,0XD7,0XDD,0XDD,0XDD,0XDD,0XDD,0XDD,0X1C,0X90,0XDD,0X06,0X00,0X90,0XDD,0X55,0XDD,0X0B,0X00,0XD9,0XDD,0XAD,0X00,0X60,0XDD,0X46,0XDD,0XBD,0X99,0XCA,0XDD,0X27,0XDC,0X0A,0XD9,0XDD,0XCC,0XDC,0XDD,0X1D,0XD5,0X7D,0X00,0X00,0XD6,0X6D,
        0X20,0XDB,0XAD,0X03,0X00,0X43,0X36,0X65,0X14,0X46,0X20,0X07,0X20,0X03,0X10,0X03,0X00,0X05,0X20,0X44,0XDB,0XDD,0XDD,0XDD,0XDD,0XBD,0X05,0X90,0XDD,0X06,0X00,0X90,0XDD,0X55,0XDD,0X0B,0X00,0XC2,0XDD,0X5D,0X00,0X60,0XDD,0X06,0XD8,0XDD,0XDD,0XDD,0XAD,0X22,0XDC,0X0A,0XB3,0XDD,0XDD,0XDD,0XCD,0X06,0XD5,0X7D,0X00,0X00,0XD6,0X6D,
        0X00,0XB2,0XDD,0X6C,0X00,0X62,0X66,0X66,0X66,0X66,0X54,0X36,0X51,0X06,0X20,0X06,0X20,0X26,0X51,0X36,0X75,0X98,0X99,0X99,0X89,0X02,0X00,0X10,0X11,0X00,0X00,0X10,0X11,0X00,0X11,0X01,0X00,0X10,0X11,0X01,0X00,0X00,0X11,0X00,0X10,0X54,0X75,0X35,0X01,0X00,0X11,0X01,0X00,0X42,0X55,0X55,0X13,0X00,0X10,0X01,0X00,0X00,0X10,0X01,
        0X00,0X20,0XD9,0XDD,0X4A,0X61,0X66,0X66,0X66,0X66,0X66,0X66,0X65,0X46,0X63,0X56,0X63,0X66,0X66,0X66,0X66,0X66,0X76,0X67,0X56,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X32,0X02,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X40,0XDC,0XDD,0X9C,0X57,0X66,0X46,0X66,0X41,0X36,0X40,0X06,0X20,0X06,0X20,0X36,0X61,0X16,0X63,0X25,0X66,0X65,0X16,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X20,0X67,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X60,0XCA,0XDD,0X8C,0X78,0X36,0X56,0X31,0X26,0X40,0X06,0X20,0X06,0X20,0X26,0X50,0X16,0X63,0X25,0X66,0X64,0X04,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X20,0X53,0X56,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X20,0XC8,0XDD,0XCD,0X9C,0X67,0X66,0X66,0X66,0X56,0X63,0X56,0X64,0X66,0X66,0X66,0X66,0X66,0X66,0X76,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X83,0X7B,0X13,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X10,0XA5,0XDC,0XDD,0XCD,0X9A,0X78,0X65,0X46,0X63,0X56,0X63,0X66,0X65,0X66,0X66,0X66,0X66,0X36,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X32,0X75,0X99,0X47,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X87,0X99,0XDD,0XDD,0XCD,0XBB,0X5A,0X42,0X17,0X30,0X46,0X71,0X26,0X64,0X15,0X66,0X04,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X42,0X97,0XBB,0X8A,0X25,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,0X62,0X66,0X87,0XA9,0XCB,0XDC,0XDD,0XDD,0XBC,0X99,0X9A,0X87,0X78,0X87,0X77,0X77,0X12,0X11,0X11,0X21,0X22,0X32,0X33,0X54,0X86,0XA9,0XBB,0X9A,0X68,0X13,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X30,0X67,0X66,0X66,0X76,0X87,0X98,0XBA,0XCC,0XDD,0XDD,0XDD,0XDD,0XCC,0XCC,0XCC,0XBB,0XBB,0XCB,0XCC,0XCC,0XCC,0XCD,0X9B,0X67,0X24,0X11,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X62,0X66,0X64,0X56,0X63,0X46,0X61,0X46,0X71,0X77,0X97,0X89,0XA9,0X9A,0X77,0X77,0X67,0X56,0X45,0X23,0X12,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X66,0X64,0X56,0X62,0X46,0X61,0X46,0X61,0X66,0X65,0X56,0X76,0X03,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X40,0X66,0X66,0X66,0X66,0X67,0X66,0X66,0X66,0X66,0X66,0X25,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X41,0X56,0X63,0X56,0X73,0X56,0X62,0X66,0X63,0X25,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X20,0X62,0X56,0X64,0X66,0X64,0X56,0X22,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X21,0X32,0X33,0X12,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,
};


unsigned char code Ascii_1[241][5]={                // Refer to "Times New Roman" Font Database...
                                                //   Basic Characters
        {0x00,0x00,0x00,0x00,0x00},                //
        {0x00,0x00,0x4F,0x00,0x00},                //   (  1)  ! - 0x0021 Exclamation Mark
        {0x00,0x07,0x00,0x07,0x00},                //   (  2)  " - 0x0022 Quotation Mark
        {0x14,0x7F,0x14,0x7F,0x14},                //   (  3)  # - 0x0023 Number Sign
        {0x24,0x2A,0x7F,0x2A,0x12},                //   (  4)  $ - 0x0024 Dollar Sign
        {0x23,0x13,0x08,0x64,0x62},                //   (  5)  % - 0x0025 Percent Sign
        {0x36,0x49,0x55,0x22,0x50},                //   (  6)  & - 0x0026 Ampersand
        {0x00,0x05,0x03,0x00,0x00},                //   (  7)  ' - 0x0027 Apostrophe
        {0x00,0x1C,0x22,0x41,0x00},                //   (  8)  ( - 0x0028 Left Parenthesis
        {0x00,0x41,0x22,0x1C,0x00},                //   (  9)  ) - 0x0029 Right Parenthesis
        {0x14,0x08,0x3E,0x08,0x14},                //   ( 10)  * - 0x002A Asterisk
        {0x08,0x08,0x3E,0x08,0x08},                //   ( 11)  + - 0x002B Plus Sign
        {0x00,0x50,0x30,0x00,0x00},                //   ( 12)  , - 0x002C Comma
        {0x08,0x08,0x08,0x08,0x08},                //   ( 13)  - - 0x002D Hyphen-Minus
        {0x00,0x60,0x60,0x00,0x00},                //   ( 14)  . - 0x002E Full Stop
        {0x20,0x10,0x08,0x04,0x02},                //   ( 15)  / - 0x002F Solidus
        {0x3E,0x51,0x49,0x45,0x3E},                //   ( 16)  0 - 0x0030 Digit Zero
        {0x00,0x42,0x7F,0x40,0x00},                //   ( 17)  1 - 0x0031 Digit One
        {0x42,0x61,0x51,0x49,0x46},                //   ( 18)  2 - 0x0032 Digit Two
        {0x21,0x41,0x45,0x4B,0x31},                //   ( 19)  3 - 0x0033 Digit Three
        {0x18,0x14,0x12,0x7F,0x10},                //   ( 20)  4 - 0x0034 Digit Four
        {0x27,0x45,0x45,0x45,0x39},                //   ( 21)  5 - 0x0035 Digit Five
        {0x3C,0x4A,0x49,0x49,0x30},                //   ( 22)  6 - 0x0036 Digit Six
        {0x01,0x71,0x09,0x05,0x03},                //   ( 23)  7 - 0x0037 Digit Seven
        {0x36,0x49,0x49,0x49,0x36},                //   ( 24)  8 - 0x0038 Digit Eight
        {0x06,0x49,0x49,0x29,0x1E},                //   ( 25)  9 - 0x0039 Dight Nine
        {0x00,0x36,0x36,0x00,0x00},                //   ( 26)  : - 0x003A Colon
        {0x00,0x56,0x36,0x00,0x00},                //   ( 27)  ; - 0x003B Semicolon
        {0x08,0x14,0x22,0x41,0x00},                //   ( 28)  < - 0x003C Less-Than Sign
        {0x14,0x14,0x14,0x14,0x14},                //   ( 29)  = - 0x003D Equals Sign
        {0x00,0x41,0x22,0x14,0x08},                //   ( 30)  > - 0x003E Greater-Than Sign
        {0x02,0x01,0x51,0x09,0x06},                //   ( 31)  ? - 0x003F Question Mark
        {0x32,0x49,0x79,0x41,0x3E},                //   ( 32)  @ - 0x0040 Commercial At
        {0x7E,0x11,0x11,0x11,0x7E},                //   ( 33)  A - 0x0041 Latin Capital Letter A
        {0x7F,0x49,0x49,0x49,0x36},                //   ( 34)  B - 0x0042 Latin Capital Letter B
        {0x3E,0x41,0x41,0x41,0x22},                //   ( 35)  C - 0x0043 Latin Capital Letter C
        {0x7F,0x41,0x41,0x22,0x1C},                //   ( 36)  D - 0x0044 Latin Capital Letter D
        {0x7F,0x49,0x49,0x49,0x41},                //   ( 37)  E - 0x0045 Latin Capital Letter E
        {0x7F,0x09,0x09,0x09,0x01},                //   ( 38)  F - 0x0046 Latin Capital Letter F
        {0x3E,0x41,0x49,0x49,0x7A},                //   ( 39)  G - 0x0047 Latin Capital Letter G
        {0x7F,0x08,0x08,0x08,0x7F},                //   ( 40)  H - 0x0048 Latin Capital Letter H
        {0x00,0x41,0x7F,0x41,0x00},                //   ( 41)  I - 0x0049 Latin Capital Letter I
        {0x20,0x40,0x41,0x3F,0x01},                //   ( 42)  J - 0x004A Latin Capital Letter J
        {0x7F,0x08,0x14,0x22,0x41},                //   ( 43)  K - 0x004B Latin Capital Letter K
        {0x7F,0x40,0x40,0x40,0x40},                //   ( 44)  L - 0x004C Latin Capital Letter L
        {0x7F,0x02,0x0C,0x02,0x7F},                //   ( 45)  M - 0x004D Latin Capital Letter M
        {0x7F,0x04,0x08,0x10,0x7F},                //   ( 46)  N - 0x004E Latin Capital Letter N
        {0x3E,0x41,0x41,0x41,0x3E},                //   ( 47)  O - 0x004F Latin Capital Letter O
        {0x7F,0x09,0x09,0x09,0x06},                //   ( 48)  P - 0x0050 Latin Capital Letter P
        {0x3E,0x41,0x51,0x21,0x5E},                //   ( 49)  Q - 0x0051 Latin Capital Letter Q
        {0x7F,0x09,0x19,0x29,0x46},                //   ( 50)  R - 0x0052 Latin Capital Letter R
        {0x46,0x49,0x49,0x49,0x31},                //   ( 51)  S - 0x0053 Latin Capital Letter S
        {0x01,0x01,0x7F,0x01,0x01},                //   ( 52)  T - 0x0054 Latin Capital Letter T
        {0x3F,0x40,0x40,0x40,0x3F},                //   ( 53)  U - 0x0055 Latin Capital Letter U
        {0x1F,0x20,0x40,0x20,0x1F},                //   ( 54)  V - 0x0056 Latin Capital Letter V
        {0x3F,0x40,0x38,0x40,0x3F},                //   ( 55)  W - 0x0057 Latin Capital Letter W
        {0x63,0x14,0x08,0x14,0x63},                //   ( 56)  X - 0x0058 Latin Capital Letter X
        {0x07,0x08,0x70,0x08,0x07},                //   ( 57)  Y - 0x0059 Latin Capital Letter Y
        {0x61,0x51,0x49,0x45,0x43},                //   ( 58)  Z - 0x005A Latin Capital Letter Z
        {0x00,0x7F,0x41,0x41,0x00},                //   ( 59)  [ - 0x005B Left Square Bracket
        {0x02,0x04,0x08,0x10,0x20},                //   ( 60)  \ - 0x005C Reverse Solidus
        {0x00,0x41,0x41,0x7F,0x00},                //   ( 61)  ] - 0x005D Right Square Bracket
        {0x04,0x02,0x01,0x02,0x04},                //   ( 62)  ^ - 0x005E Circumflex Accent
        {0x40,0x40,0x40,0x40,0x40},                //   ( 63)  _ - 0x005F Low Line
        {0x01,0x02,0x04,0x00,0x00},                //   ( 64)  ` - 0x0060 Grave Accent
        {0x20,0x54,0x54,0x54,0x78},                //   ( 65)  a - 0x0061 Latin Small Letter A
        {0x7F,0x48,0x44,0x44,0x38},                //   ( 66)  b - 0x0062 Latin Small Letter B
        {0x38,0x44,0x44,0x44,0x20},                //   ( 67)  c - 0x0063 Latin Small Letter C
        {0x38,0x44,0x44,0x48,0x7F},                //   ( 68)  d - 0x0064 Latin Small Letter D
        {0x38,0x54,0x54,0x54,0x18},                //   ( 69)  e - 0x0065 Latin Small Letter E
        {0x08,0x7E,0x09,0x01,0x02},                //   ( 70)  f - 0x0066 Latin Small Letter F
        {0x06,0x49,0x49,0x49,0x3F},                //   ( 71)  g - 0x0067 Latin Small Letter G
        {0x7F,0x08,0x04,0x04,0x78},                //   ( 72)  h - 0x0068 Latin Small Letter H
        {0x00,0x44,0x7D,0x40,0x00},                //   ( 73)  i - 0x0069 Latin Small Letter I
        {0x20,0x40,0x44,0x3D,0x00},                //   ( 74)  j - 0x006A Latin Small Letter J
        {0x7F,0x10,0x28,0x44,0x00},                //   ( 75)  k - 0x006B Latin Small Letter K
        {0x00,0x41,0x7F,0x40,0x00},                //   ( 76)  l - 0x006C Latin Small Letter L
        {0x7C,0x04,0x18,0x04,0x7C},                //   ( 77)  m - 0x006D Latin Small Letter M
        {0x7C,0x08,0x04,0x04,0x78},                //   ( 78)  n - 0x006E Latin Small Letter N
        {0x38,0x44,0x44,0x44,0x38},                //   ( 79)  o - 0x006F Latin Small Letter O
        {0x7C,0x14,0x14,0x14,0x08},                //   ( 80)  p - 0x0070 Latin Small Letter P
        {0x08,0x14,0x14,0x18,0x7C},                //   ( 81)  q - 0x0071 Latin Small Letter Q
        {0x7C,0x08,0x04,0x04,0x08},                //   ( 82)  r - 0x0072 Latin Small Letter R
        {0x48,0x54,0x54,0x54,0x20},                //   ( 83)  s - 0x0073 Latin Small Letter S
        {0x04,0x3F,0x44,0x40,0x20},                //   ( 84)  t - 0x0074 Latin Small Letter T
        {0x3C,0x40,0x40,0x20,0x7C},                //   ( 85)  u - 0x0075 Latin Small Letter U
        {0x1C,0x20,0x40,0x20,0x1C},                //   ( 86)  v - 0x0076 Latin Small Letter V
        {0x3C,0x40,0x30,0x40,0x3C},                //   ( 87)  w - 0x0077 Latin Small Letter W
        {0x44,0x28,0x10,0x28,0x44},                //   ( 88)  x - 0x0078 Latin Small Letter X
        {0x0C,0x50,0x50,0x50,0x3C},                //   ( 89)  y - 0x0079 Latin Small Letter Y
        {0x44,0x64,0x54,0x4C,0x44},                //   ( 90)  z - 0x007A Latin Small Letter Z
        {0x00,0x08,0x36,0x41,0x00},                //   ( 91)  { - 0x007B Left Curly Bracket
        {0x00,0x00,0x7F,0x00,0x00},                //   ( 92)  | - 0x007C Vertical Line
        {0x00,0x41,0x36,0x08,0x00},                //   ( 93)  } - 0x007D Right Curly Bracket
        {0x02,0x01,0x02,0x04,0x02},                //   ( 94)  ~ - 0x007E Tilde
        {0x3E,0x55,0x55,0x41,0x22},                //   ( 95)  C - 0x0080 <Control>
        {0x00,0x00,0x00,0x00,0x00},                //   ( 96)    - 0x00A0 No-Break Space
        {0x00,0x00,0x79,0x00,0x00},                //   ( 97)  ! - 0x00A1 Inverted Exclamation Mark
        {0x18,0x24,0x74,0x2E,0x24},                //   ( 98)  c - 0x00A2 Cent Sign
        {0x48,0x7E,0x49,0x42,0x40},                //   ( 99)  L - 0x00A3 Pound Sign
        {0x5D,0x22,0x22,0x22,0x5D},                //   (100)  o - 0x00A4 Currency Sign
        {0x15,0x16,0x7C,0x16,0x15},                //   (101)  Y - 0x00A5 Yen Sign
        {0x00,0x00,0x77,0x00,0x00},                //   (102)  | - 0x00A6 Broken Bar
        {0x0A,0x55,0x55,0x55,0x28},                //   (103)    - 0x00A7 Section Sign
        {0x00,0x01,0x00,0x01,0x00},                //   (104)  " - 0x00A8 Diaeresis
        {0x00,0x0A,0x0D,0x0A,0x04},                //   (105)    - 0x00AA Feminine Ordinal Indicator
        {0x08,0x14,0x2A,0x14,0x22},                //   (106) << - 0x00AB Left-Pointing Double Angle Quotation Mark
        {0x04,0x04,0x04,0x04,0x1C},                //   (107)    - 0x00AC Not Sign
        {0x00,0x08,0x08,0x08,0x00},                //   (108)  - - 0x00AD Soft Hyphen
        {0x01,0x01,0x01,0x01,0x01},                //   (109)    - 0x00AF Macron
        {0x00,0x02,0x05,0x02,0x00},                //   (110)    - 0x00B0 Degree Sign
        {0x44,0x44,0x5F,0x44,0x44},                //   (111) +- - 0x00B1 Plus-Minus Sign
        {0x00,0x00,0x04,0x02,0x01},                //   (112)  ` - 0x00B4 Acute Accent
        {0x7E,0x20,0x20,0x10,0x3E},                //   (113)  u - 0x00B5 Micro Sign
        {0x06,0x0F,0x7F,0x00,0x7F},                //   (114)    - 0x00B6 Pilcrow Sign
        {0x00,0x18,0x18,0x00,0x00},                //   (115)  . - 0x00B7 Middle Dot
        {0x00,0x40,0x50,0x20,0x00},                //   (116)    - 0x00B8 Cedilla
        {0x00,0x0A,0x0D,0x0A,0x00},                //   (117)    - 0x00BA Masculine Ordinal Indicator
        {0x22,0x14,0x2A,0x14,0x08},                //   (118) >> - 0x00BB Right-Pointing Double Angle Quotation Mark
        {0x17,0x08,0x34,0x2A,0x7D},                //   (119) /4 - 0x00BC Vulgar Fraction One Quarter
        {0x17,0x08,0x04,0x6A,0x59},                //   (120) /2 - 0x00BD Vulgar Fraction One Half
        {0x30,0x48,0x45,0x40,0x20},                //   (121)  ? - 0x00BF Inverted Question Mark
        {0x70,0x29,0x26,0x28,0x70},                //   (122) `A - 0x00C0 Latin Capital Letter A with Grave
        {0x70,0x28,0x26,0x29,0x70},                //   (123) 'A - 0x00C1 Latin Capital Letter A with Acute
        {0x70,0x2A,0x25,0x2A,0x70},                //   (124) ^A - 0x00C2 Latin Capital Letter A with Circumflex
        {0x72,0x29,0x26,0x29,0x70},                //   (125) ~A - 0x00C3 Latin Capital Letter A with Tilde
        {0x70,0x29,0x24,0x29,0x70},                //   (126) "A - 0x00C4 Latin Capital Letter A with Diaeresis
        {0x70,0x2A,0x2D,0x2A,0x70},                //   (127)  A - 0x00C5 Latin Capital Letter A with Ring Above
        {0x7E,0x11,0x7F,0x49,0x49},                //   (128) AE - 0x00C6 Latin Capital Letter Ae
        {0x0E,0x51,0x51,0x71,0x11},                //   (129)  C - 0x00C7 Latin Capital Letter C with Cedilla
        {0x7C,0x55,0x56,0x54,0x44},                //   (130) `E - 0x00C8 Latin Capital Letter E with Grave
        {0x7C,0x55,0x56,0x54,0x44},                //   (131) 'E - 0x00C9 Latin Capital Letter E with Acute
        {0x7C,0x56,0x55,0x56,0x44},                //   (132) ^E - 0x00CA Latin Capital Letter E with Circumflex
        {0x7C,0x55,0x54,0x55,0x44},                //   (133) "E - 0x00CB Latin Capital Letter E with Diaeresis
        {0x00,0x45,0x7E,0x44,0x00},                //   (134) `I - 0x00CC Latin Capital Letter I with Grave
        {0x00,0x44,0x7E,0x45,0x00},                //   (135) 'I - 0x00CD Latin Capital Letter I with Acute
        {0x00,0x46,0x7D,0x46,0x00},                //   (136) ^I - 0x00CE Latin Capital Letter I with Circumflex
        {0x00,0x45,0x7C,0x45,0x00},                //   (137) "I - 0x00CF Latin Capital Letter I with Diaeresis
        {0x7F,0x49,0x49,0x41,0x3E},                //   (138)  D - 0x00D0 Latin Capital Letter Eth
        {0x7C,0x0A,0x11,0x22,0x7D},                //   (139) ~N - 0x00D1 Latin Capital Letter N with Tilde
        {0x38,0x45,0x46,0x44,0x38},                //   (140) `O - 0x00D2 Latin Capital Letter O with Grave
        {0x38,0x44,0x46,0x45,0x38},                //   (141) 'O - 0x00D3 Latin Capital Letter O with Acute
        {0x38,0x46,0x45,0x46,0x38},                //   (142) ^O - 0x00D4 Latin Capital Letter O with Circumflex
        {0x38,0x46,0x45,0x46,0x39},                //   (143) ~O - 0x00D5 Latin Capital Letter O with Tilde
        {0x38,0x45,0x44,0x45,0x38},                //   (144) "O - 0x00D6 Latin Capital Letter O with Diaeresis
        {0x22,0x14,0x08,0x14,0x22},                //   (145)  x - 0x00D7 Multiplcation Sign
        {0x2E,0x51,0x49,0x45,0x3A},                //   (146)  O - 0x00D8 Latin Capital Letter O with Stroke
        {0x3C,0x41,0x42,0x40,0x3C},                //   (147) `U - 0x00D9 Latin Capital Letter U with Grave
        {0x3C,0x40,0x42,0x41,0x3C},                //   (148) 'U - 0x00DA Latin Capital Letter U with Acute
        {0x3C,0x42,0x41,0x42,0x3C},                //   (149) ^U - 0x00DB Latin Capital Letter U with Circumflex
        {0x3C,0x41,0x40,0x41,0x3C},                //   (150) "U - 0x00DC Latin Capital Letter U with Diaeresis
        {0x0C,0x10,0x62,0x11,0x0C},                //   (151) `Y - 0x00DD Latin Capital Letter Y with Acute
        {0x7F,0x12,0x12,0x12,0x0C},                //   (152)  P - 0x00DE Latin Capital Letter Thom
        {0x40,0x3E,0x01,0x49,0x36},                //   (153)  B - 0x00DF Latin Capital Letter Sharp S
        {0x20,0x55,0x56,0x54,0x78},                //   (154) `a - 0x00E0 Latin Small Letter A with Grave
        {0x20,0x54,0x56,0x55,0x78},                //   (155) 'a - 0x00E1 Latin Small Letter A with Acute
        {0x20,0x56,0x55,0x56,0x78},                //   (156) ^a - 0x00E2 Latin Small Letter A with Circumflex
        {0x20,0x55,0x56,0x55,0x78},                //   (157) ~a - 0x00E3 Latin Small Letter A with Tilde
        {0x20,0x55,0x54,0x55,0x78},                //   (158) "a - 0x00E4 Latin Small Letter A with Diaeresis
        {0x20,0x56,0x57,0x56,0x78},                //   (159)  a - 0x00E5 Latin Small Letter A with Ring Above
        {0x24,0x54,0x78,0x54,0x58},                //   (160) ae - 0x00E6 Latin Small Letter Ae
        {0x0C,0x52,0x52,0x72,0x13},                //   (161)  c - 0x00E7 Latin Small Letter c with Cedilla
        {0x38,0x55,0x56,0x54,0x18},                //   (162) `e - 0x00E8 Latin Small Letter E with Grave
        {0x38,0x54,0x56,0x55,0x18},                //   (163) 'e - 0x00E9 Latin Small Letter E with Acute
        {0x38,0x56,0x55,0x56,0x18},                //   (164) ^e - 0x00EA Latin Small Letter E with Circumflex
        {0x38,0x55,0x54,0x55,0x18},                //   (165) "e - 0x00EB Latin Small Letter E with Diaeresis
        {0x00,0x49,0x7A,0x40,0x00},                //   (166) `i - 0x00EC Latin Small Letter I with Grave
        {0x00,0x48,0x7A,0x41,0x00},                //   (167) 'i - 0x00ED Latin Small Letter I with Acute
        {0x00,0x4A,0x79,0x42,0x00},                //   (168) ^i - 0x00EE Latin Small Letter I with Circumflex
        {0x00,0x4A,0x78,0x42,0x00},                //   (169) "i - 0x00EF Latin Small Letter I with Diaeresis
        {0x31,0x4A,0x4E,0x4A,0x30},                //   (170)    - 0x00F0 Latin Small Letter Eth
        {0x7A,0x11,0x0A,0x09,0x70},                //   (171) ~n - 0x00F1 Latin Small Letter N with Tilde
        {0x30,0x49,0x4A,0x48,0x30},                //   (172) `o - 0x00F2 Latin Small Letter O with Grave
        {0x30,0x48,0x4A,0x49,0x30},                //   (173) 'o - 0x00F3 Latin Small Letter O with Acute
        {0x30,0x4A,0x49,0x4A,0x30},                //   (174) ^o - 0x00F4 Latin Small Letter O with Circumflex
        {0x30,0x4A,0x49,0x4A,0x31},                //   (175) ~o - 0x00F5 Latin Small Letter O with Tilde
        {0x30,0x4A,0x48,0x4A,0x30},                //   (176) "o - 0x00F6 Latin Small Letter O with Diaeresis
        {0x08,0x08,0x2A,0x08,0x08},                //   (177)  + - 0x00F7 Division Sign
        {0x38,0x64,0x54,0x4C,0x38},                //   (178)  o - 0x00F8 Latin Small Letter O with Stroke
        {0x38,0x41,0x42,0x20,0x78},                //   (179) `u - 0x00F9 Latin Small Letter U with Grave
        {0x38,0x40,0x42,0x21,0x78},                //   (180) 'u - 0x00FA Latin Small Letter U with Acute
        {0x38,0x42,0x41,0x22,0x78},                //   (181) ^u - 0x00FB Latin Small Letter U with Circumflex
        {0x38,0x42,0x40,0x22,0x78},                //   (182) "u - 0x00FC Latin Small Letter U with Diaeresis
        {0x0C,0x50,0x52,0x51,0x3C},                //   (183) 'y - 0x00FD Latin Small Letter Y with Acute
        {0x7E,0x14,0x14,0x14,0x08},                //   (184)  p - 0x00FE Latin Small Letter Thom
        {0x0C,0x51,0x50,0x51,0x3C},                //   (185) "y - 0x00FF Latin Small Letter Y with Diaeresis
        {0x1E,0x09,0x09,0x29,0x5E},                //   (186)  A - 0x0104 Latin Capital Letter A with Ogonek
        {0x08,0x15,0x15,0x35,0x4E},                //   (187)  a - 0x0105 Latin Small Letter A with Ogonek
        {0x38,0x44,0x46,0x45,0x20},                //   (188) 'C - 0x0106 Latin Capital Letter C with Acute
        {0x30,0x48,0x4A,0x49,0x20},                //   (189) 'c - 0x0107 Latin Small Letter C with Acute
        {0x38,0x45,0x46,0x45,0x20},                //   (190)  C - 0x010C Latin Capital Letter C with Caron
        {0x30,0x49,0x4A,0x49,0x20},                //   (191)  c - 0x010D Latin Small Letter C with Caron
        {0x7C,0x45,0x46,0x45,0x38},                //   (192)  D - 0x010E Latin Capital Letter D with Caron
        {0x20,0x50,0x50,0x7C,0x03},                //   (193) d' - 0x010F Latin Small Letter D with Caron
        {0x1F,0x15,0x15,0x35,0x51},                //   (194)  E - 0x0118 Latin Capital Letter E with Ogonek
        {0x0E,0x15,0x15,0x35,0x46},                //   (195)  e - 0x0119 Latin Small Letter E with Ogonek
        {0x7C,0x55,0x56,0x55,0x44},                //   (196)  E - 0x011A Latin Capital Letter E with Caron
        {0x38,0x55,0x56,0x55,0x18},                //   (197)  e - 0x011B Latin Small Letter E with Caron
        {0x00,0x44,0x7C,0x40,0x00},                //   (198)  i - 0x0131 Latin Small Letter Dotless I
        {0x7F,0x48,0x44,0x40,0x40},                //   (199)  L - 0x0141 Latin Capital Letter L with Stroke
        {0x00,0x49,0x7F,0x44,0x00},                //   (200)  l - 0x0142 Latin Small Letter L with Stroke
        {0x7C,0x08,0x12,0x21,0x7C},                //   (201) 'N - 0x0143 Latin Capital Letter N with Acute
        {0x78,0x10,0x0A,0x09,0x70},                //   (202) 'n - 0x0144 Latin Small Letter N with Acute
        {0x7C,0x09,0x12,0x21,0x7C},                //   (203)  N - 0x0147 Latin Capital Letter N with Caron
        {0x78,0x11,0x0A,0x09,0x70},                //   (204)  n - 0x0148 Latin Small Letter N with Caron
        {0x38,0x47,0x44,0x47,0x38},                //   (205) "O - 0x0150 Latin Capital Letter O with Double Acute
        {0x30,0x4B,0x48,0x4B,0x30},                //   (206) "o - 0x0151 Latin Small Letter O with Double Acute
        {0x3E,0x41,0x7F,0x49,0x49},                //   (207) OE - 0x0152 Latin Capital Ligature Oe
        {0x38,0x44,0x38,0x54,0x58},                //   (208) oe - 0x0153 Latin Small Ligature Oe
        {0x7C,0x15,0x16,0x35,0x48},                //   (209)  R - 0x0158 Latin Capital Letter R with Caron
        {0x78,0x11,0x0A,0x09,0x10},                //   (210)  r - 0x0159 Latin Small Letter R with Caron
        {0x48,0x54,0x56,0x55,0x20},                //   (211) 'S - 0x015A Latin Capital Letter S with Acute
        {0x20,0x48,0x56,0x55,0x20},                //   (212) 's - 0x015B Latin Small Letter S with Acute
        {0x48,0x55,0x56,0x55,0x20},                //   (213)  S - 0x0160 Latin Capital Letter S with Caron
        {0x20,0x49,0x56,0x55,0x20},                //   (214)  s - 0x0161 Latin Small Letter S with Caron
        {0x04,0x05,0x7E,0x05,0x04},                //   (215)  T - 0x0164 Latin Capital Letter T with Caron
        {0x08,0x3C,0x48,0x22,0x01},                //   (216) t' - 0x0165 Latin Small Letter T with Caron
        {0x3C,0x42,0x45,0x42,0x3C},                //   (217)  U - 0x016E Latin Capital Letter U with Ring Above
        {0x38,0x42,0x45,0x22,0x78},                //   (218)  u - 0x016F Latin Small Letter U with Ring Above
        {0x3C,0x43,0x40,0x43,0x3C},                //   (219) "U - 0x0170 Latin Capital Letter U with Double Acute
        {0x38,0x43,0x40,0x23,0x78},                //   (220) "u - 0x0171 Latin Small Letter U with Double Acute
        {0x0C,0x11,0x60,0x11,0x0C},                //   (221) "Y - 0x0178 Latin Capital Letter Y with Diaeresis
        {0x44,0x66,0x55,0x4C,0x44},                //   (222) 'Z - 0x0179 Latin Capital Letter Z with Acute
        {0x48,0x6A,0x59,0x48,0x00},                //   (223) 'z - 0x017A Latin Small Letter Z with Acute
        {0x44,0x64,0x55,0x4C,0x44},                //   (224)  Z - 0x017B Latin Capital Letter Z with Dot Above
        {0x48,0x68,0x5A,0x48,0x00},                //   (225)  z - 0x017C Latin Small Letter Z with Dot Above
        {0x44,0x65,0x56,0x4D,0x44},                //   (226)  Z - 0x017D Latin Capital Letter Z with Caron
        {0x48,0x69,0x5A,0x49,0x00},                //   (227)  z - 0x017E Latin Small Letter Z with Caron
        {0x00,0x02,0x01,0x02,0x00},                //   (228)  ^ - 0x02C6 Modifier Letter Circumflex Accent
        {0x00,0x01,0x02,0x01,0x00},                //   (229)    - 0x02C7 Caron
        {0x00,0x01,0x01,0x01,0x00},                //   (230)    - 0x02C9 Modifier Letter Macron
        {0x01,0x02,0x02,0x01,0x00},                //   (231)    - 0x02D8 Breve
        {0x00,0x00,0x01,0x00,0x00},                //   (232)    - 0x02D9 Dot Above
        {0x00,0x02,0x05,0x02,0x00},                //   (233)    - 0x02DA Ring Above
        {0x02,0x01,0x02,0x01,0x00},                //   (234)  ~ - 0x02DC Small Tilde
        {0x7F,0x05,0x15,0x3A,0x50},                //   (235) Pt - 0x20A7 Peseta Sign
        {0x3E,0x55,0x55,0x41,0x22},                //   (236)  C - 0x20AC Euro Sign
        {0x18,0x14,0x08,0x14,0x0C},                //   (237)    - 0x221E Infinity
        {0x44,0x4A,0x4A,0x51,0x51},                //   (238)  < - 0x2264 Less-Than or Equal to
        {0x51,0x51,0x4A,0x4A,0x44},                //   (239)  > - 0x2265 Greater-Than or Equal to
        {0x74,0x42,0x41,0x42,0x74},                //   (240)    - 0x2302 House
};


unsigned char code Ascii_2[108][5]={                // Refer to "Times New Roman" Font Database...
                                                //   Greek & Japanese Letters
        {0x00,0x00,0x00,0x00,0x00},                //
        {0x7E,0x11,0x11,0x11,0x7E},                //   (  1)  A - 0x0391 Greek Capital Letter Alpha
        {0x7F,0x49,0x49,0x49,0x36},                //   (  2)  B - 0x0392 Greek Capital Letter Beta
        {0x7F,0x02,0x01,0x01,0x03},                //   (  3)    - 0x0393 Greek Capital Letter Gamma
        {0x70,0x4E,0x41,0x4E,0x70},                //   (  4)    - 0x0394 Greek Capital Letter Delta
        {0x7F,0x49,0x49,0x49,0x41},                //   (  5)  E - 0x0395 Greek Capital Letter Epsilon
        {0x61,0x51,0x49,0x45,0x43},                //   (  6)  Z - 0x0396 Greek Capital Letter Zeta
        {0x7F,0x08,0x08,0x08,0x7F},                //   (  7)  H - 0x0397 Greek Capital Letter Eta
        {0x3E,0x49,0x49,0x49,0x3E},                //   (  8)    - 0x0398 Greek Capital Letter Theta
        {0x00,0x41,0x7F,0x41,0x00},                //   (  9)  I - 0x0399 Greek Capital Letter Iota
        {0x7F,0x08,0x14,0x22,0x41},                //   ( 10)  K - 0x039A Greek Capital Letter Kappa
        {0x70,0x0E,0x01,0x0E,0x70},                //   ( 11)    - 0x039B Greek Capital Letter Lamda
        {0x7F,0x02,0x0C,0x02,0x7F},                //   ( 12)  M - 0x039C Greek Capital Letter Mu
        {0x7F,0x04,0x08,0x10,0x7F},                //   ( 13)  N - 0x039D Greek Capital Letter Nu
        {0x63,0x5D,0x49,0x5D,0x63},                //   ( 14)    - 0x039E Greek Capital Letter Xi
        {0x3E,0x41,0x41,0x41,0x3E},                //   ( 15)  O - 0x039F Greek Capital Letter Omicron
        {0x41,0x3F,0x01,0x3F,0x41},                //   ( 16)    - 0x03A0 Greek Capital Letter Pi
        {0x7F,0x09,0x09,0x09,0x06},                //   ( 17)  P - 0x03A1 Greek Capital Letter Rho
        {0x63,0x55,0x49,0x41,0x41},                //   ( 18)    - 0x03A3 Greek Capital Letter Sigma
        {0x01,0x01,0x7F,0x01,0x01},                //   ( 19)  T - 0x03A4 Greek Capital Letter Tau
        {0x03,0x01,0x7E,0x01,0x03},                //   ( 20)    - 0x03A5 Greek Capital Letter Upsilon
        {0x08,0x55,0x7F,0x55,0x08},                //   ( 21)    - 0x03A6 Greek Capital Letter Phi
        {0x63,0x14,0x08,0x14,0x63},                //   ( 22)  X - 0x03A7 Greek Capital Letter Chi
        {0x07,0x48,0x7F,0x48,0x07},                //   ( 23)    - 0x03A8 Greek Capital Letter Psi
        {0x5E,0x61,0x01,0x61,0x5E},                //   ( 24)    - 0x03A9 Greek Capital Letter Omega
        {0x38,0x44,0x48,0x30,0x4C},                //   ( 25)  a - 0x03B1 Greek Small Letter Alpha
        {0x7C,0x2A,0x2A,0x2A,0x14},                //   ( 26)  B - 0x03B2 Greek Small Letter Beta
        {0x44,0x38,0x04,0x04,0x08},                //   ( 27)  r - 0x03B3 Greek Small Letter Gamma
        {0x30,0x4B,0x4D,0x59,0x30},                //   ( 28)    - 0x03B4 Greek Small Letter Delta
        {0x28,0x54,0x54,0x44,0x20},                //   ( 29)    - 0x03B5 Greek Small Letter Epsilon
        {0x00,0x18,0x55,0x52,0x22},                //   ( 30)    - 0x03B6 Greek Small Letter Zeta
        {0x3E,0x04,0x02,0x02,0x7C},                //   ( 31)  n - 0x03B7 Greek Small Letter Eta
        {0x3C,0x4A,0x4A,0x4A,0x3C},                //   ( 32)    - 0x03B8 Greek Small Letter Theta
        {0x00,0x3C,0x40,0x20,0x00},                //   ( 33)  i - 0x03B9 Greek Small Letter Iota
        {0x7C,0x10,0x28,0x44,0x40},                //   ( 34)  k - 0x03BA Greek Small Letter Kappa
        {0x41,0x32,0x0C,0x30,0x40},                //   ( 35)    - 0x03BB Greek Small Letter Lamda
        {0x7E,0x20,0x20,0x10,0x3E},                //   ( 36)  u - 0x03BC Greek Small Letter Mu
        {0x1C,0x20,0x40,0x20,0x1C},                //   ( 37)  v - 0x03BD Greek Small Letter Nu
        {0x14,0x2B,0x2A,0x2A,0x60},                //   ( 38)    - 0x03BE Greek Small Letter Xi
        {0x38,0x44,0x44,0x44,0x38},                //   ( 39)  o - 0x03BF Greek Small Letter Omicron
        {0x44,0x3C,0x04,0x7C,0x44},                //   ( 40)    - 0x03C0 Greek Small Letter Pi
        {0x70,0x28,0x24,0x24,0x18},                //   ( 41)  p - 0x03C1 Greek Small Letter Rho
        {0x0C,0x12,0x12,0x52,0x60},                //   ( 42)    - 0x03C2 Greek Small Letter Final Sigma
        {0x38,0x44,0x4C,0x54,0x24},                //   ( 43)    - 0x03C3 Greek Small Letter Sigma
        {0x04,0x3C,0x44,0x20,0x00},                //   ( 44)  t - 0x03C4 Greek Small Letter Tau
        {0x3C,0x40,0x40,0x20,0x1C},                //   ( 45)  v - 0x03C5 Greek Small Letter Upsilon
        {0x18,0x24,0x7E,0x24,0x18},                //   ( 46)    - 0x03C6 Greek Small Letter Phi
        {0x44,0x28,0x10,0x28,0x44},                //   ( 47)  x - 0x03C7 Greek Small Letter Chi
        {0x0C,0x10,0x7E,0x10,0x0C},                //   ( 48)    - 0x03C8 Greek Small Letter Psi
        {0x38,0x44,0x30,0x44,0x38},                //   ( 49)  w - 0x03C9 Greek Small Letter Omega
        {0x0A,0x0A,0x4A,0x2A,0x1E},                //   ( 50)    - 0xFF66 Katakana Letter Wo
        {0x04,0x44,0x34,0x14,0x0C},                //   ( 51)    - 0xFF67 Katakana Letter Small A
        {0x20,0x10,0x78,0x04,0x00},                //   ( 52)    - 0xFF68 Katakana Letter Small I
        {0x18,0x08,0x4C,0x48,0x38},                //   ( 53)    - 0xFF69 Katakana Letter Small U
        {0x48,0x48,0x78,0x48,0x48},                //   ( 54)    - 0xFF6A Katakana Letter Small E
        {0x48,0x28,0x18,0x7C,0x08},                //   ( 55)    - 0xFF6B Katakana Letter Small O
        {0x08,0x7C,0x08,0x28,0x18},                //   ( 56)    - 0xFF6C Katakana Letter Small Ya
        {0x40,0x48,0x48,0x78,0x40},                //   ( 57)    - 0xFF6D Katakana Letter Small Yu
        {0x54,0x54,0x54,0x7C,0x00},                //   ( 58)    - 0xFF6E Katakana Letter Small Yo
        {0x18,0x00,0x58,0x40,0x38},                //   ( 59)    - 0xFF6F Katakana Letter Small Tu
        {0x08,0x08,0x08,0x08,0x08},                //   ( 60)    - 0xFF70 Katakana-Hiragana Prolonged Sound Mark
        {0x01,0x41,0x3D,0x09,0x07},                //   ( 61)    - 0xFF71 Katakana Letter A
        {0x10,0x08,0x7C,0x02,0x01},                //   ( 62)    - 0xFF72 Katakana Letter I
        {0x0E,0x02,0x43,0x22,0x1E},                //   ( 63)    - 0xFF73 Katakana Letter U
        {0x42,0x42,0x7E,0x42,0x42},                //   ( 64)    - 0xFF74 Katakana Letter E
        {0x22,0x12,0x0A,0x7F,0x02},                //   ( 65)    - 0xFF75 Katakana Letter O
        {0x42,0x3F,0x02,0x42,0x3E},                //   ( 66)    - 0xFF76 Katakana Letter Ka
        {0x0A,0x0A,0x7F,0x0A,0x0A},                //   ( 67)    - 0xFF77 Katakana Letter Ki
        {0x08,0x46,0x42,0x22,0x1E},                //   ( 68)    - 0xFF78 Katakana Letter Ku
        {0x04,0x03,0x42,0x3E,0x02},                //   ( 69)    - 0xFF79 Katakana Letter Ke
        {0x42,0x42,0x42,0x42,0x7E},                //   ( 70)    - 0xFF7A Katakana Letter Ko
        {0x02,0x4F,0x22,0x1F,0x02},                //   ( 71)    - 0xFF7B Katakana Letter Sa
        {0x4A,0x4A,0x40,0x20,0x1C},                //   ( 72)    - 0xFF7C Katakana Letter Shi
        {0x42,0x22,0x12,0x2A,0x46},                //   ( 73)    - 0xFF7D Katakana Letter Su
        {0x02,0x3F,0x42,0x4A,0x46},                //   ( 74)    - 0xFF7E Katakana Letter Se
        {0x06,0x48,0x40,0x20,0x1E},                //   ( 75)    - 0xFF7F Katakana Letter So
        {0x08,0x46,0x4A,0x32,0x1E},                //   ( 76)    - 0xFF80 Katakana Letter Ta
        {0x0A,0x4A,0x3E,0x09,0x08},                //   ( 77)    - 0xFF81 Katakana Letter Chi
        {0x0E,0x00,0x4E,0x20,0x1E},                //   ( 78)    - 0xFF82 Katakana Letter Tsu
        {0x04,0x45,0x3D,0x05,0x04},                //   ( 79)    - 0xFF83 Katakana Letter Te
        {0x00,0x7F,0x08,0x10,0x00},                //   ( 80)    - 0xFF84 Katakana Letter To
        {0x44,0x24,0x1F,0x04,0x04},                //   ( 81)    - 0xFF85 Katakana Letter Na
        {0x40,0x42,0x42,0x42,0x40},                //   ( 82)    - 0xFF86 Katakana Letter Ni
        {0x42,0x2A,0x12,0x2A,0x06},                //   ( 83)    - 0xFF87 Katakana Letter Nu
        {0x22,0x12,0x7B,0x16,0x22},                //   ( 84)    - 0xFF88 Katakana Letter Ne
        {0x00,0x40,0x20,0x1F,0x00},                //   ( 85)    - 0xFF89 Katakana Letter No
        {0x78,0x00,0x02,0x04,0x78},                //   ( 86)    - 0xFF8A Katakana Letter Ha
        {0x3F,0x44,0x44,0x44,0x44},                //   ( 87)    - 0xFF8B Katakana Letter Hi
        {0x02,0x42,0x42,0x22,0x1E},                //   ( 88)    - 0xFF8C Katakana Letter Fu
        {0x04,0x02,0x04,0x08,0x30},                //   ( 89)    - 0xFF8D Katakana Letter He
        {0x32,0x02,0x7F,0x02,0x32},                //   ( 90)    - 0xFF8E Katakana Letter Ho
        {0x02,0x12,0x22,0x52,0x0E},                //   ( 91)    - 0xFF8F Katakana Letter Ma
        {0x00,0x2A,0x2A,0x2A,0x40},                //   ( 92)    - 0xFF90 Katakana Letter Mi
        {0x38,0x24,0x22,0x20,0x70},                //   ( 93)    - 0xFF91 Katakana Letter Mu
        {0x40,0x28,0x10,0x28,0x06},                //   ( 94)    - 0xFF92 Katakana Letter Me
        {0x0A,0x3E,0x4A,0x4A,0x4A},                //   ( 95)    - 0xFF93 Katakana Letter Mo
        {0x04,0x7F,0x04,0x14,0x0C},                //   ( 96)    - 0xFF94 Katakana Letter Ya
        {0x40,0x42,0x42,0x7E,0x40},                //   ( 97)    - 0xFF95 Katakana Letter Yu
        {0x4A,0x4A,0x4A,0x4A,0x7E},                //   ( 98)    - 0xFF96 Katakana Letter Yo
        {0x04,0x05,0x45,0x25,0x1C},                //   ( 99)    - 0xFF97 Katakana Letter Ra
        {0x0F,0x40,0x20,0x1F,0x00},                //   (100)    - 0xFF98 Katakana Letter Ri
        {0x7C,0x00,0x7E,0x40,0x30},                //   (101)    - 0xFF99 Katakana Letter Ru
        {0x7E,0x40,0x20,0x10,0x08},                //   (102)    - 0xFF9A Katakana Letter Re
        {0x7E,0x42,0x42,0x42,0x7E},                //   (103)    - 0xFF9B Katakana Letter Ro
        {0x0E,0x02,0x42,0x22,0x1E},                //   (104)    - 0xFF9C Katakana Letter Wa
        {0x42,0x42,0x40,0x20,0x18},                //   (105)    - 0xFF9D Katakana Letter N
        {0x02,0x04,0x01,0x02,0x00},                //   (106)    - 0xFF9E Katakana Voiced Sound Mark
        {0x07,0x05,0x07,0x00,0x00},                //   (107)    - 0xFF9F Katakana Semi-Voiced Sound Mark
};


//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Graphic Acceleration
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void GA_Option(unsigned char d)
{
        Write_Command(0x23);                        // Graphic Acceleration Command Options
        Write_Command(d);                        //   Default => 0x01
                                                //     Enable Fill Rectangle
                                                //     Disable Wrap around in Horizontal Direction During Copying & Scrolling
                                                //     Disable Reverse Copy
}


void Draw_Rectangle(unsigned char a, unsigned char b, unsigned char c, unsigned char d, unsigned char e)
{
        Write_Command(0x24);                        // Draw Rectangle
        Write_Command(a);                        //   Column Address of Start
        Write_Command(c);                        //   Row Address of Start
        Write_Command(b);                        //   Column Address of End (Total Columns Devided by 2)
        Write_Command(d);                        //   Row Address of End
        Write_Command(e);                        //   Gray Scale Level
        uDelay(200);
}


void Copy(unsigned char a, unsigned char b, unsigned char c, unsigned char d, unsigned char e, unsigned char f)
{
        Write_Command(0x25);                        // Copy
        Write_Command(a);                        //   Column Address of Start
        Write_Command(c);                        //   Row Address of Start
        Write_Command(b);                        //   Column Address of End (Total Columns Devided by 2)
        Write_Command(d);                        //   Row Address of End
        Write_Command(e);                        //   Column Address of New Start
        Write_Command(f);                        //   Row Address of New Start
        uDelay(200);
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Show Regular Pattern (Full Screen)
//
//    a: Two Pixels Data
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Fill_RAM(unsigned char a)
{
        GA_Option(0x01);
        Draw_Rectangle(0x00,0x3F,0x00,0x5F,a);
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Show Regular Pattern (Partial or Full Screen)
//
//    a: Column Address of Start
//    b: Column Address of End (Total Columns Devided by 2)
//    c: Row Address of Start
//    d: Row Address of End
//    e: Two Pixels Data
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Fill_Block(unsigned char a, unsigned char b, unsigned char c, unsigned char d, unsigned char e)
{
        GA_Option(0x01);
        Draw_Rectangle(a,b,c,d,e);
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Show Checkboard (Full Screen)
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Checkerboard()
{
unsigned char i,j;
       
        Set_Column_Address(0x00,0x3F);
        Set_Row_Address(0x00,0x5F);

        for(i=0;i<40;i++)
        {
                for(j=0;j<64;j++)
                {
                        Write_Data(0xF0);
                }
                for(j=0;j<64;j++)
                {
                        Write_Data(0x0F);
                }
        }
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Show Gray Scale Bar (Full Screen)
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Grayscale()
{
        //   Level 16 => Column 1~8
                Fill_Block(0x00,0x03,0x00,0x3F,0xFF);

        //   Level 15 => Column 9~16
                Fill_Block(0x04,0x07,0x00,0x3F,0xEE);

        //   Level 14 => Column 17~24
                Fill_Block(0x08,0x0B,0x00,0x3F,0xDD);

        //   Level 13 => Column 25~32
                Fill_Block(0x0C,0x0F,0x00,0x3F,0xCC);

        //   Level 12 => Column 33~40
                Fill_Block(0x10,0x13,0x00,0x3F,0xBB);

        //   Level 11 => Column 41~48
                Fill_Block(0x14,0x17,0x00,0x3F,0xAA);

        //   Level 10 => Column 49~56
                Fill_Block(0x18,0x1B,0x00,0x3F,0x99);

        //   Level 9 => Column 57~64
                Fill_Block(0x1C,0x1F,0x00,0x3F,0x88);

        //   Level 8 => Column 65~72
                Fill_Block(0x20,0x23,0x00,0x3F,0x77);

        //   Level 7 => Column 73~80
                Fill_Block(0x24,0x27,0x00,0x3F,0x66);

        //   Level 6 => Column 81~88
                Fill_Block(0x28,0x2B,0x00,0x3F,0x55);

        //   Level 5 => Column 89~96
                Fill_Block(0x2C,0x2F,0x00,0x3F,0x44);

        //   Level 4 => Column 97~104
                Fill_Block(0x30,0x33,0x00,0x3F,0x33);

        //   Level 3 => Column 105~112
                Fill_Block(0x34,0x37,0x00,0x3F,0x22);

        //   Level 2 => Column 113~120
                Fill_Block(0x38,0x3B,0x00,0x3F,0x11);

        //   Level 1 => Column 121~128
                Fill_Block(0x3C,0x3F,0x00,0x3F,0x00);
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Show Frame (Full Screen)
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Frame()
{
        GA_Option(0x00);
        Draw_Rectangle(0x00,0x3F,0x00,0x3F,0xFF);
        Fill_Block(0x00,0x00,0x01,0x3E,0x0F);
        Fill_Block(0x3F,0x3F,0x01,0x3E,0xF0);
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Show Character (5x7)
//
//    a: Database
//    b: Ascii
//    c: Start X Address
//    d: Start Y Address
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Show_Font57(unsigned char a, unsigned char b, unsigned char c, unsigned char d)
{
unsigned char *Src_Pointer;
unsigned char i,Font,MSB,LSB;

        switch(a)
        {
                case 1:
                        Src_Pointer=&Ascii_1[(b-1)];
                        break;
                case 2:
                        Src_Pointer=&Ascii_2[(b-1)];
                        break;
        }

        Set_Remap_Format(0x54);
        Src_Pointer--;
        for(i=0;i<=4;i+=2)
        {
                LSB=*Src_Pointer;
                Src_Pointer++;
                if(i == 4)
                {
                        MSB=0x00;
                }
                else
                {
                        MSB=*Src_Pointer;
                        Src_Pointer++;
                }
                Set_Column_Address(c,c);
                Set_Row_Address(d,d+7);

                Font=((MSB&0x01)<<4)|(LSB&0x01);
                Font=Font|(Font<<1)|(Font<<2)|(Font<<3);
                Write_Data(Font);

                Font=((MSB&0x02)<<3)|((LSB&0x02)>>1);
                Font=Font|(Font<<1)|(Font<<2)|(Font<<3);
                Write_Data(Font);

                Font=((MSB&0x04)<<2)|((LSB&0x04)>>2);
                Font=Font|(Font<<1)|(Font<<2)|(Font<<3);
                Write_Data(Font);

                Font=((MSB&0x08)<<1)|((LSB&0x08)>>3);
                Font=Font|(Font<<1)|(Font<<2)|(Font<<3);
                Write_Data(Font);

                Font=((MSB&0x10)<<3)|((LSB&0x10)>>1);
                Font=Font|(Font>>1)|(Font>>2)|(Font>>3);
                Write_Data(Font);

                Font=((MSB&0x20)<<2)|((LSB&0x20)>>2);
                Font=Font|(Font>>1)|(Font>>2)|(Font>>3);
                Write_Data(Font);

                Font=((MSB&0x40)<<1)|((LSB&0x40)>>3);
                Font=Font|(Font>>1)|(Font>>2)|(Font>>3);
                Write_Data(Font);

                Font=(MSB&0x80)|((LSB&0x80)>>4);
                Font=Font|(Font>>1)|(Font>>2)|(Font>>3);
                Write_Data(Font);
                c++;
        }
        Set_Remap_Format(0x50);
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Show String
//
//    a: Database
//    b: Start X Address
//    c: Start Y Address
//    * Must write "0" in the end...
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Show_String(unsigned char a, unsigned char *Data_Pointer, unsigned char b, unsigned char c)
{
unsigned char *Src_Pointer;

        Src_Pointer=Data_Pointer;
        Show_Font57(1,96,b,c);                        // No-Break Space
                                                //   Must be written first before the string start...

        while(1)
        {
                Show_Font57(a,*Src_Pointer,b,c);
                Src_Pointer++;
                b+=3;
                if(*Src_Pointer == 0) break;
        }
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Show Pattern (Partial or Full Screen)
//
//    a: Column Address of Start
//    b: Column Address of End (Total Columns Devided by 2)
//    c: Row Address of Start
//    d: Row Address of End
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Show_Pattern(unsigned char *Data_Pointer, unsigned char a, unsigned char b, unsigned char c, unsigned char d)
{
unsigned char *Src_Pointer;
unsigned char i,j;
       
        Src_Pointer=Data_Pointer;
        Set_Column_Address(a,b);
        Set_Row_Address(c,d);

        for(i=0;i<(b-a+1);i++)
        {
                for(j=0;j<(d-c+1);j++)
                {
                        Write_Data(*Src_Pointer);
                        Src_Pointer++;
                }
        }
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Vertical Scrolling (Full Screen)
//
//    a: Scrolling Direction
//       "0x00" (Upward)
//       "0x01" (Downward)
//    b: Set Numbers of Row Scroll per Step
//    c: Set Time Interval between Each Scroll Step
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Vertical_Scroll(unsigned char a, unsigned char b, unsigned char c)
{
unsigned int i,j;       

        switch(a)
        {
                case 0:
                        for(i=0;i<80;i+=b)
                        {
                                Set_Start_Line(i);
                                for(j=0;j<c;j++)
                                {
                                        uDelay(200);
                                }
                        }
                        break;
                case 1:
                        for(i=0;i<80;i+=b)
                        {
                                Set_Start_Line(80-i);
                                for(j=0;j<c;j++)
                                {
                                        uDelay(200);
                                }
                        }
                        break;
        }
        Set_Start_Line(0x00);
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Continuous Horizontal Scrolling (Partial or Full Screen)
//
//    a: Set Numbers of Column Scroll per Step
//    b: Set Numbers of Row to Be Scrolled
//    c: Set Time Interval between Each Scroll Step in Terms of Frame Frequency
//    d: Delay Time
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Horizontal_Scroll(unsigned char a, unsigned char b, unsigned char c, unsigned char d)
{
        GA_Option(0x03);
        Write_Command(0x26);                        // Horizontal Scroll Setup
        Write_Command(a);
        Write_Command(b);
        Write_Command(c);
        Write_Command(0x2F);                        // Activate Scrolling
        Delay(d);
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Continuous Horizontal Fade Scrolling (Partial or Full Screen)
//
//    a: Set Numbers of Column Scroll per Step
//    b: Set Numbers of Row to Be Scrolled
//    c: Set Time Interval between Each Scroll Step in Terms of Frame Frequency
//    d: Delay Time
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Fade_Scroll(unsigned char a, unsigned char b, unsigned char c, unsigned char d)
{
        GA_Option(0x01);
        Write_Command(0x26);                        // Horizontal Scroll Setup
        Write_Command(a);
        Write_Command(b);
        Write_Command(c);
        Write_Command(0x2F);                        // Activate Scrolling
        Delay(d);
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Deactivate Scrolling (Full Screen)
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Deactivate_Scroll()
{
        Write_Command(0x2E);                        // Deactivate Scrolling
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Fade In (Full Screen)
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Fade_In()
{
unsigned int i;       

        Set_Display_On_Off(0x01);
        for(i=0;i<(Brightness+1);i++)
        {
                Set_Contrast_Current(i);
                uDelay(200);
                uDelay(200);
                uDelay(200);
        }
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Fade Out (Full Screen)
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Fade_Out()
{
unsigned int i;       

        for(i=(Brightness+1);i>0;i--)
        {
                Set_Contrast_Current(i-1);
                uDelay(200);
                uDelay(200);
                uDelay(200);
        }
        Set_Display_On_Off(0x00);
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Sleep Mode
//
//    "0x01" Enter Sleep Mode
//    "0x00" Exit Sleep Mode
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Sleep(unsigned char a)
{
        switch(a)
        {
                case 0:
                        Set_Display_On_Off(0x00);
                        Set_Display_Mode(0x01);
                        break;
                case 1:
                        Set_Display_Mode(0x00);
                        Set_Display_On_Off(0x01);
                        break;
        }
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Connection Test
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Test()
{
unsigned char i;

        RES=0;
        for(i=0;i<200;i++)
        {
                uDelay(200);
        }
        RES=1;

        Set_Display_Mode(0x01);                        // Entire Display On Mode (0x00/0x01/0x02/0x03)

        while(1)
        {
                Set_Display_On_Off(0x01);        // Display On (0x00/0x01)
                Delay(2);
                Set_Display_On_Off(0x00);        // Display Off (0x00/0x01)
                Delay(2);
        }
}


//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Gray Scale Table Setting (Full Screen)
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Set_Gray_Scale_Table()
{
        Write_Command(0xB8);                        // Set Gray Scale Table
        Write_Command(0x01);                        //   Gray Scale Level 1
        Write_Command(0x11);                        //   Gray Scale Level 3 & 2
        Write_Command(0x22);                        //   Gray Scale Level 5 & 4
        Write_Command(0x32);                        //   Gray Scale Level 7 & 6
        Write_Command(0x43);                        //   Gray Scale Level 9 & 8
        Write_Command(0x54);                        //   Gray Scale Level 11 & 10
        Write_Command(0x65);                        //   Gray Scale Level 13 & 12
        Write_Command(0x76);                        //   Gray Scale Level 15 & 14
}


//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Initialization
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void OLED_Init()
{
unsigned char i;

        RES=0;
        for(i=0;i<200;i++)
        {
                uDelay(200);
        }
        RES=1;

        Set_Display_On_Off(0x00);                // Display Off (0x00/0x01)
        Set_Display_Clock(0x91);                // Set Clock as 135 Frames/Sec
        Set_Multiplex_Ratio(0x3F);                // 1/64 Duty (0x0F~0x5F)
        Set_Display_Offset(0x4C);                // Shift Mapping RAM Counter (0x00~0x5F)
        Set_Start_Line(0x00);                        // Set Mapping RAM Display Start Line (0x00~0x5F)
        Set_Remap_Format(0x50);                        // Set Column Address 0 Mapped to SEG0
                                                //     Disable Nibble Remap
                                                //     Horizontal Address Increment
                                                //     Scan from COM[N-1] to COM0
                                                //     Enable COM Split Odd Even
        Set_Master_Config(0x00);                // Disable Embedded DC/DC Converter (0x00/0x01)
        Set_Contrast_Current(Brightness);        // Set Scale Factor of Segment Output Current Control
        Set_Current_Range(0x02);                // Set Full Current Range
        Set_Gray_Scale_Table();                        // Set Pulse Width for Gray Scale Table
        Set_Frame_Frequency(0x46);                // Set Frame Frequency
        Set_Phase_Length(0x22);                        // Set Phase 1 as 2 Clocks & Phase 2 as 2 Clocks
        Set_Precharge_Voltage(0x10);                // Set Pre-Charge Voltage Level
        Set_Precharge_Compensation(0x20,0x07);        // Set Pre-Charge Compensation
        Set_VCOMH(0x02);                        // Set High Voltage Level of COM Pin
        Set_VSL(0x0C);                                // Set Low Voltage Level of SEG Pin
        Set_Display_Mode(0x00);                        // Normal Display Mode (0x00/0x01/0x02/0x03)

        Fill_RAM(0x00);                                // Clear Screen

        Set_Display_On_Off(0x01);                // Display On (0x00/0x01)
}


//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Main Program
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void main()
{
unsigned char code Name[]={53,78,73,86,73,83,73,79,78,0};
                                                // Univision
unsigned char code Tel[]={11,24,24,22,13,19,23,13,21,24,22,21,24,22,0};
                                                // +886-37-586586
unsigned char i;

        P1=0xFF;
        P3=0xFF;
        OLED_Init();

        while(1)
        {
        // Show Pattern - Univision Logo
                Show_Pattern(&Logo,0x00,0x3F,0x0B,0x35);
                Delay(1);

        // Fade In/Out (Full Screen)
                Fade_Out();
                Fade_In();
                Fade_Out();
                Fade_In();
                Delay(1);

        // Scrolling (Partial or Full Screen)
                Vertical_Scroll(0x00,0x01,0x70);
                                                // Upward
                Delay(1);
                Vertical_Scroll(0x01,0x01,0x70);
                                                // Downward
                Delay(1);
                Deactivate_Scroll();
                Horizontal_Scroll(0x01,0x40,0x00,0x03);
                                                // Rightward
                Horizontal_Scroll(0x3F,0x40,0x00,0x03);
                                                // Leftward
                Fade_Scroll(0x01,0x40,0x00,0x03);
                                                // Rightward
                Deactivate_Scroll();

        // All Pixels On (Test Pattern)
                Fill_RAM(0xFF);
                Delay(1);

        // Checkerboard (Test Pattern)
                Checkerboard();
                Delay(1);

        // Gray Scale Bar (Test Pattern)
                Grayscale();
                Delay(1);
                Fill_RAM(0x00);                        // Clear Screen

        // Show Pattern - Frame (Test Pattern)
                Frame();
                Delay(1);

        // Show String - Univision +886-37-586586
                Show_String(1,&Name,0x13,0x14);
                Show_String(1,&Tel,0x0B,0x24);
                Delay(1);
                Fill_RAM(0x00);                        // Clear Screen
        }
}
点击此处下载 ourdev_545181.rar(文件大小:13K) (原文件名:目前最火热流行的OLED驱动程序.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2010-7-29 16:34:55 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-7-29 16:54:45 | 显示全部楼层
好长,呵呵

出0入0汤圆

发表于 2010-7-29 17:03:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-30 08:33:02 | 显示全部楼层
单片机的容量该占没了.

出0入0汤圆

发表于 2010-7-30 16:09:33 | 显示全部楼层
ssd1325 mark

出0入0汤圆

发表于 2010-7-30 21:00:32 | 显示全部楼层
屏啥样的呀? 有图没? 俺孤陋寡闻

出0入0汤圆

发表于 2010-7-30 21:43:56 | 显示全部楼层
看到最火热飘进来顶楼主

出0入0汤圆

发表于 2010-8-5 11:08:12 | 显示全部楼层
挺好啊,能驱动ssd1305吗?

出0入0汤圆

发表于 2010-8-5 14:45:17 | 显示全部楼层
发个屏图看看

出0入4汤圆

发表于 2010-8-6 00:00:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-21 20:19:47 | 显示全部楼层
收藏 OLED

出0入0汤圆

发表于 2011-4-7 10:50:58 | 显示全部楼层
mark,又可以用来搞12864

出0入0汤圆

发表于 2011-4-7 12:28:21 | 显示全部楼层
收藏 OLED

出0入0汤圆

发表于 2011-4-7 14:27:48 | 显示全部楼层
mark OLED

出0入0汤圆

发表于 2012-7-3 16:15:42 | 显示全部楼层
受益匪浅,非常感谢

出0入0汤圆

发表于 2012-12-29 10:29:46 | 显示全部楼层
非常强大!最近正好要用~收藏了~

出0入0汤圆

发表于 2014-11-27 17:00:34 | 显示全部楼层
收藏学习了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 06:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表