基于W77E58的LCD控制及触摸屏接口设计[图]

杂谈9个月前发布 ooozhi
17 0 0

摘要:提出了一种用8位单片机控制16位带触摸屏的LCD的设计方法。TFT- LCD 模块T32QM 6450是一种点阵型LCD, 文中介绍了该模块以及触摸屏控制器ADS7843 的基本功能和工作原理。给出了W 77E58、T32QM6450 及ADS7843之间的接口设计方法,研究了实现字符、汉字、画面显示及屏幕滚动的编程方法,并给出了实现部分功能的通用子程序。

0 引言

随着嵌入式系统的广泛应用,出现了大量的16位和32位的嵌入式处理器。而传统的8位单片机长期用于生产实践,制造工艺成熟、性能更加可靠,仍然占有相当大的市场,特别是在汽车电子等对可靠性要求极高的领域。液晶显示位模块具有显示信息量丰富、功耗低、体积小、质量轻、无辐射等优点。

触摸屏作为一种特殊的计算机外设,是目前最自然、便利的一种人机交互方式。T32QM 6450液晶显示模块是带有触摸屏功能TFT 型彩色LCD显示屏,分辨率为240×320, 支持2.6 ×105色显示。其功能强,使用方便,接口简单,具有丰富的专用控制指令,可方便地实现画面滚动显示及触摸屏等功能。

1 T32QM6450液晶模块结构

T32QM 6450是液晶模块,主要由TFT – LCD 显示器、LED背光灯、触摸屏、源极驱动IC IS2102和栅极驱动IC IS2202构成,其中Source Driver负责提供列上各色素点的驱动电压,而Ga te Driver控制每行像素的选通状态。TFT液晶的每个像素点都是由集成在像素点后面的薄膜晶体管来驱动,从而可以做到高速度、高亮度、高对比度显示屏幕信息,可以精确控制显示灰度,LCD通过总线与处理器连接,实现数据和指令的传递。

2 T32QM6450与W77E58接口电路

硬件连接如图1所示。处理器芯片选用W77E58.该芯片是一个快速8051兼容微控制器,其内核经过重新设计,提高了时钟速度和存储器访问周期速度。它的指令集基本与8051相同,多了一条DEC DPTR指令。8051每12个时钟周期为一个机器周期,而W77E58每4个时钟周期为一个机器周期,提高了指令执行速度。另外,W77E58 还可调整MOVX 指令的周期,范围为2~ 9个机器周期,这种设计使W77E58能够更有效访问慢速或快速外部RAM 及外设。

图1 液晶屏与W77E58硬件连接电路

因为W77E58是高速8 位单片机,而该LCD模块采用16位总线接口,所以电路中用了2 片锁存器74HC573, 用P24~P27口分别控制2片锁存器的锁存使能和输出使能引脚LE (下降沿锁存) 、OE (低电平有效),先给第一片74HC573的LE一个高电平,通过P1口传送低8 位数据,然后给该片的LE 低电平锁存当前数据; 给第二片的LE 高电平,同样通过P1口传送高8位数据并锁存,最后同时给2片74H C573的OE低电平,即可实现16位数据的传送。

该系统是混合电压系统,液晶模块和ADS7843用3.3 V 供电,而处理器和锁存器是5 V 供电,这2部分是不能直接相连的。所以还要处理好电平的转换问题,电路中用4 片双向电平转换芯片74LVC4245, 它可以实现3.3 V和5 V的相互转换。

为实现触摸屏功能,电路中用1 片触摸屏控制器ADS7843.它是电阻式触摸屏控制芯片,具备串行12 位A /D转换功能,在关闭模式下,功耗仅为0.5uW, 在12 V、125 kH z的工作模式下功耗为750 uW3. 文中仅结合电路对主要功能加以介绍。CS是芯片选通端; DCLK 是时钟输入端,由P20 脚软件模拟时钟信号输入; DIN 是数据串行输入端,控制数据通过该引脚输入; X+ 、Y + 、X- 、Y – 是接触点坐标数据输入端; INT是中断引脚,用于通知MCU 有触摸事件发生,DOUT 将转换后的触摸位置数据串行输出到MCU。

3 LCD 显示的程序设计

3. 1 指令、数据的读写

通过对LCD模块的RS引脚设置1或0 值,即可实现处理器和LCD之间数据或指令的传送。当设定RS= 1, 传递的是数据信号; 设定RS= 0, 传递的是指令信号,模块的D8~ D15端口接收到的数据(即高8位)代表寄存器号,D0~ D7接收到的是控制指令。部分子程序如下:

3. 2 字符、汉字及颜色的显示

可调用以上子程序方便地向LCD模块发送控制命令和颜色信息。T32QM 6450模块共有158 个寄存器,通过调用WriCom 函数可向相关寄存器写入控制命令,然后调用WriData写入2字节的颜色信息,其RGB格式为: 红色为高5位( B it15~B it11),绿色为中间6位( B it10~ B it5),蓝色为低5位( B it4~B it0)。经以上操作,即可在指定位置或区域显示色彩、字符、图象等。如要在屏上坐标为(X, Y) 的点以颜色Co lo r显示一个字符或汉字,只要知道其点阵数组, 在每个要显示的点调用W r iDa ta(Color)即可。图片的显示原理类似,用转换工具将图片转换成C格式的数组文件即可。下例为显示字符的程序:

3. 3 滚动显示画面

要实现指定区域的画面的滚动显示效果,可以通过设置寄存器R75~ R80实现,其中寄存器R75、R76用于设置滚动区域的起始行; R77、R78设置画面的范围,即要滚动显示的行数;R79、R80设置每次滚动的行数,即步长。要注意的是,步长的设置并不是一劳永逸的,因为这里的步长是相对于滚屏初始化设置时的状态而言的,并非相对于上一次滚屏动作而言。图2举例说明了滚屏的设置及演示效果。

图2 滚屏的设置及过程演示

图2所示过程的C程序如下:

如果按照上述程序调试,则画面滚动较快,效果不明显。

实际应用时,可以结合定时器,每隔一定时间改变一次寄存器R79、R80的值,一般是按递增的等差数列赋值,可以获得很好的视觉效果。所赋最大值不能超过319, 因为屏幕最大只有320行; 当所赋值为319, 并且R75、R76所赋值为0时,可实现全屏画面的滚动显示。

4 结束语

该显示系统调试完成后,通过串口和GPS 模块连接,可以实时显示经度、纬度、时间等信号,显示效果良好。文中给出的子程序的形参多为2 字节的整型值,可直接用于16位、32位单片机,兼容性强,为其在便携式系统中的应用提供了一种方法。 基于W77E58的LCD控制及触摸屏接口设计[图]

© 版权声明

相关文章