详解诺基亚5110液晶使用 - 图文

更新时间:2023-11-08 13:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

该模块具有以下特点:

●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线即可驱动,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是兼容的,用的都是同一款驱动芯片PHILIPS PCD8544。

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

Nokia5110(PCD8544)的通信协议是一个没有MISO只有MOSI的SPI协议,如果单片机有富裕的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; if (command == 0)

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

LCD_DC = 0; else LCD_DC = 1; for(i=0;i<8;i++)

{

if(dat&0x80) SDIN = 1; else

SDIN = 0; SCLK = 0;

dat = dat << 1; SCLK = 1;

//写数据

//传送8bit数据

}

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初始化 入口参数:无 出口参数:无 备 注:

***********************************************************/ 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,水平寻址

本文来源:https://www.bwwdw.com/article/6qu2.html

Top