SED1520與PIC單片機(jī)的接口設(shè)計(jì)
本文引用地址:http://cafeforensic.com/article/173489.htm
SED1520的指令的解釋和執(zhí)行不依賴外部時(shí)鐘,而是由內(nèi)部時(shí)鐘同步的,所以它的指令執(zhí)行的速度很快,一般不需要檢測(cè)SED1520是否忙。由于PIC16F874的I/O口是輸出或輸入要對(duì)相應(yīng)寄存器進(jìn)行設(shè)置[3],如圖2,PIC16F874的RD口在向SED1520寫數(shù)據(jù)時(shí)要被設(shè)置成輸出口,而讀數(shù)據(jù)時(shí)又要被設(shè)置成輸入口,為了精減程序和提高速度,我們可以不用讀SED1520的狀態(tài),直接向其寫數(shù)據(jù)。這樣SED1520的RD腳直接接高電平,PIC16F874的RC3腳也可省下留作它用。
3具體編程實(shí)例
在具體的實(shí)際應(yīng)用中,我們經(jīng)常要顯示漢字,一般漢字的字模如圖4,字節(jié)內(nèi)部的8個(gè)位是橫排的,而對(duì)于SED1520,字節(jié)的8個(gè)位要豎排,即每個(gè)字符要跨8行顯示,需要按圖5顯示漢字
那么要將字模的各字節(jié)按位進(jìn)行如下計(jì)算:將標(biāo)準(zhǔn)字模的字節(jié)組1的8個(gè)字節(jié)的bit7組合起來(lái)就成為SED1520漢字字模的字節(jié)1,bit6組合起來(lái)就成為SED1520漢字字模的字節(jié)2,依此類推,就可計(jì)算出SED1520漢字字模的32個(gè)字節(jié),顯示時(shí),先確定字節(jié)1的位置(頁(yè)地址與列地址),然后連續(xù)顯示字節(jié)1~字節(jié)16,再頁(yè)地址加1,列地址為字節(jié)1的列地址,設(shè)置好后送字節(jié)17~字節(jié)32即完一成個(gè)漢字顯示。我們將以12232為例介紹液晶模塊的使用方法,12232內(nèi)置2個(gè)SED1520,通過(guò)片選來(lái)訪問(wèn)不同的SED1520,它可顯示4行(對(duì)應(yīng)0~3頁(yè)地址),每行可顯示122個(gè)字符,前61個(gè)字符對(duì)應(yīng)左邊SED1520,后61個(gè)字符對(duì)應(yīng)右邊SED1520,列地址0~60對(duì)應(yīng)這61個(gè)字符的位置,列地址61~79沒(méi)有使用。對(duì)SED1520初始化的程序流程圖如圖3。清屏是將所有的顯示RAM內(nèi)的數(shù)據(jù)置0,初始化后,要具體在某個(gè)位置顯示字符需要設(shè)置對(duì)應(yīng)的頁(yè)地址(行)和列地址,然后向SED1520寫數(shù)據(jù)即可。以下為顯示部分初始化程序流程圖。
4 結(jié)束語(yǔ)
SED1520是一款性能價(jià)格比很高的LCD驅(qū)動(dòng)芯片,將它與單片微機(jī)接口可用于各類儀表,具有硬件省、功耗低、軟件程序簡(jiǎn)潔等特點(diǎn)。該接口設(shè)計(jì)已成功應(yīng)用于電動(dòng)汽車電量管理的顯示,證明該設(shè)計(jì)穩(wěn)定可靠。
本文作者創(chuàng)新點(diǎn):單片機(jī)在對(duì)LCD控制器寫數(shù)據(jù)前一般都要先讀它是否忙,以免寫數(shù)據(jù)失敗,而PIC單片機(jī)的I/O口在讀與寫的功能轉(zhuǎn)換中要不停地更改該口的設(shè)置,這樣程序就很繁瑣,還有可能導(dǎo)致系統(tǒng)不穩(wěn)定。作者在通過(guò)實(shí)際設(shè)計(jì)與應(yīng)用后,對(duì)LCD控制器省去了讀狀態(tài)檢測(cè),根據(jù)SED1520的數(shù)據(jù)手冊(cè)中介紹的讀寫時(shí)序,進(jìn)行適當(dāng)延時(shí),這樣精減了程序還省下了在單片機(jī)系統(tǒng)設(shè)計(jì)中比較寶貴的I/O口,而且系統(tǒng)一直穩(wěn)定。
評(píng)論