当前位置: 首页 > news >正文

单片机驱动LCD显示模块LM6029BCW

一.LCD显示模块LM6029BCW

1.LCD显示模块LM6029BCW介绍

深圳市拓普微科技开发有限公司生产的 LM6029 点阵图形式液晶显示模块,采用 S6B0724 控制器,模块大小 57.6 x42.0x2.0mm,点阵数 128x64dot。轻薄设计。适配 Intel8080 操作时序电路。8 bits 并口数据传输方式,软件调节对比度等功能。

以下是其主要特性和规格:

类型:液晶,图像,单色。

格式:128 x 64。

应用:主要用于工业、控制、信息等领域。

接口:并行。

电压:3.3V。

温度范围:-30℃~85℃。

2.6800 模式系统总线时序

3.内存map

4.电路图

采用 AT89LV52 单片机同 LM6029 液晶模块通过 I/0 口相连为例。采用间接控制方式。

二.代码实现

显示设置:横屏显示

1.lcd.c

#define MAX_X         16  

#define MAX_Y         8   

uchar LcdRAM[MAX_Y][MAX_X*8];

const uchar charzk[][16]={

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*" ",0*/

{0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x00,0x00,},/*"!",1*/

{0x00,0x00,0x80,0x40,0x00,0x80,0x40,0x00,0x00,0x02,0x01,0x00,0x02,0x01,0x00,0x00,},/*""",2*/

{0x00,0x40,0xC0,0x78,0x40,0xC0,0x78,0x00,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x00,},/*"#",3*/

{0x00,0x38,0x44,0x44,0xFE,0x84,0x18,0x00,0x00,0x0C,0x10,0x10,0x7F,0x10,0x0F,0x00,},/*"$",4*/

{0x00,0xF0,0x08,0xF0,0x80,0x60,0x18,0x00,0x00,0x00,0x31,0x0C,0x03,0x1E,0x21,0x1E,},/*"%",5*/

{0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x2C,0x19,0x27,0x21,0x10,},/*"&",6*/

{0x00,0x00,0x00,0x40,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,},/*"'",7*/

{0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,0x00,},/*"(",8*/

{0x00,0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,},/*")",9*/

{0x00,0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,},/*"*",10*/

{0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x0F,0x01,0x01,0x01,},/*"+",11*/

{0x00,0x00,0x00,0x40,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,},/*",",12*/

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,},/*"-",13*/

{0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,},/*".",14*/  

{0x00,0x00,0x00,0x00,0xC0,0x38,0x04,0x00,0x00,0x60,0x18,0x07,0x00,0x00,0x00,0x00,},/*"/",15*/

{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,},/*"0",16*/

{0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,},/*"1",17*/

{0x00,0x70,0x08,0x08,0x08,0x08,0xF0,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,},/*"2",18*/

{0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x18,0x20,0x21,0x21,0x22,0x1C,0x00,},/*"3",19*/

{0x00,0x00,0x80,0x40,0x30,0xF8,0x00,0x00,0x00,0x06,0x05,0x24,0x24,0x3F,0x24,0x24,},/*"4",20*/

{0x00,0xF8,0x88,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x20,0x20,0x20,0x11,0x0E,0x00,},/*"5",21*/

{0x00,0xE0,0x10,0x88,0x88,0x90,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x20,0x1F,0x00,},/*"6",22*/

{0x00,0x18,0x08,0x08,0x88,0x68,0x18,0x00,0x00,0x00,0x00,0x3E,0x01,0x00,0x00,0x00,},/*"7",23*/

{0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,},/*"8",24*/

{0x00,0xF0,0x08,0x08,0x08,0x10,0xE0,0x00,0x00,0x01,0x12,0x22,0x22,0x11,0x0F,0x00,},/*"9",25*/

{0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,},/*":",26*/

{0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,},/*";",27*/

{0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,},/*"<",28*/

{0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x00,},/*"=",29*/

{0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,},/*">",30*/

{0x00,0x70,0x48,0x08,0x08,0x88,0x70,0x00,0x00,0x00,0x00,0x30,0x37,0x00,0x00,0x00,},/*"?",31*/

{0x00,0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x28,0x2F,0x28,0x17,},/*"@",32*/

{0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,},/*"A",33*/

