找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 47255|回复: 25
收起左侧

Nokia5110LCD详细资料及单片机驱动方法详解

  [复制链接]
ID:100029 发表于 2015-12-22 20:26 | 显示全部楼层 |阅读模式
 

Nokia/诺基亚5110 LCD原理应用资料:LPH7366 是NOKIA 公司生产的可用于其5110、6150,6100 等系列移动电话的液晶显示模块,国内厂家也生产有类似的兼容产品。该产品除应用于移动电话外,也可广泛应用于各类便携式设备的显示系统。与其它类型的产品相比,该模块具有以下特点:
●84x48 的点阵LCD,可以显示4 行汉字,
●采用串行接口与主处理器进行通信,接口信号线数量大幅度减少,包括电源和地在内的信号线仅有9 条。支持多种串行通信协议(如AVR 单片机的SPI、MCS51 的串口模式0等),传输速率高达4Mbps,可全速写入显示数据,无等待时间。
●可通过导电胶连接模块与印制版,而不用连接电缆,用模块上的金属钩可将模块固定到印制板上,因而非常便于安装和更换。
●LCD 控制器/驱动器芯片已绑定到LCD 晶片上,模块的体积很小。
●采用低电压供电,正常显示时的工作电流在200μA 以下,且具有掉电模式。
LPH7366 的这些特点非常适合于电池供电的便携式通信设备和测试设备中

 

C8051F学习笔记:Nokia 5110驱动

Nokia5110是一款经典机型,可能由于经典的缘故,旧机器很多,所以很多电子工程师就把旧机器的屏幕拆下来,自己驱动Nokia5110,用于开发的设备显示,取代LCD1602

使用Nokia5110液晶的四大理由

1)     性价比高,LCD1602可以显示32个字符,而Nokia5110可以显示15个汉字,30个字符。Nokia5110裸屏仅8.8元,LCD1602一般15元左右,LCD12864一般50~70元。

2)     接口简单,仅四根I/O线即可驱动,LCD160211I/O线,LCD1286412根。

3)     速度快,是LCD1286420倍,是LCD160240倍。

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

 

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

 

Nokia5110原理图:请到帖子底部下载附件

 

 

 

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

 

Nokia5110Nokia3110是兼容的,用的都是同一款驱动芯片PHILIPS PCD8544

 

(1)   SPI接口时序写数据/命令

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

 

 

 

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

函数名称:LCD_write_byte

函数功能:模拟SPI接口时序写数据/命令LCD

入口参数:data    :写入的数据;

          command :写数据/命令选择;

出口参数:无

注:

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

void LCD_write_byte(unsigned char dat, unsigned char command)

  {

    unsigned char i;

    LCD_CE = 0;                              //5110片选有效,允许输入数据

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

         LCD_DC = 0;                         

    else  LCD_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(或更高)之后,最多100msRST输入低电平(电平幅度<0.3VDD)

 

 

5110复位时序

 

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

函数名称:LCD_init

函数功能:5110初始化

入口参数:无

出口参数:无

注:

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

void LCD_init(void)

  {

   LCD_RST = 0;     // 产生一个让LCD复位的低电平脉冲

    delay_1us();

   LCD_RST = 1;

 

   LCD_CE = 0;     // 关闭LCD

    delay_1us();

   LCD_CE = 1;     // 使能LCD

    delay_1us();

 

    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);      // 设定显示模式,正常显示

  

    LCD_CE = 0;      // 关闭LCD

  }

 

 

(3)设置Nokia5110液晶的坐标

Nokia5110(PCD8544)的命令集:

 

 

 

命令字符解释:

 

要注意的是“功能设置”命令的“H”和“V”。

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

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

 

 

 

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

 

 

 

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

 

 

 

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

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

 

 

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

函数名称:LCD_set_XY

函数功能:设置LCD坐标函数

入口参数:X       083

          Y       05

出口参数:无

注:

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

void LCD_set_XY(unsigned char X, unsigned char Y)

  {

    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      :  显示的字符

出口参数:无

注:

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

void LCD_write_char(unsigned char c)

{

    unsigned char line;

    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

函数功能:位图绘制函数

入口参数:XY    :位图绘制的起始XY坐标;

          *map    :位图点阵数据;

          Pix_x   :位图像素(长)

          Pix_y   :位图像素(宽)

出口参数:无

注:

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

void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,unsigned char *map, unsigned char Pix_x,unsigned char Pix_y)

{

    unsigned int i,n;

    unsigned char row;

                                            //计算位图所占行数

      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++)            //换行

      {     

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

          {     

                 LCD_set_XY(X+i,Y+n);

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

          }                        

      }     

}

 

 

