完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
以下程序中为什么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= SendCommandToLCD(column); } |
|
相关推荐
8个回答
|
|
根据12864的指令说明:
“页面地址设置 0 0 1 0 1 1 1 P2 P1 P0” 页面指的是line,总共有8页,3bit可以表示,页地址或上0xb8,即发送页面地址设置命令+页地址; 同理: “列地址设置 0 0 0 1 C5 C4 C3 C2 C1 C0” 列总共有64,6bit可以表示,列地址或上0x40,即发送列地址设置命令+列地址
最佳答案
|
|
|
|
这个行列的取值要看使用的12864的手册里的说明,对应上就好了。
|
|
|
|
line&=0x07;line|=0xb8;这段代码用以将line的低三位替换掉0xb8的低三位,这样行地址为111xxx(xxx为line的低三位),而10应该是控制位,同理,column&=0x3f;column|=0x40;这段代码用以将column的后六位替换掉0x40的后六位,这样列地址为01xxxxxx(xxxxxx为column的后六位),01应该也是控制位,以上只是个人猜测。
|
|
|
|
晓晓江南 发表于 2017-7-21 21:52 你是说10和01分别控制行和列而低三位和后六位分别控制行和列的具体位置咯? |
|
|
|
|
|
|
|
许锦海 发表于 2017-7-24 14:05 或上0xb8后前面没变的几个bit表示页面地址设置命令是吧? |
|
|
|
是的,像你操作SPI之类的总线协议,也是需要发指令,再发数据 |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【每周推荐】采用11代Intel CPU,基于youyeetoo X1开发板搭建少儿AI智能STEAM积木平台
752 浏览 0 评论
2208 浏览 2 评论
【youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植
2084 浏览 5 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 移植zbar的方法
1682 浏览 0 评论
2636 浏览 3 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
5453 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-18 06:07 , Processed in 0.509105 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号