基于单片机设计微功耗中文人机界面
阵液晶的显示,其显示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_RST EQU 04H ;P4.2
LCD_E1 EQU 40H ;P4.6
LCD_E2 EQU 20H ;P4.5
LCD_RW EQU 10H ;P4.4
LCD_A0 EQU 08H ;P4.3
;----------定义LCD使用的数据寄存器
LCD_PAGE EQU 0200h ;定义显示页面
LCD_ORDER EQU 0201h ;暂存液晶控制指令
LCD_DATA EQU 0202h ;暂存液晶数据
LCD_CNT EQU 0203h ;液晶计数存储器
LCD_ROW EQU 0204h ;存放列地址数据
LCD_LINE EQU 0205h ;存放行地址数据
LCD_CHAR EQU 0206h ;存放当前字符数据的首地址
LCD_BYTECNT EQU 0207h ;存放要显示的字节数
LCD_STATUS EQU 0208h ;存放液晶当前状态的数据
SEND_COM ;发送命令字子程序,以LCD_ORDER为入口参数
BIS.B #LCD_E1,P4OUT ;SET E1=1 ,使能CHIP1
CALL #LCD_STE
BIC.B #LCD_A0,P4OUT ;A0=0,SEND OUT INSTRUCTION
BIC.B #LCD_RW,P4OUT ;R/W=0,WRITABLE
BIS.B #0FFH,P5DIR ;SET P5 PINS OUTPUT
MOV.B LCD_ORDER,P5OUT ;SEND ORDER BYTE TO LCD
BIC.B #LCD_E1,P4OUT ;SET E1=0
RET
;发送数据子程序,以LCD_DATA为入口参数
SEND_DATA BIS.B #LCD_E1,P4OUT ;SET E1=1
CALL #LCD_STE
BIS.B #LCD_A0,P4OUT ;A0=1,SEND OUT DATA
BIC.B #LCD_RW,P4OUT ;R/W=0,WRITABLE
BIS.B #0FFH,P5DIR ;SET P5 PINS OUTPUT
MOV.B LCD_DATA,P5OUT ;SEND DATA BYTE TO LCD
BIC.B #LCD_E1,P4OUT ;SET E1=0
RET
;读液晶当前状态的子程序LCD_STE
LCD_STE BIC.B #LCD_A0,P4OUT ;A0=0,SEND OUTINSTRUCTION
BIS.B #LCD_RW,P4OUT ;R/W=1,READABLE
BIC.B #0FFH,P5DIR ;SET P5 PINS INPUT
STE_AGN MOV.B P5IN,LCD_STATUS ;GET STATUS DATA FROM LCD
BIT.B #80H,LCD_STATUS ;如状态存储器第7位为1,忙,则等待
JC STE_AGN
RET
- μC/OS-Ⅱ在MSP430F149上的移植(03-01)
- MSP430与I2C总线接口技术的研究(06-14)
- 基于MSP430单片机的超声波倒车雷达监测报警系统设计(08-14)
- 2010年中国(成都)电子展胜利闭幕(08-15)
- 基于MSP430单片机的电子汽车限速器的研究(08-20)
- 基于MSP430的微功耗数据采集系统的开发应用(10-16)