《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于C8051F023單片機的OLED顯示實現方案
基于C8051F023單片機的OLED顯示實現方案
摘要: 有機電致發光顯示,又稱有機發光二極管(OrganicLightEmittingDiode,OLED)或有機發光顯示器OrganicLightEmittingDisplay(OLED),相較于目前市場上流行的液晶顯示器(LCD)有明顯的優勢。
Abstract:
Key words :

1 引言

有機電致發光顯示,又稱有機發光二極管(Organic Light Emitting Diode, OLED)或有機發光顯示器Organic Light Emitting Display(OLED),相較于目前市場上流行的液晶顯示器(LCD)有明顯的優勢,主要表現為:自主發光(不需要背光源),無視角問題(視角可達170°以上),重量輕,厚度薄,亮度高,發光效率高,響應速度快(是液晶的1000倍),動態畫面質量高,溫度范圍廣(溫度范圍-40℃~80℃),低功耗,抗震能力強,制造成本低,可柔性顯示。尤其適用于要求高亮度的儀表行業,以及條件要求更高的軍工產品。與各方面已經發展成熟的LCD相比,OLED的發展還處于初級階段,但隨著以上這些優勢的逐步實現,OLED將極有可能取代LCD在市場上的地位,OLED是被業界公認為最具發展前景的下一代顯示器。

2 硬件結構設計

本文利用單片機C8051F023作為128×64單色OLED的控制核心器件,采用的是維信諾公司的一款屏VGG12864G,它利用Solomon公司的SSD1303為專用驅動IC。實現文字顯示及圖像的動靜態顯示。硬件整體設計結構框圖如圖1所示。






圖 1 硬件設計結構框圖

2.1 SSD1303 驅動及接口電路

VGG12864G模塊的OLED顯示屏為128列,64行結構。圖2為SSD1303結構框圖,顯示了模塊邏輯電路和接口電路的框圖。用戶只需要給接口提供電源、產生驅動指令信號和顯示數據信號,就能點亮OLED屏。從圖中可以看出,行、列驅動器的輸出通過FPC邦定到OLED屏,剩下的MCU接口、電壓和電流控制器需要是其專門設計的接口和驅動電路,模塊的外部信號僅與SSD1303發生關系。所以了解了SSD1303的輸入特性及指令系統,就能方便地使用本模塊了。

SSD1303是晶門公司推出的驅動單色OLED的IC,采用TAB封裝。這種基于CMOS工藝的驅動IC集成了行、列驅動器、振蕩器、對比度控制器和圖形數據存儲器(GDDRAM),很大程度地減少了外圍器件和功耗??芍С值淖畲蠓直媛蕿?32×64,其中OLED屏底部132×16的點陣區域可以顯示4色的局域色,并可編程實現64級灰度,當用于單色顯示時,可編程控制256級對比度。根據所使用微處理器(MPU)的不同,它提供8位6800系列MPU并行、8位8080系列MPU并行和Serial Peripheral Interface (SPI)串行三種通信接口模式。

控制命令通過MCU接口輸入到控制命令解碼器進行命令解碼,然后輸出時鐘、行同步、場同步信號,從而控制OLED顯示的振蕩頻率、顯示器件的電壓轉換模塊以及OLED顯示內容的行列偏移量的驅動模塊;如果是顯示數據(128×64bits),那么顯示數據由控制電路通過MCU接口輸入到GDDRAM緩存,然后通過局域色解碼器對數據進行解碼,最后將解碼后的顯示數據通過行列驅動器驅動OLED顯示,OLED上呈現了穩定的顯示效果。



圖2 SSD1303結構框圖

2.2 電源的設計

硬件結構設計框圖如圖2所示,外部硬件電路的DC-DC轉換器用TPS7333芯片將5V電源轉換成3.3V電源,并將輸出的電源信號通過電壓和電流控制器控制整個SSD1303的電壓和電流。整個系統需要3.3V和12V的電源,MCU(本文采用C8051F023)需要提供3.3V的電源電壓,OLED需要3.3V的邏輯電源電壓和9~12V的驅動電源電壓,此驅動電源電壓由外部電源轉換器電路提供。