{0x00,0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,},/*"B",34*/

{0x00,0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,},/*"C",35*/

{0x00,0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,},/*"D",36*/

{0x00,0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,},/*"E",37*/

{0x00,0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,},/*"F",38*/

{0x00,0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,},/*"G",39*/

{0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,},/*"H",40*/

{0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,},/*"I",41*/

{0x00,0x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x60,0x40,0x40,0x40,0x3F,0x00,0x00,},/*"J",42*/

{0x00,0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,},/*"K",43*/

{0x00,0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,},/*"L",44*/

{0x00,0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x01,0x3E,0x01,0x3F,0x20,},/*"M",45*/

{0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,},/*"N",46*/

{0x00,0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,},/*"O",47*/

{0x00,0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,},/*"P",48*/

{0x00,0xF0,0x08,0x04,0x04,0x04,0x08,0xF0,0x00,0x07,0x08,0x14,0x14,0x18,0x28,0x27,},/*"Q",49*/

{0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,},/*"R",50*/

{0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,},/*"S",51*/

{0x00,0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,},/*"T",52*/

{0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,},/*"U",53*/

{0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,},/*"V",54*/

{0x00,0x08,0xF8,0x00,0xF8,0x00,0xF8,0x08,0x00,0x00,0x03,0x3E,0x01,0x3E,0x03,0x00,},/*"W",55*/

{0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,},/*"X",56*/

{0x00,0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,},/*"Y",57*/

{0x00,0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,},/*"Z",58*/

{0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,0x00,},/*"[",59*/

{0x00,0x02,0x1C,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x1C,0x60,0x00,},/*"\",60*/

{0x00,0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,},/*"]",61*/

{0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,},/*"^",62*/

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,},/*"_",63*/

{0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,},/*"`",64*/

{0x00,0x40,0x20,0x20,0xA0,0xC0,0x00,0x00,0x00,0x06,0x09,0x09,0x04,0x0F,0x08,0x00,},/*"a",65*/

{0x00,0x08,0xF8,0x80,0x40,0x40,0x80,0x00,0x00,0x00,0x1F,0x08,0x10,0x10,0x08,0x07,},/*"b",66*/

{0x00,0x80,0x40,0x20,0x20,0x20,0x40,0x00,0x00,0x03,0x04,0x08,0x08,0x08,0x04,0x00,},/*"c",67*/

{0x00,0x80,0x40,0x40,0x40,0x48,0xF8,0x00,0x00,0x0F,0x10,0x10,0x10,0x08,0x1F,0x10,},/*"d",68*/

{0x00,0xC0,0x20,0x20,0x20,0x20,0xC0,0x00,0x00,0x07,0x09,0x09,0x09,0x09,0x05,0x00,},/*"e",69*/

{0x00,0x40,0x40,0xF0,0x48,0x48,0x10,0x00,0x00,0x10,0x10,0x1F,0x10,0x10,0x00,0x00,},/*"f",70*/

{0x00,0x60,0x90,0x90,0x90,0x70,0x10,0x00,0x00,0x0D,0x12,0x12,0x12,0x12,0x0C,0x00,},/*"g",71*/

{0x08,0xF8,0x80,0x40,0x40,0x40,0x80,0x00,0x10,0x1F,0x10,0x00,0x00,0x10,0x1F,0x10,},/*"h",72*/

{0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,},/*"i",73*/

{0x00,0x00,0x00,0x00,0x40,0x4C,0xCC,0x00,0x00,0x00,0x60,0x40,0x40,0x40,0x3F,0x00,},/*"j",74*/

{0x00,0x08,0xF8,0x00,0x00,0xC0,0x40,0x40,0x00,0x10,0x1F,0x12,0x03,0x14,0x18,0x10,},/*"k",75*/

{0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,},/*"l",76*/

{0x20,0xE0,0x20,0x20,0xE0,0x20,0x20,0xC0,0x08,0x0F,0x08,0x00,0x0F,0x08,0x00,0x0F,},/*"m",77*/

{0x20,0xE0,0x40,0x20,0x20,0x20,0xC0,0x00,0x08,0x0F,0x08,0x00,0x00,0x08,0x0F,0x08,},/*"n",78*/

