SED1520與PIC單片機(jī)的接口設(shè)計
1引言
智能儀器儀表設(shè)計中,通常都要對測控信息進(jìn)行顯示。受儀器功耗、體積及其它條件的影響,一般CRT顯示器往往不太適用。而半導(dǎo)體數(shù)碼管,雖能顯示數(shù)碼及少數(shù)字母,卻無法靈活顯示各種文字、圖形、表格等,有著較大的局限性。而LCD顯示器由于具有功能強(qiáng)、功耗低、顯示清晰、構(gòu)造輕巧等優(yōu)點(diǎn),被廣泛運(yùn)用于各類智能儀器儀表的顯示。PIC單片機(jī)對比傳統(tǒng)MCS51系列單片機(jī),它具有內(nèi)置功能模塊多、抗干擾性好、速度快、功耗低等優(yōu)點(diǎn),被廣泛應(yīng)用于工業(yè)控制領(lǐng)域。本文將以SED1520與PIC16F874為例介紹LCD顯示器與PIC單片機(jī)接口的實用方法。
2 SED1520的結(jié)構(gòu)、指令及其與PIC單片機(jī)的接口電路
SED1520的指令列表如表1,它的顯示存儲器共有4頁(對應(yīng)頁地址0~3),每個頁面上都有80個字節(jié)(對應(yīng)列地址為0~79),每個字節(jié)中的8位數(shù)據(jù)都對應(yīng)著顯示屏上同一列的8點(diǎn)行。列地址指針就是管理這80個字節(jié)單元的。列地址指針是一個7位加1計數(shù)器。由它和頁地址寄存器組合唯一指定了顯示存儲器的某一個單元。SED1520中的RAM共有32行,分為4頁,每頁8行,這樣如果按8*8點(diǎn)陣顯示字符,每頁可以寫一行10個字符,總共寫4行,而漢字一般是16*16點(diǎn)陣,則每行可顯示5個漢字,共可顯示兩行。如果將多個SED1520拼起來,就可組成不同顯示容量的液晶模塊,
SED1520與PIC16F874的接口電路如圖2所示。各引腳說明如下:
?
3具體編程實例
在具體的實際應(yīng)用中,我們經(jīng)常要顯示漢字,一般漢字的字模如圖4,字節(jié)內(nèi)部的8個位是橫排的,而對于SED1520,字節(jié)的8個位要豎排,即每個字符要跨8行顯示,需要按圖5顯示漢字。那么要將字模的各字節(jié)按位進(jìn)行如下計算:將標(biāo)準(zhǔn)字模的字節(jié)組1的8個字節(jié)的bit7組合起來就成為SED1520漢字字模的字節(jié)1,bit6組合起來就成為SED1520漢字字模的字節(jié)2,依此類推,就可計算出SED1520漢字字模的32個字節(jié),顯示時,先確定字節(jié)1的位置(頁地址與列地址),然后連續(xù)顯示字節(jié)1~字節(jié)16,再頁地址加1,列地址為字節(jié)1的列地址,設(shè)置好后送字節(jié)17~字節(jié)32即完一成個漢字顯示。
我們將以12232為例介紹液晶模塊的使用方法,12232內(nèi)置2個SED1520,通過片選來訪問不同的SED1520,它可顯示4行(對應(yīng)0~3頁地址),每行可顯示122個字符,前61個字符對應(yīng)左邊SED1520,后61個字符對應(yīng)右邊SED1520,列地址0~60對應(yīng)這61個字符的位置,列地址61~79沒有使用。對SED1520初始化的程序流程圖如圖3。清屏是將所有的顯示RAM內(nèi)的數(shù)據(jù)置0,初始化后,要具體在某個位置顯示字符需要設(shè)置對應(yīng)的頁地址(行)和列地址,然后向SED1520寫數(shù)據(jù)即可。以下為顯示部分初始化程序流程圖。
4 結(jié)束語
SED1520是一款性能價格比很高的LCD驅(qū)動芯片,將它與單片微機(jī)接口可用于各類儀表,具有硬件省、功耗低、軟件程序簡潔等特點(diǎn)。該接口設(shè)計已成功應(yīng)用于電動汽車電量管理的顯示,證明該設(shè)計穩(wěn)定可靠。
本文作者創(chuàng)新點(diǎn):單片機(jī)在對LCD控制器寫數(shù)據(jù)前一般都要先讀它是否忙,以免寫數(shù)據(jù)失敗,而PIC單片機(jī)的I/O口在讀與寫的功能轉(zhuǎn)換中要不停地更改該口的設(shè)置,這樣程序就很繁瑣,還有可能導(dǎo)致系統(tǒng)不穩(wěn)定。作者在通過實際設(shè)計與應(yīng)用后,對LCD控制器省去了讀狀態(tài)檢測,根據(jù)SED1520的數(shù)據(jù)手冊中介紹的讀寫時序,進(jìn)行適當(dāng)延時,這樣精減了程序還省下了在單片機(jī)系統(tǒng)設(shè)計中比較寶貴的I/O口,而且系統(tǒng)一直穩(wěn)定。