基于單片機(jī)的OLED顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
摘要:為了提高圖形信息的顯示速度,并得到更多的顯示效果,文章基于FG_V1.2單片機(jī)開發(fā)板,依據(jù)OLED12864顯示屏的操作時(shí)序要求,用51單片機(jī)實(shí)現(xiàn)了基于0.96英寸OLED屏的顯示系統(tǒng)設(shè)計(jì)。經(jīng)實(shí)際測(cè)試表明,其具有比12864LCD模塊更快的刷新速度和更好的顯示效果。
本文引用地址:http://butianyuan.cn/article/201610/307173.htmOLED(Organic Light Emitting Display)顯示技術(shù)是比液晶顯示技術(shù)更為先進(jìn)的新一代平板顯示技術(shù),其被業(yè)界公認(rèn)為是繼LCD、PDP之后最理想和最具發(fā)展前景的第三代顯示技術(shù)。相比于液晶顯示技術(shù),其具有超輕薄、高亮度、廣視角、自發(fā)光、響應(yīng)快、抗震強(qiáng)、功耗低、適應(yīng)溫度范圍寬,可實(shí)現(xiàn)柔性顯示等優(yōu)越性能,有“夢(mèng)幻顯示器”的美譽(yù),可廣泛應(yīng)用于通信、計(jì)算機(jī)、消費(fèi)電子、工業(yè)應(yīng)用、商業(yè)、交通等領(lǐng)域。在顯示輸出方面,目前主要采用3種方式,即:圖形、數(shù)字或?qū)S梅?hào),在嵌入式領(lǐng)域,顯示常采用LED、數(shù)碼管及液晶顯示器。前兩種實(shí)現(xiàn)簡(jiǎn)單,但顯示內(nèi)容不夠豐富。LCD顯示器雖能顯示較為豐富的內(nèi)容,但其響應(yīng)慢(出現(xiàn)殘像),且亮度相對(duì)較低。OLED則響應(yīng)較快,其響應(yīng)速度可達(dá)液晶的1000倍以上,且OLED無需背光,亮度高,在功耗、視角等方面也均優(yōu)于LCD顯示器,鑒于此,OLED顯示屏越來越廣泛地應(yīng)用在日常生活當(dāng)中。
該文以宏晶公司的STC89C52單片機(jī)為控制核心,信意電子科技提供的0.96寸OLED模塊為顯示輸出設(shè)備,在Keil環(huán)境下編寫OLED顯示模塊驅(qū)動(dòng)程序,并下載Hex文件至單片機(jī),從而實(shí)現(xiàn)OLED顯示系統(tǒng)設(shè)計(jì)。
1 實(shí)現(xiàn)原理
文中所采用的OLD模塊具有和12864LCD相同的分辨率,但其在單位面積上具有更多的像素點(diǎn)。該模塊的驅(qū)動(dòng)芯片是SSD1306Z,它是一款專門用于驅(qū)動(dòng)OLED點(diǎn)陣屏的COMS芯片,其包含128個(gè)段和64個(gè)公共端。為了能夠通過外部控制器向其寫入用于顯示的數(shù)字信息,其對(duì)外提供了8個(gè)數(shù)據(jù)引腳和5個(gè)控制腳,并向用戶提供了4種總線接口。文中所采用的OLED模塊可實(shí)現(xiàn)SPI和IIC兩種總線接口模式,默認(rèn)為SPI模式。在SPI模式下,僅有數(shù)據(jù)引腳的低2位和控制引腳的CS#,D/C#和RES#與單片機(jī)進(jìn)行接口。為了能讓OLED具有豐富的顯示效果和靈活簡(jiǎn)便的操作方式,SSD1306Z向用戶提供了豐富的操作指令集,另外還向用戶提供了128x64位的GDDRAM(Graphic Display Data RAM)。由于所采用的OLED不帶字庫(kù),因此無論是顯示圖形還是顯示漢字,均需通過取模軟件進(jìn)行編碼,然后按SPI協(xié)議,將對(duì)應(yīng)的編碼按照所確定的地址模式寫入對(duì)應(yīng)的CDDRAM中。編碼原理如圖1所示。圖1給出了16*8編碼格式的字符‘A’,由于8行為一頁,因此其占據(jù)2頁的高度,而寬度則占據(jù)8列。圖1中的每一個(gè)方格代表一位,若要顯示則置1,反之置0。向GDDRAM當(dāng)中送數(shù)據(jù)時(shí),先通過指令確定操作所需的地址模式及存儲(chǔ)器的地址,然后先寫‘A’的第2頁的編碼,再寫其第3頁的編碼,即可完成編碼的寫入操作。圖1所對(duì)應(yīng)的編碼為0x00,0x00,0xe0,0x 9c,0xf0,0x80,0x00,0x00,0x08,0x0f,0x08,0x00,0x00,0x0b,0xoe,0x08,編碼時(shí)高位在下,低位在上。同理,可得對(duì)任意漢字的編碼。
2 時(shí)序分析
操作時(shí)序?yàn)镮C芯片的可靠工作提供了正確的節(jié)拍,因此操作時(shí)序正確與否將直接影響芯片的工作狀態(tài),文中OLED模塊默認(rèn)工作方式為4線SPI,其操作時(shí)序如圖2所示。圖2上部分為操作一位對(duì)應(yīng)的時(shí)序,下部分為操作一個(gè)字節(jié)所對(duì)應(yīng)的時(shí)序,由圖2可知當(dāng)發(fā)送一個(gè)字節(jié)時(shí),先發(fā)該字節(jié)的最高位,最后發(fā)最低位。
圖2中,CS#為OLED片選信號(hào)線,低電平有效,在芯片有效后,可通過拉低或拉高D/C#來決定是進(jìn)行命令寫入操作還是進(jìn)行數(shù)據(jù)寫入操作,在時(shí)鐘SCLK拉高之前建立D/C#信號(hào),其建立時(shí)間為tAS,SDIN在SCLK低電平有效,并在SCLK上升沿時(shí)進(jìn)行數(shù)據(jù)的讀取,數(shù)據(jù)保持時(shí)間為tDHW,之后可發(fā)生數(shù)據(jù)交換,為下次數(shù)據(jù)讀取作準(zhǔn)備。圖2中具體的時(shí)
序特性如表1所示。
表1給出了正確實(shí)現(xiàn)OLED操作的時(shí)序要求,由表1可知時(shí)間參數(shù)的最小值均小于1μs。文中控制器選用的是STC89C52,采用12 M晶振時(shí)機(jī)器周期為1μs,因此,只需讓STC89C52按上圖時(shí)序順序執(zhí)行程序,則其操作過程便可完全滿足4線SPI操作的時(shí)序要求。
3 軟件實(shí)現(xiàn)
要使OLED正確顯示出所需的信息,除了在其運(yùn)行過程中嚴(yán)格按時(shí)序進(jìn)行操作外,在起動(dòng)時(shí)還要滿足一定的上電順序,之后還要對(duì)其進(jìn)行相應(yīng)的初始化。OLED的上電順序如圖3所示。
圖3中,在VDD得電并穩(wěn)定后,RES#引腳被拉低并維持低電平至少3μs(t1),然后再接其拉高,從而實(shí)現(xiàn)芯片復(fù)位。在芯片完成復(fù)位后,VCC上電。在VCC穩(wěn)定之后,可發(fā)送0XAF命令開顯示,而OLED的段和公共端(SEG/COM)則需再延遲100 ms,方可得電。按此可得對(duì)應(yīng)的軟件實(shí)現(xiàn)為:
OLED按圖3完成正確的上電之后,需對(duì)SSD1306Z進(jìn)行相應(yīng)的初始化方可使其正常運(yùn)行。OLED軟件初始化過程為:
按照?qǐng)D2時(shí)序圖要求,發(fā)送一個(gè)字節(jié)命令的函數(shù)實(shí)現(xiàn)如下:
同理可知,若將D/C#引腳電平拉高,則可得到發(fā)送一個(gè)字節(jié)數(shù)據(jù)的函數(shù)實(shí)現(xiàn)。
4 硬件接口
硬件基于自主開發(fā)的FG_V1.2開發(fā)板,核心控制芯片為宏晶公司LQFP-44封裝的貼片STC89C52單片機(jī),OLED的時(shí)鐘引腳SCLK(D0)與單片機(jī)的P16引腳進(jìn)行接口,數(shù)據(jù)引腳SDA(D1)與單片機(jī)的P17引腳進(jìn)行接口,控制腳RST#與單片機(jī)的P36引腳進(jìn)行接口,D/C#引腳與單片機(jī)的P37引腳進(jìn)行接口,片選信號(hào)CS#已接至地。具體的硬件接口電路如圖4所示。
5 實(shí)現(xiàn)效果
SSD1306Z驅(qū)動(dòng)芯片為OLED提供了豐富的指令集,可以使OLED在實(shí)現(xiàn)數(shù)據(jù)顯示的同時(shí),還能具有多種顯示效果(如反白、漸變、閃爍等)和動(dòng)態(tài)效果(如左移、右移、斜角斜屏、動(dòng)態(tài)區(qū)域設(shè)置等)。具體顯示效果如圖5所示。
圖5為OLED模塊在STC89C52單片機(jī)控制下的幾種顯示效果。(a)為靜態(tài)顯示效果,(b)為反白顯示效果,反白后通過相機(jī)可見屏幕當(dāng)中有動(dòng)態(tài)黑色條紋,這是因?yàn)榉窗罪@示時(shí)出現(xiàn)了串?dāng)_(Crosstalk)現(xiàn)象,而這種現(xiàn)象被相機(jī)捕獲到了,人眼觀察是不存在動(dòng)態(tài)黑色條紋的。(c)為區(qū)域動(dòng)態(tài)效果,屏幕漢字部分設(shè)置為靜態(tài),而網(wǎng)址部分設(shè)置為連續(xù)右移的動(dòng)態(tài)效果。由此可見,OLED相對(duì)比LCD顯示,其具有更豐富的顯示效果。
6 結(jié)論
文中通過STC89C52單片機(jī)對(duì)OLED顯示模塊進(jìn)行了驅(qū)動(dòng),實(shí)驗(yàn)表明,其不僅硬件接口簡(jiǎn)單,而且在軟件實(shí)現(xiàn)上極具靈活性,模塊驅(qū)動(dòng)芯片SSD1306Z包含豐富指令集,不僅簡(jiǎn)化了軟件實(shí)現(xiàn),而且豐富了顯示效果。相比于同分辨率的12864LCD模塊,OLED顯示模塊小巧精致,刷新速度快,顯示效果豐富,成本相對(duì)也較低,是12864LCD模塊的理想替代產(chǎn)品。隨著OLED技術(shù)的發(fā)展,相信顯示技術(shù)必將發(fā)展到一個(gè)新的階段。
評(píng)論