基子DSP的液晶模块的显示原理及实现
将内码转换成区位码的方法如下:
qh=c1-0xa0,wh=c2-OxaO,
其区位码就是:
qw=qhxOxff+wh,
该汉字在字库中离起点的位置是:
offset=(94x(qh-1)+(wh-1))x32;
汉字定位显示的汇编源程序如下:
.mmregs
.global_zimotake
.ref_offset
.def_buffer
_zimotake:
mar*,ar2
larar2,#_buffer
rpt#031
blpd#_offset,*+;将汉字字模存人缓冲区buffer[32]
ret
在图形方式下显示连续汉字的程序如下:
voiddisplayhanzi(uintx,uinty,char*s)
{
uinti,j,csl,csh,k;
uintcs;
longqh,wh;
command(0x4f);//设置光标向下移动
cs=0x04bO+2*x*Oxl40+y*Ox02;
//设置汉字显示的光标地址
while(*s)
{
qh=*(s)-0xa0;//汉字区位码
wh=*(s+1)-OxaO;
offset=(94*(qh-1)+(wh-1))*32;
//计算该汉字在字库中的偏移量
ASPCR=0x100f;//异步串口的初始化
IOSR=0x1800+((offset&0x38000)>>15);
offset&=0xfffff;
if(offset<0x8000)
offset+=Ox8000;
s=s+2;//s为要显示的连续汉字
zimotake();似字模库中读取相应字模
cel=(cs&Ox00ff);//显示文字的地址低8位
csh=((cs&0xff00)>>8);//显示文字的地址高8位
command(0x4
6);//CSRW代码
data(csl);//设置光标地址CSR
data(csh);
command(0x42);//MWRITE代码
for(j=0;j<16;J++)
{
data(buger[j*2]);//写人数据
}
cs=cs+0x01;
csl=(cs&0x00ff);//显示文字的地址低8位
csh=((cs&0xff00)>>8);//显示文字的地址高8位
command(Ox46);//CSRW代码
data(csl);//设置光标地址
data(csh);
command(Ox42);//MWRITE代码
for(i=0;i<16;i++)
{
data(buffer[2*i+1]);
}
cs=cs+0x01;
}
}
以上程序均在TMS320C2X系列的软件环境CCS下调试通过。液晶屏能够正常显示连续的汉字、字符以及图形,在语言教学系统中得到了实际的应用。通过移植本文的程序,修改其中的一些指令,可以完成更加复杂的功能,并且具有缩短开发周期、加快产品上市等优点,因此非常适用于便携式设备的界面显示系统,如PDA、示波器、手机的 《基子DSP的液晶模块的显示原理及实现(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/166806.html
qh=c1-0xa0,wh=c2-OxaO,
其区位码就是:
qw=qhxOxff+wh,
该汉字在字库中离起点的位置是:
offset=(94x(qh-1)+(wh-1))x32;
汉字定位显示的汇编源程序如下:
.mmregs
.global_zimotake
.ref_offset
.def_buffer
_zimotake:
mar*,ar2
larar2,#_buffer
rpt#031
blpd#_offset,*+;将汉字字模存人缓冲区buffer[32]
ret
在图形方式下显示连续汉字的程序如下:
voiddisplayhanzi(uintx,uinty,char*s)
{
uinti,j,csl,csh,k;
uintcs;
longqh,wh;
command(0x4f);//设置光标向下移动
cs=0x04bO+2*x*Oxl40+y*Ox02;
//设置汉字显示的光标地址
while(*s)
{
qh=*(s)-0xa0;//汉字区位码
wh=*(s+1)-OxaO;
offset=(94*(qh-1)+(wh-1))*32;
//计算该汉字在字库中的偏移量
ASPCR=0x100f;//异步串口的初始化
IOSR=0x1800+((offset&0x38000)>>15);
offset&=0xfffff;
if(offset<0x8000)
offset+=Ox8000;
s=s+2;//s为要显示的连续汉字
zimotake();似字模库中读取相应字模
cel=(cs&Ox00ff);//显示文字的地址低8位
csh=((cs&0xff00)>>8);//显示文字的地址高8位
command(0x4
6);//CSRW代码
data(csl);//设置光标地址CSR
data(csh);
command(0x42);//MWRITE代码
for(j=0;j<16;J++)
{
data(buger[j*2]);//写人数据
}
cs=cs+0x01;
csl=(cs&0x00ff);//显示文字的地址低8位
csh=((cs&0xff00)>>8);//显示文字的地址高8位
command(Ox46);//CSRW代码
data(csl);//设置光标地址
data(csh);
command(Ox42);//MWRITE代码
for(i=0;i<16;i++)
{
data(buffer[2*i+1]);
}
cs=cs+0x01;
}
}
以上程序均在TMS320C2X系列的软件环境CCS下调试通过。液晶屏能够正常显示连续的汉字、字符以及图形,在语言教学系统中得到了实际的应用。通过移植本文的程序,修改其中的一些指令,可以完成更加复杂的功能,并且具有缩短开发周期、加快产品上市等优点,因此非常适用于便携式设备的界面显示系统,如PDA、示波器、手机的 《基子DSP的液晶模块的显示原理及实现(第3页)》