plcjs.技.术_网
1 硬件电路接口的设计P.L.C.技.术.网——可编程控制器技术门户
WWW_P※LCJS_CO※M-PLC-技-.术_网
图1给出了液晶显示模块的硬件电路接口设计框图,该系统采用TI公司的TMS320F206芯片(以下简称F206),其内部带有4KB的FLASH存储器,可以根据系统需要外挂EEPROM作为外部程序存储区。WWW.PLCJS.COM——可编程控制器技术门户
P.L.C.技.术.网——可编程控制器技术门户
SEDl335控制器是日本EPSON公司生产的一款液晶显示屏控制器,与同类产品相比,功能最强。主要特点有:WWW_P※LCJS_CO※M-PLC-技-.术_网
plcjs.技.术_网
有较强功能的I/O缓冲器;WW.W_PLC※JS_C,OM-PL,C-技.术_网
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
指令功能丰富;WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
四位数据并行发送;WWcW_PLCJS_COM-PLC-技.术_网
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
图形和文本方式混合显示。WWW_PL※CJS_COM-PLC-技.术_网
可编程控制器芯片GALl6V8的输入端连接到DSP上,输出为硬件汉字库、液晶控制器、键盘扫描电路提供所需的片选和使能信号。该芯片编程实现容易,可以随时修改其逻辑关系,在一定程度上提高了开发的通用性。硬件汉字库的片选信号为CE=A15+PS,F206的外部程序空间起始地址为08000H。由于F206的程序寻址范围可以达到64KB,要寻址256KB的程序空间,需扩展外部的程序空间。为此,将F206的100~2与硬件汉字库AT27C020A的地址高三位相连,以达到扩展程序寻址的目的。在显示汉字时,可以实现分页管理,共分成8页,每页32KB,占用DSP系统的程序空间的8000~FFFFH。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
为保证F206与SED1335能正常通信,SED1335的数据总线(D0~D7)直接连接到F206的低字节数据总线(D0-D7)上。SED1335片选信号由F206的A15(最高位地址线)、A14、IS(I/O空间选择信号)共同决定,其逻辑关系为CE=A15+A14+IS,且SED1335的A0接至F206的A0(最低位地址线)。WWW_PLCJS@_COM%-PLC-技.术_网
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
2 硬件汉字库的制作WWW_P※LCJS_COM-PLC-)技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
硬件汉字库使用了AT27C020A,该产品是ATMEL公司生产的256KB的FLASH ROM,在具体电路设计时应注意引脚定义和逻辑关系,并在烧录时选择相应的型号。本设计采用UCDOS软件中的HZK16点阵文件,字模大小为16x16,在该文件中,按汉字区位码从小到大依次存有国标区位码中的所有汉字,每个汉字占用32个字节,每个区为94个汉字。如果显示其属性,可以看出其大小为262KB。当写人AT27C020A时,可以将多于256KB的部分截去。实际上,在国标汉字点阵字库中,二级汉字排到第87区,从第88区开始就是空白,所以将多余部分截去不会影响实际操作中硬件汉字库的制作,和普通的程序存储器的编程没什么不同。因此,从中截去87区后的字库,补上8×16的ASCII码点阵数据。烧写过程中采用通用编程器spectrum-48进行编写,将HZK16文件调入时要使用二进制方式打开,编程并校验成功后,即可将存储器取下备用。这样,一个硬件汉字库就制作好了。WWW.PLCJS.COM——可编程控制器技术门户
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
针对不同的应用,可以选用大容量存储器甚至是串行数据存储器,从而扩展硬件汉字库的使用范围。在此使用容量为512KB的存储器,除了可以存储全部的国标汉字外,还可以存储8×16的ASCII码点阵数据以及汉字语句编码数据,使用起来非常方便。WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
WWW_P※LCJS_CO※M-PLC-技-.术_网
3 DSP控制液晶显示的软件设计及实现——可——编——程——控-制-器-技——术——门——户
plcjs.技.术_网
通过初始化液晶显示屏以及调用硬件汉字库显示连续的汉字来具体说明DSP控制液晶显示屏的设计思想。从程序的可移植性和通用性方面考虑,选用了C语言进行软件模块的设计实现。WWW_PLCJS@_COM%-PLC-技.术_网
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
液晶控制器指令的写入端口地址是C001H,写参数及显示数据端口地址为C000H,定义形式如下:WWW_PL※CJS_COM-PLC-技.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
extern ioport uint poac000;//数据写入地址WWcW_PLCJS_COM-PLC-技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
extern ioport uint poac001;//指令写入地址WWW_PLCJS_COM-PLC-技.术_网
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
#define LCDCMD poac001//指令写入端口地址WWcW_PLCJS_COM-PLC-技.术_网
WWcW_PLCJS_COM-PLC-技.术_网
#define LCDDATA portc000//写参数及显示数据地址WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
系统硬件上电复位后,首先完成DSP的初始化,然后根据用户系统的需要对控制器的各项指令代码及其参数进行设置,以完成液晶模块的参数(如液晶的行数、列数、扫描频率、光标的位置等)以及显示方式等一系列过程的初始化。在MPU操作SED1335及其控制的液晶显示模块时,必须首先写入SYSTEM SET 40H指令。如果该指令设置出现错误,则显示必定不正常。液晶模块软件初始化设计的流程图如图2所示。WWW_PLCJS_COM-PLC-技.术_网
WW.W_PLC※JS_C,OM-PL,C-技.术_网
F206初始化程序如下:WWW_P※LCJS_COM-PLC-)技.术_网
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
asm(“clrc cnf");WWW_PLC※JS_COM-PmLC-技.术_网
WWW_PLCJS_COM-PLC-技.术_网
asm(“ldp #Oh”);WWW_P※LCJS_COM-PLC-)技.术_网
WWW_PL※CJS_COM-PLC-技.术_网
abm(“setc INTM”);P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
WWW.PLCJS.COM——可编程控制器技术门户
设置液晶控制器的系统指令及参数的程序如下:WWW.PLCJS.COM——可编程控制器技术门户
WWW.PLCJS.COM——可编程控制器技术门户
typedef unsigned int uint;WW.W_PLCJS_COM-PLC-技.术_网
P.L.C.技.术.网——可编程控制器技术门户
uint SYSTAB[8]={0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00); //系统设置指令参数WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
P.L.C.技.术.网——可编程控制器技术门户
uint SCROLLTAB[10]={0,0,Oxf0,0xb0,0x04,0xf0}; //SCROLL指令参数WWW_PLCJS@_COM%-PLC-技.术_网
WWW_P※LCJS_CO※M-PLC-技-.术_网
void command(uint m)WWW_P※LCJS_CO※M-PLC-技-.术_网
plcjs.技.术_网
{WWW.PLCJS.COM——可编程控制器技术门户
WW.W_PLCJS_COM-PLC-技.术_网
LCDCMD=m; //向1335中写入指令代码plcjs.技.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
}WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
void data(uint n)WWW_PL※CJS_COM-PLC-技.术_网
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
{plcjs.技.术_网
W1WW_P4LCJS_COM-PLC-技.术_网
LCDDATA=n; //向1335中写入数据及指令参数P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
——可——编——程——控-制-器-技——术——门——户
}WWW_PL※CJS_COM-PLC-技.术_网
WWW_P※LCJS_COM-PLC-)技.术_网
//清除显示区数据P.L.C.技.术.网——可编程控制器技术门户
WW.W_PLCJS_COM-PLC-技.术_网
void cleardata(uint csfi,uint csrh,uint datal)P.L.C.技.术.网——可编程控制器技术门户
WWW_PLCJS_COM-PLC-技.术_网
{WW.W_PLC※JS_C,OM-PL,C-技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
uint i,j;WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
WW.W_PLCJS_COM-PLC-技.术_网
command(0x46); //写入光标地址指令WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WWW.PLCJS.COM——可编程控制器技术门户
data(csd); //光标地址的低8位WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
P.L.C.技.术.网——可编程控制器技术门户
data(csrh); //光标地址的高8位W1WW_P4LCJS_COM-PLC-技.术_网
P.L.C.技.术.网——可编程控制器技术门户
command(0x4c); //光标自动右移指令WW.W_PLCJS_COM-PLC-技.术_网
plcjs.技.术_网
command(0x42); //数据写入命令WWcW_PLCJS_COM-PLC-技.术_网
WWW_PL※CJS_COM-PLC-技.术_网
for(i=0;i<240;i++)WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WW.W_PLCJS_COM-PLC-技.术_网
{WWW_PLCJS_COM-PLC-技.术_网
WWW_P※LCJS_COM-PLC-)技.术_网
for(j=0;j<320;j++)W1WW_P4LCJS_COM-PLC-技.术_网
WWW_PLCJS_COM-PLC-技.术_网
data(datal); //向液晶显示区写人数据P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
WWW_PLC※JS_COM-PmLC-技.术_网
}WWW_PLCJS_COM-PLC-技.术_网
W1WW_P4LCJS_COM-PLC-技.术_网
}WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
——可——编——程——控-制-器-技——术——门——户
液晶显示屏的初始化程序如下:P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
void init()WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WW.W_PLC※JS_C,OM-PL,C-技.术_网
{WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
WWW_P※LCJS_CO※M-PLC-技-.术_网
uint i;WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WWW_PLCJS_COM-PLC-技.术_网
command(0x40); //系统设置指令WWW_PLC※JS_COM-PmLC-技.术_网
W1WW_P4LCJS_COM-PLC-技.术_网
for(i=0;i<8;i++)WWW_PLCJS@_COM%-PLC-技.术_网
W1WW_P4LCJS_COM-PLC-技.术_网
{WWW_P※LCJS_COM-PLC-)技.术_网
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
data(SYSTAB[i]);——可——编——程——控-制-器-技——术——门——户
WW.W_PLC※JS_C,OM-PL,C-技.术_网
}WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
——可——编——程——控-制-器-技——术——门——户
command(0x44); //设置SCROLL.指令plcjs.技.术_网
WWcW_PLCJS_COM-PLC-技.术_网
for(i=0;i++;i<10)W1WW_P4LCJS_COM-PLC-技.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
{WWW_PL※CJS_COM-PLC-技.术_网
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
data(SCROLLTAB[i]);——可——编——程——控-制-器-技——术——门——户
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
}WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
WWW_PLC※JS_COM-PmLC-技.术_网
command(Ox5a); //设置点单元卷动位置WWW_PL※CJS_COM-PLC-技.术_网
WWW_P※LCJS_CO※M-PLC-技-.术_网
data(0x00); //无卷动参数WWW_PLC※JS_COM-PmLC-技.术_网
WWcW_PLCJS_COM-PLC-技.术_网
command(0x5b); //设置双层合成显示方式WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
data(0x00); //光标显示不闪烁WW.W_PLC※JS_C,OM-PL,C-技.术_网
WWW_P※LCJS_COM-PLC-)技.术_网
delay(2);P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
cleardata(0,0,0x00); //第一显示区清0WWW_P※LCJS_COM-PLC-)技.术_网
WWW_PLCJS_COM-PLC-技.术_网
cleardata(Ox80,Ox04,Ox00); //第二显示区清0P.L.C.技.术.网——可编程控制器技术门户
WWW_PLCJS@_COM%-PLC-技.术_网
comnland(Ox46); //设置光标地址指令WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
W1WW_P4LCJS_COM-PLC-技.术_网
data(0x00); //第一显示区首地址P.L.C.技.术.网——可编程控制器技术门户
WWW_PLC※JS_COM-PmLC-技.术_网
data(0x00);WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WWW_PLC※JS_COM-PmLC-技.术_网
command(0x5d); //设置光标形状WWW_PLCJS@_COM%-PLC-技.术_网
WWcW_PLCJS_COM-PLC-技.术_网
data(0x04); //光标长度5WWW_P※LCJS_CO※M-PLC-技-.术_网
WWcW_PLCJS_COM-PLC-技.术_网
data(0x86); //光标宽度7WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
WWW_P※LCJS_COM-PLC-)技.术_网
command(0x4c); //设置光标自动右移WWW_P※LCJS_CO※M-PLC-技-.术_网
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
command(0x59);WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
data(Oxl6); /第一、二显示区开显示WWW_PL※CJS_COM-PLC-技.术_网
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
}WWW_P※LCJS_CO※M-PLC-技-.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
程序经过编译,汉字将以内码的形式表示。要在液晶屏上正确显示16X16点阵的汉字,必须将之转换成区位码,算出偏移量,从硬件汉字库中找到相应的位置,取出其后连续32个字节的字模。P.L.C.技.术.网——可编程控制器技术门户
W1WW_P4LCJS_COM-PLC-技.术_网
将内码转换成区位码的方法如下:WWW_PL※CJS_COM-PLC-技.术_网
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
qh=c1-0xa0,wh=c2-OxaO,P.L.C.技.术.网——可编程控制器技术门户
WWW_P※LCJS_COM-PLC-)技.术_网
其区位码就是:WWW_PLCJS_COM-PLC-技.术_网
plcjs.技.术_网
qw=qhxOxff+wh,WW.W_PLCJS_COM-PLC-技.术_网
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
该汉字在字库中离起点的位置是:WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW_PLCJS@_COM%-PLC-技.术_网
offset=(94x(qh-1)+(wh-1))x32;WWW_P※LCJS_COM-PLC-)技.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
汉字定位显示的汇编源程序如下:WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW_PLC※JS_COM-PmLC-技.术_网
.mmregsW1WW_P4LCJS_COM-PLC-技.术_网