??? 摘? 要: 結(jié)合內(nèi)置SED1335控制器的液晶顯示模塊" title="液晶顯示模塊">液晶顯示模塊LMBGA_032_49CK_的應(yīng)用,介紹了SED1330/SED1335/SED1336/E1330等液晶顯示控制器的電路特性、軟件特性及接口電路" title="接口電路">接口電路,并給出了采用單片機AT89C52控制LCD的硬件接口電路和相應(yīng)的控制軟件。?
??? 關(guān)鍵詞: LCD? AT89C52? 電路特性? 軟件特性? 接口電路
?
??? 液晶顯示器簡稱LCD。LCD產(chǎn)品是世界上最省電的顯示產(chǎn)品[1]。由于液晶顯示器具有低損耗、低價格、壽命長、接口方便等優(yōu)點,被廣泛應(yīng)用于手機、照相機、計算機、智能儀器儀表等產(chǎn)品上。SED1330/SED1335/SED1336/E1330系列的主要電路特性和軟件特性是相同的,但是應(yīng)用最廣泛的是SED1330/SED1335[1]。這里以臺灣南亞公司的液晶顯示模塊LMBGA_032_49CK_的應(yīng)用為例來說明該系列控制器的應(yīng)用。?
1 液晶顯示模塊LMBGA_032_49CK_?
?? LMBGA_032_49CK_模塊的結(jié)構(gòu)框圖如圖1所示[3]。從圖中不難看出該模塊是內(nèi)置SED1335控制器的液晶顯示模塊(LCM),它由CCFT背光、SED1335控制器、32K×8SRAM、驅(qū)動單元(圖中U1~U7)、液晶板等部分組成。SED1335等具有較強功能的I/O緩沖器、較強的管理顯示存儲器的能力(有160種內(nèi)部字符發(fā)生器,并能分區(qū)管理64K的顯示存儲器)和閃爍顯示、點位移等特性。SED1335還可以4位數(shù)據(jù)并行發(fā)送,最大驅(qū)動能力為640×256點陣。?
?
?
??? 根據(jù)數(shù)據(jù)的性質(zhì),顯示區(qū)具有文本顯示特性和圖形顯示" title="圖形顯示">圖形顯示區(qū)。LMBGA_032_49CK_模塊有320×240點陣,可以顯示各種圖形和文本信息。文本顯示RAM區(qū)內(nèi)各單元的數(shù)據(jù)都被認為是字符代碼,SED1335使用這些代碼確定字符庫中的字符首地址,然后將對應(yīng)的字模數(shù)據(jù)送到液晶顯示的驅(qū)動單元中驅(qū)動系統(tǒng)顯示。圖形顯示RAM中的每個字節(jié)數(shù)被直接送到液晶顯示模塊上,圖形RAM的一個字節(jié)對應(yīng)顯示屏上的8×1點陣[2]。?
??? LMBGA_032_49CK_模塊的外部接口引腳信號和功能如表1所示。從表中可以看出,SED1335等的接口控制電路內(nèi)有兩套時序電路,通過對這兩套時序電路的設(shè)置,可滿足Intel8080系列計算機操作時序和M6800系列計算機操作時序的要求。
?
?
2 SED1335等與MPU的接口技術(shù)?
??? 根據(jù)SED1335的電路特性,AT89C52單片機與LMBGA_032_49CK_模塊的接口電路如圖2所示。由于LMBGA_032_49CK_模塊是根據(jù)SED1335的特性設(shè)計的,AT89C52的操作時序為Intel8080時序,所以SED1335接口部分選用適配Intel8080時序的接口電路。?
?
?
??? SED1335等的讀寫控制信號RD、WR分別由AT89C52的讀寫控制信號RD、WR控制。AT89C52的P0口與LMBGA_032_49CK_模塊的三態(tài)數(shù)據(jù)總線DB0~DB7連接。值得注意的是,SED1335等的A0信號的定義不是獨立的,而是與讀信號、寫信號組合定義的。按圖2的接口可以定義如下:?
??? wc_add? equ 8100h??? ;write instruction code adderss?
??? wd_add? equ 8000h??? ;write parameter and dispal data?address?
??? rd_add? equ 8100h??? ;read parameter and dispal data??address?
??? rb_add??equ 8000h??? ;read busy state address?
??? 對比度調(diào)節(jié)電壓VO由電位器的中心端提供,可以調(diào)節(jié)液晶顯示的對比度。?
3 軟件編程?
??? 以下所有程序段均使用MCS-51系列匯編指令編制而成。SED1335等有自身的軟件特性,編初始化程序時,首先要根據(jù)液晶顯示模塊的特性選擇初始化SYSTEM SET指令參數(shù)和SCROLL參數(shù)。初始化SYSTEM SET指令參數(shù)有8個,依次為P1~P8。LMBGA_032_49CK_模塊的P1~P8參數(shù)可以定義systab:db 30h、87h、07h、27h、42h、0ffh、28h、00h。初始化這8個參數(shù)的程序及復(fù)位程序如下:?
??? count1 equ 32h ;count one對字模的DB表進行掃描計數(shù)?
??? count2 equ 33h ;count two對字模的DB表進行掃描計數(shù)?
??? res equ p3.0??? ??? ;reset用于LCD 的復(fù)位端口?
lcdintr:???? ?
??????? setb res??????? ;LCD復(fù)位?
??????? nop?
??????? nop?
??? ??? clr res?
??????? nop?
??????? nop?
??????? setb res??????????????? ;LCD復(fù)位?
??????? mov dptr,#wc_add??????? ;設(shè)置寫指令碼地址?
??? ??? mov a,#40h????????????? ;系統(tǒng)設(shè)置碼?
??????? movx @dptr,a???? ?????? ;寫指令碼?
??????? mov count1,#00h?????? ? ;置count1=0?
lcdintr1:?
??????? mov dptr,#systab? ????? ;設(shè)置指令參數(shù)表地址?
??? ??? mov a,count1 ?????????? ;查參數(shù)?
??????? movc a,@a+dptr?
??????? mov dptr,#wd_add??????? ;設(shè)置寫參數(shù)和數(shù)據(jù)地址?
??? ??? movx @dptr,a????????????;寫參數(shù)?
??????? inc? count1????? ?????? ;計數(shù)+1?
??????? mov a,count1?
??????? cjne a,#08h,lcdintr1??? ;循環(huán)?
ret?
??? 注意P7和P8對應(yīng)AP(雙字節(jié)數(shù))值的低8位和高8位,在一些子程序" title="子程序">子程序中,要做相應(yīng)的修改。LMBGA_032_49CK_模塊的SCROLL參數(shù)有10個,可定義為scrtab:db 000h、000h、0f0h、000h、40h、0f0h、000h、80h、000h、000h。初始化這10個SCROLL參數(shù)的程序與上面的" title="面的">面的程序方法一致。?
??? SED1335等可以在圖形方式下顯示圖形和漢字。下面的子程序是為武漢華工激光公司開發(fā)的激光熔覆自動送粉器顯示界面所用的圖形、漢字顯示子程序。先把華工激光的公司標志圖轉(zhuǎn)化為BIMP文件,再利用取模軟件寫出首地址是cctab1的DB表格,由程序逐字節(jié)地向圖形顯示區(qū)的相應(yīng)單元寫入,就可以顯示相應(yīng)的圖形。顯示漢字的方法一樣,但不需要轉(zhuǎn)化BIMP文件,可以直接取模。?
cctw0:;?圖形、漢字寫入子程序? ?
????????mov a,cod?
????????mov b,#20h?
????????mul ab?
????????mov dptr,#cctab1?
????????add a,dpl?
????????push acc?
????????mov a,b?
??????? addc a,dph?
??????? push acc?
??????? mov a,oy?
??????? mov b,#ap?
??????? mul ab?
??????? add?? a,oxl?
??????? mov?? oxl,a?
??????? mov?? a,b?
??????? addc? a,#40h?
??????? mov?? oy,a?
??????? mov?? dptr,#wc_add?
??????? mov?? a,#4fh?
??????? movx? @dptr,a?
??????? mov?? count1,HGL1?
cctw10:?
??????? mov?? dptr,#wc_add?
??????? mov?? a,#46h?
??? ????movx? @dptr,a?
??????? mov?? dptr,#wd_add?
??????? mov?? a,oxl?
??????? movx? @dptr,a?
??????? mov?? a,oy?
??????? movx? @dptr,a?
??????? mov?? dptr,#wc_add?
??????? mov?? a,#42h?
??????? movx? @dptr,a?
??????? mov?? count2,HGL2?
cctw20:?
??????? pop? ?dph?
??????? pop?? dpl?
??????? clr?? a?
??????? movc? a,@a+dptr?
??????? inc?? dptr?
??????? push? dpl?
??????? push? dph?
??????? mov?? dptr,#wd_add;???????? ?
??????? movx? @dptr,a?
??????? djnz? count2,cctw20?
??????? mov?? a,oxl?
??????? add?? a,#01h?
??????? mov?? oxl,a?
??????? mov?? a,oy?
??????? addc? a,#00h?
??????? mov?? oy,a?
??????? djnz? count1,cctw10?
??????? pop?? dph?
??????? pop?? dpl?
??????? ret?
??? 改變圖形、漢字寫入子程序中的count1、count2和cod三個參數(shù)值,就可以顯示不同的圖形和漢字。改變cod的值,可以找到調(diào)用字模代碼的起始地址,兩個逐字節(jié)掃描寄存器count1和count2的值的改變,即改變所掃描的字節(jié)數(shù)(count1×count2)。count2的值等于圖形或漢字字模點陣的寬度,count1的值等于總字節(jié)數(shù)除以count2的值。下面的程序就是圖形方式下的演示程序。?
disp:?
??? mov?? oxl,#00h???;橫坐標?
??? mov?? oy,#00h??? ;縱坐標?
??? mov?? cod,#00h?? ;調(diào)用字模代碼?
??? mov?? HGL1,#0ah ;華工激光公司的標志圖,寬度×高度=80×80點?
??? mov?? HGL2,#50h?
??? lcall cctw0????? ;調(diào)用圖形、漢字寫入子程序?? ?
??? mov oxl,#0Eh?
??? mov oy,#10h?
??? mov cod,#19h??? ?
??? mov HGL1,#10h ;“華工激光”,寬度×高度=32×128點?
??? mov HGL2,#20h?
??? lcall cctw0????? ?
??? ret?
??? 本文根據(jù)SED1335等的電路特性和軟件特性,以LMBGA_032_49CK_模塊為例,對SED1335等控制器的接口電路和軟件編程進行了分析。SED1335等控制器功能較強,可被廣泛應(yīng)用于各種顯示設(shè)備上,筆者已將其成功應(yīng)用于激光熔覆自動送粉系統(tǒng)和激光直寫柔性布線系統(tǒng)中。各種液晶顯示模塊的控制器有很多相似之處,筆者也曾經(jīng)應(yīng)用過內(nèi)置T6963C控制器的LCM,發(fā)現(xiàn)其接口電路和軟件特性與SED1335的非常相似。?
參考文獻?
1 李維緹,郭 強. 液晶顯示應(yīng)用技術(shù). 北京:工業(yè)出版社,?2000?
2 楊振江,杜鐵群,李群.流行單片機實用子程序及應(yīng)用實例.西安:西安電子科技大學(xué)出版社,2002?
3 Specification OF LCD Module Product NO.:LMBGA_032_49CK_.NA YA Plastics Corporation, MAY 24 2002?
4 SED1330F/1335F/1336F LCD Controller Ics Technical?Manual(Version 0.4).S-MOS Systems Inc,September 1995