打印
[STC单片机]

LCD12864B反白指令使用问题

[复制链接]
4311|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 一叶倾城wwq 于 2018-6-11 22:50 编辑

使用反白指令后,(我写了反白指令后写地址也是不行)只能同时反白一三行和二四行,说明书说的任意一行呢?我使用的是12864B,而且反白行还会闪烁,本来闪烁很快的,我加了延时才闪的慢一点,如何让它固定反白一行且不闪烁呢?情况如下图请各位前辈指点迷津
程序如下:/*********************************************
FunctionName: writeWord
FunctionInfo: 练习写汉字函数
Input:        no
Output:       no
注:
**********************************************/
void writeWord(void)
{
  uchar        tab[2]  ={"出"};  //注意一个汉字占两个字节
  uchar tab1[44]={"下雨天,想看蓝天白云;对了,出门记得带伞^_^ "};  //最后这个占4字节
  uchar i;

  wr_cmd(0x30);
  wr_cmd(0x30);             //基本指令集            
  wr_cmd(0x0C);             //整体显示  

  wr_cmd(0x80);          //行
  //wr_dat(tab[0]);               
  //wr_dat(tab[1]);         
  for(i=0;i<4;i++)  
    {
         wr_dat(tab1[i*2]);
         wr_dat(tab1[i*2+1]);  //一个汉字两个字节需一次写入
        }
  wr_cmd(0x90);
  for(i=4;i<11;i++)  
    {
         wr_dat(tab1[i*2]);
         wr_dat(tab1[i*2+1]);
        }
  wr_cmd(0x88);
  for(i=11;i<14;i++)  
    {
         wr_dat(tab1[i*2]);
         wr_dat(tab1[i*2+1]);
        }
  wr_cmd(0x98);
  for(i=14;i<22;i++)  
    {
         wr_dat(tab1[i*2]);
         wr_dat(tab1[i*2+1]);
        }   
   reverseWhite(1);   //反白显示 在写完数据后写指令
   delay_ms(1000);
}

/*********************************************
FunctionName: reverseWhite
FunctionInfo: 反白显示函数
Input:        row
Output:       no
注:
**********************************************/
void reverseWhite(uchar row)
{
  uchar x,y;
  wr_cmd(0x34);
  wr_cmd(0x34);        //扩充指令集
  switch(row)
    {
         case 1:
              {
                   wr_cmd(0x04);                 //反白显示第一行
                   //wr_cmd(0x80);                //测试能不能写地址->不能   
                   break;
                  }               
         case 2: wr_cmd(0x05);break;//wr_cmd(0x90);
         case 3: wr_cmd(0x06);break;
         case 4: wr_cmd(0x07);break;
         default : break;
        }
}

D:\用户目录\我的图片\反白一行1.jpg
D:\用户目录\我的图片\反白一行.jpg

反白一行1.jpg (232.94 KB )

反白一行1.jpg

反白一行.jpg (234.22 KB )

反白一行.jpg

LCD地址.png (83.29 KB )

LCD地址.png

理解的指令表.png (103.63 KB )

理解的指令表.png

指令表1.png (103.95 KB )

指令表1.png

相关帖子

沙发
ayb_ice| | 2018-6-11 08:29 | 只看该作者
仔细核对手册和驱动

使用特权

评论回复
板凳
henangongda123| | 2018-6-11 08:43 | 只看该作者
程序贴出来,是什么主控IC?自带字库的ST7920?

使用特权

评论回复
地板
dushanwu| | 2018-6-11 08:51 | 只看该作者
程序符合规格书的要求吗?
可以把程序传上来,让大家给你分析分析。

使用特权

评论回复
5
一叶倾城wwq|  楼主 | 2018-6-11 09:37 | 只看该作者
ayb_ice 发表于 2018-6-11 08:29
仔细核对手册和驱动

手册上对于反白只是用了几句话说明,晚上我会再好好看看,不行再贴出请大家分析

使用特权

评论回复
6
一叶倾城wwq|  楼主 | 2018-6-11 09:39 | 只看该作者
henangongda123 发表于 2018-6-11 08:43
程序贴出来,是什么主控IC?自带字库的ST7920?

