新闻中心

EEPW首页>嵌入式系统>设计应用> LCD1602液晶显示完全资料

LCD1602液晶显示完全资料

作者: 时间:2012-10-31 来源:网络 收藏

下面给出一段字符串移动显示的例子:

void display_lcd_byte(uchar y,uchar x,uchar z)

{

if(y)

{

x+=0x40;

}

x+=0x80;

write(x,0);

write(z,1);

}

void display_lcd_text(uchar y,uchar x,uchar table[])

{

uchar z=0;

uchar t;

t=strlen(table)+x;

while(xt)

{

display_lcd_byte(y,x,table[z]);

x++;

z++;

}

display_lcd_byte(y,x,' ');

}

//前两个子程序是显示子程序

void main()

{

uchar i;

();

init();

for(i=16;i>=0;i--) //这里的循环就是为了字符串从后往前显示

{

display_lcd_text(0,i,table0); //i减一次,首个字符就往前去一位

delay(200);

}

while(1);

}

二、显示自定义字符:

要想显示自定义字符,首先就得取得想要的图形或者字符的字模数组,可以通过手动提取的方法,取得相应的字模。

如下图所示,对应一个字符显示区域。每8个字节,组成一个点阵数组。

点击浏览下一页


要想让某一格子显示就让那一位为1,每行自定义5位,全白为0x00;全黑为0x1f。一共8行,每行一位数据。

将生成的点阵数组保存到CGRAM存储器中,生成自定义字符。1602内部CGRAM用于自定义的字符点阵的存储,总共64字节。由上一步点阵提取可知,每一个字符由8个字节数据组成。所以64字节CGRAM存储器,能够存储8组自定义字符的点阵数组。按照CGRAM地址划分为 0~7为第一组,8~15为第二组,依次类推56~63为第8组数据。

CHARACTER CODE是数据的显示地址,0-7的范围,能存储8位自定义的字符。(能存八个自定义,每个字符存放的)

CGRAM ADDRESS是存储数据的地址,从0-63共64个字节.存储64个数据。我们写入的数据是0x40~0x7F,共128位。(把字符数组内的8个数送进这8个地址,每存完一个字符的8位,下次地址直接转到0x48)

CGRAM DATA 字模每一行5位数据存

内部常用字符显示时,显示编码是从0x20开始的。0x00~0x0F是专门留给自定义字符显示的。0x00~0x07和0x08~0x0F内容是一样的。例如:调用0x01 位置和0x09位置,显示的内容是一样的。

自定义显示字符的方式共四步,如下面所示:

1.设置向CGRAM中存入这个数据.初始地址是0x40。然后存一位向后加8,

总共能存8位自定义的字符。

2.然后可以把自定义的数据送入到LCD的CGRAM中。

3.向LCD写指令,送入需要显示数据的地址。

4.向LCD写指令,把显示的数据指向LCD的CGRAM存储的位置,显示出自定义字符。

举例如下:

1.建立一个字符数组;

uchar LCD_Data1[]={0x01,0x03,0x1D,0x11,0x1D,0x03,0x01,0x00};

2.设置CGRAM地址,写指令;

Write_LCD(0x40,0);

3.把数据送入CGRAM地址内;

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

{

Write_LCD(LCD_Data1[i],1);

}

4.写需要显示的位置指令;

Write_LCD(0x80,0);

5.把CGRAM的0位的数据送向,显示数据存储的数据;

Write_LCD(0x00,1);


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