LCD5110中文资料Word格式.docx

上传人:b****5 文档编号:20247002 上传时间:2023-01-21 格式:DOCX 页数:14 大小:608.56KB
下载 相关 举报
LCD5110中文资料Word格式.docx_第1页
第1页 / 共14页
LCD5110中文资料Word格式.docx_第2页
第2页 / 共14页
LCD5110中文资料Word格式.docx_第3页
第3页 / 共14页
LCD5110中文资料Word格式.docx_第4页
第4页 / 共14页
LCD5110中文资料Word格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

LCD5110中文资料Word格式.docx

《LCD5110中文资料Word格式.docx》由会员分享,可在线阅读,更多相关《LCD5110中文资料Word格式.docx(14页珍藏版)》请在冰豆网上搜索。

LCD5110中文资料Word格式.docx

2) 

接口简单,仅四根I/O线即可驱动,LCD1602需11根I/O线,LCD12864需12根。

3) 

速度快,是LCD12864的20倍,是LCD1602的40倍.

4) 

Nokia5110工作电压3.3V,正常显示时工作电流200uA以下,具有掉电模式,适合电池供电的便携式移动设备。

可以在市场上买到Nokia5110的裸屏和带PCB的Nokia5110屏幕,因为Nokia5110是不带背光的,所以通常商家会在PCB上按了几个背光LED,上电就能亮,建议大家还是买那种连上PCB的5110。

Nokia5110原理图:

商家把该引出的管脚都引出了,下面就可以连接C8051F的相应管脚,写程序驱动5110了.

Nokia5110和Nokia3110是兼容的,用的都是同一款驱动芯片PHILIPSPCD8544.

(1) 

SPI接口时序写数据/命令

Nokia5110(PCD8544)的通信协议是一个没有MISO只有MOSI的SPI协议,如果单片机有富裕的SPI接口,也可以利用硬件SPI,但通常没有必要,只需要软件程序模拟即可。

/***********************************************************

函数名称:

LCD_write_byte

函数功能:

模拟SPI接口时序写数据/命令LCD

入口参数:

data:

写入的数据;

command:

写数据/命令选择;

出口参数:

备注:

***********************************************************/

voidLCD_write_byte(unsignedchardat,unsignedcharcommand)

unsignedchari;

LCD_CE=0;

//5110片选有效,允许输入数据

if(command==0)//写命令

LCD_DC=0;

elseLCD_DC=1;

//写数据

for(i=0;

i<

8;

i++)//传送8bit数据

if(dat&0x80)

SDIN=1;

else

SDIN=0;

SCLK=0;

dat=dat<

〈1;

SCLK=1;

LCD_CE=1;

//禁止5110

管脚D/C(LCD_DC)用于选择写的是命令(D/C=0)还是数据(D/C=1).

(2) 

Nokia5110的初始化

接通电源后,内部寄存器和RAM的内容是不确定的,这需要一个RES低电平脉冲复位一下。

当VDD变为高电平,达到VDDmin(或更高)之后,最多100ms,RST输入低电平(电平幅度<

0.3VDD)。

5110复位时序

/***********************************************************

函数名称:

LCD_init

5110初始化

入口参数:

备注:

***********************************************************/

voidLCD_init(void)

{

LCD_RST=0;

//产生一个让LCD复位的低电平脉冲

delay_1us();

LCD_RST=1;

//关闭LCD

LCD_CE=1;

//使能LCD

LCD_write_byte(0x21,0);

//使用扩展命令设置LCD模式

LCD_write_byte(0xc8,0);

//设置液晶偏置电压

LCD_write_byte(0x06,0);

//温度校正

LCD_write_byte(0x13,0);

//1:

48

LCD_write_byte(0x20,0);

//使用基本命令,V=0,水平寻址

LCD_clear();

//清屏

LCD_write_byte(0x0c,0);

//设定显示模式,正常显示

}

(3)设置Nokia5110液晶的坐标

Nokia5110(PCD8544)的命令集:

