感谢各位的参与,我的问题解决了,按照我的思路,我发现只要打开0X34就会这样,后仔细对比了别人的程序,有的人的程序里也打开0X34,但还有的人不用这个指令, 原来这个指令是扩绘图关,然后0X36是开, 每刷新一次的时候,把绘图先关后开,所以就会有个显示中间缺失的过程,造成像呼吸灯一样的,每刷新一次就亮灭一次,现在我的解决方法就是取消0X34, 以下程序经测试,没有问题.
void LCD_Display_Picture2(u8 x,u8 y,u8 w,u8 h,u8 n) //èÎòaλÖÃÏÔê¾′ó×Öìåêy×Ö ,xy=Æeê¼XY,W=¿í,H=¸ß,N=òaÏÔê¾μÄêy×Ö ,,OK
{
u16 i;
u8 xi,yi;
u8 xt,yt;
x >>= 4;
w >>= 3;
i = 0;
Lcd_WriteCmd(0x36); //Æô¶ˉCGRAM2ù×÷//这里做了修改
for (yi=0; yi<h; yi++)
{
yt = y+yi;
xt = x;
if (yt >= 32)
{
yt -= 32;
xt += 8;
}
Lcd_WriteCmd(0x80|yt);
Lcd_WriteCmd(0x80|xt);
for (xi=0; xi<w; xi++)
{
Lcd_WriteData(LCD_XZ4024[n][i++]);
}
}
Lcd_WriteCmd(0x30);
} |