微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 设计基于MSP430单片机的微功耗中文人机界面

设计基于MSP430单片机的微功耗中文人机界面

时间:02-17 来源:互联网 点击:

形点阵液晶并不是简单地用画点的方式来描出汉字。直接从中文系统汉字字库中提取的汉字字模并不能直接在液晶上显示,通常都必须经过格式上的调整和转换。标准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、液晶显示器初始化流程

在液晶显示信息之前,必须先对液晶进行初始化。

初始化的流程如下:

需注意,MG-12232模块内虽然一片SED1520控制器实际控制区域为61列,但清除显示RAM时,仍应按80个RAM单元清除。

3、部分程序实例

程序是在MSP430单片机的开发平台IAR Embedded Workbench下采用汇编语言编写,仿真机采用了TI公司的MSP-FET430P410。

由于本系统中选用了MSP430F149单片机,对源程序编译前需对IAR Embeded WorkBench平台进行以下设置:

A. 点击Project菜单下的Options…命令进入设置窗口,对左边Category框内的"XLINK"选项下的"Include"页面进行设置,把 "XCL file name"框的内容设置为"C:\Program Files\IAR Systems\ew23\430\icc430\msp430F149A.xcl"。

B. 点击Project菜单下的Options…命令进入设置窗口,对左边Category框内的"C-SPY"选项下的"Setup"页面进行设置,把 "Chip Description"框的内容设置为"C:\Program Files\IAR Systems\ew23\430\cw430\msp430F149.ddf"。

以下给出了一些常量定义和发送命令字子程序(SEND_COM)、发送数据子程序(SEND_DATA)及液晶状态查询子程序(LCD_STE)的源代码。

#include"msp430x14x.h"
;程序在液晶上显示"汉字液晶"。
;---------定义LCD的引脚
LCD_RSTEQU04H;P4.2
LCD_E1EQU40H;P4.6
LCD_E2EQU20H;P4.5
LCD_RWEQU10H;P4.4
LCD_A0EQU08H;P4.3
;----------定义LCD使用的数据寄存器
LCD_PAGEEQU0200h;定义显示页面
LCD_ORDEREQU0201h;暂存液晶控制指令
LCD_DATAEQU0202h;暂存液晶数据
LCD_CNTEQU0203h;液晶计数存储器
LCD_ROWEQU0204h;存放列地址数据
LCD_LINEEQU0205h;存放行地址数据
LCD_CHAREQU0206h;存放当前字符数据的首地址
LCD_BYTECNTEQU0207h;存放要显示的字节数
LCD_STATUSEQU0208h;存放液晶当前状态的数据
SEND_COM;发送命令字子程序,以LCD_ORDER为入口参数
BIS.B#LCD_E1,P4OUT;SETE1=1,使能CHIP1
CALL#LCD_STE
BIC.B#LCD_A0,P4OUT;A0=0,SENDOUTINSTRUCTION
BIC.B#LCD_RW,P4OUT;R/W=0,WRITABLE
BIS.B#0FFH,P5DIR;SETP5PINSOUTPUT
MOV.BLCD_ORDER,P5OUT;SENDORDERBYTETOLCD
BIC.B#LCD_E1,P4OUT;SETE1=0
RET
;发送数据子程序,以LCD_DATA为入口参数
SEND_DATABIS.B#LCD_E1,P4OUT;SETE1=1
CALL#LCD_STE
BIS.B#LCD_A0,P4OUT;A0=1,SENDOUTDATA
BIC.B#LCD_RW,P4OUT;R/W=0,WRITABLE
BIS.B#0FFH,P5DIR;SETP5PINSOUTPUT
MOV.BLCD_DATA,P5OUT;SENDDATABYTETOLCD
BIC.B#LCD_E1,P4OUT;SETE1=0
RET
;读液晶当前状态的子程序LCD_STE
LCD_STEBIC.B#LCD_A0,P4OUT;A0=0,SENDOUTINSTRUCTION
BIS.B#LCD_RW,P4OUT;R/W=1,READABLE
BIC.B#0FFH,P5DIR;SETP5PINSINPUT
STE_AGNMOV.BP5IN,LCD_STATUS;GETSTATUSDATAFROMLCD
BIT.B#80H,LCD_STATUS;如状态存储器第7位为1,忙,则等待
JCSTE_AGN
RET

五、结束语

本系统利用MSP430F149单片机、MG-12232图形点阵液晶模块和行列式键盘接口构建了基于3V电平的低电压、微功耗的中文人机界面。实际使用中,此人机界面消耗电流不足1mA,这种设计方案取得了很好的微功耗效果。

参考文献
1. MSP430系列FLASH型超低功耗16位单片机,胡大可,北京航空航天大学出版社,2001
2. MSP430x1xx Family User's Guide, 2000
3. MSP430x13x,MSP430x14x Data sheet, 2000

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top