有片很早以前买的Nokia5110 LCD一直在纸箱里吃灰. 可能是买其它配件时送的? 没有合适的用途一直扔在那里, 偶尔见到总会想什么时候有空给它点一下.
外观长这样. 其实市面上这种模块有几个不同的版本, 另一种版本是上下有两排排针, 方便不同的PCB布局, 功能是一样的.
单色LCD, 84x48像素, 带4颗蓝色LED灯珠作为背光. 显示芯片是Philips PCD8544.
因为是Nokia5110手机的显示屏, 所以一般都叫它Nokia5110 LCD. 在2014年大屏手机还没流行的年代, 这是个相当不错的显示输出设备, 相对于1602和2004LCD, 体积小分辨率高, 便宜量又足.
现在遍地12864的LCD/OLED, 还有分辨率更高的彩色LCD可以选择, 这个模块也就没什么人用了.
PCD8544 的指令很少, 比 ST7567还少. 显示机制和 ST7567 基本上是一样的.
使用D/C pin控制, 高电平表示写入数据, 低电平表示写命令
Function set: 0x20, 叠加下面的参数
Display control: 0x08, 叠加下面的参数
PCD8544的显示结构
只能定位到字节, 定位后写入数据, 会按设置好的寻址方式往下写
下面的命令必须在开启扩展指令后执行才有效
这三个指令需要说明一下, 设置不当可能会显示全黑或者完全无显示
以下使用 STC8H3K32 和 FwLib_STC8 进行测试
上电前一定要检查一下VCC和GND是否正确, 电压是否正确
P37 -> RES, RESET
P36 -> DC, A0
P35 -> CE, Chip Select
P32 -> SCK, SCL, CLK, Clock
P12 -> BL, Backlight
P34 -> MOSI, Din
GND -> GND
3.3V -> VCC
代码可以从GitHub或者Gitee下载
// 重置
PCD8544_Reset();
// 设置对比度, 如果显示太淡或太深, 需要自行调整
PCD8544_SetContrast(0x06, 0x20);
// 设置为正常显示模式
PCD8544_SetDisplayNormal();
// 开启背光
PCD8544_SetBackLightState(HAL_State_ON);
// 关闭背光
PCD8544_SetBackLightState(HAL_State_OFF);
PCD8544_Fill(0);
PCD8544_UpdateScreen();
开启反显后, 需要再设置为正常显示模式才能恢复, 不能通过再次调用反显恢复
PCD8544_SetDisplayInverted();
// 从(0,0)画线到(83,0)
PCD8544_DrawLine(0, 0, 83, 0, 1);
PCD8544_DrawLine(0, 0, 0, 47, 1);
PCD8544_DrawLine(83, 0, 83, 47, 1);
PCD8544_DrawLine(0, 47, 83, 47, 1);
PCD8544_UpdateScreen();
// 移动坐标到(3,3)
PCD8544_GotoXY(3, 3);
// 使用5x7字体显示英文
PCD8544_Puts("LCD:PCD8544", &Font_5x7, 1);
PCD8544_UpdateScreen();
// 关机
PCD8544_SetPowerDownMode(HAL_State_ON);
// 开机
PCD8544_SetPowerDownMode(HAL_State_OFF);
这三个扩展命令会影响显示, 设置不当会变成全白或全黑
#define PCD8544_SETTEMP 0x04 // Extended instruction set - Set temperature coefficient
#define PCD8544_SETBIAS 0x10 // Extended instruction set - Set bias system
#define PCD8544_SETVOP 0x80 // Extended instruction set - Write Vop to register
其中
PCD8544_SETTEMP
是温度因子, 通常不需要设置PCD8544_SETBIAS
是偏压级别, 通常设置为[3,7]之间的指, 对应的写入就是[0x13, 0x17]PCD8544_SETVOP
是系统电压, 会受上面的两个参数影响如果初始化后无显示或显示全黑的, 可以根据上面的范围调整.
视频中可以看到不同基准电压下, 调节显示电压造成的对比度变化
STC8H硬件SPI驱动PCD8544 Nokia5110 LCD 演示_哔哩哔哩_bilibili
原文链接:https://www.cnblogs.com/milton/p/16339805.html