基于SPCE061A單片機的圖形液晶模塊的驅(qū)動設(shè)計
內(nèi)置T6963C控制器的Y240128A液晶模塊由雙電源(VDD/V0)供電。工作時需要提供一個負電壓 (即液晶驅(qū)動電壓V0/VEE),用以調(diào)節(jié)對比度,接至液晶模塊的V0引腳?;谝壕Р牧系奈锢硖匦?,液晶的對比度會隨著溫度的變化相應(yīng)變化,因此,所提供的負電壓必須隨溫度變化作相應(yīng)的調(diào)整,大致變換關(guān)系是溫度變化10℃,電壓變化1V左右。此外,液晶模塊在正常工作前必須提供驅(qū)動電源。由于選用的Y240128A液晶模塊中已具備提供負電壓的功能,只需接一個可調(diào)電位器(阻值20kΩ)就可方便地為液晶提供驅(qū)動電源。具體如圖1所示。
引腳1、2:接地;引腳3:接+5V電壓為LCD邏輯電源;引腳5~8:液晶控制信號;引腳10~17:液晶數(shù)據(jù)信號;引腳4和引腳19:引腳4為液晶驅(qū)動電源,并可進行對比度調(diào)節(jié)。液晶驅(qū)動電源要求是負電壓,將引腳19(VEE)提供的負電壓(-23V),和引腳4連接后即可為液晶屏提供負電壓。對于在溫度變化不大的使用范圍內(nèi),建議用穩(wěn)壓模塊較合適,在設(shè)計中也可用穩(wěn)壓芯片輸出負壓來穩(wěn)壓,同樣能使液晶正常驅(qū)動。
SPCE061A單片機配置2個16位的并行I/O口:A口和B口,提供32個I/O線。其中,A口16個(IOA0~IOA15),B口16個(IOB0~IOB15)。它們都是16位可編程,具有位控制結(jié)構(gòu)的I/O端口,每一位都可以被單獨定義用于輸入或輸出數(shù)據(jù)。對某一位的設(shè)定包括以下3個基本項:數(shù)據(jù)向量Data、屬性向量Attribution和方向控制向量Direction。
因此,在設(shè)計中,通過SPCE061A單片機內(nèi)置的I/O口電路和利用匯編語言對I/O端口的功能設(shè)置,就可以很簡單的完成液晶模塊接口的設(shè)置。?
對液晶模塊的軟件采用三層模式設(shè)計:底層程序設(shè)計、上層程序設(shè)計和應(yīng)用層程序設(shè)計。?底層程序設(shè)計完成對液晶模塊的底層驅(qū)動。主要是編寫基于對T6963C指令應(yīng)用的子函數(shù),從而能夠直接調(diào)用函數(shù)驅(qū)動液晶模塊,讀寫液晶屏數(shù)據(jù)。
T6963C控制器的指令很豐富,通過分析,建立雙參數(shù)指令子函數(shù)OutCmd2()、單參數(shù)指令子函數(shù)OutCmd1()和無參數(shù)指令子函數(shù)OutCmd0()。底層驅(qū)動用匯編語言編寫,以4個函數(shù)作為底層驅(qū)動函數(shù):讀數(shù)據(jù)、寫數(shù)據(jù)、讀狀態(tài)、寫指令。如對指令寫入子函數(shù)OutCmd的編寫,其底層驅(qū)動程序的建立,源代碼如下:
完成了對底層驅(qū)動函數(shù)的編寫,第二步設(shè)計就是編寫上層驅(qū)動函數(shù)。上層驅(qū)動函數(shù)編寫的出發(fā)點是保證靈活性和可移植性,利用底層的4個驅(qū)動子函數(shù),向應(yīng)用部分提供各種常用操作。上層函數(shù)用C語言編寫。例如,液晶模塊的初始化等。
上層驅(qū)動子函數(shù)的建立,源代碼如下:
完成了上層驅(qū)動子函數(shù)的編寫,就可以調(diào)用它,建立應(yīng)用層,編寫軟件模塊。如:顯示靜態(tài)菜單等等。
應(yīng)用層的建立,源代碼如下:
從上面的設(shè)計可以看到用三層軟件模塊設(shè)計思想,可以很快的在應(yīng)用層中調(diào)用子函數(shù)來編寫程序,并且編寫很簡單,如漢字顯示等。對于復(fù)雜的菜單設(shè)計,更能突出這種軟件設(shè)計思想的優(yōu)勢。
介紹了SPCE061A單片機驅(qū)動內(nèi)含T6963C控制器的圖形液晶模塊。它利用豐富的I/O口資源驅(qū)動液晶模塊,簡化了電路設(shè)計,并結(jié)合T6963C控制器的圖形液晶模塊的指令特點,設(shè)計出液晶模塊軟件驅(qū)動模式,使得在對驅(qū)動液晶模塊的軟件編寫上更方便,這一設(shè)計思想在實際應(yīng)用中取得了很好的效果。