12864內(nèi)部功能器件及相關(guān)功能:
1. 指令寄存器(IR)
IR是用于寄存指令碼,與指令寄存器寄存指令相對(duì)應(yīng)。當(dāng)RS =0時(shí),在E信號(hào)下降沿的作用下,指令碼寫(xiě)入IR。
2.?dāng)?shù)據(jù)寄存器(DR)
DR是用于寄存數(shù)據(jù)的,與數(shù)據(jù)寄存器數(shù)據(jù)相對(duì)應(yīng)。當(dāng)RS =1時(shí),在下降沿作用下,圖形顯示數(shù)據(jù)寫(xiě)入DR,或在E信號(hào)高電平作用下由DR讀到DB7∽DB0數(shù)據(jù)總線。DR和DDRAM之間的數(shù)據(jù)傳輸是模塊內(nèi)部自動(dòng)執(zhí)行的。
3.忙標(biāo)志:BF
BF標(biāo)志提供內(nèi)部工作情況。BF=1表示模塊在內(nèi)部操作,此時(shí)模塊不接受外部指令和數(shù)據(jù)。BF=0時(shí),模塊為準(zhǔn)備狀態(tài),隨時(shí)可接受外部指令和數(shù)據(jù)。利用STATUS READ指令,可以將BF讀到DB7總線,檢驗(yàn)?zāi)K工作狀態(tài)。
4.顯示控制觸發(fā)器DFF
此觸發(fā)器是用于模塊屏幕顯示開(kāi)和關(guān)的控制。DFF=1為開(kāi)顯示(DISPLAY OFF),DDRAM的內(nèi)容就顯示在屏幕上,DFF=0為關(guān)顯示(DISPLAY OFF)。DDF的狀態(tài)是指令DISPLAY ON/OFF和RST信號(hào)控制的。
5.XY地址計(jì)數(shù)器
XY地址計(jì)數(shù)器是一個(gè)9位計(jì)數(shù)器。高3位是X地址計(jì)數(shù)器,低6位為Y地址計(jì)數(shù)器,XY地址計(jì)數(shù)器實(shí)際上是作為DDRAM的地址指針,X地址計(jì)數(shù)器為DDRAM的頁(yè)指針,Y地址計(jì)數(shù)器為DDRAM的Y地址指針。
X地址(頁(yè)地址,頁(yè)的概念遲點(diǎn)會(huì)解釋)計(jì)數(shù)器是沒(méi)有記數(shù)功能的,只能用指令設(shè)置。
Y地址(列地址)計(jì)數(shù)器具有循環(huán)記數(shù)功能,各顯示數(shù)據(jù)寫(xiě)入后,Y地址自動(dòng)加1,Y地址指針從0到63。
6.顯示數(shù)據(jù)RAM(DDRAM)
DDRAM是存儲(chǔ)圖形顯示數(shù)據(jù)的。數(shù)據(jù)為1表示選擇顯示,數(shù)據(jù)為0表示選擇非顯示。DDRAM與地址和顯示位置的關(guān)系見(jiàn)DDRAM地址表。
7.Z地址計(jì)數(shù)器
Z地址計(jì)數(shù)器是一個(gè)6位計(jì)數(shù)器,此計(jì)數(shù)器具備循環(huán)記數(shù)功能,它是用于顯示行掃描同步。當(dāng)一行掃描完成,此地址計(jì)數(shù)器自動(dòng)加1,指向下一行掃描數(shù)據(jù),RST復(fù)位后Z地址計(jì)數(shù)器為0。
Z地址計(jì)數(shù)器可以用指令DISPLAY START LINE預(yù)置。因此,顯示屏幕的起始行就由此指令控制,即DDRAM的數(shù)據(jù)從哪一行開(kāi)始顯示在屏幕的第一行。此模塊的DDRAM共64行,屏幕可以循環(huán)滾動(dòng)顯示64行。
12864LCD的指令系統(tǒng)
該類液晶顯示模塊(即KS0108B及其兼容控制驅(qū)動(dòng)器)的指令系統(tǒng)比較簡(jiǎn)單,總共只有七種。其指令表如表2所示:
指令名稱
|
控制信號(hào)
|
控制代碼
|
R/W
|
RS
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
顯示開(kāi)關(guān)
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
1
|
1
|
1/0
|
顯示起始行設(shè)置
|
0
|
0
|
1
|
1
|
X
|
X
|
X
|
X
|
X
|
X
|
頁(yè)設(shè)置
|
0
|
0
|
1
|
0
|
1
|
1
|
1
|
X
|
X
|
X
|
列地址設(shè)置
|
0
|
0
|
0
|
1
|
X
|
X
|
X
|
X
|
X
|
X
|
讀狀態(tài)
|
1
|
0
|
BUSY
|
0
|
ON/OFF
|
0
|
0
|
0
|
0
|
寫(xiě)數(shù)據(jù)
|
0
|
1
|
寫(xiě)數(shù)據(jù)
|
讀數(shù)據(jù)
|
1
|
1
|
讀數(shù)據(jù)
|
1、 顯示開(kāi)/關(guān)指令
R/W RS
|
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0
|
0 0
|
0 0 1 1 1 1 1 1/0
|
當(dāng)DB0=1時(shí),LCD顯示RAM中的內(nèi)容;DB0=0時(shí),關(guān)閉顯示。
2、顯示起始行(ROW)設(shè)置指令
R/W RS
|
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0
|
0 0
|
1 1顯示起始行(0~63)
|
該指令設(shè)置了對(duì)應(yīng)液晶屏最上一行的顯示RAM的行號(hào),有規(guī)律地改變顯示起始行,可以使LCD實(shí)現(xiàn)顯示滾屏的效果。
3、頁(yè)(PAGE)設(shè)置指令
R/W RS
|
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0
|
0 0
|
1 0 1 1 1頁(yè)號(hào)(0~7)
|
顯示RAM共64行,分8頁(yè),每頁(yè)8行。
4、列地址(Y Address)設(shè)置指令
R/W RS
|
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0
|
0 0
|
0 1顯示列地址(0~63)
|
設(shè)置了頁(yè)地址和列地址,就唯一確定了顯示RAM中的一個(gè)單元,這樣MPU就可以
用讀、寫(xiě)指令讀出該單元中的內(nèi)容或向該單元寫(xiě)進(jìn)一個(gè)字節(jié)數(shù)據(jù)。
5、讀狀態(tài)指令
R/W RS
|
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0
|
1 0
|
BUSY 0 ON/OFF 0 0 0 0
|
該指令用來(lái)查詢液晶顯示模塊內(nèi)部控制器的狀態(tài),各參量含義如下:
BUSY: 1-內(nèi)部在工作 0-正常狀態(tài)
ON/OFF:1-顯示關(guān)閉 0-顯示打開(kāi)
: 1-正常狀態(tài) 0- 復(fù)位狀態(tài)
在BUSY和狀態(tài)時(shí),除讀狀態(tài)指令外,其它指令均不對(duì)液晶顯示模塊產(chǎn)生作用。
在對(duì)液晶顯示模塊操作之前要查詢BUSY狀態(tài),以確定是否可以對(duì)液晶顯示模塊進(jìn)行操作。
6、寫(xiě)數(shù)據(jù)指令
R/W RS
|
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
|
0 1
|
寫(xiě)數(shù)據(jù)
|
7、 讀數(shù)據(jù)指令
R/W RS
|
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
|
1 1
|
讀顯示數(shù)據(jù)
|
讀、寫(xiě)數(shù)據(jù)指令每執(zhí)行完一次讀、寫(xiě)操作,列地址就自動(dòng)增一。必須注意的是,進(jìn)行讀操作之前,必須有一次空讀操作,緊接著再讀才會(huì)讀出所要讀的單元中的數(shù)據(jù)。
12864由兩個(gè)完全相同的左右半屏拼成,兩個(gè)半屏的顯示通過(guò)CS1和CS2來(lái)選擇,如CS1=0、CS2=1時(shí)選擇左半屏顯示,每頁(yè)占8行(指令0xb8~0xbf分別指定頁(yè)0~頁(yè)7地址);
寫(xiě)入液晶的數(shù)據(jù)在屏上為縱向顯示,如在指定位置(頁(yè)0第0列)顯示12H:
0xb8 指定頁(yè)0
0x40 指定列0
0x12 送入數(shù)據(jù),該數(shù)據(jù)的最高位對(duì)應(yīng)“該頁(yè)該列”最下端的點(diǎn)(第0行)
下面以“你”字為例,分析其字模(16*16點(diǎn)陣,占兩頁(yè)位置)
從最左邊上半部開(kāi)始
上頁(yè)字模0x80,0x40,0xF0,0x2C,0x43,0x20,0x98,0x0F,0x0A,0xE8,0x08,0x88,0x28,0x1C,0x08,0x00

