|
发表于 2010-11-14 11:54:40
|
显示全部楼层
回复【103楼】xiaomage_2000
-----------------------------------------------------------------------
”请教“不敢当啊 ~~~ 相互学习啊。。。
这个效果单片机完成不了的, 显示缓冲区 占空间 1k RAM, 还有单片机的速度有些慢的。
这个屏幕是标准的12864,不知道大家注意到我的显示是倒着的。
显示字体不是内部16x16的,用的是12X12的。
我做的方法是 先往缓冲区写数据 如果有数据变换就把整屏的缓冲数据写到12864。
static u8 LCD12864_Dis_Data_Buf[64][16]; //定义显示缓冲区 占空间 1K
/****************************************************************************
【功能说明】 把Buffer 中的数据刷新到12864
****************************************************************************/
void LCD12864_Refurbish_Screen(void)
{
u8 x,y,xx,yy;
LCD_CS_1;
LCD_Write(LCD_Write_Con_Cmd,0x34);
LCD_Write(LCD_Write_Con_Cmd,0x36);
for(y=0;y<32;y++)
{
LCD_Write(LCD_Write_Con_Cmd, y+0x80);//行地址
LCD_Write(LCD_Write_Con_Cmd, 0+0x80);//列地址
for(x=0;x<16;x++)
{
xx = ((x>>3)<<5) + y;
yy = (x&0x07)<<1;
LCD_Write(LCD_Write_Dis_Data,LCD12864_Dis_Data_Buf[xx][yy]);
LCD_Write(LCD_Write_Dis_Data,LCD12864_Dis_Data_Buf[xx][yy+1]);
}
}
LCD_Write(LCD_Write_Con_Cmd,0x30);
LCD_CS_0;
} |
|