好文档 - 专业文书写作范文服务资料分享网站

LCD5110中文资料

天下 分享 时间: 加入收藏 我要投稿 点赞

C8051F学习笔记:Nokia 5110驱动

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

使用Nokia5110液晶的四大理由

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

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

3) 速度快,是LCD12864的20倍,是LCD1602的40倍。

4) Nokia5110工作电压,正常显示时工作电流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;

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

//写数据

//传送8bit数据

//写命令

if (command == 0) LCD_DC = 0; else LCD_DC = 1;

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

{

if(dat&0x80) }

LCD_CE = 1; }

//禁止5110

SDIN = 1; SDIN = 0; else SCLK = 0; dat = dat << 1; SCLK = 1;

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

(2) Nokia5110的初始化

接通电源后,内部寄存器和RAM的内容是不确定的,这需要一个RES低电平脉冲复位一下。当VDD变为高电平,达到VDDmin(或更高)之后,最多100ms,RST输入低电平(电平幅度<。

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_write_byte(0xc8, 0); LCD_write_byte(0x06, 0); LCD_write_byte(0x13, 0); LCD_write_byte(0x20, 0);

// 使用扩展命令设置LCD模式 // 设置液晶偏置电压 // 温度校正 // 1:48

// 使用基本命令,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为单位下载到PCD8544的48*84bit显示数据RAM矩阵。列通过地址指针寻址,地址范围为X 0~83(1010011),Y 0~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 出口参数:无 备 注:

***********************************************************/ void LCD_set_XY(unsigned char X, unsigned char Y) {

LCD_write_byte(0x40 | Y, 0); }

(4)显示英文字符

英文字符占用6*8个点阵,通过建立一个ASCII的数组font6x8[][6]来寻址。而这个数字的行号对应(字符ASCII码-32)。ASCII码表如下:

/***********************************************************/ 函数名称:LCD_write_char 函数功能:显示英文字符 入口参数:c 出口参数:无 备 注:

***********************************************************/ void LCD_write_char(unsigned char c) {

unsigned char line;

: 显示的字符

// column

LCD_write_byte(0x80 | X, 0); // row

LCD5110中文资料

C8051F学习笔记:Nokia5110驱动Nokia5110是一款经典机型,可能由于经典的缘故,旧机器很多,所以很多电子工程师就把旧机器的屏幕拆下来,自己驱动Nokia5110,用于开发的设备显示,取代LCD1602。使用Nokia5110液晶的四大理由1)性价比高,LCD1602可以显示32个字符,而Nok
推荐度:
点击下载文档文档为doc格式
1mh9l6nwry8mpoj7ocb09o8y29wt5t00z35
领取福利

微信扫码领取福利

微信扫码分享