命令字符解释:

要注意的是“功能设置"

命令的“H”和“V”.

H=0使用基本指令集命令,H=1使用扩展指令集命令。

V=0水平寻址,V=1垂直寻址。

48*84点阵的格式如上图,数据以字节8bit为单位下载到PCD8544的48*84bit显示数据RAM矩阵.列通过地址指针寻址,地址范围为X0~83(1010011),Y0~5(101).地址不允许超过这个范围。

在垂直寻址(V=1),Y地址在每个字节之后递增,经最后的Y地址(Y=5)之后,Y绕回0,X递增到下一列的地址。

在水平寻址模式(V=0),X地址在每个字节之后递增,经最后的X地址(X=83)之后,X绕回0,Y递增到下一行的地址.

经每一个最后地址之后(X=83,Y=5),地址指针绕回地址(X=0,Y=0)。

/***********************************************************

LCD_set_XY

设置LCD坐标函数

X:

0-83

Y:

0-5

***********************************************************/

voidLCD_set_XY(unsignedcharX,unsignedcharY)

LCD_write_byte(0x40|Y,0);

//column

LCD_write_byte(0x80|X,0);

//row

(4)显示英文字符

英文字符占用6*8个点阵,通过建立一个ASCII的数组font6x8[][6]来寻址。

而这个数字的行号对应(字符ASCII码-32).ASCII码表如下:

/***********************************************************/

LCD_write_char

显示英文字符

c:

显示的字符

***********************************************************/

voidLCD_write_char(unsignedcharc)

{

unsignedcharline;

c-=32;

//数组的行号

for(line=0;

line〈6;

line++)

LCD_write_byte(font6x8[c][line],1);

如要在NOKIA5110输出大写“A”,对应数组的行号为33,对应的元素为

{0x00,0x7C,0x12,0x11,0x12,0x7C},水平寻址(V=0)

NOKIA5110一行可以显示14个字符,可以显示六行。

(5)显示汉字

显示汉字可以采用两种点阵方式,一种是12*12点阵,一种是16*16点阵,网上也有一个自动提取字模的小软件“3310液晶显示屏汉字提取程序”,这个小程序只适用于水平寻址(V=0).

3310液晶显示屏汉字提取程序下载:

采用12*12点阵汉字时,由于不是8的整数倍数,因此行与行之间只能隔开,这样才能完整显示一个汉字。

//欢

{0x0A,0x92,0x62,0x9E,0x02,0x18,0x87,0x74,0x84,0x14,0x0C,0x00,0x02,0x01,0x00,0x04,0x05,0x02,0x01,0x00,0x01,0x02,0x04,0x00},

12*12点阵

(6)显示图形

显示的图形像素大小不能超过84*48。

也有一个字模提取小软件Zimo21可以帮助我们得到图像的像素数组.但要注意Zimo21软件的设置,不然的话就显示不了想要的图片。

Zimo21设置

要注意选中“纵向取模”“字节倒序”这样才能在5110上显示正确的图像.

/***********************************************************

LCD_draw_bmp_pixel

函数功能:

位图绘制函数

X、Y:

位图绘制的起始X、Y坐标;

*map:

位图点阵数据;

Pix_x:

位图像素(长)

Pix_y:

位图像素(宽)

***********************************************************/

voidLCD_draw_bmp_pixel(unsignedcharX,unsignedcharY,unsignedchar*map,unsignedcharPix_x,unsignedcharPix_y)

unsignedinti,n;

unsignedcharrow;

//计算位图所占行数

if(Pix_y%8==0)//如果为位图所占行数为整数

row=Pix_y/8;

else

row=Pix_y/8+1;

//如果为位图所占行数不是整数

LCD_set_XY(X,Y);

for(n=0;

n<

row;

n++)//换行

{

Pix_x;

i++)

LCD_set_XY(X+i,Y+n);

LCD_write_byte(map[i+n*Pix_x],1);

}

要显示的图像

NOKIA5110显示出来的效果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1