液晶顯示(八)----圖形點陣控制IC-UCI8835應(yīng)用
?本文作者:顯示行家,e小白網(wǎng)址:www.e-xiaobai.com
前面介紹過T6963圖形控制器,它最大只能驅(qū)動到128行,如果需要用到更多行驅(qū)動時,T6963就不能滿足了。UCI8835是臺灣晶宏公司推出的單色圖形點陣控制IC,驅(qū)動路數(shù)從1/2-1/256DUTY,最大支持640x256點陣顯示,需要配合LCD驅(qū)動IC(KS0086/UCI0086/AIP31086)使用。廣泛應(yīng)用于工業(yè)儀器儀表等行業(yè)。UCI8835是SED1335(精工愛普生)的替代產(chǎn)品,在同類產(chǎn)品中是功能最強的控制器之一,目前市面還有RA8835可以選用。
一、基本特性
? ? UCI8835內(nèi)置160個5x7點陣字符存儲器(CGROM),支持常用的ASCII,Janpnese,及數(shù)字字符顯示;
? ? 支持文本顯示、圖形顯示、圖文混合顯示模式,圖形模式下支持3層復(fù)合顯示;
? ? *文本模式下,內(nèi)部顯存區(qū)域的每個字節(jié)數(shù)據(jù)都會被當(dāng)做字符代碼(如8x8點陣字符,對應(yīng)顯存一個8x8點陣區(qū)域),并用該字代碼確定字符庫中的字符地址;
? ? *圖形模式下,內(nèi)部顯存區(qū)域的每個字節(jié)當(dāng)做圖形顯示像素點數(shù)據(jù),對應(yīng)1顯示,0不顯示,一個字節(jié)對應(yīng)顯示屏上的一個8個水平像素點;
? ? 控制器內(nèi)部可管理64K顯存區(qū)域(DDRAM),支持?jǐn)U展CGRAM(64個8x16點陣字符)或者擴展CGROM字庫(最多256個8x16點陣字符);
? ? 可程序控制光標(biāo)開關(guān)及移動,水平垂直方向滾動顯示;?
? ? 支持1/2-1/256Duty;
? ? 采用8位并口直接與MCU通訊(6800/8080);
? ? 低功耗,正常3.5mA工作電流,省電模式0.05uA;
? ? 工作電壓2.7-5.5V;
? ? 封裝形式:QFP60
二、UCI8835典型應(yīng)用方式
? ? 2.1 160x160點陣:UCI8835+4xKS0086,1/160duty,VLCD>=18.0V;
? ? 2.2 240x160點陣:UCI8835+5xKS0086,1/160duty,VLCD>=18.0V;
? ? 2.3 320x240點陣:UCI8835+7xKS0086,1/240duty,VLCD>=22.0V;
? ? UCI8835是純控制器,它自身不帶驅(qū)動輸出,因此必須配合LCD驅(qū)動IC使用。KS0086是80路驅(qū)動輸出IC,可通過硬件設(shè)置為行驅(qū)動器或者列驅(qū)動器,是UCI8835最常用的搭配選擇。應(yīng)用最多的是240x160和320x240點陣,這2種產(chǎn)品早先大量應(yīng)用各類儀器儀表,到現(xiàn)在市面仍有不少需求。
三、UCI8835指令表
? ? UCI8835共有13條指令,通過對這些指令的設(shè)置,可實現(xiàn)顯示屏文本、圖形及圖文混合顯示,這里對13條指令做說明供大家參考。
? ? 3.1系統(tǒng)設(shè)置(40H必設(shè))帶8個參數(shù),功能如下:
? ? 參數(shù)1(P1):M0=0,內(nèi)部CGROM;M0=1,外部CGROM;M1=0,內(nèi)部CGRAM1(80H-9FH,32個);
? ? ? ? ? ? ? ? ? ? M1=1,內(nèi)部CGRAM1+CGRAM2(80H-9FH+E0H-FFH,64個);
? ? ? ? ? ? ? ? ? ? M2=0,外部CGROM字體8x8點陣;M2=1,外部CGROM字體8x16點陣;(參考下表)

