RE 为基本指令集与扩充指令集的选择控制位: RE=1: 扩充指令集动作 RE=0: 基本指令集动作 DL 为选择控制接口: DL=1: 8-BIT 控制接口 DL=0: 4-BIT 控制接口 G 绘图开关控制位: G=1 :绘图显示ON G=0 :绘图显示OFF 在一个指令中不能同时改变“RE”和“DL”位的
所以要分两次进行定义
lcd_wcmd(0x34); //扩充指令操作 是先确定“DL”“G”位
“G”位的改变只能在扩充指令操作中进行
lcd_wcmd(0x30); //基本指令操作 是再确定“RE”位的
SR=1 允许输入垂直卷动地址 SR=0 允许输入 IRAM 地址 SL=1 脱离睡眠模式 SL=0 进入睡眠模式 R/L=1 右移 R/L=1 左移 I/D-bit1:1 读写一个字符后指针+1,且光标+1 0 读写一个字符后指针-1,且光标-1 // S-bit0:1 当写一个字符后,整屏显示左移(N=1)或右移(N=0),以得到光标不动而屏幕移动的效 // S/C-bit3:1 画面平移一个字符位;0 光标平移一个字符位 在仔细研究了上面关于它的 X啊 Y啊 那些坐标的定位啊 写满了哪些地址会自增啊 哪些不会啊 什么的,最后感觉脑袋里有了一种朦胧的概念„„哟西,反正不会弄坏,就先随便写个程序试试
于是乎,嘀咕嘀咕„„捣鼓捣鼓„„反反复复又弄了一个多小时后,终于摸清了它显示的规律„„ LCD12864实现画图功能的思路: 首先,画图指令属于扩充指令集,要使用这些指令必须在12864初始化之后写命令字(0x34)进入扩充指令集设定状态
接着要做的事就是指定我们的图片要从哪里写入(即写入的XY坐标,这个是最关键,也是最难理解的部分)
因为我们这里是显示一整个画面的图片,所以我们就从12864的第一个点开始显示
那这个点的坐标是怎么定位的呢