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