W/S=0,單屏模式;W/S=1,雙屏模式(采用雙屏模式會降低對比度);
? ? ? ? ? ? ? ? ? ? IV設(shè)置反向顯示邊界,通常IV=1,無邊界(這個主要是考慮文本模式下負(fù)顯時,最上邊一行會影響顯示效果)。
? ? 參數(shù)2(FX WF):設(shè)置字符水平寬度=FX+1,從1-8(PIXELS);WF設(shè)置行交流驅(qū)動波形,通常設(shè)為1,每完成1幀掃描后COM波形翻轉(zhuǎn)。
? ? 參數(shù)3(FY):設(shè)置字符垂直高度=FY+1,從1-16(PIXELS)。
? ? 參數(shù)4(CR):設(shè)置有效顯示字符數(shù)=(實際顯示點列數(shù)/單個字符寬度)-1,最多可設(shè)置240個字符(0x00-0xEFH);其值可以小于顯? ? ? 示屏的實際寬度,但是余留的列數(shù)不能超過64點列。例如:顯示屏寬度320列,8x8點陣字符顯示,則C/R=(320/8)-1=39,如? ? ? ? 果設(shè)C/R=35,后面4個字符將不會顯示。
? ? 參數(shù)5(TC/R):設(shè)置驅(qū)動頻率的時間常數(shù),一般要等于或大于C/R+4;改參數(shù)設(shè)置不正確,將會引起以下問題:
? ? ? ? ? ? ? *行掃描停止或出現(xiàn)亮線;
? ? ? ? ? ? ? *畫面不穩(wěn)定,閃爍/全亮/全暗;
? ? ? ? ? ? ? *LP信號弱或不存在?
? ? 參數(shù)6(L/F):設(shè)掃描幀參數(shù),單屏模式下L/F=一幀掃描行數(shù)(0x00-0xff,對應(yīng)顯示屏的1-256行);雙屏模式下L/F=2倍的幀掃描? ? ? 行數(shù),須為偶數(shù)值。
? ? 參數(shù)7(APL):設(shè)置顯存地址低8位。
? ? 參數(shù)8(APH):設(shè)置顯存地址高8位,通常AP取值為C/R+1或大于C/R值的整數(shù)。
? ??
??? 3.2數(shù)據(jù)寫入設(shè)置(42H)?
? ? 該指令可設(shè)置MCU連續(xù)向顯存寫入顯示數(shù)據(jù),方向由光標(biāo)控制,地址自動增加,至新指令寫入結(jié)束。
? ??3.3數(shù)據(jù)讀出設(shè)置(43H)
? ? 該指令可設(shè)置MCU連續(xù)從顯存讀出數(shù)據(jù),方向由光標(biāo)控制,地址自動增加,至新指令寫入結(jié)束。
? ??3.4滾動顯示設(shè)置(44H)
? ? 該指令帶有10個參數(shù),可設(shè)置四個顯示區(qū)域的起始地址SAD和各區(qū)控制的顯示行數(shù)SL,將產(chǎn)生畫面平滑移動顯示效果。具體如下:
? ? *SAD1L/SAD1H,分別表示第1顯示區(qū)起始地址的低8位和高8位地址;
? ? *SL1,第1顯示區(qū)控制的顯示屏上的行數(shù),取值范圍00-L/FH;
? ? *SAD2L/SAD2H,分別表示第2顯示區(qū)起始地址的低8位和高8位地址;
? ? *SL2,第2顯示區(qū)控制的顯示屏上的行數(shù),取值范圍00-L/FH;
? ? *SAD3L/SAD3H,分別表示第3顯示區(qū)起始地址的低8位和高8位地址;
? ? *SAD4L/SAD4H,分別表示第4顯示區(qū)起始地址的低8位和高8位地址;
? ? 如果不需要,參數(shù)可以省略但是,參數(shù)順序不能改變。SAD3/SAD4只有在雙屏模式或雙層顯示配置下有效。
? ??3.5光標(biāo)指針設(shè)置(46H)
? ? 該指令表示當(dāng)前光標(biāo)位置和顯存當(dāng)前地址指針,當(dāng)光標(biāo)指向有效顯示區(qū)外時光標(biāo)會消失。帶有2個參數(shù),CRSL/CRSH分別代表光標(biāo)地址低8位和高8位。
? ??3.6讀光標(biāo)(47H)
? ? 該指令將指示MCU讀出光標(biāo)當(dāng)前位置,讀出順序是先低(CSRL)后高(CSRH)。
? ??3.7設(shè)置光標(biāo)移動方向(4C-4FH)
? ? 通過設(shè)置CD0/CD1,可實現(xiàn)光標(biāo)向右、左、上、下方向移動,這是UCI8835特有之處。
? ??3.8設(shè)置光標(biāo)形狀(5DH)
? ? 該指令設(shè)置光標(biāo)是以線型還是塊狀型顯示,帶有2個參數(shù)。
? ? *CRX 表示光標(biāo)水平像素點數(shù),取值0x00-0x0FH(1-16個像素點),光標(biāo)寬度應(yīng)小于等于字符寬度(FX);
? ? *CRY 表示光標(biāo)垂直像素點數(shù),取值0x00-0x0FH(1-16個像素點),CRY大于字符高度(FY)無效。
? ? *CM=0,使用線型光標(biāo);CM=1,使用塊狀光標(biāo)。
? ??3.9待機模式設(shè)置(53H)
? ? 該指令將強制UCI8835進入待機模式,完最后一行掃描后,將SEG輸出清零;關(guān)閉顯示驅(qū)動電源及信號;保存當(dāng)前狀態(tài)及RAM區(qū);進入低功耗模式,只有當(dāng)SYSTEM SET指令P1參數(shù)重新寫入時,才會退出待機狀態(tài)。
???3.10 顯示開/關(guān)設(shè)置(58/59H)
? ? 該指令設(shè)置顯示開關(guān)狀態(tài),光標(biāo)及各顯示區(qū)顯示狀態(tài),帶有1個參數(shù):(見下表)

