当前位置: 首页 > 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.xdnf.cn/news/1324423.html

相关文章:

  • 机器翻译论文阅读方法:顶会(ACL、EMNLP)论文解析技巧
  • STM32学习笔记14-I2C硬件控制
  • 大数据计算引擎(四)—— Impala
  • Fluss:颠覆Kafka的面向分析的实时流存储
  • GPT-5之后:当大模型更新不再是唯一焦点
  • 深度学习必然用到的概率知识
  • Vue 3中watch的返回值:解锁监听的隐藏技巧
  • 敏感数据加密平台设计实战:如何为你的系统打造安全“保险柜”
  • 遥感机器学习入门实战教程 | Sklearn 案例②:PCA + k-NN 分类与评估
  • Day8--滑动窗口与双指针--1004. 最大连续1的个数 III,1658. 将 x 减到 0 的最小操作数,3641. 最长半重复子数组
  • 具身智能2硬件架构(人形机器人)摘自Openloong社区
  • Next.js 中的 SEO:搜索引擎优化最佳实践
  • flutter项目适配鸿蒙
  • JMeter与大模型融合应用之构建AI智能体:评审性能测试脚本
  • 【Jenkins】03 - 自动构建和docker构建
  • MCP协议演进:从SSE到Streamable HTTP的技术革命
  • 宁波市第八届网络安全大赛初赛(REVERSE-Writeup)
  • FPGA-Vivado2017.4-建立AXI4用于单片机与FPGA之间数据互通
  • OpenTelemetry、Jaeger 与 Zipkin:分布式链路追踪方案对比与实践
  • vscode wsl解决需要用别的用户调试的问题
  • VSCode REST Client 使用总结
  • Linux下的软件编程——IPC机制
  • Linx--MySQL--安装笔记详细步骤!
  • k8sday10服务发现(1/2)
  • 数据泵实施VPS海外:跨国数据同步的完整解决方案
  • 45 C++ STL模板库14-容器6-容器适配器-优先队列(priority_queue)
  • 系统架构评估方法全景解析
  • 【Java基础常见辨析】重载与重写,深拷贝与浅拷贝,抽象类与普通类
  • LLM - MCP传输协议解读:从SSE的单向奔赴到Streamable HTTP的双向融合
  • mq存量消息如何处理