12864画点函数if(x_byte

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 14:12:11
12864画点函数if(x_byte

12864画点函数if(x_byte
12864画点函数
if(x_byte<8) //判断其在高8位,还是在低8位
{
Write_data(GDRAM_hbit|(0X01<<(7-x_byte))); //显示GDRAM区高8位数据
Write_data(GDRAM_lbit); //显示GDRAM区低8位数据
}
else
{
Write_data(GDRAM_hbit);
Write_data(GDRAM_lbit|(0x01<<(15-x_byte)));
}
这里判断它是低八位的时候,为什么改变高八位的值?我一直的想法是在低八位的时候,先读取,再修改低八位的值,再改入,这里怎么相反了,不知道是不是我理解错了,还有请高手指点一下,还有这个GDRAM_hbit|(0X01<<(7-x_byte)意义何在?请尽量说详细点,谢谢!

12864画点函数if(x_byte
因为你不能贴程序,所以不能很确切知道你的问题.不过你说的问题我以前遇到过,画线只出现一些点绝对是程序问题.第一,在写命令与写数据函数后增加延时;第二,也可能是你写水平地址错误.注重修改打点函数,最有可能问题就在那

跟你存储的点顺序和LCD的点顺序有关, 需要看主循环.
LCD点 可能 16 15 14 ....1 从左到右排列
你的数据点 可能 1 2 3 ....16 从左到右排列哦,这个明白了,我现在在搞在12864上面显直线的,在任意位置上画点已经可以了,现在就画直线,但是我画出来 的直线不是连续的,隔几个显一个点,不知道这是什么原因,贴不了程序,你碰到过这种情况不?能帮忙解释一下吗?...

全部展开

跟你存储的点顺序和LCD的点顺序有关, 需要看主循环.
LCD点 可能 16 15 14 ....1 从左到右排列
你的数据点 可能 1 2 3 ....16 从左到右排列

收起

...