程序有点看不懂!希望能帮忙解决。

2019-07-15 10:09发布

以下程序中为什么line要或上一个0xb8呢?下面的column也是同样的问题?
还有就是在12864地址中0xb8+1和0xb9是同一个地址码?
求大神们赐教!!!
谢谢!!!!
//设定行地址(页)--X 0-7
void SetLine(uchar line)
{
        line &= 0x07; // 0<=line<=7
        line |= 0xb8; //  1011 1xxx 。1011 1000 | 0000 0001 = 1011 1001.
        SendCommandToLCD(line);
}
//设定列地址--Y 0-63
void SetColumn(uchar column)
{
        column &= 0x3f; // 0=<column<=63
        column |= 0x40; //01xx xxxx
        SendCommandToLCD(column);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
晓晓江南
2019-07-15 17:29
line&=0x07;line|=0xb8;这段代码用以将line的低三位替换掉0xb8的低三位,这样行地址为111xxx(xxx为line的低三位),而10应该是控制位,同理,column&=0x3f;column|=0x40;这段代码用以将column的后六位替换掉0x40的后六位,这样列地址为01xxxxxx(xxxxxx为column的后六位),01应该也是控制位,以上只是个人猜测。

一周热门 更多>