2.3 各種控制信號

再就是關于如何用MCU控制,MCU通過RES#、CS#、D/C、WR#、RD#和D0~D7共13個接口控制SSD1303驅動IC,從而控制OLED顯示屏。CS#為片選信號,當CS#接低電平時MCU才能與驅動IC通信;RES#是復位使能端,當接低電平時,所有控制寄存器均被設定為出廠時的默認狀態,同時圖像寄存器清零;D/C為數據/命令選擇信號;WR#和RD#分別為寫和讀選擇信號,當CS#為低時,在其下降沿讀寫有效。通過改變D/C、WR#和RD#三個接口的高低,單片機對OLED的控制有四種狀態,可由表1顯示出來。

表1 讀寫狀態一覽表
 



D/C


WR#


RD#


狀態


0


0


1


寫命令


0


1


0


讀命令(“忙”檢測)


1


0


1


寫數據


1


1


0


讀數據



2.4 讀寫的時序

只要按照VGG12864G的時序波形圖進行讀和寫,即可完成OLED的顯示。但是,通過軟件編程拼時序的話,要考慮到許多時間參數,有一定的難度。為了使得數據和命令能夠更容易的順利讀寫,我們采用另外一種辦法。如圖1所示,將WR#和RD#分別接C8051F023的/WR和/RD,即P0.7和P0.6。在C語言編程時定義指針類型為xdata型,它是指向片外存儲器的,通過給指針的賦值訪問片外的數據存儲區,當訪問片外存儲器時,/RD和/WR會在讀和寫時自動變低,同時P3端口為數據總線,非復用方式下,地址總線的高8位使用P1口,低8位使用P2口;復用方式下,地址總線高8位仍使用P1口,低8位和數據總線復用P3口,P2口就不會受到影響。所以最好設置成復用方式(EMIOCF.4=0),P2口就可以用來作別的輸出端口,自由地控制RES#、CS#、DC。雖然不需要地址總線,但訪問片外存儲器時地址線會被使用,所以仍要避開。實驗結果的時序波形圖如圖3所示。只要CS#為低時,在WR#(RD#)的下降沿寫入(讀出)數據或命令,即可有效地完成讀寫的工作。






圖3 時序波形圖

3 軟件程序的設計

整個單片機控制OLED的顯示程序用C語言編寫,主要程序流程圖如圖4所示。單片機初始化包括關閉看門狗、時鐘初始化、端口初始化,以及定時器和中斷的初始化。OLED初始化包括開顯示、設置顯示模式、設置對比度控制器、對比度設置(1~256)、設置行列起始地址、設置具體位置顏色、設置串口管腳配置。清OLED屏和OLED顯示都是往GDDRAM里寫數據,包括讀狀態、寫命令、寫數據子程序,清OLED屏就全寫“0”,OLED顯示只要寫入所要顯示的文字或圖片的字符代碼即可。每次寫(命令或數據)之前都要讀狀態,看最高位D7是否為“0”,也稱之為“忙”檢測,如果為“1”,表示“忙”;反之為“閑”,在“閑”的狀況下才可以寫操作。





圖4 程序流程圖

4 文字和圖片的顯示

VGG12864G內置128×64 bits的顯示存儲器,用于存儲顯示數據,圖5為RAM的地址結構。RAM容量為128×64=8192 bits,它被分成8頁(page0-page7),每頁8行,每頁的第一列剛好是一個字節,低位在上,高位在下;顯示屏上各像素點的顯示狀態與顯示存儲器的各位二進制數據一一對應,顯示存儲器的數據直接作為圖形顯示的驅動信號。數據顯示為“1”,相應的像素點顯示;數據顯示為“0”,相應的像素點不顯示。

