为什么从LCD12864读数据是第一个字节要读两次?

2019-03-24 13:41发布

看了一个LCD12864并行接法的程序,中间有一段是读RAM中的数据,
  1. void drawpoint_abt(unsigned char x,unsigned char y)
  2. {
  3.          area=0;//默认设定为上屏
  4.          word_abt=0;
  5.          bit_abt=0;
  6.      bingo=0x80;
  7.          row,col;
  8.         RAMH=0;RAML=0;
  9.         if(64>y&&y>31)
  10.                 area=1;//如果大于31则可判断在下半屏
  11.         word_abt=x/16;//确定在第几个字
  12.         bit_abt=x%16;//确定在第几位
  13.         Write_Cmd(0x34);//打开扩展指令集,这里同时也关闭了绘图显示!!
  14.         //下面确定写入点的区域
  15.         if(area==0)
  16.         {
  17.                 row=0x80+y;
  18.                 col=0x80+word_abt;
  19.                 Write_Cmd(row);//行
  20.                 Write_Cmd(col);//列,注意列会自增,一定!!!!!!!!
  21.         }
  22.         else if(area==1)
  23.         {
  24.                 row=0x80+y-32;
  25.                 col=0x88+word_abt;
  26.                 Write_Cmd(row);//行
  27.                 Write_Cmd(col);//列
  28.         }
  29.         //注意:一个双字:先写D15-D8,再写D7-D0
  30.         read_one_byte();//这个不能少啊,第一个字节要读两次
  31.         RAMH=read_one_byte();
  32.         RAML=read_one_byte();
复制代码其中倒数第三行,在读高字节时进行了一次空读。有人知道为什么要这样做吗?这种操作有什么通用性或者普遍性呢? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
wstt
2019-03-24 20:12
你把所用液晶的读时序的图贴出来,大家来给分析下

一周热门 更多>

相关问题

    相关文章