基于單片機(jī)的微功耗中文人機(jī)界面設(shè)計(jì)
初始化的流程如下:
需注意,MG-12232模塊內(nèi)雖然一片SED1520控制器實(shí)際控制區(qū)域?yàn)?1列,但清除顯示RAM時(shí),仍應(yīng)按80個(gè)RAM單元清除。
3、部分程序?qū)嵗?
程序是在MSP430單片機(jī)的開(kāi)發(fā)平臺(tái)IAR Embedded Workbench下采用匯編語(yǔ)言編寫(xiě),仿真機(jī)采用了TI公司的MSP-FET430P410。
由于本系統(tǒng)中選用了MSP430F149單片機(jī),對(duì)源程序編譯前需對(duì)IAR Embeded WorkBench平臺(tái)進(jìn)行以下設(shè)置:
A. 點(diǎn)擊Project菜單下的Options…命令進(jìn)入設(shè)置窗口,對(duì)左邊Category框內(nèi)的XLINK選項(xiàng)下的Include頁(yè)面進(jìn)行設(shè)置,把XCL file name框的內(nèi)容設(shè)置為C:Program FilesIAR Systemsew23430icc430msp430F149A.xcl。
B. 點(diǎn)擊Project菜單下的Options…命令進(jìn)入設(shè)置窗口,對(duì)左邊Category框內(nèi)的C-SPY選項(xiàng)下的Setup頁(yè)面進(jìn)行設(shè)置,把Chip Description框的內(nèi)容設(shè)置為C:Program FilesIAR Systemsew23430cw430msp430F149.ddf。
以下給出了一些常量定義和發(fā)送命令字子程序(SEND_COM)、發(fā)送數(shù)據(jù)子程序(SEND_DATA)及液晶狀態(tài)查詢(xún)子程序(LCD_STE)的源代碼。
#includemsp430x14x.h
;程序在液晶上顯示漢字液晶。
;---------定義LCD的引腳
LCD_RST EQU04H ;P4.2
LCD_E1 EQU40H ;P4.6
LCD_E2 EQU20H ;P4.5
LCD_RW EQU 10H ;P4.4
LCD_A0 EQU08H ;P4.3
;----------定義LCD使用的數(shù)據(jù)寄存器
LCD_PAGE EQU0200h;定義顯示頁(yè)面
LCD_ORDER EQU0201h;暫存液晶控制指令
LCD_DATA EQU0202h;暫存液晶數(shù)據(jù)
LCD_CNT EQU0203h;液晶計(jì)數(shù)存儲(chǔ)器
LCD_ROW EQU0204h;存放列地址數(shù)據(jù)
LCD_LINE EQU0205h;存放行地址數(shù)據(jù)
LCD_CHAREQU0206h;存放當(dāng)前字符數(shù)據(jù)的首地址
LCD_BYTECNT EQU0207h ;存放要顯示的字節(jié)數(shù)
LCD_STATUS EQU0208h ;存放液晶當(dāng)前狀態(tài)的數(shù)據(jù)
SEND_COM ;發(fā)送命令字子程序,以LCD_ORDER為入口參數(shù)
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
;發(fā)送數(shù)據(jù)子程序,以LCD_DATA為入口參數(shù)
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
;讀液晶當(dāng)前狀態(tài)的子程序LCD_STE
LCD_STE BIC.B #LCD_A0,P4OUT ;A0=0,SEND OUT INSTRUCTION
BIS.B #LCD_RW,P4OUT ;R/W=1,READABLE
BIC.B #0FFH,P5DIR ;SET P5 PINS INPUT
STE_AGNMOV.B P5IN,LCD_STATUS ;GET STATUS DATA FROM LCD
BIT.B #80H,LCD_STATUS;如狀態(tài)存儲(chǔ)器第7位為1,忙,則等待
JC STE_AGN
RET
五、結(jié)束語(yǔ)
本系統(tǒng)利用MSP430F149單片機(jī)、MG-12232圖形點(diǎn)陣液晶模塊和行列式鍵盤(pán)接口構(gòu)建了基于3V電平的低電壓、微功耗的中文人機(jī)界面。實(shí)際使用中,此人機(jī)界面消耗電流不足1mA,這種設(shè)計(jì)方案取得了很好的微功耗效果。
評(píng)論