中文圖形顯示控制芯片ST7920的原理與應(yīng)用
關(guān)鍵詞:串/并接口; 控制模塊; 中文圖形顯示
1 概述
ST7920是臺灣矽創(chuàng)電子公司生產(chǎn)的中文圖形控制芯片,它是一種內(nèi)置128×64-12漢字圖形點陣的液晶顯示控制模塊,用于顯示漢字及圖形。該芯片共內(nèi)置8192個中文漢字(16×16點陣)、128個字符的ASCII字符庫(8×16點陣)及64×256點陣顯示RAM(GDRAM)。
為了能夠簡單、有效地顯示漢字和圖形,該模塊內(nèi)部設(shè)計有2MB的中文字型CGROM和64×256點陣的GDRAM繪圖區(qū)域;同時,該模塊還提供有4組可編程控制的16×16點陣造字空間;除此之外,為了適應(yīng)多種微處理器和單片機接口的需要,該模塊還提供了4位并行、8位并行、2線串行以及3線串行等多種接口方式。
利用上述功能可方便地實現(xiàn)漢字、ASCII碼、點陣圖形、自造字體的同屏顯示,所有這些功能(包括顯示RAM、字符產(chǎn)生器以及液晶驅(qū)動電路和控制器)都包含在集成電路芯片里,因此,只要一個最基本的微處理系統(tǒng)就可以通過ST7920芯片來控制其它的芯片。ST7920的主要技術(shù)參數(shù)和顯示特性如下:
電源:VDD (-2.7~+5.5V)+5V(內(nèi)置升壓電路,一般無需負壓);
功耗:正常模式:450μA,睡眠模式:3μA,低功耗模式:30μA;
顯示內(nèi)容:128列× 64行;
顯示顏色:黃綠;
顯示角度:6:00鐘直視;
LCD類型:STN;
與MCU接口:8位并行/3位串行;
配置有LED背光顯示功能;
帶有自動啟動復(fù)位按鈕(reset);
圖1
軟件功能設(shè)置:畫面清除、光標(biāo)顯示/隱藏、光標(biāo)歸位、顯示打開/關(guān)閉、顯示字符閃爍、光標(biāo)移位、顯示移位、垂直畫面旋轉(zhuǎn)、反白顯示、液晶睡眠/喚醒、關(guān)閉顯示、自定義字符、睡眠模式等。
2 組成原理
ST7920 LCD驅(qū)動器由32個普通驅(qū)動器(common)及64個段驅(qū)動器?segment?組成,段驅(qū)動器的擴充可根據(jù)需要由ST7921的段驅(qū)動器來提供,一個ST7920可以顯示一行8個字或兩行4個字,或是配合ST7921來顯示兩行16個字。ST7920有兩種結(jié)構(gòu)形式:ST7920-0A和ST7920-0B,前者內(nèi)置BIG-5碼,用于顯示繁體中文字型;而后者內(nèi)置GB碼,用于顯示簡體中文字型。
圖1是ST7920的內(nèi)部結(jié)構(gòu)框圖。在對ST7920讀或?qū)憰r,會用到兩個8位的寄存器,一個是數(shù)據(jù)寄存器DR,另一個是指令寄存器IR。通過數(shù)據(jù)寄存器DR可以存?。模模遥粒?、CGRAM、CGROM及IRAM的值。待存取的目標(biāo)RAM的地址可通過命令來選擇,每次數(shù)據(jù)寄存器DR的操作應(yīng)以上次選擇的目標(biāo)RAM為主體來進行讀出或?qū)懭搿Mㄟ^RS和RW的狀態(tài)可以選擇不同的讀寫模式,具體配置方法如表1所列。
表1 ST7920的寄存器讀寫狀態(tài)
RS | RW | 功能說明 |
低電平0 | 低電平0 | MPU寫指令到指令寄存器IR |
低電平0 | 高電平1 | 讀出忙標(biāo)志及地址計數(shù)器的狀態(tài) |
高電平1 | 低電平0 | MPU寫指令到數(shù)據(jù)寄存器DR |
高電平1 | 高電平1 | MPU從數(shù)據(jù)寄存器DR讀出指令 |
忙標(biāo)志位BF為“1”時,表示內(nèi)部操作正在進行,即處于忙狀態(tài)而不接受新的指令,所以,每次接受新指令前,都要讀?。拢茦?biāo)志,只有當(dāng)其為“0”時才可接受。
3?。樱裕罚梗玻暗膽?yīng)用
ST7920有自己的指令集,包括基本指令和擴充指令兩大類,其中基本指令有11條,擴充指令有7條。下面以顯示RAM(DDRAM)為例來說明ST7920的應(yīng)用方法。
3.1 文本顯示RAM(DDRAM)
ST7920的文本顯示RAM中提供了8個×4行的漢字空間,當(dāng)對文本顯示RAM進行寫入時,可以分別顯示CGROM、HCGROM與CGRAM的字型;ST7920A可以顯示三種字型,分別是半寬的HC-GROM字型、CGRAM字型及中文CGROM字型。三種字型的選擇可通過在DDRAM中寫入編碼來進行設(shè)定,各種字型的詳細編碼如下:
顯示半寬字型 :將一位字節(jié)寫入DDRAM中,范圍為02H~7FH的編碼。
顯示CGRAM字型:這種字型可通過將兩個字節(jié)的編碼寫入DDRAM中來實現(xiàn),總共有0000H、0002H、0004H、0006H四種編碼方式。
顯示中文字形:將兩字節(jié)編碼寫入DDRAM,范圍為A1A0H~F7FFH?GB碼?或A140H~D75FH?BIG5碼?的編碼。
圖2
3.2 繪圖RAM(GDRAM)
繪圖顯示RAM提供128×8個字節(jié)的存儲空間,在更改繪圖RAM時,先連續(xù)寫入水平與垂直的坐標(biāo)值,再將兩個字節(jié)的數(shù)據(jù)寫入繪圖RAM,地址計數(shù)器(AC)會自動加1;在寫入繪圖RAM期間,繪圖顯示必須關(guān)閉,寫入繪圖RAM的步驟如下:
①關(guān)閉繪圖顯示功能。
②將水平的位元組坐標(biāo)(X)寫入繪圖RAM地址;
③將垂直的坐標(biāo)(Y)寫入繪圖RAM地址;
④將D15~D8數(shù)據(jù)寫入GDRAM中;
⑤將D7~D0數(shù)據(jù)寫入GDRAM中;
⑥打開繪圖顯示功能。
3.3 顯示兩行16個漢字的應(yīng)用舉例
圖2所示為用ST7920和ST7921顯示兩行16個漢字的結(jié)構(gòu)原理圖。在使用DDRAM顯示漢字時,一行顯示8個漢字的程序代碼如下:
初始化SETUP:
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV A? #01H ;CLEAR DISPLAY
LCALL WRITE_COM
MOV A? #00110000B ; FUNCTION SETTING
LCALL WRITE_COM
MOV A? #00000010B ; DDRAM SET TO ′00H′
LCALL WRITE_COM
MOV A? #00000100B?
LCALL WRITE_COM
MOV A? #00001100B ; DISPLAY ON
LCALL WRITE_COM
MOV A? #00000001B ; CLEAR IN G SCREEN
LCALL WRITE_COM
MOV A? #10000000B ; SET DDRAM ADDRESS
LCALL WRITE_COM
RET
MOV A,#80H ;在LCD屏的第一行顯示漢字:
歡迎使用ST7920
LCALL WRITE_COM
MOV R4? #8
MOV DPTR,#HZCODE
D? CLR A
MOVC A? @A+DPTR
I NC DPTR
LCALL WRITE_DAT
CLR A
MOVC A? @A+DPTR
INC DPTR
LCALL WRITE_DAT
DJNZ R4? DD
HZCODE?
DB ′歡迎使用ST7920′
DB ′ST7920控制芯片′
DB′有:圖形、點陣、
DB ′字符等多種模塊。
4 結(jié)束語
由ST7920構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。因此,ST7920將得到廣泛的應(yīng)用。