APP下载

微型U盾液晶显示屏的驱动设计

2022-05-30杨凌曾文波钟建坤杨锦喜

电脑知识与技术 2022年30期
关键词:驱动器

杨凌 曾文波 钟建坤 杨锦喜

摘要:U盾密码器应用广泛,选用外形美观的微型U盾液晶显示屏,为了保证微型U盾液晶显示屏模组的性能,选用功耗低,组件数量少,性能稳定的驱动器ST7567A。针对驱动器,阐述了驱动器的特点,研究了驱动器的硬件引脚及驱动方式。采用微处理器STC89C52对微型U盾液晶显示模组进行驱动设计,驱动器与微处理器之间使用4线SPI接口时序通信方式,针对U盾液晶显示屏设计了驱动电路,并对屏幕显示功能进行了软件设计。实现了U盾液晶显示屏屏幕显示汉字及图片的功能。

关键词:U盾液晶显示屏;驱动器;ST7567A;显示

中图分类号:TP311     文献标识码:A

文章编号:1009-3044(2022)30-0095-03

开放科学(资源服务)標识码(OSID):

1 引言

U盾密码器是用于网上银行电子签名和数字认证的工具,它能够防止各种木马病毒、黑客等网络不安全因素,保障网上银行资金的安全[1]。随着U盾的广泛使用,U盾的核心部件液晶显示模组的需求也日渐提高。

本文使用的微型U盾液晶显示屏型号为YMK12864P,外形设计美观,屏幕非可视区域宽度能够达到0.9mm,且无须扩散膜,自带扩散功能的底偏光片,降低了生产成本[2]。液晶显示屏和驱动器一起构成液晶显示模组。为了保障U盾液晶显示模组的性能,对液晶显示屏驱动器的选用和设计至关重要。本文采用的微型U盾液晶显示屏驱动器型号为ST7567A,其功耗低,组件数量少,性能稳定。本文通过对驱动器的研究,针对U盾液晶显示屏产品设计了驱动电路,并对屏幕显示功能进行程序设计。

2 微型U盾LCD驱动器

U盾密码器产品包含了液晶显示屏及驱动器。ST7567A是一款单芯片点阵式LCD驱动器,内置振荡电路和低功率电源电路,无须外部时钟或电源即可产生LCD驱动信号,从而可以制造出组件数量少,功耗最低的显示系统。

ST7567A可直接连接到具有8位并行接口,4线串行接口,3线串行接口或I2C串行接口的微处理器。本文使用的是4线串行接口(4-SPI)连接方式。

ST7567A内部有一个存储显示数据RAM,简称为DDRAM,用于存储LCD显示屏的点阵数据。微处理器能够通过I/0口对DDRAM进行读取和写入,在LCD显示数据的时候同时,数据也可以写入DDRAM。

2.1 硬件引脚

ST7576A硬件引脚如图1所示。部分引脚功能为:

(1)引脚SEG0-SEG131,COM0-COM63和COMS为驱动器输出引脚。

(2)微处理器接口引脚为RSTB、CSB、A0。RSTB引脚用于硬件复位,内部初始化。CSB引脚为片选输入端,当CSB=0时启用接口访问。A0引脚用于判断D[7:0]上的信号是数据还是命令,当A0=1时表示显示数据,当A0=0时表示信号为命令。

(3)配置引脚包含SI2、PSB、C86,用于选择接口类型,如表1所示,其中“0”表示低电平,“1”表示高电平。本文采用串行4线SPI传输方式,因此设置引脚SI2=0,PSB=0,C86=1。

2.2 4线SPI接口时序

SPI,全称Serial Peripheral Interface,是一种通信协议。这种协议速度快,属于同步、全双工模式,该协议在数据传输时仅需四根线,占用芯片引脚数量少[3]。4线SPI接口时序图如图2所示。由时序图可知,当CSB为高电平时,D0-D7引脚为高阻态。当CSB为低电平时,串行数据(SDA)和串行时钟(SCL)输入被使能。在第八个串行时钟后,SDA上的串行数据将被处理为8位并行数据。同时,引脚A0被锁存且指示出8位并行数据是用于显示数据还是指令。SDA上的串行数据在SCL时钟的上升沿被锁存。

