看了一个LCD12864并行接法的程序,中间有一段是读RAM中的数据,
- void drawpoint_abt(unsigned char x,unsigned char y)
- {
- area=0;//默认设定为上屏
- word_abt=0;
- bit_abt=0;
- bingo=0x80;
- row,col;
- RAMH=0;RAML=0;
- if(64>y&&y>31)
- area=1;//如果大于31则可判断在下半屏
- word_abt=x/16;//确定在第几个字
- bit_abt=x%16;//确定在第几位
- Write_Cmd(0x34);//打开扩展指令集,这里同时也关闭了绘图显示!!
- //下面确定写入点的区域
- if(area==0)
- {
- row=0x80+y;
- col=0x80+word_abt;
- Write_Cmd(row);//行
- Write_Cmd(col);//列,注意列会自增,一定!!!!!!!!
- }
- else if(area==1)
- {
- row=0x80+y-32;
- col=0x88+word_abt;
- Write_Cmd(row);//行
- Write_Cmd(col);//列
- }
- //注意:一个双字:先写D15-D8,再写D7-D0
- read_one_byte();//这个不能少啊,第一个字节要读两次
- RAMH=read_one_byte();
- RAML=read_one_byte();
复制代码其中倒数第三行,在读高字节时进行了一次空读。有人知道为什么要这样做吗?这种操作有什么通用性或者普遍性呢?
此帖出自
小平头技术问答
一周热门 更多>