在白色家电行业,随着技术的进步,以及市场的需求,利用液晶显示的模块,正在从动态驱动方式向静态驱动方式转变。液晶模块的静态驱动方式以其视角宽、省电、控制方式简单等优点逐渐被各液晶厂家采用。正值NXP举办COG活动,特申请了PCA8538驱动的VA液晶显示模块。利用此液晶显示模块模拟白色家电运行情况,验证PCA8538驱动芯片的驱动能力和显示效果。该模块显示区域分为三部分:A. 点阵显示区,95*8点阵,可以显示一些字符、提示信息等;B. 7段码数字区和一些图标;C. 温度和时钟显示区。
PCA8538主要功能介绍:
PCA8538采用COG封装,可以直接将其贴到LCD上,节省空间,增加可靠性;该驱动芯片专为驱动VA液晶而设计,能够最多驱动9路COM、102路SEG,因此可以最多驱动918个显示像素;PCA8538可以有以下驱动方式:静态、1/2duty、1/4duty、1/6duty、1/8duty、1/9duty;它内置了升压电路,最大可升压5倍的VDD2,节省了外围电路;PCA8538支持400KHz的I2C接口和6.5MHz SPI接口,二者可选;它能够支持的帧频从45Hz到300Hz,可根据具体LCD做出调整,以达到最佳显示效果。另外,PCA8538自带温度传感器和驱动电压自动温度补偿电路 ,外部的MCU可以直接读出当前温度,而芯片内部则可以根据此温度值对驱动电压自动(需MCU做初始化)做出调整以使LCD在任何温度下显示效果为最佳。
开发环境:
1、主控板采用自己设计的带USB转串口的开发板,使用的单片机为STC的STC90LE516AD,工作电压3.3V,晶振22.1184MHz;开发软件使用周立功的TKSTUDIO IDE V4.6版本。
2、上位机软件开发环境是VB6.0,虽然比较老,但很实用,对于搞硬件的来说已经够用了。
硬件电路:
1、NXP COG评估板上的跳线接法如下:
JP1(IFS)接口选择——接GND,选用SPI接口;
JP2(nCE)片选——把跳线帽去掉,使用飞线接到开发板的P3.3端口,使用P3.3控制片选信号;
JP3(OSC)时钟选择——接GND,使用内部振荡器;
JP4(SA0)——接GND;
JP5(SA1)——接GND;
JP6(VLCD)——短接,使用内部驱动电压;
JP7(SDAOUT)——接GND,使用SPI接口时此管脚不用;
2、接线原理图如下:
软件开发:
单片机软件开发:
开发环境使用周立功的TKSTUDIO IDE V4.6版本,采用SDCC编译器,该软件为免费软件,并且编辑环境很人性化,对编写代码速度很有帮助。
单片机软件主要包括以下几个部分:
- 一些宏定义和系统变量等;
- 95个ASCII字符表,8*8点阵字符;
- 液晶屏模块相关程序:PCA8538初始化,底层驱动,设置倍压,设置驱动电压,设置帧频,设置偏压;清屏,字符、字符串显示,各种数字显示,温度读取、显示等;
- 串口通讯部分程序:包括串口初始化,中断响应,命令集解析、执行,异常处理等;
- 定时器相关程序:定时器初始化,时钟计时等;
- 上位机测试软件开发:
开发环境为VB6.0,主要使用了MSCOMM控件,用于串口通讯,控制下位机执行相关命令;
- 界面设计:基本和NXP COG模块一致,在操作界面时,同步更新到液晶模块上;
- 点阵区控制:既可以实现全屏13个字符一次显示到液晶模块上也可以实现类似打印机效果的字符传送;
- 数字、图标区:输入0——9、A——F字符,将同步更新到模块上,如果点击图标,则液晶模块将显示该图标,再点击一次则取消该图标显示;
- 模块参数设置:这一功能设置区实现了在计算机上控制模块的一些底层操作,可随时更改这些参数以便观察显示效果;另外,一些基本的操作也列到此功能区,如:清屏,初始化,读取温度等;
- 通讯协议制定:
命令
|
| 方向
| 0x0c
| 清屏
| PC->MCU
| 0x0d
| 清除点阵区
| PC->MCU
| 0x0e
| 清除段码、图标区
| PC->MCU
| 0x20——
0x7f
| 字符ASCII,将显示在点阵区的当前位置上
| PC->MCU
| 0x1b,0x40,
| 初始化液晶屏
| PC->MCU
| 0x1b,0x14,ON_OFF
| 打开/关闭显示
| PC->MCU
| 0x1b,0x15,Bias
| 设置偏压
| PC->MCU
| 0x1b,0x0b,F_H,F_L
| 设置帧频,F_H*256+F_L
| PC->MCU
| 0x1b,0x0c,ICON_ID,ON_OFF
| 打开/关闭某一图标
| PC->MCU
| 0x1b,0x0d,NUM_ID,num
| 在某一位置显示数字
| PC->MCU
| 0x1b,0x0e,VOP_H,VOP_L
| 设置驱动电压VOP_H*256+VOP_L
| PC->MCU
| 0x1b,0x0f,0xaa,0x55
| 自测模式
| PC->MCU
| 0x1b,0x11,0xaa,0x55,
| 获取温度值
| PC->MCU
| 0x81,0x01,TEMP,,,,,,0xf1
| 返回温度值原始值
| MCU-> C
| 0x1b,0x12,start,display
| 设置时钟是否启动、是否显示
| PC-> C
| 0x1b,0x16,hour,minute
| 校对时钟,小时,分钟
| PC->MCU
|
系统验证:
将编译后的程序下载到单片机里,打开电源;在计算机中打开上位机软件,首先,选择控制板所对应的串口号,点击“打开”按钮,提示信息会提示是否成功打开端口。
然后,测试点阵区显示字符功能;测试打字机效果;
再次,在数字区里输入数字;在图标上点击,验证数字和图标是否显示正常;
最后,验证模块参数设置功能区,验证是否达到相应效果;
在此基本功能实现的基础上,又逐步验证了模拟白色家电运行情况,不再赘述。
活动总结:
通过NXP COG,体验了PCA8538驱动VA液晶的显示效果,确实在各方面都优于普通液晶显示模块,尤其是对比度方面,底色很黑,而需要显示的像素很亮,同时也体验了PCA8538驱动液晶的控制方式、软件编写等实际应用,模拟了在白色家电中实际应用的情况,达到了预期目的,对在以后的项目中开发液晶显示模块有很大参考作用。
相关文件、程序分享:
- 单片机程序:包括液晶屏底层驱动程序,定时器程序,串口通讯程序,主程序,以及其他相关程序;
- VB测试程序:将编译好的可执行文件进行打包,和大家一起分享,大家下载后可直接安装,即可控制液晶屏上的任何显示单元;
- PCA8538芯片的管脚COM0——COM7、COM8,以及SEG0——SEG101与液晶屏模块的COM、SEG对应关系表,已整理完毕,做成EXCEL表格和大家分享;
- 图片分享:相关测试截图;
- 视频分享:请查看已上传的相关视频;
相关图片、视频展示:
- 单片机软件开发环境:
- 下载软件:
- VB测试软件:
- NXP COG液晶模块开机画面:
- NXP COG液晶模块校对时钟画面:
- 视频链接:
|