您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

基子DSP的液晶模块的显示原理及实现

时间:2007-1-20栏目:电子通信论文

ata(0x00);
  
  command(0x5d);//设置光标形状
  
  data(0x04);//光标长度5
  
  data(0x86);//光标宽度7
  
  command(0x4c);//设置光标自动右移
  
  command(0x59);
  
  data(Oxl6);/第一、二显示区开显示
  
  }
  
  程序经过编译,汉字将以内码的形式表示。要在液晶屏上正确显示16X16点阵的汉字,必须将之转换成区位码,算出偏移量,从硬件汉字库中找到相应的位置,取出其后连续32个字节的字模。
  
  将内码转换成区位码的方法如下:
  
  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]);//写人数据
  

上一页  [1] [2] [3] [4] 下一页

下页更精彩:1 2 3 4 下一页