要显示的图像

 

 

NOKIA5110显示出来的效果

 


3310液晶显示屏汉字提取程序.rar

167.03 KB, 下载次数: 128, 下载积分: 黑币 -5

NOKIA5110驱动程序(C8051F320).rar

46.55 KB, 下载次数: 244, 下载积分: 黑币 -5

Nokia5110原理图.rar

225.48 KB, 下载次数: 139, 下载积分: 黑币 -5

驱动芯片PCD8544英文数据手册.rar

133.78 KB, 下载次数: 38, 下载积分: 黑币 -5

驱动芯片PCD8544中文数据手册..rar

577.22 KB, 下载次数: 76, 下载积分: 黑币 -5

回复

使用道具 举报

ID:58884 发表于 2016-2-19 20:57 | 显示全部楼层
能下载吗。。。。。。
回复

使用道具 举报

ID:58884 发表于 2016-2-19 20:58 | 显示全部楼层
资料能直接下载下来吗
回复

使用道具 举报

ID:138447 发表于 2016-9-4 22:20 | 显示全部楼层
?怎么下载
回复

使用道具 举报

ID:138931 发表于 2016-9-9 11:54 | 显示全部楼层
好东西,支持
回复

使用道具 举报

ID:138608 发表于 2016-9-9 14:38 | 显示全部楼层
压成一个包不行吗?
回复

使用道具 举报

ID:185971 发表于 2017-5-16 10:01 | 显示全部楼层
好多包,但非常感谢
回复

使用道具 举报

ID:64765 发表于 2017-5-16 20:36 | 显示全部楼层
下载学习了,谢谢分享。
回复

使用道具 举报

ID:259400 发表于 2017-12-28 07:37 | 显示全部楼层
可以下载你的的,谢谢楼主
回复

使用道具 举报

ID:267741 发表于 2018-1-5 18:28 | 显示全部楼层
很好的资料,学习了
回复

使用道具 举报

ID:140353 发表于 2018-1-14 16:29 | 显示全部楼层
好东西,谢谢
回复

使用道具 举报

ID:272932 发表于 2018-1-14 21:58 | 显示全部楼层
好包好包,就是太多
回复

使用道具 举报

ID:274070 发表于 2018-1-15 09:39 | 显示全部楼层
牛人,收我为徒吧
回复

使用道具 举报

ID:117047 发表于 2018-3-12 15:35 | 显示全部楼层
感谢分享!!
回复

使用道具 举报

ID:319736 发表于 2018-5-1 11:07 | 显示全部楼层
不错,怎么下载呢
回复

使用道具 举报

ID:342790 发表于 2018-6-13 20:33 | 显示全部楼层
下载后,程序一直显示有错误?

回复

使用道具 举报

ID:162136 发表于 2018-6-15 19:18 | 显示全部楼层
真是不错。
回复

使用道具 举报

ID:121690 发表于 2018-7-10 10:35 | 显示全部楼层
好东西,谢谢
回复

使用道具 举报

ID:599401 发表于 2019-10-11 09:33 来自手机 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

ID:105149 发表于 2019-11-1 23:57 | 显示全部楼层
看看,谢谢大佬。
回复

使用道具 举报

ID:372776 发表于 2020-1-21 00:09 | 显示全部楼层
请问买来没有底板的裸屏能直接用吗?外部电路是不是已经集成好了?
回复

使用道具 举报

ID:372776 发表于 2020-1-21 00:10 | 显示全部楼层
请问买来5110的裸屏是不是直接就可以用了?外部电路已经配置集成好了吧?
回复

使用道具 举报

ID:59884 发表于 2020-11-24 12:49 | 显示全部楼层
感谢分享!要想办法用单片机弄出个中文字库。使用起来更简单。
回复

使用道具 举报

ID:1006582 发表于 2022-3-6 00:47 | 显示全部楼层
感谢分享!要想办法用单片机弄出个中文字库。使用起来更简单
回复

使用道具 举报

ID:969272 发表于 2022-3-6 21:51 | 显示全部楼层
买的屏对比度较暗,怎么调啊?
回复

使用道具 举报

ID:537530 发表于 2023-12-5 20:34 | 显示全部楼层
mark。好像还有块屏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表