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