液晶顯示控制器ST7920的接口方式研究與編程
1 引言
ST7920是臺灣矽創(chuàng)電子公司生產(chǎn)的中文圖形液晶控制器,可作為控制器和驅(qū)動器捉供32路com 輸出和64路seg輸出。與驅(qū)動器ST7921組成的模塊最多可驅(qū)動256×32點陣液晶,主要用于顯示漢字及圖形,其內(nèi)置了2 MB中文字型ROM(CGROM),共提供8192個中文字型(16×16點陣);16KB半寬字型ROM(HCGROM),共提供126個西文字型(16×8點陣);64×16位字符顯示RAM(DDRAM最多16字符×4行,LCD顯示范圍16×2行);64×16位字符產(chǎn)生RAM(CGRAM);15×16位共240點的ICON RAM(ICONRAM)。此外,為了適應(yīng)多種微處理器與單片機(jī)接口需求,該模塊還可提供4位并行、8位并行、2線串行以及3線串行等多種接口。利用上述特性方便實現(xiàn)文字與圖形混合顯示、畫面清除、光標(biāo)歸位、顯示開/關(guān)、光標(biāo)顯示/隱藏、顯示字體閃爍、光標(biāo)移位、顯示移位、垂直畫面旋轉(zhuǎn)、反白顯示、休眠模式等功能。
2 ST7920與MCU的接口
ST7920與MCU的接口引腳如表1所示。
ST7920與MCU連接的方式非常靈活,分為并行和串行兩種方法。并行接口復(fù)雜,但編程簡單,訪問速度快;串行接口簡單,但編程復(fù)雜。并行連接方法又分為并口直接訪問、并口間接訪問和4位并口訪問。以Atmel公司8位單片機(jī)AT89C52為例逐一介紹各自的接口連接實例。
2.1并口直接訪問
MCU以AT89C52為例,P0端口接ST7920的數(shù)據(jù)引腳DB0~DB7,P2.1端口接ST7920的RS,P2.2接ST7920的R/W,讀寫引腳(P3.6和P3.7)通過與非門接至E端,如圖1所示。將ST7920視為MCU的外部數(shù)據(jù)存儲器進(jìn)行傳輸數(shù)據(jù)。
2.2并口間接訪問
利用AT89C52的P3.0、P3.1、P3.2C及P0端口分別接至ST7920的RS、R/W、E引腳以及數(shù)據(jù)引腳DB0~DB7,如圖2所示,以P3.0、P3.1、P3.2作為模擬聯(lián)絡(luò)信號完成數(shù)據(jù)傳輸。
2.3位并口訪問
4位并口訪問接口連接圖與并口間接訪問一致,區(qū)別只是將每個字節(jié)分兩次送入,第一次送入高4位,第二次送入低4位。
2.4串口訪問
CS接低電平時,選擇串口模式。在該模式下,只用兩根線(SID與SCLK)完成數(shù)據(jù)傳輸。編寫代碼前,須制定通訊雙方的通訊協(xié)議。其串口訪問接線圖如圖3所示。
3 ST7920指令
ST7920的指令集包括基本指令和擴(kuò)充指令,其中基本指令有11條(見表2),擴(kuò)充指令有7條(見表3)。每一個指令的長度都為8位。16×8點陣的ASCII字符代碼也是8位。但是16×16點陣中文字符的代碼為16位,必須分為兩次傳送,先傳送高8位,再傳送低8位。
當(dāng)ST7920在接收指令前,MCU必須先確認(rèn)ST7920處于空閑狀態(tài)。即讀取BF=0,才能接收新的指令;如果在送出一條指令前不檢查BF狀態(tài),則需要延時一段時間,確保上一條指令執(zhí)行完畢,具體指令執(zhí)行時間參照指令表。
"RE"是基本指令集與擴(kuò)充指令集的選擇控制位,當(dāng)更改"RE"的狀態(tài)更改后,后續(xù)指令維持在最后狀態(tài)。除非再次更改"RE"狀態(tài),否則使用相同指令集時,無需要重新設(shè)置"RE"。
無論采用何種連接,根據(jù)ST7920的指令表,在確定顯示功能后,ST7920初始化編程基本一致,圖4為ST7920初始化編程的一個簡單流程表。
4 ST7920應(yīng)用編程
ST7920控制器廣泛應(yīng)用中小型儀器或控制電路,由于支持接口形式多,編寫程序非常靈活,下面以顯示4行32漢字(或64個ASCII字符)為例,簡要介紹ST7920編程步驟與基本方法,電路接口采用并口直接訪問,其程序代碼如下:
5 結(jié)語
與同類型點陣的LCM相比,ST71920控制的LCM硬件和軟件設(shè)計靈活,而且內(nèi)置多種漢字字庫。相對于無字庫的液晶控制器而言,大大降低了成本,簡化了系統(tǒng)設(shè)計,因此,在當(dāng)今LCM市場上,ST71920應(yīng)用廣泛。
評論