中文圖形顯示控制芯片ST7920的原理與應用
1 概述
ST7920是臺灣矽創電子公司生產的中文圖形控制芯片,它是一種內置12864-12漢字圖形點陣的液晶顯示控制模塊,用于顯示漢字及圖形。該芯片共內置8192個中文漢字(1616點陣)、128個字符的ASCII字符庫(816點陣)及64256點陣顯示RAM(GDRAM)。
為了能夠簡單、有效地顯示漢字和圖形,該模塊內部設計有2MB的中文字型CGROM和64256點陣的GDRAM繪圖區域;同時,該模塊還提供有4組可編程控制的1616點陣造字空間;除此之外,為了適應多種微處理器和單片機接口的需要,該模塊還提供了4位并行、8位并行、2線串行以及3線串行等多種接口方式。
利用上述功能可方便地實現漢字、ASCII碼、點陣圖形、自造字體的同屏顯示,所有這些功能(包括顯示RAM、字符產生器以及液晶驅動電路和控制器)都包含在集成電路芯片里,因此,只要一個最基本的微處理系統就可以通過ST7920芯片來控制其它的芯片。ST7920的主要技術參數和顯示特性如下:
電源:VDD (-2.7~+5.5V)+5V(內置升壓電路,一般無需負壓);
功耗:正常模式:450μA,睡眠模式:3μA,低功耗模式:30μA;
顯示內容:128列 64行;
顯示顏色:黃綠;
顯示角度:6:00鐘直視;
LCD類型:STN;
與MCU接口:8位并行/3位串行;
配置有LED背光顯示功能;
帶有自動啟動復位按鈕(reset);
圖1
軟件功能設置:畫面清除、光標顯示/隱藏、光標歸位、顯示打開/關閉、顯示字符閃爍、光標移位、顯示移位、垂直畫面旋轉、反白顯示、液晶睡眠/喚醒、關閉顯示、自定義字符、睡眠模式等。
2 組成原理
ST7920 LCD驅動器由32個普通驅動器(common)及64個段驅動器?segment?組成,段驅動器的擴充可根據需要由ST7921的段驅動器來提供,一個ST7920可以顯示一行8個字或兩行4個字,或是配合ST7921來顯示兩行16個字。ST7920有兩種結構形式:ST7920-0A和ST7920-0B,前者內置BIG-5碼,用于顯示繁體中文字型;而后者內置GB碼,用于顯示簡體中文字型。
圖1是ST7920的內部結構框圖。在對ST7920讀或寫時,會用到兩個8位的寄存器,一個是數據寄存器DR,另一個是指令寄存器IR。通過數據寄存器DR可以存取DDRAM、CGRAM、CGROM及IRAM的值。待存取的目標RAM的地址可通過命令來選擇,每次數據寄存器DR的操作應以上次選擇的目標RAM為主體來進行讀出或寫入。通過RS和RW的狀態可以選擇不同的讀寫模式,具體配置方法如表1所列。
表1 ST7920的寄存器讀寫狀態
RS | RW | 功能說明 |
低電平0 | 低電平0 | MPU寫指令到指令寄存器IR |
低電平0 | 高電平1 | 讀出忙標志及地址計數器的狀態 |
高電平1 | 低電平0 | MPU寫指令到數據寄存器DR |
高電平1 | 高電平1 | MPU從數據寄存器DR讀出指令 |
忙標志位BF為“1”時,表示內部操作正在進行,即處于忙狀態而不接受新的指令,所以,每次接受新指令前,都要讀取BF標志,只有當其為“0”時才可接受。
3 ST7920的應用
ST7920有自己的指令集,包括基本指令和擴充指令兩大類,其中基本指令有11條,擴充指令有7條。下面以顯示RAM(DDRAM)為例來說明ST7920的應用方法。
3.1 文本顯示RAM(DDRAM)
ST7920的文本顯示RAM中提供了8個4行的漢字空間,當對文本顯示RAM進行寫入時,可以分別顯示CGROM、HCGROM與CGRAM的字型;ST7920A可以顯示三種字型,分別是半寬的HC-GROM字型、CGRAM字型及中文CGROM字型。三種字型的選擇可通過在DDRAM中寫入編碼來進行設定,各種字型的詳細編碼如下:
顯示半寬字型 :將一位字節寫入DDRAM中,范圍為02H~7FH的編碼。
顯示CGRAM字型:這種字型可通過將兩個字節的編碼寫入DDRAM中來實現,總共有0000H、0002H、0004H、0006H四種編碼方式。
顯示中文字形:將兩字節編碼寫入DDRAM,范圍為A1A0H~F7FFH?GB碼?或A140H~D75FH?BIG5碼?的編碼。
圖2
繪圖顯示RAM提供1288個字節的存儲空間,在更改繪圖RAM時,先連續寫入水平與垂直的坐標值,再將兩個字節的數據寫入繪圖RAM,地址計數器(AC)會自動加1;在寫入繪圖RAM期間,繪圖顯示必須關閉,寫入繪圖RAM的步驟如下:
①關閉繪圖顯示功能。
②將水平的位元組坐標(X)寫入繪圖RAM地址;
③將垂直的坐標(Y)寫入繪圖RAM地址;
④將D15~D8數據寫入GDRAM中;
⑤將D7~D0數據寫入GDRAM中;
⑥打開繪圖顯示功能。
3.3 顯示兩行16個漢字的應用舉例
圖2所示為用ST7920和ST7921顯示兩行16個漢字的結構原理圖。在使用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 結束語
由ST7920構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。因此,ST7920將得到廣泛的應用。
電磁爐相關文章:電磁爐原理
評論