胡進(jìn)德 劉明江
摘 要:文章依項目需要針對芯河電子公司點陣圖形型液晶顯示屏LCD12864(帶中文字庫3.3V)設(shè)計了基于單片機MSP430F5529的串行通信電路及驅(qū)動程序,并重點介紹了LCD12864模塊的性能特點及與MSP430F5529進(jìn)行串行通信的硬件電路設(shè)計和程序設(shè)計方法。
關(guān)鍵詞:LCD12864;MSP430F5529;串行通信;硬件設(shè)計
中圖分類號:TP311
文章編號:2095-624X(2019)21-0081-02
一、 LCD12864模塊的性能特點
LCD12864模塊可顯示數(shù)字、字母、漢字及圖形,內(nèi)置8192個16×16點陣漢字。電源電壓VDD為3.3~5V,實際工作電壓取3.3V,與MSP430F5529的工作電壓相同,顯示分辨率128×64點,與單片機接口可采取8位或4位并行、3線串行。
二、LCD12864模塊的串行通信硬件電路設(shè)計
1.單片機MSP430F5529簡介
MSP430F5529是TI公司推出的MSP430系列超低功耗16位單片機中的一種,工作電壓范圍1.8~3.6V,具有128 Kb閃存,8Kb的SRAM,63個可編程I/O 口,4個16 位定時器/計數(shù)器等,最高工作頻率可達(dá)25MHz。
2.串行通信數(shù)據(jù)傳送
LCD12864與MSP430F5529串行通信電路如圖1所示。
圖1中串行通信僅采用1位數(shù)據(jù)線R/W(SID)和2位控制線RS(CS)與E(CLK),串行接口信號SID、CS和CLK分別與并行接口信號R/W、RS和E復(fù)用同一引腳。在項目設(shè)計中采用MSP430F5529的P2.0~P2.2分別作為串行通信控制線CS、SID和CLK。
三、LCD12864模塊的串行通信驅(qū)動程序設(shè)計
1.初始化單片機I/O口
初始化程序需要定義MSP430F5529的P2.0~P2.2為輸出腳,分別連接CS、SID和CLK。相關(guān)初始化程序如下:
#define LCD_PORT_DIR P2DIR? ? ? ?//定義P2口方向寄存器
#define LCD_PORT_OUT P2OUT? ? ? ?//定義P2口輸出寄存器
#define CS? ? ?BIT0? ? ? ? //定義串行信號CS
#define SID? ? BIT1? ? ? ? //定義串行信號SID
#define CLK? ? BIT2? ? ? ? //定義串行信號CLK
#define LCD_OUT LCD_PORT_DIR |= CS+SID+SCLK? ? ?//定義P2.0~P2.2為輸出
需要注意的是,程序設(shè)計以頭文件msp430F5529.h為基礎(chǔ),msp430f5529.h中定義了BIT0~BIT2,方便用戶進(jìn)行位操作。
2.寫命令和寫數(shù)據(jù)
寫命令和寫數(shù)據(jù)需要嚴(yán)格按照液晶模塊的操作指令和時序編寫。串行通信數(shù)據(jù)傳送格式如圖2所示。
由圖2可知,串行通信每一次操作都由3個字節(jié)數(shù)據(jù)組成:
第一字節(jié):為串行控制字節(jié),包括起始同步碼(5個“1”)、RW、RS和“0”。RW信號表示讀寫操作,因串行通信只有寫,故其確定值為“0”;RS信號是寄存器選擇信號,RS=0為指令寄存器,RS=1為數(shù)據(jù)寄存器。
第二個字節(jié):其高4位為發(fā)送指令或數(shù)據(jù)的高4位,其低4位補0。
第三個字節(jié):其高4位為發(fā)送指令或數(shù)據(jù)的低4位,其低4位補0。
在圖2串行通信模式下,僅有寫入操作,沒有讀入操作,包括讀忙標(biāo)志,所以每個指令傳輸之間要根據(jù)單片機的運行速度,考慮是否要加延遲時間等待。
MSP430F5529向LCD12864寫命令函數(shù)如下:
void Write_Cmd(uchar cmd)? ?//向LCD寫控制命令
{
CS_L;? ? ? ? ? ? ? ? ? // CS=0
_NOP();
CS_H;? ? ? ? ? ? ? ? ? //CS=1
_NOP();
Write_1byte(0,0,cmd);? ?// 寫控制命令,cmd為控制命令
Delay_1ms();? ? ? ? ? ? ?//延時1 ms
CS_L;? ? ? ? ? ? ? ? ? ? // CS=0
}
MSP430F5529向LCD12864寫數(shù)據(jù)函數(shù)如下:
void Write_Dat(uchar dat)//向LCD寫顯示數(shù)據(jù)
{
CS_L;? ? ? ? ? ? ? ? ? ?// CS=0
_NOP();
CS_H;? ? ? ? ? ? ? ? ? ?//CS=1
_NOP();
Write_1byte(0,1,dat);? // 寫顯示數(shù)據(jù),dat為顯示數(shù)據(jù)
Delay_1ms();? ? ? ? ? ?//延時1 ms
CS_L;? ? ? ? ? ? ? ? ? ?// CS=0
_NOP();
}
MSP430F5529能直接驅(qū)動工作電壓為3.3V的LCD12864模塊,二者接口電路簡單,可以很好地構(gòu)成低功耗全中文人機交互圖形界面。
參考文獻(xiàn):
[1]葛洋洋,王驥超.基于構(gòu)件的串行總線通信軟件設(shè)計[J].信息通信,2018(10):201-202.
[2]郭強.液晶顯示模塊應(yīng)用與調(diào)試 [M].北京:電子工業(yè)出版社,2010(3):38-76.
作者簡介:胡進(jìn)德(1966—),男,副教授,碩士,研究方向:嵌入式系統(tǒng);
劉明江(1978—),男,講師,本科,研究方向:嵌入式系統(tǒng)。