摘 要: 首先闡述段式液晶屏的驅(qū)動(dòng)原理,然后介紹利用MSP430F149單片機(jī)的管腳直接對(duì)多路尋址液晶顯示器件驅(qū)動(dòng)的硬件原理和程序,,實(shí)現(xiàn)了無專用驅(qū)動(dòng)芯片的液晶顯示,,減少了帶段式液晶產(chǎn)品驅(qū)動(dòng)芯片的費(fèi)用。本設(shè)計(jì)驅(qū)動(dòng)電路性能穩(wěn)定,、成本低廉,是理想的人機(jī)界面實(shí)現(xiàn)方式,。
關(guān)鍵詞: MSP430,;多路尋址;直接驅(qū)動(dòng),;段式液晶屏
自從20世紀(jì)60年代末第一臺(tái)LCD液晶顯示器誕生以來,,液晶顯示技術(shù)在短短的40多年里得到了飛速的發(fā)展。顯示器作為人機(jī)交互的關(guān)鍵部分,,現(xiàn)已成為嵌入式設(shè)備中不可缺少的外圍接口器件之一,。由于控制段式液晶顯示器的驅(qū)動(dòng)時(shí)序復(fù)雜,因而相應(yīng)的驅(qū)動(dòng)芯片應(yīng)運(yùn)而生,,但是液晶屏的驅(qū)動(dòng)芯片價(jià)格昂貴且耗電量大,,很多產(chǎn)品價(jià)格令用戶難以接受。本文在智能電表設(shè)計(jì)方案中采用TI公司具有三態(tài)輸出功能,、超低功耗的MSP430F149單片機(jī)作為主控芯片,,同時(shí)直接對(duì)多路尋址液晶器件進(jìn)行驅(qū)動(dòng),既起到了控制其他模塊的正常運(yùn)行又驅(qū)動(dòng)了液晶屏的顯示,,減少了驅(qū)動(dòng)芯片的費(fèi)用,,設(shè)計(jì)電路工作穩(wěn)定、成本低,,具有一定的推廣價(jià)值,。
1 筆段式LCD的結(jié)構(gòu)及顯示原理
1.1 筆段式LCD的結(jié)構(gòu)
筆段式液晶顯示器是指以長(zhǎng)條狀顯示像素組成一位顯示類型的液晶顯示器件,簡(jiǎn)稱段式液晶顯示器件,。它主要用于顯示數(shù)字,,或類似數(shù)字的段碼型顯示。段式液晶顯示器件的驅(qū)動(dòng)分為兩類:一類是靜態(tài)驅(qū)動(dòng),;另一類是動(dòng)態(tài)驅(qū)動(dòng)[1],。因?yàn)槎问絼?dòng)態(tài)液晶顯示器件尋址路數(shù)一般不超過4路,故動(dòng)態(tài)驅(qū)動(dòng)又被稱為多路尋址驅(qū)動(dòng),。方案中的多路尋址驅(qū)動(dòng)液晶顯示器件引腳排布如表1所示,。
1.2 筆段式LCD的顯示原理
LCD工作原理不同于LED,加上電壓(LED實(shí)際上是電流驅(qū)動(dòng))就可以長(zhǎng)期顯示,。LCD必須使用交流電壓驅(qū)動(dòng)才能保持穩(wěn)定的顯示,,如果在LCD上加上穩(wěn)定的直流電壓,,不但不能正常顯示,時(shí)間久了還會(huì)損壞LCD,。一段LCD由背電極和段電極組成,,在兩個(gè)板極之間充滿著液態(tài)液晶體,驅(qū)動(dòng)信號(hào)分別加在背電極與段電極上,。在顯示時(shí),,驅(qū)動(dòng)信號(hào)幅度大(大于液晶的顯示閾值),熄滅時(shí),,驅(qū)動(dòng)信號(hào)幅度小,。它熄滅時(shí)驅(qū)動(dòng)信號(hào)幅度與顯示時(shí)的幅度之比稱為該顯示器的“偏置”。例如:1/3偏置(簡(jiǎn)稱1/3B)是指它熄滅時(shí)驅(qū)動(dòng)信號(hào)幅度與顯示的幅度之比為1:3,。要想讓它顯示就使用一個(gè)幅度大的信號(hào),,熄滅則加一個(gè)幅度小的信號(hào)。在一個(gè)顯示周期內(nèi)各段輪流顯示,,其中每個(gè)段的顯示時(shí)間與顯示周期總時(shí)間之比稱為顯示占空比,。例如:4個(gè)段碼連在一起的液晶顯示器,其顯示占空比是1/4(簡(jiǎn)稱I/4D)[2],。此外,,液晶顯示器還有其他參數(shù),如最佳視角,。例如:最佳視角為30°的稱為6點(diǎn)鐘,;最佳視角為90°的稱為12點(diǎn)鐘等。
2 筆段式LCD驅(qū)動(dòng)設(shè)計(jì)
方案中采用的LCD,,有4個(gè)COM,,32個(gè)SEG。要想某一SEG顯示時(shí),,需要在對(duì)應(yīng)的SEG和COM之間加上足夠的交流電壓,。COM驅(qū)動(dòng)使用了兩個(gè)I/O口控制兩個(gè)電阻進(jìn)行分壓,輸出電壓有0 V,、1/3Vcc,、2/3Vcc、Vcc,。SEG驅(qū)動(dòng)使用了兩個(gè)電阻進(jìn)行分壓,,輸出電壓為1/2Vcc。當(dāng)不想讓某位顯示時(shí),,就將它的SEG端電壓設(shè)置為1/2Vcc(通過設(shè)置I/O口為高阻態(tài)來完成)同時(shí)COM端電壓設(shè)置為1/3Vcc或者2/3Vcc,,這樣加在對(duì)應(yīng)的SEG和COM之間的電壓只有1/6Vcc,不足以點(diǎn)亮對(duì)應(yīng)的SEG,。需要顯示的,,就將COM電壓設(shè)置為0或者1,,這樣SEG電壓跟COM電壓相反的段就被點(diǎn)亮了。通過定期掃描每個(gè)COM,,即可穩(wěn)定地在LCD上顯示需要的字段了,。但是如果使用100%的時(shí)間都驅(qū)動(dòng)的話,會(huì)造成對(duì)比度太高,,甚至出現(xiàn)不該顯示的地方也顯示了,。因此在顯示一段時(shí)間后,就將COM和SEG都設(shè)置為低,,以關(guān)閉它的顯示,,降低對(duì)比度。通過調(diào)節(jié)關(guān)閉時(shí)間的長(zhǎng)短(PWM),,可以調(diào)節(jié)對(duì)比度[3]。在圖1中,,使用了50%固定的占空比,。COM為低電平時(shí)點(diǎn)亮叫做正亮,COM為高電平時(shí)點(diǎn)亮叫做負(fù)亮,。掃描每個(gè)COM分成4個(gè)階段:正亮,,關(guān)閉,負(fù)亮,,關(guān)閉[4],。因此對(duì)于方案中LCD驅(qū)動(dòng),總共有16種狀態(tài),,每個(gè)COM都有上面所說的4種狀態(tài),。每隔2 ms就切換一次狀態(tài),整個(gè)掃描周期為2×16=32 ms,,肉眼感覺不到閃爍,。驅(qū)動(dòng)時(shí)序如圖1所示。
3 軟件實(shí)現(xiàn)
3.1 程序流程圖
顯示程序流程圖如圖2所示,。
3.2 顯示子程序設(shè)計(jì)
液晶顯示器的工作頻率范圍一般在25 Hz到數(shù)百赫茲之間,,因?yàn)橛闷胀▎纹瑱C(jī)驅(qū)動(dòng)液晶顯示器沒有硬件支持,驅(qū)動(dòng)波形只能通過軟件編程實(shí)現(xiàn),,所以選用較低的工作頻率,,減少軟件的開銷。
在編寫程序中定義一個(gè)二維數(shù)組來儲(chǔ)存要顯示內(nèi)容的數(shù)據(jù),。當(dāng)有顯示請(qǐng)求時(shí),,將相應(yīng)的數(shù)據(jù)放入該二維數(shù)組中,調(diào)用顯示函數(shù)即可,,COM1的掃描程序如下,。
void display()
{ P1DIR=a[0][0],; P2DIR=a[0][1];P3DIR=a[0][2],;//正亮
P4DIR=a[0][3],;P5DIR=a[0][4];P6DIR=0x0f,;
P1OUT=a[0][0],;P2OUT=a[0][1];P3OUT=a[0][5],;
P4OUT=a[0][3],;P5OUT=a[0][4];P6OUT=0x00,;
delay_ms(2),;
P1DIR=0xf0;P2DIR=0xff,;P3DIR=0xff,;//關(guān)閉
P4DIR=0xff;P5DIR=0xff,;P6DIR=0x0f,;
P1OUT=0x00;P2OUT=0x00,;P3OUT=0x00,;
P4OUT=0x00;P5OUT=0x00,;P6OUT=0x00,;
delay_ms(2));
P1DIR=a[0][0],;P2DIR=a[0][1],;P3DIR=a[0][2];
//反亮
P4DIR=a[0][3],;P5DIR=a[0][4],;P6DIR=0x0f;
P1OUT |=~a[0][0],;P2OUT |=~a[0][1],;P3OUT |=~a[0][5];
P4OUT |=~a[0][3],;P5OUT |=~a[0][4],;P6OUT |=~0x00;
delay_ms(2);
P1DIR=0xf0,;P2DIR=0xff,;P3DIR=0xff;//關(guān)閉
P4DIR=0xff,;P5DIR=0xff,;P6DIR=0x0f;
P1OUT=0x00,;P2OUT=0x00,;P3OUT=0x00;
P4OUT=0x00,;P5OUT=0x00,;P6OUT=0x00;
delay_ms(2),;
……
}
其他3個(gè)COM端口掃描程序與此類似,。
4 實(shí)驗(yàn)結(jié)果及分析
4.1 實(shí)驗(yàn)結(jié)果
當(dāng)用戶電表出現(xiàn)剩余金額不足時(shí),用戶會(huì)收到電表發(fā)送的金額不足提醒,,驅(qū)動(dòng)顯示效果如圖3(a)所示,。用戶也可以通過手持設(shè)備向電表發(fā)送查詢命令查詢電表當(dāng)前數(shù)據(jù),比如用戶發(fā)送查詢上月用電量信息,,電表自動(dòng)喚醒,并顯示相應(yīng)的查詢結(jié)果,,顯示效果如圖3(b)所示,。
4.2 實(shí)驗(yàn)分析
采用上述方法驅(qū)動(dòng)液晶屏的顯示,需要注意兩點(diǎn),。首先,,由于不是靜態(tài)顯示,因此4個(gè)周期中每個(gè)周期應(yīng)該控制在12 ms以下,,如果周期設(shè)置太大,,會(huì)導(dǎo)致需要顯示的段會(huì)不停閃爍,從而影響顯示質(zhì)量,。因此設(shè)置的頻率不能少于25 Hz,,這樣肉眼才無法察覺閃爍。
其次,,由于采集的數(shù)據(jù)不是一位,,而是多位,在動(dòng)態(tài)顯示的過程中無法簡(jiǎn)單地一一判斷每一位的顯示狀態(tài),,會(huì)造成程序冗長(zhǎng),,因此有必要在進(jìn)行顯示前對(duì)采集的數(shù)據(jù)進(jìn)行處理,以減少在顯示子函數(shù)中的運(yùn)算,,通過一個(gè)二維數(shù)組作為數(shù)據(jù)庫,,記錄每一段的亮與滅的狀態(tài),。在顯示過程中直接讀取該二維數(shù)組所記錄的值來對(duì)液晶屏點(diǎn)亮。
對(duì)于計(jì)量?jī)x表來說,,顯示技術(shù)是十分重要的,。本論文中分析了智能電表中專用筆段式液晶屏的顯示原理,給出了驅(qū)動(dòng)設(shè)計(jì)的方法以及有關(guān)利用MSP430單片機(jī)I/O口直接驅(qū)動(dòng)筆段式液晶顯示屏的C語言程序,。直接驅(qū)動(dòng)LCD顯示的方法可以減少筆段式液晶顯示因需要專門的驅(qū)動(dòng)芯片而增加的功耗和產(chǎn)品成本,,在單片機(jī)I/O口充裕的條件下,是一種理想的人機(jī)界面實(shí)現(xiàn)方式,,具有一定的意義,。
參考文獻(xiàn)
[1] 王鵬,馬波,,邵仕泉,,等.基于51單片機(jī)的段式液晶的顯示器的驅(qū)動(dòng)設(shè)計(jì)[J].西南民族大學(xué)學(xué)報(bào)·自然科學(xué)版,2011,,37(5):243-246.
[2] 程秀平,,劉忠超.基于單片機(jī)的VRAM型彩色液晶驅(qū)動(dòng)設(shè)計(jì)[J].電子與封裝,2011(1):41-43.
[3] 萬盛國,,劉凱,,李芳.基于CPLD的液晶顯示驅(qū)動(dòng)模塊的設(shè)計(jì)[J].中國制造業(yè)信息化,2010(13):55-57.
[4] 薛旭,,喬毅,,吳化柱.淺談一種基于ATmega48段式液晶顯示器的驅(qū)動(dòng)方法[J].應(yīng)用技術(shù),2007(11):91-92.