LCD12864底层驱动及一些常用函数。包括printf/打点/反白等等...
该函数更新一下。
void LCD_PointPlay(u8 x,u8 y,u8 bitEn)
{
//u16 point = ((u16)y>>7) + x;//x*128+y :当前点位序号------原语句
u16 point = ((u16)y<>4; //point/16:当前点位所在显存数组下标
if(bitEn)
LCD_RAM[Index] |= 0x8000>>(point & 0xf); //point % 16 == 当前点位所在显存半字中的bit位
else
LCD_RAM[Index] &= ~(0x8000>>(point & 0xf));
LCD_Write(LCD_CMD,0x34);
LCD_Write(LCD_CMD,0x36);//扩展指令集
//写入垂直地址
LCD_Write(LCD_CMD,0x80 + (y & 0x1f));
//写入水平地址
//第一行0x80-0x87
//第二行0x90-0x97
//第三行0x88-0x8f
//第四行0x98-0x9f
LCD_Write(LCD_CMD,0x80 + (y >= 32 ? 0x08 :0) + (x>>4));
//写入半字数据
LCD_Write(LCD_DAT,(LCD_RAM[Index]&0xff00;)>>8);
LCD_Write(LCD_DAT,(LCD_RAM[Index]&0x00ff;));
LCD_Write(LCD_CMD,0x30);//基本指令集
}
1