3 硬件驱动电路设计

3.1 微处理器STC89C52

本文使用微处理器STC89C52对微型U盾液晶显示模组进行驱动。STC89C52具备低功耗、高性能的特性[4],是由STC公司生产的。虽然使用的仍然是MCS-51内核,但相较于传统的51单片机更加灵活实用,STC89C52具备8位CPU,自带8K字节可编程可擦除的只读存储器,512字节的RAM,32位I/O口线[5]。能够为嵌入式控制应用系统提供有效的解决方案。

微处理器STC89C52共有4组8位的可编程I/O口,分别是P0、P1、P2、P3。复位后,P0、P1、P2、P3为准双向口/弱上拉,其中P0如果作为总线扩展用,无须添加上拉电阻,但作为I/O口用时,则要设置上拉电阻[6]。每个I/O口有8个引脚,即8位,可实现输入输出功能。根据硬件的情况,本文采用8位准双向I/O口线P3,用于连接液晶显示模组。

3.2 驱动电路设计

硬件驱动电路连接图如图3所示,其中P3.0-P3.5为微处理器STC89C52的IO引脚,CS、A0、SCL、SDA、RES为液晶显示屏驱动器ST7567A的引脚。YMK12864P为LCD屏型号,驱动器与LCD屏共同构成液晶显示模组。

由于微处理器STC89C52不带标准SPI接口[7],因此需要应用软件模拟的方式,使用IO口模拟SPI通信。本文采用P3.0、P3.1、P3.3、P3.4、P3.5引脚模拟SPI通信,这几个引脚分别连接CS、A0、SCL、SDA、RES。其中,CS引脚为片选信号,低电平有效,该引脚相当于是屏幕的开关,高电平则无法对LCD屏进行操作,只有低电平时才能对LCD屏进行操作。A0引脚为命令/数据信号,低电平时用于数据传输,高电平时用于命令传输。SCL引脚上升沿有效,SDA引脚用于数据传输,RES引脚是复位引脚。

4 驱动程序设计与实现

4.1 屏幕显示设计

本文在屏幕上显示汉字及图片,根据屏幕显示原理,程序总体设计思路为:

(1)屏幕初始化。

(2)字模提取。采用纵向取模,字节倒序,生成字码。

(3)设置页地址。明确汉字或图片所需页数。

(4)设置列地址。列地址需要分别取地址的高位及低位。

(5)读取汉字及图片字码,在屏幕上显示效果。

4.1.1 屏幕扫描方向设计

微型U盾LCD屏YMK12864P为128*64点阵屏。可分为8页,每页8行(D7-D0),共128列。D7-D0显示数据,读取数据时从高位开始读,显示数据的每个字节后,列地址自动增加。MX、MY用于控制屏幕的扫描方向,其中,MX用于控制屏幕列向的扫描方向,MY用于控制页的扫描方向。屏幕扫描方向如图4所示。当MX=0时,从第0列扫描至最后一列,当MX=1时,反向。当MY=0时,屏幕从第0页扫描至最后一页,当MY=1时,反向。

4.1.2 汉字显示程序设计

汉字显示程序设计分为以下几个步骤:

(1)字模提取

本文采用字模提取工具,根据屏幕扫描方向,设计汉字字模提取参数,如图5所示,参数为纵向取模,字节倒序,同时设置小四号字体,这样生成的字码点阵为16*16大小。

汉字“河”的字码为:

HE[]={0x10,0x60,0x02,0x8C,0x00,0x04,0xE4,0x24,0x24,0xE4,0x04,0x04,0xFC,0x04,0x04,0x00,0x04,0x04,0x7E,0x01,0x00,0x00,0x0F,0x04,0x04,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00,};

(2)设置页地址。由于汉字大小为16*16,屏幕每页为8行,因此一个汉字占两页。设置第0页的页面地址指令为0xb0,以此类推,设置第n页的页面地址指令为0xb0+n。