下頁(yè)字模0x00,0x00,0x7F,0x00,0x10,0x0C,0x03,0x21,0x40,0x3F,0x00,0x00,0x03,0x1C,0x08,0x00
使用PROTEUS仿真軟件中的液晶顯示屏(型號(hào)AMPIRE12864)探索點(diǎn)陣液晶的編程方式;該型號(hào)液晶屏內(nèi)部無(wú)字庫(kù),只能自建字模進(jìn)行字符顯示(使用方法與圖形顯示方式一致);字模可通過(guò)“字模提取”軟件提取,省去手工建模
的麻煩。

整體電路圖
功能說(shuō)明:該電路使用AT89C52作控制器,電路左下方為時(shí)鐘芯片DS1302;用液晶屏顯示當(dāng)前時(shí)間、若干漢字、一幅小圖等內(nèi)容;
電路連線:
(1)液晶模塊: E=P2^0; RW=P2^1; RS=P2^2; CS2=P2^3; CS1=P2^4; RST(復(fù)位信號(hào))=5V;
數(shù)據(jù)口D0~D7接單片機(jī)P0口;
(2)時(shí)鐘芯片DS1302: RST = P3^6 ; CLK = P1^6 ; SDA = P1^7 ;
電路仿真結(jié)果如下:

首先分析下該液晶模塊內(nèi)部控制器的工作原理:
管腳功能:
管腳名稱
|
LEVER
|
管腳功能描述
|
VSS
|
0
|
電源地
|
VDD
|
+5.0V
|
電源電壓
|
V0
|
-
|
液晶顯示器驅(qū)動(dòng)電壓 (在PROTUES仿真軟件中可不接)
|
RS
|
1/0
|
RS=0,表示DB7∽DB0為顯示數(shù)據(jù)
RS=1,表示DB7∽DB0為顯示指令數(shù)據(jù)
|
R/W
|
1/0
|
R/W=1,E=1數(shù)據(jù)被讀到DB7∽DB0
R/W=0,E=“1→0”,數(shù)據(jù)被寫(xiě)到IR或DR
|
E
|
1/0
|
R/W=0,E信號(hào)下降沿鎖存DB7∽DB0
R/W=1,E=1, DDRAM數(shù)據(jù)讀到DB7∽DB0
|
DB0~DB7
|
1/0
|
數(shù)據(jù)線
|
1/0
|
0:選擇芯片(左半屏)信號(hào)
|
1/0
|
0:選擇芯片(右半屏)信號(hào)
|
1/0
|
復(fù)位信號(hào),低電平復(fù)位
|
VOUT
|
-10V
|
LCD驅(qū)動(dòng)負(fù)電壓 (在PROTUES仿真軟件中可不接)
|
更多液晶模塊相關(guān)知識(shí)請(qǐng)關(guān)注顯杰科技www.szxianjie.com
|