感謝各位的參與,我的問題解決了,按照我的思路,我發現只要打開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);
} |