一种基于DSP控制的液晶显示屏的设计及实现
2 DSP与液晶显示屏硬件接口的设计
本文引用地址:https://www.eepw.com.cn/article/267022.htm由于该款液晶显示屏内嵌了SED1335控制器,并且将接口电路直接引出,因此对于用户而言,整体设计大大简化,只需考虑DSP同接口电路间的连接即可。
以下是DSP与该液晶显示屏硬件接口的一种设计方案,如图1所示。
在该系统的设计过程中,选用了TI公司的TMS320C5402芯片。由于其内部ROM不可写,所以外挂一片32K的27256 EEPROM作为外部程序区来存储程序与外部字库。考虑到TMS320C5402芯片具有高达1Mbit的外扩空间,实际应用时用户可以根据需要改变ROM的大小。对于液晶显示屏的数据接口,因为DSP与液晶显示屏均由3.3V供电,可以直接将二者数据线相连,这样DSP就能将ROM或RAM中的数据直接送入控制器的缓存中以便显示。液晶显示屏的控制信号由DSP地址线的第16位与第9位译码,因此在程序的设计中,指令口地址为8100H,数据口地址为8000H。由于DSP的读写管脚复用,当该管脚为高时,通过非门输出低电平选通液晶显示屏的读信号;当读管脚为低时,则直接选通液晶显示屏的写管脚。
3 DSP控制液晶显示屏的软件设计
这里通过液晶显示屏的初始化过程以及如何显示一幅图画来具体说明DSP控制液晶显示屏的软件设计。需要显示的图片如图2所示。可以通过WINDOWS附带的画图工具制作这样一幅320×240的黑白位图。针对这款显示屏是由右向左显示的特点,需要将其垂直对称翻转,最后将处理过的图片以16进制文件的形式烧入外部27256中。该图片数据文件在DSP外部空间的起始地址为:0C000H。
由流程图(图3)可以看出,在系统硬件上电复位后,软件根据用户的需要自动对各项控制器指令代码及其参数进行设置,从而完成对液晶模块的参数(如液晶的行数、列数、扫描频率、光标的位置等)以及显示方式等一系列的初始化过程。在对系统进行正确的初始化以后,可以通过DSP将外部ROM中的数据直接送至SED1335显示缓冲区,控制器就可以控制液晶屏显示出用户所要的图画。同时用户也可以根据自己的需要在主程序运行的过程中改变图片显示的形式,只需在表1中选择相应的指令代码以及参数即可。

设置系统指令及其参数的方法如下:根据用户硬件电路的设计,先将指令代码送到SED1335控制器的命令口地址;然后把该指令的参数依次送到数据口地址,经过系统指令及其参数的设置后,就可以把数据送到数据口地址。具体语法形式如下:
指令设置语句:
STM #XXH,AR0 ;XXH为指令代码
PORTW AR0,#8100H ;8100H为命令口地址
参数设置语句:
STM #XXH,AR0 ;XXH为指令参数
PORTW AR0,#8000H ;8000H为数据口地址
…………
数据输入语句:
STM #XXH,AR0 ;XXH为用户数据
PORTW AR0,#8000H ;8000H为数据口地址
…………
液晶显示屏的初始化程序如下:
INIT:
STM #40H,AR0 ;系统设置命令,指令代码:40H
PORTW WR0,#8100H
STM #10H,AR0 ;标准设置
PORTW AR0,#8000H
STM #87H,AR0 ;设置光标宽度为8
PORTW AR0,#8000H
STM #07H,AR0 ;设置光标高度为8
PORTW AR0,#8000H
STM #27H,AR0;设置LCD每行需要的字节数,
PORTW AR0,#8000H每行320个点,行数为320/8=40
STM #36H,AR0 ;设置液晶的扫描频率约为70Hz
PORTW AR0,#8000H
STM #0F0H,AR0 ;设置LCD的点行数为240
PORTW AR0,#8000H
STM #28H,AR0 ;设置显示屏一行所占显缓的字节数
PORTW AR0,#8000H
STM #00H,AR0
PORTW AR0,#8000H
STM #44H,AR0 ;SCROLL指令,指令代码:44H
PORTW AR0,#8100H
STM #00H,AR0 ;确定第一显示区的首地址
PORTW AR0,#8000H
STM #00H,AR0
PORTW AR0,#8000H
STM #240D,AR0 ;设置第一显示区的行数
PORTW AR0,#8000H
STM #00H,AR0 ;确定第二显示区的首地址
PORTW AR0,#8000H
STM #40H,AR0
PORTW AR0,#8000H
STM #0F0H,AR0 ;设置第二显示区的行数
PORTW AR0,#8000H
STM #00H,AR0 ;确定第三显示区的首地址
PORTW AR0,#8000H
STM #80H,AR0
PORTW AR0,#8000H
STM #4CH,AR0 ;设置光标自动由左向右移动
PORTW AR0,#8100H
STM #5BH,AR0 ;设置显示屏为两层叠加显示方式
PORTW AR0,#8100H
STM #0DH,AR0
PORTW AR0,#8000H
…………
STM #42H,AR0 ;液晶显示屏显缓写指令
PORTW AR0,#8100H
LD #240D,A ;清屏程序
LOOP1:LD #40D,B
LOOP2:STM #00H,AR0
PORTW AR0,#8000H
SUB #1H,B
BC LOOP2,BNEQ
SUB #1H,A
BC LOOP1,ANEQ
RET ;初始化结束
显示图片的主程序如下:
AMIN:STM #800H,SP
CALL INIT ;调用液晶显示屏初始化程序
STM #0C03EH,AR1 ;位图数据相对于BMP文件头的地址
STM #42H,AR0
PORTW AR0,#8100H ;送液晶显示屏缓写指令
LD #240,A
CMP:LD #40,B
CMP1:PORTW AR1+,#8000H;将320×240的位图数据依次写入缓存区
SUB #1,B
BC CMP1,BNEQ
SUB #1,A
BC CMP,ANEQ
B $ ;主程序结束
以上就是该系统的软件设计。由于篇幅有限,这里省略了某些控制指令的设置,用户可根据实际需要添加设置。在实际的软件设计中,DSP汇编语言执行过程中由于本身延时而引起的数据丢失现象,可以适当地加入空指令(NOP)来解决。同时,本程序中使用图片显示的例子只是用来说明控制器的利用方面就显得有些浪费而且灵活性较差。针对那些存储空间有限、效率要求高的系统,可以制作成字模存储在外部ROM中供多次调用, 当显示文字时只需计算出显示地址而后调用字模入口地址即可。
本文提出的基础DSP控制的液晶显示屏,作为示波表显示前端已在实际应用中取得了成功。该系统中所选用具有64K大容量缓存区的SED1335控制器,适用于多种点阵规格的显示屏使用,加之其内部固化的字符发生器可产生160种字模,以及具有通过改变指令参数可实现图像的闪烁、翻转、移动等特点,因此从总体性能方面而言其大大强于同类型的其它控制器,非常适用于各种便携式系统显示前端的设计。
led显示器相关文章:led显示器原理
评论