教你玩转Nokia 5110液晶屏

液晶显示模块具有体积小、显示内容丰富、超薄、轻巧等优点,在嵌入式系统,尤其是低功耗场合中,得到越来越广泛的应用。目前,市场上比较常见的液晶显示屏有LCD1602、LCD12232、LCD12864等,但这几款液晶屏的功耗都比较高,本文将介绍一款低功耗的液晶显示模块——Nokia 5110,它是从诺基亚的经典手机Nokia 5110上拆下来的,具有较高的性价比。

教你玩转Nokia 5110液晶屏

Nokia 5110液晶屏(见图23.1)采用串行通信接口与主控制器进行通信,具有84像素×48像素的分辨率,工作电压为2.7~3.3V,在正常工作模式下,电流为240µA,具有掉电模式,特别适合以电池供电的便携式移动设备。

教你玩转Nokia 5110液晶屏

图23.1 Nokia 5110实物图

教你玩转Nokia 5110液晶屏

表23.1 Nokia 5110液晶屏的引脚

硬件电路设计

Nokia 5110液晶屏共有9个引脚,除去电源和地,通信引脚只有5个,功能如表23.1所示。CLK为时钟输入引脚,最高输入频率为4MHz;DIN为串行数据输入引脚,在时钟的上升沿传输;D/C为数据和指令切换引脚,高电平发送数据,低电平发送控制指令;CS为片选引脚,低电平有效;OSC为振荡器引脚,如果使用内部振荡器,需要将该引脚接高电平,如果使用外部振荡器,则直接将该引脚连接外部晶体振荡器;VOUT为供电设置引脚,外接0.1µF电容;RST为复位引脚,用于初始化液晶屏,低电平有效。

Nokia 5110液晶的串行通信接口只需要简单的几个阻容元件即可工作,电路如图23.2所示。使用内部振荡器,OSC引脚直接接高电平,VOUT引脚通过一个0.1µF电容接地。Nokia 5110液晶屏自身并没有背光电路,需要外接几个LED作为背光源,经实际验证表明,以贴片的蓝光或者白光二极管作为背光源,效果比较好,图23.2中共有4路蓝色LED作为背光源。

教你玩转Nokia 5110液晶屏

图23.2 Nokia 5110硬件电路原理图

驱动程序设计

1. 驱动指令

Nokia 5110 液晶屏通过控制D/C 引脚的电平高、低显示数据或者发送控制指令。当D/C为低电平时,输出的是控制指令信息;当D/C为高电平时,输出的是显示数据。由于控制指令数目比较少,因此Nokia 5110内部并没有设置寄存器存储指令,通过指令的数据格式进行识别,指令集如表23.2所示。不同指令的数据格式明显不同,总是在传输字节的某一位置高电平,如X坐标的第7位固定为高电平,Y坐标的第6位固定为高电平。

功能设置指令的PD位用来设置液晶工作模式,当PD为1时,芯片处于掉电模式,消耗电流降低到1.5µA;V位用来设置液晶屏寻址方式,当V为1时,启用垂直寻址方式,当V为0时,启用水平寻址方式,一般启用后者;H位用来控制指令集选择,H为高电平时,使用扩展指令集,H设置为低电平时,使用基本指令集。

显示设置通过D位和E位的组合进行调整,当D、E设置为0、0时,液晶屏显示空白,设置为1、0时,对应普通显示模式,0、1和1、1方式用得比较少。X坐标通过组合X6~X0设置,地址范围为0~83,Y坐标通过组合Y2~Y0设置,地址范围为0~5。

扩展指令集主要用于设置液晶屏的工作参数,可以根据经验进行设置。温度控制一般设置为0x06;偏置系统设置为0x13;Vop用于设置液晶屏操作电压,可通过下式进行计算,其中Vop取值范围为0~0x7F,即Vlcd设置范围为3.06~10.68V。

教你玩转Nokia 5110液晶屏

教你玩转Nokia 5110液晶屏

表23.2 Nokia 5110液晶屏的指令集

2. 程序设计

Nokia 5110 液晶屏的驱动程序包括初始化、清屏、显示字符、显示汉字、显示图形等函数,用户也可以根据需要开发新的接口程序。首先来看一下Nokia 5110液晶屏的时序图(见图23.3),在CS片选线的低电平有效期间发送数据,图中用圆圈标注的地方表示上升沿传输数据或者指令,传输数据高电平在先、低电平在后。串行总线发送多个字节的时序图,如图23.4所示。

教你玩转Nokia 5110液晶屏

图23.3 串行总线传送1个字节

教你玩转Nokia 5110液晶屏

图23.4 串行总线传送多个字节

这里以STC89C51 单片机为例,介绍Nokia 5110 液晶屏的驱动过程,如果采用AVR 或STM32 等自带 SPI 接口的单片机,可以通过 SPI 串行接口直接与 Nokia 5110 液晶屏通信。STC89C51单片机没有SPI接口,通过I/O口进行模拟也很方便。

鉴于篇幅关系,函数不再一一介绍,有需要的读者可以从qq群657864614上下载源代码。

应用案例

由于Nokia 5110液晶屏本身不含有字库,因此实际应用过程中,需要用户自己做字库、图形文件,存储在嵌入式处理器或者外部的存储器中。如果显示字符信息,字模大小一般设置为6像素×8像素,则每行可以显示14个字符,显示6行,一共84个字符。

这里向大家介绍一款不错的字模软件——3310液晶显示屏汉字提取程序,其界面如图23.5所示,该软件可以很方便地制作出12像素×12像素与16像素×16像素大小的汉字字库。如果用户需要制作其他格式的字库,可以使用Zimo21软件,该软件功能强大,除了制作字库,还可以生成图片的HEX代码。

通过STC89C51单片机运行如下主程序,即可显示汉字和图形,如图23.6和图23.7所示。用户可以参照本文,很方便地将Nokia 5110液晶屏应用到自己的产品设计中。

main(void)

{

LCD_init();//初始化液晶

LCD_clear();//清屏

while(1)

{

LCD_write_english_string(0,0," Nokia5110 LCD ");//显示字符

LCD_write_chinese_string(15,2,12,4,0,2);//显示汉字

LCD_write_chinese_string(1,4,12,6,4,2);//显示汉字

//LCD_draw_bmp_pixel (0,0,picture1,40,40);//显示图形1

//LCD_draw_bmp_pixel (42,0,picture2,40,40);//显示图形2

}

}

教你玩转Nokia 5110液晶屏

图23.5 3310液晶显示屏汉字提取程序

教你玩转Nokia 5110液晶屏

图23.6 Nokia 5110液晶屏显示汉字

教你玩转Nokia 5110液晶屏

图23.7 Nokia 5110液晶屏显示图形


分享到:


相關文章: