最近做个小项目,需要一块液晶屏显示信息,翻箱倒柜找到一块很早之前购买的Nokia 5110,正好可以用上。
按照卖家提供的参考资料,简单写个Demo测试一下,然后结果是这样的……
可以看出,在倾斜角度下,能勉强看到文字,也就是说程序大体是没问题的,至少指令都写过去了。那大概就是对比度出了问题,硬件上并没有可以直接调节对比度的元件,所以先看看初始化代码。
原初始化代码是这样的:
lcdWriteByte(0x21 , LCD_CMD); //使用扩展命令设置LCD模式
lcdWriteByte(0xC8 , LCD_CMD); //设置偏置电压
lcdWriteByte(0x06 , LCD_CMD); //温度校正
lcdWriteByte(0x13 , LCD_CMD); //1:48
lcdWriteByte(0x20 , LCD_CMD); //使用基本命令
lcdClear(); //清屏
lcdWriteByte(0x0C , LCD_CMD); //设置显示模式,正常显示
其中1:48这行代码看起来很可疑,有点像对比度,但是这注释也没写清楚,还是先去翻一下Datasheet。
0x13
对应的二进制为 0001 0011
,对应的设置应为