彩色STN模塊VP2188與51單片機接口設(shè)計
VP2188是精電蓬遠生產(chǎn)的一款彩色STN液晶顯示模塊,此模塊為點陣透射式彩色STN顯示屏,色階為65 k色、白色LED背光,其核心控制器是Philips COG封裝的PCF8837.PCF8837是單片式彩色STN控制驅(qū)動器,存儲容量為176*132*16=45 kB,有3種顏色顯示模式(RGB 565或444或332),驅(qū)動能力為176行,396列(132*RGB)輸出.
PCF8837的特點是有內(nèi)部集成驅(qū)動電源功能模塊及OPT功能模塊,具備內(nèi)部DC-DC升壓、變換及電壓、幀頻率溫度補償電路,可以通過軟件管理驅(qū)動電源的工作 ,并有靈活的串口和并口連接方式、矩陣式存儲器管理以及由此帶來的方便的圖像管理功能、區(qū)域滾動模式,此外有可軟件編程的局部顯示及色階模式,通過PWM16脈寬調(diào)制和相位混頻組合實現(xiàn)FRC4的多極灰度控制、N-線反轉(zhuǎn)和超頻反轉(zhuǎn)以消減串色等等.
1 PCF8837的主要特點
PCF8837驅(qū)動電壓和偏壓生成電路包括電壓乘法器、偏壓生成電路1、偏壓生成電路2、行倍壓電路,它們共生成V1、V2、V3、Vc、MV1、MV2、MV3 7個電壓值,其中偏壓生成電路1通過SETVOP指令對VPR編程生成電壓V2,公式為:
V2=a+b × VOP,(a=3.79,b=0.015,VOP=VT+VPR+(VCON-63)+ MVOP)
式中VT為附加的溫度補償參數(shù),由傳感器輸出和TCVOPAB和TCVOPCD指令設(shè)定;VPR為主要的參考量,由SETVOP指令設(shè)定,范圍14~214 dec;VCON 為對比度參數(shù),由SETCON設(shè)置,范圍為7位2進制數(shù)-63H~63H MMVOP是OTP中的預(yù)設(shè)偏移量.
偏壓生成電路2通過生成電壓V1,Vc,MV1,行倍壓指令SETBS通過對VB模塊編程在VBIASGEN模塊生成電壓V3、MV3,MV2由電源電壓Vss供給,和Vss電壓相同.
此外,PCF8837還可以分段設(shè)置溫度補償以及設(shè)置最佳對比度,消除來自周圍的光線干擾,這些功能是在通過一次可編程(OTP,One-Time-Programmable)校準功能設(shè)置的.
PCF8837顯示存儲器為矩陣式尋址結(jié)構(gòu),它的1個單元為16位,代表1個顯示像素的3色數(shù)據(jù)RGB.矩陣式存儲器管理為局部圖像顯示和圖像旋轉(zhuǎn)顯示提供了簡便的方法.
PCF8837的尋址由行列地址指針X、Y共同決定,每組指針都配有兩組可編程的地址寄存器:起始點地址寄存器XS和YS,結(jié)束點地址寄存器指針XE和YE.通過指令PTLAR可以設(shè)置有效顯示區(qū)域的起始地址和結(jié)束地址,通過指令PTLON可以打開局部顯示模式.指令PTLMCTL控制局部模式的N線反轉(zhuǎn)功能和行選脈沖,提供局部顯示的效果.通過指令MADCTL設(shè)置MY、MX、V、LAO、RGB來實現(xiàn)圖像的旋轉(zhuǎn)功能.MY、MX、V,LAO、RGB的取值和圖像顯示的關(guān)系如表1所示.
表1 圖像旋轉(zhuǎn)需設(shè)定的參數(shù)
參數(shù)01
MX圖像正常水平鏡像顛倒
MY垂直鏡像顛倒圖像正常
V水平尋址方式寫存儲器垂直尋址方式寫存儲器
RGB顯示數(shù)據(jù)順序為R、G、B顯示數(shù)據(jù)順序為B、G、R
圖1為存儲器實現(xiàn)圖象旋轉(zhuǎn)時的數(shù)據(jù)送顯流程,X為顯示數(shù)據(jù)行,Y為顯示數(shù)據(jù)列.根據(jù)此流程圖,要實現(xiàn)圖像的逆時針旋轉(zhuǎn)90°,只需要設(shè)定好需要顯示的起始行和列以及結(jié)束的行和列,將MX、V和RGB的值取反,然后開局部顯示即可.其他的顯示效果也可以通過設(shè)置MADCTL指令的相應(yīng)位來實現(xiàn).通過指令VSCRDEF設(shè)置滾動模式列的定義以及滾動列的頂部和底部,SEP指令設(shè)置滾動模式起始行和啟動滾動模式.PCF8837還提供休閑模式的開關(guān),當不用顯示時可以打開休閑模式,此時僅保留MSN數(shù)據(jù),且頻率降低,使驅(qū)動器的功率消耗減小.
圖1 程序流程圖[!--empirenews.page--]
2 硬件接口電路
VP2188一共有27根輸出引腳,分別為控制、數(shù)據(jù)信號線DB0-DB15,讀信號RD(低電平有效),寫信號WR(低電平有效),數(shù)據(jù)和控制信號選擇RS(低電平為控制信號、高電平為數(shù)據(jù)信號),片選信號CS(低電平有效),復(fù)位信號RESETB(低電平有效),電源VDD,液晶驅(qū)動電源PS1、PS2,背光燈正極LED 、負極LED-,地線GND.
接口方式為串口3線9位或并口8位/16位,可滿足80系列接口時序.當使用51系列單片機8位接口時可將PCF8837高8位懸空.
與51系列單片機8位并口接口的示意圖如圖2所示:單片機P0與VP2188數(shù)據(jù)低8位相連高8位不用懸空.P2口0~4位分別作讀寫、數(shù)據(jù)程序選擇、片選以及復(fù)位信號.
圖2 硬件連接圖
3 PCF8837的指令系統(tǒng)與軟件編程
PCF8837支持兩套不同的指令系統(tǒng),通過ISS管腳設(shè)置指令0或1來選擇,這里我們只介紹指令系統(tǒng)0,指令1只是和指令1代碼不同,其功能是一樣的,其中數(shù)據(jù)傳送格式位如表2所示.
PCF有3種不同的數(shù)據(jù)格式支持不同的色階:
(1)64*210色(16位)RGB 5-6-5位輸人.數(shù)據(jù)來自于接口的16位直接存儲于RAM 中.
(2)4*210色(12位)RGB 4-4-4位輸入.數(shù)據(jù)來自于接口的12位,按照LUT圖映射成16位后存儲于RAM 中.
(3)256色(8位)RGB 3-3-2位輸入.數(shù)據(jù)來自于接口的8位,按照可編程LUT圖(RGBSET指令)映射成12位,再按照LUT圖映射成16位后存儲于RAM 中.
表2 數(shù)據(jù)傳送格式
數(shù)據(jù)傳送如果采用16位接口模式,那么數(shù)據(jù)格式(1)中一像素16位色階信息僅需一步就可以傳輸?shù)斤@示RAM.數(shù)據(jù)格式(2)中傳送過來的R4、G5、G4、B4舍棄不用,數(shù)據(jù)格式(3)舍棄高8位.8位接口模式中一像素16位色階信息需二步傳輸?shù)綌?shù)據(jù)鎖存器再轉(zhuǎn)送到顯示RAM,如果只傳送一位字節(jié),則所傳送的字節(jié)不送到RAM 中.采用數(shù)據(jù)格式(2)還可以分3步傳送2個像素色階信息.
PCF8837的OTP編程要設(shè)定的參數(shù)有顯示器識別信息、分段溫度補償參數(shù)、驅(qū)動電壓和偏壓生成電路參數(shù)、分段幀頻設(shè)置參數(shù)、N線反轉(zhuǎn)間隔、行列充電時間、RGB相位混合偏移量、振蕩器調(diào)整等等 .初始化程序中需要設(shè)定的量有局部標準顯示模式、內(nèi)部振蕩器、顯示對比度、電壓器偏壓值、接口模式、存儲器控制等 .
當采用8位接口模式與51單片機如上圖連接時,主要的編程如下(由于篇幅有限,這里省略了某些控制指令的設(shè)置,用戶可根據(jù)實際需要添加設(shè)置):
//DEMO源程序
//寫指令函數(shù)
void Write_com2188(unsigned char c1)
{RS=0;
CS2188=0;
LCD+RD=1;
WE=0;
P0=c1;
_nop_();
_nop_();
WE=1:
_nop_();
CS2188=1;
)
//寫8位數(shù)據(jù)函數(shù)
void Write_data2188(unsigned char c1)
{RS=1;
CS2188=0;
LCD_RD=1;
WE=0;
P0=c1;
_nop_();
_nop_();
WE=1;
_nop_();
CS2188=1;
}
//初始化程序
void Init_lcd2188(unsigned char contrast)
{Write_com2188(0x01); //軟件復(fù)位
DelayX10ms(10); //延時0.1s
Write_com2188(0x11); //休眠結(jié)束
Write_com2188(0x03); //倍壓開
Write_com2188(0x29); //顯示開
Write_com2188(0xc0); //選內(nèi)部振蕩器
Write_com2188(0x13); //標準模式開
Write_com2188(0x20); //反轉(zhuǎn)關(guān)
Write_com2188(0x3a); //像素接口
Write_data2188(0x02); //8位
Write_com2188(0xb); //設(shè)置vop
Write_data2188(0x13); //vop數(shù)值
Write_com2188(0x25); //設(shè)置對比度
Write_data2188(contrast);//對比度數(shù)值
Write_com2188(0xc7);//設(shè)置偏壓比
Write_com2188(0x01);//偏壓比數(shù)值
Write_com2188(0x36);//MADCTL
Write_data2188(0x00);//正向
Write_com2188(Oxl1);//休眠結(jié)束
Write_com2188(0x29);//開顯示
)
//旋轉(zhuǎn)功能實現(xiàn)
void Circum_lcd2188()
{Write_com2188(0x30); //設(shè)置局部顯示區(qū)域的RAM 地址
Write_data2188(0xxx); //局部顯示區(qū)域RAM 起始
Write_data2188(0xxx); //局部顯示區(qū)域RAM結(jié)束
Write_com2188(0x36); //設(shè)置MADCTL命令
Write_com2188(0x11); //休眠結(jié)束
Write_com2188(0x29); //開顯示
Write_com2188(0x12); //局部模式開
4 結(jié)束語
本文介紹的精電蓬元彩色STN液晶模塊VP2188,在彩色中小屏幕液晶顯示領(lǐng)域是一款技術(shù)先進、功能強大、使用方便的產(chǎn)品,由于其模組驅(qū)動能力強,顯示效果清晰,同時價格不高,所以在便攜產(chǎn)品、游戲機市場以及工業(yè)領(lǐng)域得到了廣泛的應(yīng)用.本文編寫的程序在Keil uVision3編譯器中順利編譯通過,添加要顯示的圖形和字模代碼后移植到電路板能夠正確顯示所要求的圖形和文本,圖像旋轉(zhuǎn)功能以及局部顯示能夠正確工作.