μC/GUI在MSGl9264液晶上的移植
P1OUT&=0xef; //LCDRS=0,表示写命令
P10UTI=Ox20; //LCDEN=1
_NOP(); //空指令
P1OUT&=0xcf; //LCDEN=0,把数据写入LCD
显示RAM
_NOP();
}
2.3.2 编写LCD驱动文件
图3中的μC/GUI硬件接口函数主要由表2所示函数构成。
μC/GUI提供的函数库和各种显示效果都是通过表2所示接口函数在LCD上实现,所以LCD驱动文件的实现也就是把这些硬件接口函数的实现。 由于MSGl9264液晶与μC/GUI提供的LCDSLin较相似,所以笔者以μC/GUI提供的LCDSLin.C文件为基础,编写针对MSGl9264液晶的驱动程序。
通过分析LCDSLin文件可以发现,液晶驱动程序的核心是画点函数,大部分硬件接口函数都可由画点函数实现。因此,改造画点函数及其调用函数成为移植的重点问题。
画点函数的要求是改变液晶上任意点的颜色而不影响其他点的颜色。考虑到单片机MSP430F149的输入电压不能超过3.6V,笔者没有采取读液晶显示器内部显示RAM的方法,而是在MSP430F149的RAM中定义一个数组存储LCD显示的数据。此数组可定义为unsigned char Cache[((LCD_YSIZE+7)>>3)xLCD_XSIZE]。LCD_XSIZE、LCD_YSIZE表示液晶的大小,在LCDConf.h文件中定义。考虑到液晶的长度可能不是8的整倍数,可定义数组大小为(LCD_YSIZE+7)>>3)xLCD_XSIZE。
在定义了Cache的基础上,画点函数可如下实现:
static void_SetPixel(int x,int y,LCD_PIXELINDEX c) {
//画点函数
U8 Mask=1<<(y&7); //屏蔽字
int Adr=XY20FF(x,y); //由x,y的绝对位置得到
Cache中的相对位置
《μC/GUI在MSGl9264液晶上的移植(第3页)》