采用DSP驱动一320*240的液晶模块,SED1335为驱动器,可以显示图形、汉字,均采用描点的形式输出。DSP编程驱动液晶先要完成DSP初始化,包括显示用常量的设置。图形点阵式液晶的RAM区中每个字节的数据直接被送到液晶显示模块上,每个位的电平状态决定显示屏上一个点是否点亮,“1”为亮,“0”为不亮。所以相当于一个字节对应显示屏上一个1行×8列点陈。汉字、数字其实都可以看作是由若干个这样的点阵组成的。用“LCD仿真器”将需要显示的字符转换成代码,存成只读型数组需要时调用即可。现列出在液晶屏上写出一个16*16的汉字的汉字的程序。
void showhanzi(uint code,uint x,uint y) //显示16*16的汉字,code为在汉字库中的信号,x为屏上横坐标(0-39字节﹜,y为纵坐标(0-239行)
{
uint codec,i,j,addr,value;
uint csrh,csrl;
codec=0;
codec=code*64;
for(i=0;i<4;i++) //分左右两部分写入
{
addr=y*40+x+i; //相对地址
csrh=addr/256;
//csrl=addr%256;
csrl=addr-csrh*256;
//setcsr(addr+i); //设置好光标地址(和显示ram的地址指针相对应)和光标移动方向就可以写入了
CmdWrite(0x46); //设置光标指针位置
DataWrite(csrl);
DataWrite(csrh);
//DataWrite(0x00);
//DataWrite(0x00);
CmdWrite(0x4f); //设置光标向下移动
CmdWrite(0x42); //数据写入命令
for(j=0;j<16;j++)
{
value=hanzi[codec+j+i*16];
DataWrite(value);
}
}
LCDDELAY;
return;
}