基子DSP的液晶模块的显示原理及实现
SYSTEMSET40H指令。如果该指令设置出现错误,则显示必定不正常。液晶模块软件初始化设计的流程图如图2所
示。
F206初始化程序如下:
asm(“clrccnf");
asm(“ldp#Oh”);
abm(“setcINTM”);
设置液晶控制器的系统指令及参数的程序如下:
typedefunsignedintuint;
uintSYSTAB[8]={0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00);//系统设置指令参数
uintSCROLLTAB[10]={0,0,Oxf0,0xb0,0x04,0xf0};//SCROLL指令参数
voidcommand(uintm)
{
LCDCMD=m;//向1335中写入指令代码
}
voiddata(uintn)
{
LCDDATA=n;//向1335中写入数据及指令参数
}
//清除显示区数据
voidcleardata(uintcsfi,uintcsrh,uintdatal)
{
uinti,j;
command(0x46);//写入光标地址指令
data(csd);//光标地址的低8位
data(csrh);//光标地址的高8位
command(0x4c);//光标自动右移指令
command(0x42);//数据写入命令
for(i=0;i<240;i++)
{
for(j=0;j<320;j++)
data(datal);//向液晶显示区写人数据
}
}
液晶显示屏的初始化程序如下:
voidinit()
{
uinti;
command(0x40);//系统设置指令
for(i=0;i<8;i++)
{
data(SYSTAB[i]);
}
command(0x44);//设置SCROLL.指令
for(i=0;i++;i<10)
{
data(SCROLLTAB[i]);
}
command(Ox5a);//设置点单元卷动位置
data(0x00);//无卷动参数
command(0x5b);//设置双层合成显示方式
data(0x00);//光标显示不闪烁
delay(2);
cleardata(0,0,0x00);//第一显示区清0
cleardata(Ox80,O
x04,Ox00);//第二显示区清0
comnland(Ox46);//设置光标地址指令
data(0x00);//第一显示区首地址
data(0x00);
command(0x5d);//设置光标形状
data(0x04);//光标长度5
data(0x86);//光标宽度7
command(0x4c);//设置光标自动右移
command(0x59);
data(Oxl6);/第一、二显示区开显示
}
程序经过编译,汉字将以内码的形式表示。要在液晶屏上正确显示16X16点阵的汉字,必须将之转换成区位码,算出偏移量,从硬件汉字库中找到相应的位置,取出其后连续32个字节的字模。
《基子DSP的液晶模块的显示原理及实现(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/166806.html
示。
F206初始化程序如下:
asm(“clrccnf");
asm(“ldp#Oh”);
abm(“setcINTM”);
设置液晶控制器的系统指令及参数的程序如下:
typedefunsignedintuint;
uintSYSTAB[8]={0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00);//系统设置指令参数
uintSCROLLTAB[10]={0,0,Oxf0,0xb0,0x04,0xf0};//SCROLL指令参数
voidcommand(uintm)
{
LCDCMD=m;//向1335中写入指令代码
}
voiddata(uintn)
{
LCDDATA=n;//向1335中写入数据及指令参数
}
//清除显示区数据
voidcleardata(uintcsfi,uintcsrh,uintdatal)
{
uinti,j;
command(0x46);//写入光标地址指令
data(csd);//光标地址的低8位
data(csrh);//光标地址的高8位
command(0x4c);//光标自动右移指令
command(0x42);//数据写入命令
for(i=0;i<240;i++)
{
for(j=0;j<320;j++)
data(datal);//向液晶显示区写人数据
}
}
液晶显示屏的初始化程序如下:
voidinit()
{
uinti;
command(0x40);//系统设置指令
for(i=0;i<8;i++)
{
data(SYSTAB[i]);
}
command(0x44);//设置SCROLL.指令
for(i=0;i++;i<10)
{
data(SCROLLTAB[i]);
}
command(Ox5a);//设置点单元卷动位置
data(0x00);//无卷动参数
command(0x5b);//设置双层合成显示方式
data(0x00);//光标显示不闪烁
delay(2);
cleardata(0,0,0x00);//第一显示区清0
cleardata(Ox80,O
x04,Ox00);//第二显示区清0
comnland(Ox46);//设置光标地址指令
data(0x00);//第一显示区首地址
data(0x00);
command(0x5d);//设置光标形状
data(0x04);//光标长度5
data(0x86);//光标宽度7
command(0x4c);//设置光标自动右移
command(0x59);
data(Oxl6);/第一、二显示区开显示
}
程序经过编译,汉字将以内码的形式表示。要在液晶屏上正确显示16X16点阵的汉字,必须将之转换成区位码,算出偏移量,从硬件汉字库中找到相应的位置,取出其后连续32个字节的字模。
《基子DSP的液晶模块的显示原理及实现(第2页)》