3.11點位移設(shè)置(5AH)
? ? 該指令設(shè)置以單個像素點為單位的水平位移量(相當(dāng)于一個字節(jié)內(nèi)的水平移動),帶有一個參數(shù),有2個作用,1是與SYSTEM SET的IV結(jié)合使用指定負(fù)向顯示邊界;2是與SCROLL(44H)結(jié)合使用,產(chǎn)生滾動顯示效果:
? ? *當(dāng)D[2:0]取值從0x00H—>0x07H時,首先使點位移參數(shù)從0-7遞增,然后用44H將顯示起始地址SDA+1,同時清零5AH,循環(huán)此過程,畫面呈現(xiàn)左移;
? ? *當(dāng)D[2:0]取值從0x07H—>0x00H時,首先使點位移參數(shù)從7-0遞減,然后用44H將顯示起始地址SDA-1,同時置5AH參數(shù)為0x07,循環(huán)此過程,畫面呈現(xiàn)右移;
??
? ??3.12合成顯示方式設(shè)置(5BH)?
? ? 該指令設(shè)置畫面重疊顯示方式及顯示一、三區(qū)顯示方式:
? ? *OV=0,二重合成顯示,用于文本和圖形、圖形和圖形混合顯示;OV=1,三重合成顯示,僅限于圖形與圖形;
? ? *DM2=0,設(shè)置顯示三區(qū)(SDA3)為文本方式,數(shù)據(jù)均做字符代碼處理;DM2=1,設(shè)顯示三區(qū)為圖形方式,數(shù)據(jù)按圖形數(shù)據(jù)處理;
? ? *DM1=0, 設(shè)置顯示一區(qū)(SDA1)為文本方式,數(shù)據(jù)均做字符代碼處理;DM2=1,設(shè)顯示一區(qū)為圖形方式,數(shù)據(jù)按圖形數(shù)據(jù)處理;
? ? *MAX1? MAX0組合成四種顯示方式,(見下表)

3.13設(shè)置CGRAM首地址(5CH)
? ? 該指令設(shè)置CGRAM首地址(SAG)。從SAG起的2K字節(jié)空間(M2=0)或4K字節(jié)空間(M2=1)為CGRAM區(qū)域,帶有2個參數(shù):
? ? *SAGL 為CGRAM地址低8位;
? ? *SAGH 為CGRAM地址高8位。
? ? 這里SAG地址對應(yīng)的是字符代碼00H的字模首地址,因此對于CGRAM1的首地址為SAG+80Hx8;CGRAM區(qū)域為E0H-FFH,由于控制器內(nèi)部尋址電路上設(shè)置了異或40H電路,故CGRAM2的地址應(yīng)按A0H-BFH計算,即CGRAM2的首地址為SAG+A0Hx8。?
四、T6963數(shù)據(jù)傳送格式
? ? T6963支持8位并口通訊(8080),按照指令表MCU直接發(fā)送指令或顯示數(shù)據(jù)即可。
五、DDRAM與顯示屏對應(yīng)關(guān)系(見下圖)?

六、應(yīng)用實例
? ? 工業(yè)儀器儀表
七、原理圖參考(以320x240應(yīng)用,請直接下載附件)
? ? PROTEL99版本。
八、實例程序(請直接下載附件,此處僅顯示初始化代碼)
? ? *UCI8835先寫指令,后寫參數(shù)(如果有);
? ? *指令參數(shù)不必1次寫完(最好寫完整),但是參數(shù)順序不能改變;
? ? *雙字節(jié)的參數(shù)應(yīng)作如下的處理:
? ? -CSRW、CSRR指令雙字節(jié)的參數(shù)可以依順序逐一修改,計算機可以僅改變或檢查第一個參數(shù)(低字節(jié))的內(nèi)容;
? ? -SYSTEM SET、SCROLL、CGRAM ADR等指令雙字節(jié)參數(shù)必須依順序完整地寫入,該參數(shù)僅在第二字節(jié)寫入后才有效。
九、顯示效果(圖片與例程有所不同)

注:原理圖和例程可在e小白官網(wǎng)《液晶顯示(八)----圖形點陣控制IC-UCI8835應(yīng)用》文章中下載。