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

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条回答
晓晓江南
1楼-- · 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应该也是控制位,以上只是个人猜测。
lhd1230
2楼-- · 2019-07-15 21:25
 精彩回答 2  元偷偷看……
晓晓江南
3楼-- · 2019-07-16 00:50
lhd1230 发表于 2017-7-22 08:59
你是说10和01分别控制行和列而低三位和后六位分别控制行和列的具体位置咯?

只是个人的观点。
lhd1230
4楼-- · 2019-07-16 03:11
许锦海 发表于 2017-7-24 14:05
根据12864的指令说明:
“页面地址设置 0 0 1 0 1 1 1 P2 P1 P0”
页面指的是line,总共有8页,3bit可以表示,页地址或上0xb8,即发送页面地址设置命令+页地址;

或上0xb8后前面没变的几个bit表示页面地址设置命令是吧?
许锦海
5楼-- · 2019-07-16 03:36
lhd1230 发表于 2017-7-24 15:17
或上0xb8后前面没变的几个bit表示页面地址设置命令是吧?

是的,像你操作SPI之类的总线协议,也是需要发指令,再发数据
lhd1230
6楼-- · 2019-07-16 05:35
许锦海 发表于 2017-7-24 18:11
是的,像你操作SPI之类的总线协议,也是需要发指令,再发数据

谢谢

一周热门 更多>