//------------------------------------------------- // Shenzhen TOPWAY Technology Co.,Ltd. // LCD Module: LM12832B // Display Size: 128x32 // Driver/Controller: ST7565R // Interface: serial // by: GuoQ // Date: 2011-7-5 // note: 3x booster(hardware config) //------------------------------------------------- #include #include #include #define uchar unsigned char // 0~255 #define uint unsigned int // 0~65535 uchar bdata transdata; //该变量可为位操作之变量 sbit transbit = transdata^7; sbit _CS1 = P3^4; sbit _RST = P3^5; sbit RS = P3^6; sbit SCLK = P1^6; sbit SID = P1^7; uchar ContrastLevel; // for contrast setting level //----------------------------------- // dispaly data (128x32) //----------------------------------- uchar code Logo[]={ /*-- 调入了一幅图像:D:\120\pic\lm12832new-LOGO.bmp --*/ /*-- 宽度x高度=128x32 --*/ 0xFF,0x01,0x01,0x81,0x01,0x81,0x01,0x81,0x01,0x81,0x41,0x81,0x41,0x81,0x41,0x81, 0x41,0x81,0x41,0xA1,0x41,0xA1,0x41,0xA1,0x51,0xA1,0x51,0xA1,0x51,0xA9,0x51,0xA9, 0x51,0xA9,0x55,0xA9,0x55,0x29,0x15,0xAB,0x95,0xCB,0xC5,0xEB,0xE5,0xE3,0xF5,0xF3, 0xF9,0xFB,0xF9,0xF9,0xFD,0xFD,0xFD,0xFD,0xFD,0xFD,0x01,0x01,0x01,0x01,0x01,0x41, 0x89,0xD1,0x01,0xB1,0x51,0x31,0x91,0x31,0x51,0xB1,0x01,0x41,0x41,0xF9,0x41,0x41, 0xF9,0x01,0xF1,0x01,0x01,0xF9,0x01,0x21,0x21,0xF9,0x21,0x11,0x91,0x71,0x11,0x11, 0x11,0x11,0x01,0x81,0xB1,0xD1,0x99,0xF1,0x91,0xF1,0x99,0xD1,0xB1,0x81,0x01,0x21, 0x99,0x71,0x41,0x79,0x41,0x71,0x81,0x79,0xC1,0x41,0x01,0x01,0x01,0x01,0x01,0xFF, 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x80,0x41,0xA8,0x55,0xAA,0x55,0xAA,0x55,0x2A,0x95,0xCA,0xE5,0xF2, 0xF9,0xF8,0xFD,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x08, 0x3F,0x00,0x12,0x0A,0x06,0x02,0x3F,0x06,0x0A,0x12,0x00,0x08,0x08,0x27,0x24,0x10, 0x0F,0x00,0x1F,0x00,0x00,0x3F,0x00,0x22,0x22,0x3F,0x05,0x02,0x3F,0x11,0x11,0x11, 0x3F,0x00,0x00,0x00,0x00,0x3E,0x2A,0x2A,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00,0x01, 0x3F,0x21,0x1D,0x05,0x1D,0x29,0x13,0x0C,0x13,0x20,0x00,0x00,0x00,0x00,0x00,0xFF, 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80, 0x40,0xA8,0x54,0x2A,0x95,0xCA,0xE5,0xF2,0xF9,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xF8, 0xF8,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0x78,0xE0,0x00,0xE0,0x78,0xF8,0xF8,0x00, 0x00,0x60,0x30,0xF8,0xF8,0x00,0x00,0x10,0x18,0x08,0x88,0xF8,0x70,0x00,0x70,0xF8, 0x88,0x88,0xF8,0x70,0x00,0x10,0x18,0x48,0x48,0xF8,0xB0,0x00,0x10,0x18,0x08,0x88, 0xF8,0x70,0x00,0x00,0xE0,0xF8,0x18,0xF8,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, 0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0xA0,0x94,0xCA, 0xE1,0xF8,0xFC,0xFF,0xFF,0xFB,0xFB,0xC3,0xFB,0xFB,0xFF,0xE7,0xDB,0xDB,0xDB,0xE7, 0xFF,0xC3,0xEB,0xEB,0xEB,0xF7,0xFF,0xE3,0xDF,0xEF,0xDF,0xE3,0xFF,0xCF,0xE7,0xEB, 0xE7,0xCF,0xFF,0xFB,0xF7,0xCF,0xF7,0xFB,0xFF,0xFF,0x80,0x80,0x80,0x80,0x80,0x8F, 0x8F,0x88,0x88,0x88,0x88,0x80,0x8F,0x8F,0x80,0x87,0x8E,0x87,0x80,0x8F,0x8F,0x80, 0x80,0x80,0x80,0x8F,0x8F,0x80,0x80,0x8C,0x8E,0x8B,0x89,0x88,0x88,0x80,0x87,0x8F, 0x88,0x88,0x8F,0x87,0x80,0x84,0x8C,0x88,0x88,0x8F,0x87,0x80,0x8C,0x8E,0x8B,0x89, 0x88,0x88,0x80,0x8E,0x8F,0x83,0x82,0x83,0x8F,0x8E,0x80,0x80,0x80,0x80,0x80,0xFF }; //----------------------------------- // Delay Routine //----------------------------------- void delayms(uint m) // 12MHz Xtal, close to ms value { uint j; uint i; for(i=0; i0x00) { ContrastLevel--; } SdCmd(0x81); // E-Vol setting SdCmd(ContrastLevel); // (2byte command) } //----------------------------------- // Init LCD module //----------------------------------- void initLCDM(void) { _RST=1; // hardware reset LCD module _RST=0; delayms(1); _RST=1; delayms(100); ContrastLevel=0x15; // default Contrast Level SdCmd(0xaf); // display on SdCmd(0x40); // display start line=0 SdCmd(0xa0); // ADC=0 SdCmd(0xa6); // normal display SdCmd(0xa4); // Display all point = off SdCmd(0xa2); // LCD bias = 1/6 (duty=1/33) SdCmd(0xc8); // Common output mode select=reverse SdCmd(0x2f); // Power control = all on SdCmd(0x23); // RA/RB setting SdCmd(0xf8);SdCmd(0x00);// Booster Ratio Set= 2x,3x,4x (2byte command) SdCmd(0x81); // E-Vol setting SdCmd(ContrastLevel); // (2byte command) } //----------------------------------- // Main Program //----------------------------------- void main() { SP=0x60; EA = 0; // disable interrupts _CS1 = 1; _RST = 1; RS = 1; SCLK = 1;//串口初始化 SID = 1;//串口初始化 initLCDM(); while(1) { WriteScreen(Logo); delayms(3000); } } //end of program