打印

在lcd显示中的一个问题

[复制链接]
1703|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jack.king|  楼主 | 2008-8-5 12:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
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);   //开显示
}
需要到哪个地方去改动才能改动它显示的字符多少呢?

使用特权

评论回复
5
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个字符

这么解释,你参考一下,把你的程序再检查一下,看对不对。如果还有问题,继续交流。

使用特权

评论回复
6
djjyi| | 2008-8-6 08:50 | 只看该作者

其实

其实LCD的初始化包括 文本/图形显示区首地址 宽度 显示方式 和显示开关 
等设置 这些设置都有相应的代码 
楼上的已经回答了怎么设置宽度了 你还是先好好看看手册 弄清楚原理

使用特权

评论回复
7
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

粉丝