陳群英
(西安培華學(xué)院,陜西 西安 710065)
有機(jī)發(fā)光顯示器(Organic Light Emitting Display,OLED)是一種新型發(fā)光和顯示器件。OLED實(shí)質(zhì)上是一個(gè)薄膜器件,即在陽(yáng)極和陰極之間夾多層有機(jī)薄膜組成的穩(wěn)定的綠色有機(jī)薄膜電致發(fā)光器件。當(dāng)有電流通過(guò)時(shí),這些有機(jī)材料就會(huì)發(fā)光。OLED使用普通的矩陣交叉屏,OLED位于交叉排列的陽(yáng)極和陰極中間,通過(guò)對(duì)陽(yáng)極和陰極組合的選通,可以控制每一個(gè)OLED的點(diǎn)亮。由于OLED屬于電流型器件,顯示器的亮度可用電流來(lái)控制。國(guó)際上實(shí)力比較強(qiáng)的有我國(guó)香港的Solomon公司和美國(guó)的Clare公司等。OLED可廣泛應(yīng)用于通信、計(jì)算機(jī)、消費(fèi)電子、工業(yè)應(yīng)用、商業(yè)、交通等領(lǐng)域。
系統(tǒng)的組成和工作原理,見(jiàn)圖1。
圖1 硬件設(shè)計(jì)結(jié)構(gòu)框圖
由圖1可知,系統(tǒng)由單片機(jī)、OLED顯示模塊、電源轉(zhuǎn)換器組成。單片機(jī)是整個(gè)系統(tǒng)的控制核心,顯示器件采用的是維信諾公司的VGG12864G-CM21,該款芯片采用Solomon公司的SSD1303為專用的驅(qū)動(dòng)芯片實(shí)現(xiàn)文字和圖形的動(dòng)態(tài)、靜態(tài)顯示。電壓轉(zhuǎn)換模塊采用單輸出直流轉(zhuǎn)直流開關(guān)電源 B1205S-2W和AS1117的組合電路產(chǎn)生3.3 V的邏輯電壓。
2.1.1 核心控制芯片C8051F023
該芯片是完全集成的混合信號(hào)系統(tǒng)級(jí)微控制器芯片,具有32個(gè)數(shù)字I/0引腳。以8051為內(nèi)核,片內(nèi)集成JTAG接口,8通道10位ADC,2個(gè)12位DAC,64KB ISP FLASH存儲(chǔ)器,4352B片內(nèi)RAM,支持SPI、I2C串行總線標(biāo)準(zhǔn),2個(gè)UART接口,5個(gè)通用的16位定時(shí)器,看門狗定時(shí)器、VDD監(jiān)視器等。溫度范圍-45 ℃~+85 ℃,工作電壓2.7 V~3.6 V,封裝形式為64腳TQFP。
2.1.2 OLED顯示芯片VGG12864G-CM21
VGG12864G是128列×64行點(diǎn)陣的OLED單色、字符、圖形顯示模塊,接口電路簡(jiǎn)單,使用方便。該模塊具有以下特點(diǎn):①128×64點(diǎn)陣的單色圖形顯示模塊;②高亮度,高對(duì)比度,寬視角,響應(yīng)速度快,溫度范圍寬,低功耗;③8位并行數(shù)據(jù)接口,讀、寫操作時(shí)序;可以直接與八位微處理器相連;④模塊內(nèi)含 128×64顯示數(shù)據(jù) RAM。RAM 中每位數(shù)據(jù)對(duì)應(yīng)OLED屏上一個(gè)點(diǎn)的亮、暗狀態(tài);⑤集成SOLOMEN SSD1303 OLED驅(qū)動(dòng)器;⑥模塊功耗:90 mw(1/3素點(diǎn)點(diǎn)亮,不帶偏振片,亮度100 cd/m2);⑦模塊邏輯電源電壓: VDD+3 V±10 %;⑧OLED 顯示屏驅(qū)動(dòng)電壓:VCC 7 V~11 V。
圖2為SSD1303結(jié)構(gòu)框圖,主要由MCU接口、命令譯碼器、振蕩器、顯示時(shí)序發(fā)生器、電壓控制與電流控制、區(qū)顏色譯碼器和圖形顯示數(shù)據(jù)存儲(chǔ)器(GDDRAM)、行驅(qū)動(dòng)和列驅(qū)動(dòng)組成,很大程度地減少了外圍器件和功耗。對(duì)用戶來(lái)說(shuō)只需要用專門的接口和驅(qū)動(dòng)電路來(lái)產(chǎn)生電源、驅(qū)動(dòng)指令信號(hào)和顯示數(shù)據(jù)信號(hào),就能點(diǎn)亮OLED屏。
圖2 SSD1303結(jié)構(gòu)框圖
MCU 通過(guò) RES#、CS#、D/C、WR#、RD#和 D0~D7共13個(gè)接口控制SSD1303驅(qū)動(dòng)IC,從而控制OLED顯示屏。CS#為片選信號(hào),當(dāng) CS#接低電平時(shí) MCU才能與驅(qū)動(dòng) IC通信;RES#是復(fù)位使能端,當(dāng)接低電平時(shí),所有控制寄存器均被設(shè)定為出廠時(shí)的默認(rèn)狀態(tài),同時(shí)圖像寄存器清零;D/C為數(shù)據(jù)/命令選擇信號(hào),為高電平時(shí)D0~D7為顯示數(shù)據(jù)信號(hào),那么顯示數(shù)據(jù)由控制電路通過(guò)MCU接口輸入到GDDRAM緩存,然后通過(guò)局域色解碼器對(duì)數(shù)據(jù)進(jìn)行解碼,最后將解碼后的顯示數(shù)據(jù)通過(guò)行列驅(qū)動(dòng)器驅(qū)動(dòng)OLED顯示;為低電平時(shí)D0~D7表示命令信號(hào),該控制命令通過(guò) MCU接口輸入到控制命令解碼器進(jìn)行命令解碼并寫入相應(yīng)的命令寄存器;WR#和RD#分別為寫和讀選擇信號(hào),當(dāng)CS#為低時(shí),在其下降沿讀寫有效。
電壓轉(zhuǎn)換模塊的電路,見(jiàn)圖3。
圖3 電源電路設(shè)計(jì)
圖4 時(shí)序圖
VGG12864G-CM21 模塊已經(jīng)集成驅(qū)動(dòng)升壓電路,用戶只需提供VDD電源即可。整個(gè)系統(tǒng)需要3.3 V的電源,分別提供給MCU(本文采用C8051F023)和OLED需要的邏輯電源電壓。本設(shè)計(jì)中用B1205S-2W芯片和AS1117芯片的組合電路來(lái)產(chǎn)生3.3 V電源,并將輸出的電源信號(hào)通過(guò)電壓和電流控制器控制整個(gè)SSD1303的電壓和電流。
只要按照VGG12864G的時(shí)序波形圖進(jìn)行讀和寫,即可完成OLED的顯示。本設(shè)計(jì)將WR#和RD#分別接C8051F023的P1.4和P1.5。同時(shí)P3端口為數(shù)據(jù)總線,時(shí)序波形圖見(jiàn)圖4所示。只要CS#為低時(shí),在WR#(RD#)的下降沿寫入(讀出)數(shù)據(jù)或命令,即可有效地完成讀寫的工作。
MCU系統(tǒng)控制器的內(nèi)核是CIP-51微控制器。CIP-51與MCS-51TM指令集完全兼容,可以使用標(biāo)準(zhǔn)803X/805X的匯編器和編譯器進(jìn)行軟件開發(fā)。OLED的顯示程序可以用C語(yǔ)言編寫也可以用匯編語(yǔ)言編寫,主要程序流程圖如圖5所示。單片機(jī)初始化包括關(guān)閉看門狗、時(shí)鐘初始化、端口初始化,以及定時(shí)器和中斷的初始化。OLED初始化包括開顯示、設(shè)置顯示模式、設(shè)置對(duì)比度控制器、對(duì)比度設(shè)置(1~256)、設(shè)置行列起始地址、清OLED屏等。OLED 顯示是往GDDRAM 里寫數(shù)據(jù),包括讀狀態(tài)、寫命令、寫數(shù)據(jù)子程序,OLED顯示只要寫入所要顯示的文字或圖片的字符代碼即可。每次寫(命令或數(shù)據(jù))之前都要讀狀態(tài),看最高位 D7是否為“0”,也稱之為“忙”檢測(cè),如果為“1”,表示“忙”;反之為“閑”,在“閑”的狀況下才可以寫操作。
VGG12864G內(nèi)置GDDRAM顯示存儲(chǔ)器,用于存儲(chǔ)顯示數(shù)據(jù),RAM容量為128×64=8192 bits,它被分成8頁(yè)(page0~page7),每頁(yè)8行,每頁(yè)的第一列剛好是一個(gè)字節(jié),低位在上,高位在下;顯示屏上各像素點(diǎn)的顯示狀態(tài)與顯示存儲(chǔ)器的各位二進(jìn)制數(shù)據(jù)一一對(duì)應(yīng),顯示存儲(chǔ)器的數(shù)據(jù)直接作為圖形顯示的驅(qū)動(dòng)信號(hào)。數(shù)據(jù)顯示為“1”,相應(yīng)的像素點(diǎn)顯示;數(shù)據(jù)顯示為“0”,相應(yīng)的像素點(diǎn)不顯示。
所顯示文字或圖片的字符庫(kù),需要自己造,可以選用字模提取軟件Zimo21,該軟件提供兩種取模方式:橫向和縱向。再根據(jù)OLED顯示數(shù)據(jù)的RAM地址結(jié)構(gòu),選縱向的取模方式,由于OLED模組的字節(jié)結(jié)構(gòu)是高位在下低位在上,所以要設(shè)置成字節(jié)倒序,字符的字體、字形、大小和顯示效果(下劃線和刪除線)可根據(jù)需要進(jìn)行調(diào)整,然后采取C51格式(若用匯編語(yǔ)言編程可采取A51格式)取模生成單個(gè)字符的點(diǎn)陣顯示代碼,最后根據(jù)需要在OLED屏上的顯示效果,對(duì)代碼進(jìn)行相應(yīng)調(diào)整即可得到所需字符庫(kù)。
根據(jù)所要顯示的文字或圖片生成所需字符庫(kù),通過(guò)OLED顯示程序?qū)⒆址a寫入并存儲(chǔ)在SSD1303的GDDRAM模塊后,就可以穩(wěn)定地顯示出來(lái)。通過(guò)軟件編程也可實(shí)現(xiàn)圖片的動(dòng)態(tài)顯示。
如漢字“漢”,該文字為宋體 12,字體對(duì)應(yīng)的點(diǎn)陣為:寬×高=16×16(32 B顯示碼)。提取字模為:
圖5 程序流程圖
本文介紹了維信諾 VGG12864G-CM21 液晶顯示器的工作原理,針對(duì)該顯示器,設(shè)計(jì)了一種基于單片機(jī)實(shí)現(xiàn)字符和圖形顯示的應(yīng)用方法,目前已在我們開發(fā)的控制系統(tǒng)中獲得了應(yīng)用。