市场上大多数LCD12864采用的显示驱动都是ST7567。前不久用3.3v供电的单片机驱动ST7567发现完全无显示,应该不是程序问题,因为程序在5v供电的单片机上运行是没有问题。
后来发现:是Electronic Volume Control设置偏低,导致LCD内部电压不足。
这是后来的初始化代码:
- transfer_command(0x2f);//0x2f升压电路,电压管理电路,0x20-0x27为V5电压内部电阻调整设置
- transfer_command(0x81);//SET EV 调对比度
- transfer_command(0x1f);//0x01-0x3f电量寄存器设置模式
- transfer_command(0xa0);//0xa0为Segment正向,0xa1 为Segment反向
- transfer_command(0xc8);//0xc0正向扫描,0xc8反射扫描
- transfer_command(0xa6);//0xa6正向显示,0xa7反向显示
- transfer_command(0xa4);//0xa4正常显示,0xa5全屏点亮
- transfer_command(0xf8);//背压比设置
- transfer_command(0x10);//0x00-0x01-0x10
- transfer_command(0xaf);//0xaf显示器开
复制代码
其中: transfer_command(0x81);//SET EV 调对比度
transfer_command(0x1f);//0x01-0x3f电量寄存器设置模式 EV设置为0x1f,原来的这个参数设的是0x01 数据手册上寄存器关于EV的描述
为什么要调成1FH,其实也很简单,之前整个电路都是用5v驱动,原来设成01H,就有足够的内部电压,这次底板供电是3.3v,这个参数要提高才行,1FH应该是合适的。
|