所顯示文字或圖片的字符庫,需要自己造,但人工的幾乎不可能,可以選用字模提取軟件——“字模提取 V2.2 ”,該軟件提供兩種取模方式:橫向和縱向。再根據OLED顯示數據的RAM地址結構,選縱向的取模方式,由于OLED模組的字節結構是高位在下低位在上,所以要設置成字節倒序,字符的字體、字形、大小和顯示效果(下劃線和刪除線)可根據需要進行調整,然后采取C51格式(若用匯編語言編程可采取A51格式)取模生成單個字符的點陣顯示代碼,最后根據需要在OLED屏上的顯示效果,對代碼進行相應調整即可得到所需字符庫。




圖5 顯示數據RAM的地址結構

根據所要顯示的文字或圖片生成所需字符庫,通過OLED顯示程序將字符代碼寫入并存儲在SSD1303的GDDRAM模塊后,就可以穩定地顯示出來。通過軟件編程也可實現圖片的動態顯示,如圖6為該系統所完成的文字和圖片顯示。



圖6 字符的顯示



圖7 靜態圖片的顯示

5 結論

設計了一種基于單片機實現OLED顯示的方法。針對其功能和特性,解決了相關部分的電路設計,并在所開發的系統上實現了文字、動靜態圖片的顯示。實驗證明:該設計電路簡單,為該系統大大降低了成本,使該系統可以應用在小型設備上。欲了解更多信息請登錄電子發燒友網(http://www.elecfans.com)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲图片欧洲图片av| 久久国产精品99国产| 国产午夜精品一区二区三区欧美| 欧美激情在线免费观看| 美女脱光内衣内裤视频久久网站| 久久久精品国产一区二区三区| 亚洲一区二区三区视频播放| 夜夜爽www精品| 一本色道久久99精品综合| 亚洲精品影视在线观看| 亚洲精品国产精品国自产在线 | 亚洲国产精品www| 影音先锋日韩精品| 一区免费视频| 伊人男人综合视频网| 尤物网精品视频| 在线看日韩av| 亚洲国产高清一区二区三区| 在线日本高清免费不卡| 亚洲精品123区| 亚洲精品欧美极品| 日韩一级黄色av| 一区二区欧美日韩视频| 亚洲永久视频| 午夜精品理论片| 久久er99精品| 亚洲福利视频二区| 亚洲人www| 一本久久a久久精品亚洲| 国产精品99久久久久久www| 在线亚洲电影| 午夜综合激情| 久久人人97超碰精品888| 老司机免费视频一区二区三区| 欧美成人首页| 欧美精品久久一区二区| 欧美性做爰猛烈叫床潮| 国产精品无码永久免费888| 国产欧美一区二区三区沐欲| 国产人成一区二区三区影院| 黑人巨大精品欧美黑白配亚洲 | 日韩一区二区精品视频| 亚洲字幕一区二区| 久久激五月天综合精品| 亚洲人成在线观看| 亚洲午夜伦理| 久久精品成人欧美大片古装| 欧美不卡在线视频| 欧美视频导航| 国产视频一区在线观看| 91久久线看在观草草青青| 一本大道久久a久久综合婷婷| 亚洲影院色无极综合| 亚洲国产欧美另类丝袜| 一区二区成人精品 | 国产欧美日韩视频| 黄色精品网站| 日韩五码在线| 久久成人免费电影| 在线亚洲欧美视频| 久久精品视频在线| 欧美激情一区二区在线 | 欧美有码在线观看视频| 99re成人精品视频| 久久黄色小说| 欧美日韩免费观看一区二区三区| 国产婷婷色综合av蜜臀av| 91久久精品久久国产性色也91 | 亚洲精品小视频在线观看| 香蕉av福利精品导航| 嫩草影视亚洲| 国产精品日韩一区| 亚洲国产精品国自产拍av秋霞| 亚洲一区二区三区影院| 最新亚洲一区| 久久成人av少妇免费| 欧美日韩高清一区| 韩日欧美一区| 亚洲一区免费网站| av成人免费在线观看| 久久婷婷人人澡人人喊人人爽| 欧美日韩三级| 亚洲国产乱码最新视频| 午夜精品久久久久久久蜜桃app | 欧美午夜视频| 亚洲电影在线看| 欧美中文在线观看| 亚洲欧美日韩在线不卡| 欧美激情第10页| 国产尤物精品| 亚洲尤物在线视频观看| 一本久久综合亚洲鲁鲁| 欧美不卡视频一区发布| 国产日韩在线视频| 亚洲一区二区三区四区五区黄| 99re8这里有精品热视频免费| 久久午夜精品| 国产亚洲第一区| 亚洲无线一线二线三线区别av| 亚洲毛片在线免费观看| 久久久国产一区二区三区| 国产精品日韩一区二区| 在线视频日本亚洲性| 日韩视频在线播放| 欧美1区视频| 韩国av一区二区三区四区| 亚洲在线1234| 亚洲综合999| 欧美日韩一区免费| 亚洲开发第一视频在线播放| 亚洲理论电影网| 欧美国产第二页| 在线激情影院一区| 久久精品视频免费| 久久久久国产成人精品亚洲午夜| 国产精品揄拍一区二区| 亚洲综合色丁香婷婷六月图片| 亚洲综合大片69999| 国产精品国产三级国产aⅴ浪潮| 99国产精品99久久久久久粉嫩| 99国产一区| 欧美日韩国产高清| 99视频超级精品| 亚洲香蕉网站| 国产精品久久久久三级| 亚洲午夜激情网页| 午夜视频在线观看一区二区| 国产精品私房写真福利视频| 亚洲一区二区免费在线| 亚洲欧美综合v| 国产精品永久免费观看| 香蕉国产精品偷在线观看不卡| 欧美在线观看视频在线| 国产日韩一区二区| 久久福利毛片| 欧美成人免费在线观看| 亚洲精品美女在线| 在线亚洲+欧美+日本专区| 国产精品成人国产乱一区| 亚洲视频综合| 欧美在线你懂的| 激情欧美日韩一区| 亚洲乱码视频| 国产精品v欧美精品v日韩精品| 亚洲综合日韩在线| 久久一区视频| 亚洲国产视频一区二区| 一区二区三区欧美日韩| 国产精品美女999| 香蕉免费一区二区三区在线观看 | 欧美午夜片欧美片在线观看| 亚洲中字在线| 久久五月激情| 亚洲精品影院| 亚洲欧美成人一区二区三区| 国产手机视频一区二区| 亚洲国产综合91精品麻豆| 欧美日韩亚洲国产精品| 亚洲欧美在线另类| 毛片一区二区三区| 亚洲精品在线免费| 欧美一区2区视频在线观看| 狠狠爱成人网| 亚洲视频第一页| 国产欧美综合一区二区三区| 亚洲国产精品ⅴa在线观看| 欧美精品激情在线观看| 欧美一区二区在线| 国产精品素人视频| 性欧美xxxx大乳国产app| 美女尤物久久精品| 一区二区三区精品视频| 久久久精品视频成人| 亚洲精品综合精品自拍| 欧美在线资源| 亚洲欧洲在线看| 欧美一区二区三区久久精品茉莉花| 永久久久久久| 亚洲欧美国产三级| 永久域名在线精品| 亚洲综合清纯丝袜自拍| 在线精品福利| 午夜视频一区| 亚洲欧洲一区二区在线播放 | 麻豆成人小视频| 亚洲视频在线观看| 牛夜精品久久久久久久99黑人| 一区二区三区三区在线| 久久色在线观看| 亚洲视频导航| 欧美大片在线看免费观看| 亚洲夜间福利| 欧美精品 日韩| 欧美在线视频一区二区| 欧美香蕉大胸在线视频观看| 亚洲国产成人高清精品| 国产精品久久久久av| 9l视频自拍蝌蚪9l视频成人| 国模套图日韩精品一区二区| 亚洲一区视频在线|