JLX12864G-139液晶显示器的应用设计
扫描二维码
随时随地手机看文章
引言
电力有源滤波器被公认为是治理电网谐波污染、改善电能质量的最有效手段。在基于数字信号处理器TMS320F2812的电力有源滤波器中,我们选用JLX12864G-139液晶模块作为人机界面来显示三相电压、电流、有功功率、无功功率、补偿后电流谐波畸变率等数据。本文主要论述TMS320F2812芯片与与液晶模块之间的硬件接口电路设计与软件实现液晶显示方法。
1TMS320F2812与液晶显示模接口电路设计
1.1JLX12864G-139液晶模块
JLX12864G-139液晶模块上排列着128X64点阵,128个列信号及64个行信号与驱动芯片ST7565R相连并受其控制,驱动芯片是邦定在LCD玻璃上的(这种加工工艺叫COG)。图1所示是JLX12864G-139图像点阵型模块的电路框图,它由驱动芯片ST7565R及几个电阻、电容组成。液晶模块在横向上可分为8页,第1页有8行;纵向上可分为128歹从图1中可以看出,要实现对液晶模块的控制,主要是对其驱动芯片ST7565R进行正确的操作。
图1液晶模块的电路框图
1.2接口电路
JLX12864G-139液晶模块有5V和3.3V两种供电方案。因为TMS320F2812芯片通用I/O口输出的电平是0~3.3V的CMOS电平,所以液晶模块也采用3.3V供电,这样的话两者硬件之间就不需要进行电平转换可直接进行相连,从而大大简化了硬件接口电路的设计,同时也可提高液晶模块的稳定性。
液晶模块有串行、并行两种读写方式。由引脚PS控制,PS端接高电平为并行接口,低电平为串行接口。串行接口的优点是占用I/O口较少,缺点是读写速度慢;并行接口的优点是读写速度快,缺点是占用I/O口较多。因TMS320F2812有多达56个可编程通用I/O引脚,并且电力有源滤波器对速度有一定要求,故本文采用并行接口的读写方式(将PS引脚接高电平3.3V)。
DSP芯片MS320F2812与液晶模块JLX12864G-139的接口电路如图2所示。DSP芯片与液晶模块相连的GPIO弓脚设定为通用I/O端口模式。本文所使用到的JLX12864G-139液晶模块的引脚简要说明如下:
D0~D7:数据总线。
WR:读/写。
RD:使能信号。
CS:片选。
RES:复位。低电平复位,低电平至少保持1ps的时间才能完成复位。复位完成后,回到高电平,液晶模块开始工作。
A0(RS):寄存器选择信号。高电平为数据寄存器,低电平为指令寄存器。
2显示程序设计
JLX12864G-139液晶模块的并行接口读写时序有8080和6800两种,两种主要区别在于上跳沿还是下跳沿读写数据,其他时序基本一致。图3所示是JLX12864G-139液晶模块时序图。根据液晶模块的时序图用C语言编写的写数据/指令代码子程序如下:
//写指令代码子程序
voidtransfer_command(unsignedintdata)
{
unsignedinttemp;
clr_cs();
clr_rs();
clr_rd();
clr_wr();
temp=(GpioDataRegs.GPBDAT.all&=0x00ff);
GpioDataRegs.GPBDAT.all=temp|(data«8);
set_rd();
set_cs();
clr_rd();
}
//写数据子程序:
voidtransfer_data(unsignedintdata)
{
unsignedinttemp;
clr_cs();
set_rs();
clr_rd();
clr_wr();
temp=(GpioDataRegs.GPBDAT.all&=0x00ff);GpioDataRegs.GPBDAT.all=temp|(data<<8);
set_rd();
set_cs();
clr_rd();
}
在写数据/指令代码子程序中用到了预处理命令,在此处仅列出clr_cs()与set_cs()的预处理命令,其他的与这两条指令基本类似,不再一一列出。
#defineclr_cs()GpioDataRegs.GPBCLEAR.bit.GPIOB5=0;//使复位RES引脚为低电平
#defineset_cs()GpioDataRegs.GPBSET.bit.GPIOB5=0;
//使复位RES引脚为高电平
JLX12864G-139液晶模块共有23种指令,具体指令可参考文献,要正确地使用指令格式,才能对液晶进行有效地控制。
在液晶正常显示字符前,首先要对液晶进行初始化和清显示屏(即填充的数据均为0x00),然后液晶模块才能正常地显示。根据液晶的指令格式,编写的初始化子程序和清显示屏子程序分别如下:
//初始化程序
Voidinitial_lcd()
{
clr_res();//低电平复位
delay(20);
set_res();//高电平复位结束
delay(20);
transfer_command(0xe2);//软复位delay(5);
transfer_command(0x2c);//升压步骤1delay(5);
transfer_command(0x2e);//升压步骤2delay(5);
transfer_command(0x2f);//升压步骤3delay(5);
transfer_command(0x23);//粗调对比度transfer_command(0x81);//微调对比度transfer_command(0x1a);//微调对比度的值transfer_command(0xa2);//1/9偏压比transfer_command(0xc0);//行扫描顺序transfer_command(0xa1);//列扫描顺序transfer_command(0xaf);//开显示
}
//清显示屏程序
voidclear_screen()
{
uint8i,j;
for(i=0;i<8;i++)
{
transfer_command(0xb0+i);//页地址transfer_command(0x10);//列高四位transfer_command(0x00);//列低四位for(j=0;j<129;j++)
{
transfer_data(0x00);//填充数据
}
}
}
//延时子程序
voiddelay(unsignedinti)
{
iunsignedintj,k;
for(j=0;j<i;j++)
for(k=0;k<990;k++);
}
3结语
JLX12864G-139是一个像素为128X64的液晶模块,在电力有源滤波器中,用它来显示三相电压、电流、有功功率、无功功率、补偿后电流谐波畸变率等数据。液晶模块与TMS320F2812之间的软硬件设计方案在电力有源滤波器实际运行过程中应用情况良好,性能也比较稳定,能够在强电磁干扰、电压波动等恶劣环境下运行。这种设计方案也可推广到其他型号的液晶模块和处理器,特别适合于处理器的外部总线资源紧张但有多余的I/O可供使用的系统。
20211021_61717d981419f__JLX12864G