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