{0x00,0xC0,0x20,0x20,0x20,0x20,0xC0,0x00,0x00,0x07,0x08,0x08,0x08,0x08,0x07,0x00,},/*"o",79*/

{0x00,0x10,0xF0,0x20,0x10,0x10,0x20,0xC0,0x00,0x10,0x1F,0x12,0x04,0x04,0x02,0x01,},/*"p",80*/

{0x00,0xC0,0x20,0x10,0x10,0x20,0xF0,0x00,0x00,0x01,0x02,0x04,0x04,0x12,0x1F,0x10,},/*"q",81*/

{0x00,0x20,0x20,0xE0,0x40,0x20,0x20,0x60,0x00,0x08,0x08,0x0F,0x08,0x08,0x00,0x00,},/*"r",82*/

{0x00,0xC0,0x20,0x20,0x20,0x20,0x60,0x00,0x00,0x0C,0x09,0x09,0x09,0x09,0x06,0x00,},/*"s",83*/

{0x00,0x40,0x40,0xF0,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x10,0x08,0x00,},/*"t",84*/

{0x20,0xE0,0x00,0x00,0x00,0x20,0xE0,0x00,0x00,0x07,0x08,0x08,0x08,0x04,0x0F,0x08,},/*"u",85*/

{0x00,0x20,0xE0,0x20,0x00,0x20,0xE0,0x20,0x00,0x00,0x00,0x03,0x0C,0x03,0x00,0x00,},/*"v",86*/

{0x60,0xA0,0x00,0x20,0xE0,0x00,0xA0,0x60,0x00,0x03,0x0C,0x03,0x01,0x0E,0x01,0x00,},/*"w",87*/

{0x00,0x20,0x60,0xA0,0x80,0x60,0x20,0x00,0x00,0x08,0x0C,0x03,0x0B,0x0C,0x08,0x00,},/*"x",88*/

{0x10,0x30,0xD0,0x00,0x00,0xD0,0x30,0x10,0x00,0x10,0x10,0x0F,0x03,0x00,0x00,0x00,},/*"y",89*/

{0x00,0x60,0x20,0x20,0xA0,0x60,0x20,0x00,0x00,0x08,0x0C,0x0B,0x08,0x08,0x0C,0x00,},/*"z",90*/

};

static void WriteData(unsigned char DATA)

{

//CheckBusy();

CS_L();

E_H();

A0_H();

DBOUT(DATA);

RW_L();

delay(1);

RW_H();

CS_H();

}

static void WriteCommand(unsigned char command)

{

//CheckBusy();

CS_L();

E_H();

A0_L();

DBOUT(command);

RW_L();

delay(1);

RW_H();

CS_H();

}

void Lcd_Init(void)

{

WriteCommand(0xaf);  //开显示  

WriteCommand(0x40);  //显示RAM的行地址 0x40为第0行

WriteCommand(0xa0);  //0xa0正向显示 0xa1反向显示

WriteCommand(0xa6);  //0xa6正常显示 0xa7反白显示

WriteCommand(0xa4);

WriteCommand(0xa2);  //偏压比设定

WriteCommand(0xc8);  //第0行在屏幕上方

WriteCommand(0x2f);  //开关内部电源

WriteCommand(0x26); //调节对比度

}

void Lcd_Clear(void)

{

uchar page, j;

for(page=0; page<8; page++)

{

for(j=0;j<128;j++)

{

LcdRAM[page][j] = 0;

}

}

}

void Lcd_Update(void)

{

uchar page, j;

SPI_WCOM(0xc8);  

for(page=0; page<8; page++)

{

SPI_WCOM(0xb0 | page); //select page 0~7

SPI_WCOM(0x10);    //start form column 0

SPI_WCOM(0x00);    //(2byte command)

for(j=0;j<128;j++)

{

SPI_WData(LcdRAM[page][j]);

}

}

}

void DisChar(int x, int y, char c, int fb)  //16*16 两行

{

int i,k;

char Data;

if( (x >= MAX_X) || (y > MAX_Y) ) return;

x <<= 3;

if(c>=0x20) c = c - 0x20;

else c = 0;

for(i=0; i<8; i++)

{

if(fb)

{

LcdRAM[y][x+i] = 0xFF - charzk[c][i];

LcdRAM[y+1][x+i] = 0xFF - charzk[c][i+8];

}

    else

    {

LcdRAM[y][x+i] = charzk[c][i];

LcdRAM[y+1][x+i] = charzk[c][i+8];

    }

}

}

