图2中"V5"引脚提供MG-12232液晶的对比度电压,可以通过一个-12V电压发生电路(如MAX765)产生,经一个100K电位器分压后即可使用。
MC U可以通过SED1520的一些控制引脚和13条常用指令来访问液晶显示模块。如"RST"用于重启动SED1520,"E1"和"E2"分别用于使能两片SED1520。"R/W"控制对SED1520的读或写。"A0"决定此次操作是指令读写还是数据读写。
一个SED1520显示控制器能控制80×16点阵液晶的显示,其显示RAM共16行,分2页,每页8行,每一页的数据寄存器分别对应液晶屏幕上的8行点。当设置了页地址和列地址后就确定了显示RAM中的唯一单元。屏幕上的每一列对应一个显示RAM的字节内容,且每列最下面一位为MSB,最上面一位为LSB,即该RAM单元字节数据由低位到高位的各个数据位对应于显示屏上某一列的由高到低的8个数据位。对显示RAM的一个字节单元赋值就是对当前列的8行(一页)像素点是否显示进行控制。如图3,MSP430F149单片机的P5口用作与液晶显示模块通信的数据口。
图3 MSP430F149与MG-12232的电路连接示意图
MG-12232显示模块有多个型号,不同型号都采用相同的SED1520控制器,操作及使用方法完全相同,只是尺寸不同。常用的如MG-12232-5(76×29.1×5.7mm)、MG-12232-6(45.05×22.32×6.3mm)、MG-12232-7(84×44×10mm)等,可以分别用在大小不同的便携式仪器或设备上。
对液晶显示模块还需着重考虑其背光类型,不同的背光类型消耗电流大不相同。一般可选的背光类型有LED(发光二极管)、EL(电致发光灯)以及CCFL型(冷阴极灯管)。EL是一种面发光的冷光源,在结构上可以做得很大很薄,虽然亮度较低,但发光非常均匀而且无光斑,尤其是功耗很低。缺点是需要一个高压交流电压来驱动,故需要一个专门的电压变换电路(如IMP803)。CCFL照明面积更大,适用于需要大面积液晶显示界面的仪器或设备中。
三、键盘接口
MSP430F149的P1、P2口除了支持输入、输出以外,还支持硬件中断。P1、P2口的8个引脚都有各自的控制寄存器,每个引脚可以单独控制,并且每个引脚都可以作为中断源,每一引脚都可以单独选择中断触发沿,单独允许中断。P1、P2口各使用一个中断向量,P1.0~P1.7产生同一个中断,P2.0~P2.7也产生同一个中断。P1、P2口的这种结构非常适合实现基于中断的键盘输入响应程序。
本系统中使用2×2的行列式键盘。键盘程序采用行扫描法。即P1.0、P1.1接两根列线,列线定义为输出口,P1.2、P1.3接两根行线,行线定义为输入口。两根行线需接10K上拉电阻。
基于对系统低功耗要求的考虑,键盘输入响应程序应设计为中断方式运行的。即有键按下时,产生中断把从休眠状态唤醒,并启动定时12ms的定时器,随后MCU又进入休眠状态。当定时器产生中断时再次将MCU从休眠状态唤醒,此时扫描键盘,若有键按下,则计算出键值,并执行该键值对应的功能程序。执行完该程序后,MCU再次进入休眠状态。
四、汉字显示的原理与部分程序实例
1、图形点阵液晶的汉字字模
与在DOS中显示汉字不同的是,图形点阵液晶并不是简单地用画点的方式来描出汉字。直接从系统汉字字库中提取的汉字字模并不能直接在液晶上显示,通常都必须经过格式上的调整和转换。标准16点阵汉字(如希望汉字的HZK16)字模数据的排列形式如图4。
由于一个SED1520显示控制器能控制80×16点阵液晶的显示,其显示RAM共16行,分2页,每页8行。连续16列相邻2页的32字节显示RAM就可以控制一个汉字的显示区域(如图5)。对这些显示RAM赋以相应值就可以显示出一个汉字。
图4 标准汉字字模排列形式 图5 SED1520汉字字模排列形式 由图4和图5所示可见,SED1520图形点阵液晶显示控制器汉字字模的排列顺序和方式与标准汉字字模完全不同。液晶字模数据可以通过对标准字模数据进行位运算后得到。
实际编程中,具体汉字的液晶字模数据应存放在MSP430F149单片机的FLASH存储器中。
2、液晶显示器初始化流程
在液晶显示信息之前,必须先对液晶进行初始化。 初始化的流程如下:
本系统中使用2×2的行列式键盘。键盘程序采用行扫描法。即P1.0、P1.1接两根列线,列线定义为输出口,P1.2、P1.3接两根行线,行线定义为输入口。两根行线需接10K上拉电阻。
基于对系统低功耗要求的考虑,键盘输入响应程序应设计为中断方式运行的。即有键按下时,产生中断把从休眠状态唤醒,并启动定时12ms的定时器,随后MCU又进入休眠状态。当定时器产生中断时再次将MCU从休眠状态唤醒,此时扫描键盘,若有键按下,则计算出键值,并执行该键值对应的功能程序。执行完该程序后,MCU再次进入休眠状态。
四、汉字显示的原理与部分程序实例
1、图形点阵液晶的汉字字模
与在DOS中显示汉字不同的是,图形点阵液晶并不是简单地用画点的方式来描出汉字。直接从系统汉字字库中提取的汉字字模并不能直接在液晶上显示,通常都必须经过格式上的调整和转换。标准16点阵汉字(如希望汉字的HZK16)字模数据的排列形式如图4。
由于一个SED1520显示控制器能控制80×16点阵液晶的显示,其显示RAM共16行,分2页,每页8行。连续16列相邻2页的32字节显示RAM就可以控制一个汉字的显示区域(如图5)。对这些显示RAM赋以相应值就可以显示出一个汉字。
图4 标准汉字字模排列形式 图5 SED1520汉字字模排列形式 由图4和图5所示可见,SED1520图形点阵液晶显示控制器汉字字模的排列顺序和方式与标准汉字字模完全不同。液晶字模数据可以通过对标准字模数据进行位运算后得到。
实际编程中,具体汉字的液晶字模数据应存放在MSP430F149单片机的FLASH存储器中。
2、液晶显示器初始化流程
在液晶显示信息之前,必须先对液晶进行初始化。 初始化的流程如下:
|