//------------------------------------------------- // Shenzhen TOPWAY Technology Co.,Ltd. // LCD Module: LM6082C // Display Size: 128x64 // Driver/Controller: ST7565R // Interface: 80 mode // system: AT89S52(12MHZ) // Rev 00: by Tony 2016-11-10 //------------------------------------------------- #include #include #include #define uchar unsigned char // 0~255 #define uint unsigned int // 0~65535 #define LCDBus P1 sbit _CS1 = P3^3; sbit _RST = P3^5; sbit RS = P3^6; sbit _WR = P3^7; sbit _RD = P3^1; sbit _KeyDarker = P1^1; // _KeyDarker=0, key pressed sbit _KeyLighter = P1^2; // _KeyLighter=0,key pressed uchar ContrastLevel; // for contrast setting level //----------------------------------- // dispaly data (128x64) //----------------------------------- uchar code Logo[]={ 0x0F,0x01,0x81,0x01,0x80,0x00,0x80,0x00,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40, 0x80,0x40,0xA0,0x40,0xA0,0x40,0xA0,0x50,0xA0,0x50,0xA0,0x50,0xA8,0x50,0xA8,0x50, 0xA8,0x54,0xA8,0x54,0x28,0x14,0xAA,0x94,0xCA,0xC4,0xEA,0xE4,0xE2,0xF4,0xF2,0xF8, 0xFA,0xF8,0xF8,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x40,0x80,0x00,0x80,0x80, 0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0x80, 0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80, 0x00,0x00,0x00,0x00,0x40,0x80,0x00,0x00,0x80,0x40,0x00,0x00,0x00,0x00,0x00,0x80, 0x40,0x80,0x00,0xC0,0x00,0x80,0x00,0xC0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x0F, 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,0x42,0xE4,0x10,0x00,0x11,0x94, 0x52,0xFC,0x50,0x92,0x14,0x11,0x00,0x84,0x84,0xFF,0x44,0x44,0xFF,0x00,0x00,0xFF, 0x00,0x00,0xFF,0x00,0x22,0x22,0xFF,0x12,0x2A,0x10,0xFC,0x13,0x10,0x10,0xF0,0x00, 0x00,0x08,0x0B,0x0D,0xE9,0xAF,0xA9,0xA9,0xAF,0xA9,0xED,0x0B,0x09,0x00,0x11,0xF8, 0x04,0x0B,0xEA,0x2B,0xEA,0x8B,0x3C,0xC3,0x3E,0x02,0x00,0x00,0x00,0x00,0x00,0x00, 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,0x10,0x90,0x93,0x90,0x91,0x91,0x10, 0x10,0x13,0x90,0x90,0x91,0x11,0x10,0x10,0x91,0x90,0x92,0x91,0x10,0x90,0x10,0x10, 0x10,0x10,0x93,0x10,0x10,0x12,0x13,0x90,0x10,0x10,0x13,0x91,0x11,0x11,0x13,0x10, 0x90,0x10,0x10,0x10,0x13,0x12,0x92,0x12,0x12,0x12,0x13,0x90,0x10,0x10,0x10,0x13, 0x12,0x91,0x10,0x10,0x11,0x12,0x11,0x10,0x91,0x12,0x10,0x10,0x10,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x20,0x14,0x4A,0x61, 0x78,0x7C,0x7F,0x7F,0x7B,0x7B,0x43,0x7B,0x7B,0x7F,0x67,0x5B,0x5B,0x5B,0x67,0x7F, 0x43,0x6B,0x6B,0x6B,0x77,0x7F,0x63,0x5F,0x6F,0x5F,0x63,0x7F,0x4F,0x67,0x6B,0x67, 0x4F,0x7F,0x7B,0x77,0x4F,0x77,0x7B,0x7F,0x7F,0x00,0x00,0x00,0x7F,0x00,0x00,0x00, 0x1E,0x21,0x40,0x40,0x40,0x21,0x1E,0x00,0x7F,0x08,0x08,0x08,0x07,0x01,0x1E,0x60, 0x18,0x07,0x00,0x07,0x18,0x60,0x1E,0x01,0x60,0x18,0x17,0x10,0x17,0x18,0x60,0x00, 0x00,0x03,0x04,0x78,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x40, 0x02,0x7F,0x42,0x00,0x3C,0x42,0x42,0x24,0x7F,0x00,0x00,0x40,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xFC,0xFC,0xFC,0x1C,0xFC,0xF8,0x00,0x00,0x00,0xF8,0xFC,0x1C,0xFC,0xFC,0xFC,0x00, 0x00,0xE0,0xF8,0xF8,0x1C,0x8C,0x8C,0x9C,0xBC,0x18,0x10,0x00,0x00,0xE0,0xF8,0xF8, 0x1C,0x0C,0x0C,0x1C,0xF8,0xF8,0xE0,0x00,0x00,0x70,0xF8,0xFC,0x9C,0x0C,0x0C,0x9C, 0xFC,0xF8,0x70,0x00,0x00,0x30,0x38,0x3C,0x1C,0x0C,0x0C,0x1C,0xFC,0xF8,0xF0,0x00, 0x00,0xC0,0xF0,0xF8,0x78,0x3C,0x1C,0x1C,0x1C,0x1C,0x38,0x78,0x70,0x20,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00, 0xFF,0xFF,0xFF,0x00,0x03,0x7F,0xFF,0xF0,0xFF,0x7F,0x03,0x00,0xFF,0xFF,0xFF,0x00, 0x00,0x3F,0xFF,0xFF,0xC3,0x81,0x81,0xC3,0xFF,0xFF,0x3C,0x00,0x00,0x3F,0xFF,0xFF, 0xC0,0x80,0x80,0xC0,0xFF,0xFF,0x3F,0x00,0x00,0x78,0xFC,0xFF,0xC7,0x83,0x83,0xC7, 0xFF,0xFC,0x78,0x00,0x00,0x80,0xC0,0xF0,0xF8,0xBC,0x9E,0x8F,0x87,0x83,0x80,0x00, 0x00,0x1F,0x7F,0xFF,0xF0,0xE0,0xC0,0xC0,0xC0,0xC0,0xE0,0xF0,0x70,0x20,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xF0,0x80,0x80,0x80,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,0x00,0x00, 0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x00, 0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01, 0x01,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xF0, }; //----------------------------------- // Delay Routine //----------------------------------- void delayms(uint m) // 12MHz Xtal, close to ms value { uint j; uint i; for(i=0; i0x00) { ContrastLevel--; } while(!_KeyLighter); SdCmd(0x81); // E-Vol setting SdCmd(ContrastLevel); // (2byte command) } //----------------------------------- // Init LCD module //----------------------------------- void initLCDM(void) { _RST=1; // hardware reset LCD module _RST=0; delayms(10); _RST=1; delayms(800); ContrastLevel=0x22; // 对比度参数初始化设置 SdCmd(0xaf); // 开显示 SdCmd(0x40); // 设置显示起始行=0 SdCmd(0xa0); // RAM列地址与列驱动同顺序 SdCmd(0xa6); // 正向显示 INV=0 SdCmd(0xa4); // 显示全亮功能关闭 SdCmd(0xa2); // LCD偏压比为1/9 (duty=1/65) BS=0 SdCmd(0xc8); // COM行驱动方向为反向 SdCmd(0x2f); // 启用内部LCD驱动电源 SdCmd(0x25); // RA/RB setting SdCmd(0xf8); // 升压电路设置指令代码 SdCmd(0x00); // 倍压设置为4X-00 SdCmd(0x81); // 对比度设置指令代码 SdCmd(ContrastLevel); // 设置对比度 } //----------------------------------- // Main Program //----------------------------------- void main() { SP=0x60; EA = 0; // disable interrupts _CS1 = 1; _RST = 1; RS = 1; _WR = 1; _RD = 1; initLCDM(); while(1) { WriteScreen(Logo); } } //end of program