引言
目前,SED1330作為同類圖形液晶顯示模塊中的功能最強的控制器之一,在各種點陣顯示模塊中獲得了廣泛的應用,本文選用的深圳市松山電子科技有限公司生產的CA320240B型圖形液晶模塊正是基于SED1330的320×240點陣顯示模塊,它能有效地解決顯示的問題。
SED1330控制器的性能特點
SED1330具有功能較強的I/O緩沖器和豐富指令,可實現多種方式的文本圖形顯示;它的數據部分采用并行四位發送,最大可以驅動640256點陣液晶顯示屏。
SED1330功能較強的UO緩沖器主要體現在以下兩個方面:
(1)SED1330與MPU的接口部具有高性能的緩沖器,其作用是隨時準備接受MPU的訪問并即時的把MPU送來得指令、參數或數據在控制器內部時序工作周期內就位。這種功能使得在操作SED1330時可以不必判別狀態位BF。
(2)SED1330不僅適用于8080系列的MPU接口,也適用于M6800系列MPU接口。
SED1330具有文本和圖形兩種顯示特性,在這兩種顯示方式下,其顯示RAM(VRAM)內每個字節的數據對應著不同的顯示內容。
當其在本文方式下顯示漢字時,需要在SED1330的VRAM內建立一個自定義字符器CGRAM,即在相應的顯示單元寫入待顯示漢字的字符代碼,字符代碼作為字符發生器地址的一部分可實現對字符發生器的尋址,當取得相應的字符字模數據后,送至液晶顯示驅動系統顯示。SED1330的基本字符塊可對應設為8×8或8× 16點陣的字符塊,當設為8×8點陣時,一個16×16點陣的漢字需要四個8×8點陣的基本字符塊組合顯示。所以,此時建立漢字CGRAM時,需要用四個字符代碼來管理一個漢字,一般是按左上、左下、右上和右下四部分來分配代碼。
當其在圖形方式下顯示漢字時,其漢字字庫是建立在系統程序區內的,可由程序逐字節地向圖形顯示區的相應單元寫入(一般將16×16點陣漢字分為左右兩部分寫入,若是24×24點陣,作分為左中右三部分寫入),圖形顯示區單元的數據被認為是8點位的顯示數據,可直接送入液晶顯示驅動系統顯示出相應的漢字,利用圖形方式顯示漢字的最大優點在于其字形大小可變。
DSP與SED1330的電平轉換
TMS320LF240xA 等新一代DSP芯片的I/O工作電壓一般是3.3V,其I/O電平也是3.3V邏輯電平。由于液晶的工作電壓是5V,所以,用3.3V的DSP去驅動5V 的液晶時,就要進行電平轉換,如圖1所示,DSP的輸出高電平的最低電壓VOH為2.4V,而5V液晶屏在輸入高電平時的最低電壓VIH為3.5V,這樣,即使DSP輸出達到3.3V,也還是不能滿足液晶高電平所要求的最小值,所以3.3V的DSP是不能直接驅動5V液晶屏的,因此在設計DSP與液晶的接口時,應使用專門的電平轉換器件(如TI公司的SN74LVCZ16245A)。實際上,有些芯片采用雙電壓供電,一邊是3.3V,一邊是5V,這樣就能很好地解決電平轉換問題。
DSP與液晶顯示模塊SED1330的接口設計
TMS320LF2407A對SED1330接口控制板的訪問有直接訪問和間接訪問兩種方式。直接訪問方式是將DSP的讀寫信號線與SED1330接口控制板引出的讀寫信號線直接相連,其時序由DSP 內部讀寫邏輯控制,但是由于液晶顯示模塊是DSP的一個慢速外設,要使兩者的速度達到匹配,還必須加入一定的等待狀態才能滿足要求,考慮到DSP內部等待狀態發生器所能插入的等待周期非常有限(只能給指定的存儲空間插入一個等待狀態),在不添加額外的硬件設備的情況下,很難滿足設備的要求,所以設計中只采用間接訪問方式,即用DSP的I/O口來控制SEED1330,而通過軟件編程來模擬SED1330的接口時序。
在此設計中,DSP的主頻一般為30MHz,液晶顯示模塊接口控制時序采用M8080時序,它與DSP之間的接口電路如圖2所示,其中,TMS320LF2407的IOPB0- IOPB7用作數據接口,與液晶顯示模塊的數據線DB0-DB7相連,以完成與SED1330間的數據傳送,IOPA6與WR相連時,可在寫 SED1330時置為低,IOPA7則與RD相連時,則在讀SED1330時置為低;CS接地將時鐘使能SED1330,IOPA5與A0相連可決定是數據(A0=0),還是指令(A0=1)。背光電壓由逆變器提供,調節電位器可以調節液晶顯示屏的對比度。
DSP與SED1330的軟件接口設計
為了使液晶屏能夠正常工作,還必須編寫硬件驅動程序,軟件設計的關鍵是對液晶顯示模塊的初始化,以及對DSP與SED1330間接口時序的匹配。
液晶顯示模塊的初始化
初始化程序的主要任務是根據所控制的液晶顯示模塊的特性和用戶的顯示要求,寫入適當的命令和參數,通常以參數表的形式送入,這些命令和參數必須首先寫入,如果指令設置出現錯誤,則顯示必定不正常,圖3所示為SED1330的初始化流程,其參數分別有:SYSTEM SET(30H、87H、07H、28H、42H、0F0H、28H、00H),SCROLL(00H、00H、0F0H、80H、25H、0F0H、 00H、4BH、00H、00H),HDOT SCR(00H),OVLAY (1CH),CSRFORM(5DH、07H),CSRW(02H、00H),CSRDIR(指令4CH),DISP ON(指令59H)。其中SYSTEM SET的驅動系統結構設置為單屏,選用外部字符發生器,字符格式為8×8,字符代碼為80H-9FH,內部CGRAM有效,顯示字符寬度和高度都是8, LCD每行需要的字節數為40,點行數為240,LCD的工作頻率為70Hz,顯示內存內分配給一個顯示行的單元數為40字節。
若需要把文本和圖形混合顯示,則只能設為二重合成顯示,而三重合成顯示只能用于圖形方式。在雙屏結構下,四個顯示區同時參加二重合成顯示時,一、二顯示區位于上半屏,三、四顯示區位于下半屏,并且此時一、三顯示區合成為第一層,二、四顯示區合成為第二層。
SED1330的讀寫時序
由于本設計中的液晶顯示沒有用DSP的數據線,而是用DSP的IO口來模擬液晶控制器的時序,因此,在設計中,用IO口來模擬SED1330的讀寫時序是重中之重。
SED1330的讀寫時序有M8080和M6800兩種,本設計選用M8080時序,其時序如圖4所示,其中的時間限定如表1所列。
由于DSP的處理速度遠遠快于SED1330的顯示速度,所以每次向SED1330送出待顯示的數據后,DSP應產生一定的延遲以等待響應 SED1330的顯示,所以在讀寫子程序中,要利用軟件來產生如上時序才能對液晶進行正確操作,否則液晶將來不及顯示而導致錯誤,在設計過程中,DSP的讀寫時序使用軟件模擬,而不是靠DSP的引腳R/W、RD、WE與地址數據線的定來保證時序,這一點在設計中應特別注意,下面給出在設計過程中縮寫的讀寫子程序:
WR_COMMAND:;入口參數為COMMAND
LDP #MCRA》》7
LACL PADATDIR;配置IOPA5--A0=1
OR #0E020H
SACL PADATDIR
LDP #4H
LACL COMMAND
OR #0FF00H
SACL PBDATDIR
;IOPA6--/WR=0(寫使能)
LDP #MCRA》》7
LACL PADATDIR
OR #0E000H
AND #0E0B0H
SACL PADATDIR
RPT #10
NOP
;IOPA6--/WR=1(寫不使能)
LACL PADATDIR
OR #0E40H
SACL PADATDIR
LDP #4H
SPLK #100,YANSHI1
CALL DELAYS1;延時100us
RET
WR_DATA:入口參數為DATA
LDP #MCRA》》7
LACL PADATDIR;配置IOPA5--A0=0
OR #0E000H
AND #0E0D0H
SACL PADATDIR
LDP #4H
LACL DATA1
OR #0FF00H
LDP #MCRA》》7
SACL PBDATDIR
;IOPA6--/WR=0(寫使能)
LACL PADATDIR
OR #0E000H
AND #0E0B0H
SACL PADATDIR
RPT #10
NOP
;IOPA6--/WR=1(寫不使能)
LACL PADATDIR
OR #0E40H
SACL PADATDIR
LDP #4H
SPLK #100,YANSHI1
CALL DELAYS1;延時100us
RET
RD_DATA;
LDP #MCRA》》7
LACL PADATDIR;配置IOPA5--A0=1
OR #0E020H
SACL PADATDIR
;IOPA7--/RD=0(讀使能)
LACL PADATDIR
OR #0E000H
AND #0E070H
SACL PADATDIR
LACL PBDATDIR
LDP #4H
SACL DATA2
RPT #10
NOP
;IOPA7--/RD=1(讀不使能)
LDP #MCRA》》7
LACL PADATDIR
OR #0E80H
SACL PADATDIR
LDP #4H
SPLK #100,YANSHI1
CALL DELAYSI;延時100us
RET
RD_BUSY:
LDP #MCRA》》7
LACL PADATDIR;配置IOPA5--A0=0
OR #0E000H
AND #0E0D0H
SACL PADATDIR
;IOPA7--/RD=0(讀使能)
LACL PADATDIR
OR #0E000H
AND #0E070H
SACL PADATDIR
LACL PBDATDIR
LDP #4H
SACL DATA3
;IOPA7--/RD=1(讀使能)
LDP #MCRA》》7
LACL PADATDIR
OR #0E80H
SACL PADATDIR
LDP #4H
SPLK #100.YANSHI1
CALL DELAYS1;延時100us
;判斷是否忙
LDP #4H
BIT DATA2,9
BCND RD_BUSY,TC
RET
顯示軟件設計程序流程
圖形顯示方式可以顯示數字、漢字以及各種能繪制出來的圖形,但是事先必須生成相應的點陣文件,實際上,顯示字符、漢字和圖形都是對液晶屏上的特定區域寫入相應的數據,本質上沒有區別,這些數據都存儲在程序中,待顯示時再將這些數據寫入顯示RAM中,不過,在顯示漢字字符時,可以將需要顯示的字模提取出來存儲,進行顯示時再直接調用更為簡單,想要顯示一幅圖畫時,可以通過Windows附帶的畫圖工具制作一幅320×240象素的黑白位圖,并先將位圖反色,再將處理過的圖片以16進制文件的形式和程序一起燒入外部24LC256中,注意:位圖應存入一個起始地址。設置三層圖形疊加方式顯示的方法是一樣的,圖5所示是一個軟件設計程序流程圖。需要說明的是,當DSP上電后,SED1330要能正確復位,否則將不能正確顯示。
結束語
SED1330控制器有64KB大容量緩存區,能適用多種規格的顯示屏,其內部固化的字符發生器可產生160種字模并可外擴字符發生器,而且通過改變指令參數可以實現圖像的閃爍、翻轉、移動等,從總體性能方面而言,SED1330大大強于同類型的其他控制器,非常適用于各種液晶顯示屏控制系統的設計需求。
本文介紹的由該控制器構成的液晶顯示方案已成功地通過了調試,它與同類型的其他圖形點陣液晶顯示模塊相比,其硬件電路結構簡單,顯示功能強大,同時這對于其他型號的接口芯片,也有很好的參考價值。
責任編輯:gt
評論