晚上我再试试其他方法,因为是在家自己玩的,现在手头没有程序,晚上会贴出,感谢帮助,第一次在发帖,^_^

使用特权

评论回复
7
一叶倾城wwq|  楼主 | 2018-6-11 09:41 | 只看该作者
dushanwu 发表于 2018-6-11 08:51
程序符合规格书的要求吗?
可以把程序传上来,让大家给你分析分析。

感谢帮助,晚上我会贴出,再和大家讨论

使用特权

评论回复
8
一叶倾城wwq|  楼主 | 2018-6-11 22:52 | 只看该作者
henangongda123 发表于 2018-6-11 08:43
程序贴出来,是什么主控IC?自带字库的ST7920?

前辈说哦对了,带字库,控制器ST7920!厉害

使用特权

评论回复
9
henangongda123| | 2018-6-11 23:19 | 只看该作者
一叶倾城wwq 发表于 2018-6-11 22:52
前辈说哦对了,带字库,控制器ST7920!厉害

反白我也忘记的差不多了,等下我查查之前写过的程序看看

使用特权

评论回复
10
henangongda123| | 2018-6-11 23:32 | 只看该作者
1. 闪的太快的原因是你的主函数可能在不断的调用这个写液晶屏子函数writeWord(),液晶屏就不停的刷新数据,并且你没有清屏操作。
2. 液晶屏执行每条指令都需要一定的时间,一般是几十us,特殊的清屏指令需要时间更长,建议你每条指令直接都要加上延时,这样指令才能被正确无误的执行。

使用特权

评论回复
11
henangongda123| | 2018-6-11 23:42 | 只看该作者
反白是会闪,我的也是,正在找问题,都忘的差不多了

使用特权

评论回复
12
henangongda123| | 2018-6-12 00:04 | 只看该作者
楼主,我试了一下,你在主函数里面对某一行写了地址之后,不要再写了,反白就一直有效,不会闪;另外,如你所说,要先写地址,再开反白;还有,反白一行,另外一行也反白,这好像是这种液晶屏的BUG,跟液晶屏RAM地址有关系,百度一下,网上有资料怎么规避这个问题。

液晶屏反白.png (107.69 KB )

液晶屏反白.png

反白效果.jpg (304.67 KB )

反白效果.jpg

使用特权

评论回复
13
一叶倾城wwq|  楼主 | 2018-6-12 09:14 | 只看该作者
henangongda123 发表于 2018-6-11 23:32
1. 闪的太快的原因是你的主函数可能在不断的调用这个写液晶屏子函数writeWord(),液晶屏就不停的刷新数据 ...

清屏操作确实是没注意,我觉得也不太需要,初始化清屏过,我确实需要再主函数里不断执行,因为我后面需要改变显示内容和反白行,像选择菜单一样;另外我的写指令和写数据已经在写的函数里延时过了,后面再写应该不用延时了;对于反白两行的问题,我再查查解决方法。
感谢您的热心帮助

使用特权

评论回复
14
whtwhtw| | 2018-6-12 09:40 | 只看该作者
这种液晶不需要刷新,如果没有新内容就表写数据,除非有数据变更

使用特权

评论回复
15
cjseng| | 2018-6-12 11:28 | 只看该作者
我用的都是不带字库的,自己做点阵,需要反白显示时,就把点阵数据取反后送出,想怎么反白都行啊。

使用特权

评论回复
16
一叶倾城wwq|  楼主 | 2018-6-12 13:37 | 只看该作者
cjseng 发表于 2018-6-12 11:28
我用的都是不带字库的,自己做点阵,需要反白显示时,就把点阵数据取反后送出,想怎么反白都行啊。 ...

唉,当时做板子选器件时考虑不周啊,只能将就着用了

使用特权

评论回复
17
一叶倾城wwq|  楼主 | 2018-6-12 13:37 | 只看该作者
whtwhtw 发表于 2018-6-12 09:40
这种液晶不需要刷新,如果没有新内容就表写数据,除非有数据变更

嗯,前辈说的是,写完之后就让它去做别的事

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

1341

帖子

11

粉丝