void Lcd_DisChar(int x, int y, char c)

{

DisChar(x, y, c, 0);

}

void Lcd_DisChar_Not(int x, int y, char c)

{

DisChar(x, y, c, 1);

}

void Lcd_DisString(int x,int y,const char *pstr)

{

while(*pstr)

{

if(*pstr & 0x80)

{

if(pstr[1])

{

x++;

x++;

pstr++;

pstr++;

}

else

{

Lcd_DisChar(x,y,pstr[0]);

x++;

pstr++;

}

}

else

{

Lcd_DisChar(x,y,pstr[0]);

x++;

pstr++;

}

}

}

void Lcd_DisString_Not(int x,int y,const char *pstr)   //黑底白字

{

while(*pstr)

{

if(*pstr & 0x80)

{

if(pstr[1])

{

x++;

x++;

pstr++;

pstr++;

}

else

{

Lcd_DisChar_Not(x,y,pstr[0]);

x++;

pstr++;

}

}

else

{

Lcd_DisChar_Not(x,y,pstr[0]);

x++;

pstr++;

}

}

}

void Lcd_DisMultiString(int x, int y, const char *pstr)   //支持换行

{

while(*pstr)

{

if(*pstr & 0x80)

{

if(pstr[1])

{

if((x+2) > MAX_X)

{

x=0;

y++;

y++;

}

x++;

x++;

pstr++;

pstr++;

}

else

{

if((x+1) > MAX_X)

{

x=0;

y++;

y++;

}

Lcd_DisChar(x,y,pstr[0]);

x++;

pstr++;

}

}

else

{

if((x+1) > MAX_X)

{

x=0;

y++;

y++;

}

Lcd_DisChar(x,y,pstr[0]);

x++;

pstr++;

}

}

}

int main(void)

{

/* Configure RCC */

  Lcd_Init();

  Lcd_Clear();

Lcd_DisString(0, 0, "hello");

Lcd_DisString(0, 2, "1235");

Lcd_Update();

  while (1)

  {}

}

2.显示结果

http://www.dtcms.com/a/338024.html

相关文章:

  • 实践笔记-小端模式下的寄存器数据输入技巧;图形化界面配置注意事项。
  • 实现自己的AI视频监控系统
  • PostgreSQL Certified Master 专访 | 第三期 李洋
  • ADC的实现(单通道,多通道,DMA)
  • Python pyzmq 库详解:从入门到高性能分布式通信
  • 学习嵌入式的第二十天——数据结构
  • 【前端面试题】JavaScript 核心知识点解析(第一题到第十三题)
  • 【牛客刷题】 01字符串按递增长度截取转换详解
  • 【MyBatis-Plus】一、快速入门
  • Day17: 数据魔法学院:用Pandas打开奇幻世界
  • MySQL面试题:MyISAM vs InnoDB?聚簇索引是什么?主键为何要趋势递增?
  • 从“换灯节能”到“智能调光”:城市智慧照明技术升级的节能革命
  • LangChain4j (3) :AiService工具类、流式调用、消息注解
  • 吴恩达 Machine Learning(Class 2)
  • 数字时代著作权侵权:一场资本与法律的博弈
  • 「Flink」业务搭建方法总结
  • 嵌入式设备Lwip协议栈实现功能
  • 摔倒检测数据集:1w+图像,yolo标注
  • 02.Linux基础命令
  • 8.18 机器学习-决策树(1)
  • docker部署flask并迁移至内网
  • Zephyr下控制ESP32S3的GPIO口
  • RK3568 NPU RKNN(六):RKNPU2 SDK
  • FlycoTabLayout CommonTabLayout 支持Tab选中字体变大 选中tab的加粗效果首次无效的bug
  • 探索性测试:灵活找Bug的“人肉探测仪”
  • 前端 大文件分片下载上传
  • 宝塔面板多Python版本管理与项目部署
  • excel表格 Vue3(非插件)
  • day25|学习前端js
  • Linux: RAID(磁盘冗余阵列)配置全指南