(3)設置列地址。设置列地址指令又分为两个指令,分别设置的是列地址的高四位和低四位。如果y表示汉字的列地址,yh表示地址高八位,yl表示地址第八位,则设置列地址高八位的指令为0x10+yh,设置列地址低八位的指令为0x00+yl。

(4)读取汉字字码数组,显示汉字。

(5)图片显示时,同样遵循上述步骤,先设置页地址和列地址,再一个一个读取图片字码。实现图片显示。

4.1.3 命令与数据传输程序设计

根据4线SPI接口时序图,设计发送命令程序思路为:首先设置CS引脚为低电平,A0引脚为低电平,数据一位一位传输。由于数据为8位,因此需要一位一位写入,当SCL引脚为上升沿时数据被写入。程序如下:

void wcomspi(char cmd)

{

int i;

clrbit(cs);

clrbit(A0);

for(i=0;i<8;i++)

{

clrbit(scl);

if(cmd&0x80)

setbit(sda);

else

clrbit(sda);

setbit(scl);

cmd=cmd<<1;

}

setbit(cs);

}

发送数据程序和发送命令程序类似,不同的地方在于引脚A0因设置为高电平。设计思路为:首先设置CS引脚为低电平,A0引脚为高电平,数据一位一位传输。由于数据为8位,因此需要一位一位写入,当SCL引脚为上升沿时数据被写入。程序如下:

void wdataspi(char dat)

{

int i;

clrbit(cs);

setbit(A0);

for(i=0;i<8;i++)

{

clrbit(scl);

if(dat&0x80)

setbit(sda);

else

clrbit(sda);

setbit(scl);

dat=dat<<1;

}

setbit(cs);

}

4.2结果展示

U盾密码器液晶显示屏YMK12864P屏幕大小为128*64。显示汉字“河源职业技术学院” 如图6所示,每个汉字大小为16×16,因此每个字占用两页,16列。总共所需列数为128,不超出屏幕范围。

屏幕显示校徽如图7所示,图片大小为48×48,因此图片占用6页,48列。

5 小结

本文使用STC89C52微控制器对微型U盾密码器液晶显示屏模组进行驱动设计。研究了驱动器ST7567A的引脚及工作时序,分析了U盾密码器液晶显示屏YMK12864P的显示原理。根据显示原理,本文设计了硬件驱动电路,实现了屏幕显示汉字与图片的效果。该屏幕非可视区域宽度较小,无须使用扩散膜,驱动器及微处理器功耗低,这使得整个系统成本更少,耗能更低,简单实用。从结果图可以看出,本文设计的驱动方案具有一定的可行性,效果较好,画面清晰稳定。

参考文献:

[1] 崔文涛,唐宾徽.银行网银U盾的安全调查[J].计算机产品与流通,2018(7):250.

[2] 杨锦喜,钟建坤,杨凌.一种微型U盾LCD屏的设计与研究[J].中国高新科技,2018(24):34-35.

[3] 张小景.串行外设接口通信的实现[J].装备机械,2021(2):18-22,61.

[4] 方淼.一种基于STC89C52的函数信号发生器实验设计[J].洛阳师范学院学报,2022,41(2):42-45.

[5] 罗潜,廖文浩,柳畅.基于STC89C52单片机的车内温湿度智能监控系统[J].仪器仪表用户,2021,28(9):34-37.

[6] 朱桂玉,李自成,刘昌明,等.采用STC89C52单片机的无线密码锁[J].电子世界,2021(19):83-85.

[7] 王平.基于单片机I/O口模拟的SPI串行通信实现[J].电子世界,2013(14):24,26.

【通联编辑:梁书】

猜你喜欢

驱动器
气动网络多腔室弯曲软体驱动器结构优化
空间大载荷石蜡驱动器研制
机器人关节驱动器通讯节点设计
压电陶瓷驱动器的迟滞特性
LLC大功率LED驱动器中关键参数研究
SiC基和Si基永磁同步电动机驱动器的比较
电场调制FeCoSi/PZT驱动器磁性研究
新型低电压大变形微驱动器数值求解及仿真
基于HV9921的市电供电LED灯球驱动器的设计
基于PLC控制的两双桥吊驱动器节能控制方式改造