μC/GUI在MSGl9264液晶上的移植

[09-12 17:52:10]   来源:http://www.88dzw.com  单片机学习   阅读:8526

文章摘要:在LCDConf.h文件中定义了与硬件有关的各种属性,如液晶的大小、颜色以及与液晶的接口函数。而LCD驱动文件则负责把μC/GUI的各种函数解释成LCDConf.h文件中定义的液晶接口函数,这个文件与具体的硬件连接无关。μC/GUI与LCD的硬件接口通过驱动文件把硬件接口函数转化为LCDConf.h中定义的LCD读写函数。2.3 移植过程2.3.1 修改LCDConf.hLCDConf.h定义了LCD的大小、颜色,对应的LCD控制器以及与硬件连接有关的LCD读写函数。按照μC/GUI的规定,底层的读写LCD函数包括LCD_WRITE_A1()(即写LCD命令)、LCD_WRITE_A0()(写

μC/GUI在MSGl9264液晶上的移植,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

在LCDConf.h文件中定义了与硬件有关的各种属性,如液晶的大小、颜色以及与液晶的接口函数。而LCD驱动文件则负责把μC/GUI的各种函数解释成LCDConf.h文件中定义的液晶接口函数,这个文件与具体的硬件连接无关。

μC/GUI与LCD的硬件接口通过驱动文件把硬件接口函数转化为LCDConf.h中定义的LCD读写函数。

2.3 移植过程

2.3.1 修改LCDConf.h

LCDConf.h定义了LCD的大小、颜色,对应的LCD控制器以及与硬件连接有关的LCD读写函数。按照μC/GUI的规定,底层的读写LCD函数包括LCD_WRITE_A1()(即写LCD命令)、LCD_WRITE_A0()(写LCD数据)、LCD_READ_A0()(读LCD状态)、LCD_READ_A1()(读LCD数据)。这些函数的实现与底层硬件有关,必须根据硬件连接的具体情况编写这些函数。

MSP430F149是一款低功耗单片机,其供电电压为1.8~3.6V,而MSGl9264液晶为5V供电液晶,输入高电平为3.3V。为确保与液晶的输入电平兼容,MSP430F149的供电电压可设置为3.6V,这样就可以把MSP430F149与液晶直接连接而无需额外的驱动芯片。MSP430F149与LCD的接口电路如图4所示。

LCD_WRITE A1()函数的具体实现如下:

#define LCD_WRITE_A1(Byte) //定义写LCD控制命令函数

{ //参数Byte为要写入液晶的数据。

P40UT:Byte; //把数据放到LCD的数据线上

_NOP(); //空指令,确保能可靠地写入

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的基础上,画点函数可如下实现:

上一页  [1] [2] [3] [4]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行