在lcd显示中的一个问题

[复制链接]
2301|7
 楼主| jack.king 发表于 2008-8-5 12:32 | 显示全部楼层 |阅读模式
 
   各位大侠!
      今天在用12864的 lcd的时候我定义了一个可以显示14个汉字的数组,但是只显示了8个汉字,其他的6个跟数组开始的字是一样的啊!  说明是16*16的字体
    为什么?
cumtnj 发表于 2008-8-5 16:23 | 显示全部楼层

这要看你的LCD初始化函数

一般LCD初始化函数中要设定一行能够显示的最大字符数,如果你定为16个字符,不正好是显示8个汉字吗,所以那四个汉字就显示不出来了,因为一行的宽度只由那么大。

如果不是,可以继续讨论。
djjyi 发表于 2008-8-5 16:35 | 显示全部楼层

re

对 要看你的LCD初始化怎么设置
 楼主| jack.king 发表于 2008-8-5 20:23 | 显示全部楼层

我的是这么设置的你看看!

void Lcd_Init(void)
{
 Write_Command(0x3e,1,1);   //关显示
 Write_Command(0xb8+0,1,1);
 Write_Command(0xc0+0,1,1); //设置首行为起始行
 Write_Command(0x40+0,1,1);
 Write_Command(0x3f,1,1);   //开显示
}
需要到哪个地方去改动才能改动它显示的字符多少呢?
cumtnj 发表于 2008-8-5 21:41 | 显示全部楼层

先这么说

         #define  TEXTAREA      0x41    //文本宽度设置命令

         //写有 3 个参数命令
void Write_Com3(uchar data1,uchar data2, uchar command) 

    Write_Data(data1); 
    Write_Data(data2); 
    Write_Com1(command);
}

        所以初始化时这么来设定一行显示的字符个数

  Write_Com3(0x10,0x00,TEXTAREA);      /*文本区域*/  //每行显示16个字符

这么解释,你参考一下,把你的程序再检查一下,看对不对。如果还有问题,继续交流。
djjyi 发表于 2008-8-6 08:50 | 显示全部楼层

其实

其实LCD的初始化包括 文本/图形显示区首地址 宽度 显示方式 和显示开关 
等设置 这些设置都有相应的代码 
楼上的已经回答了怎么设置宽度了 你还是先好好看看手册 弄清楚原理
 楼主| jack.king 发表于 2008-8-6 19:42 | 显示全部楼层

今天又发现一个怪问题!

今天又发现一个怪问题!
   我定义一个汉字库!
      uchar code a[]={};
      uchar code b[]={};
      uchar code c[]={};
  uchar *string[]={a,b,c};
  uchar *string1[]={b,a,c};
 当我去调用*string[]和*string1时显示的与我定义不同这个是怎么回事?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

488

主题

2158

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部