Arduino和C51開發OLED顯示屏


技術:51單片機、Arduino、OLED顯示屏、U8glib
 

概述

OLED顯示屏常常用作為智能產品的顯示設備,本文簡單介紹OLED顯示屏的使用方法。

詳細

一、OLED顯示屏

1545722670770045207.png

OLED顯示屏是利用有機電自發光二極管制成的顯示屏。由於同時具備自發光有機電激發光二極管,不需背光源、對比度高、厚度薄、視角廣、反應速度快、可用於撓曲性面板、使用溫度范圍廣、構造及制程較簡單等優異之特性,被認為是下一代的平面顯示器新興應用技術。

這里我們使用的0.96寸的OLED顯示屏,它的顯示區域是128*64的點陣,每個點都能自己發光。OLED顯示屏可以顯示漢字、字符和圖案等,智能手環和智能手表等智能設備一般都是選擇OLED顯示屏來作為顯示設備。

 


二、51單片機 — OLED顯示屏

硬件連接: 1545722786771018285.png

這里簡單介紹OLED顯示中文:

1. 打開PCtoLCD2002.exe -> 選項,修改一些選項:

1545722838640013907.png

2. 輸入你想要顯示的漢字,點擊->生成字模,復制下面的數組即可:

1545722899586089970.png

 

我這里輸入的是:”顯示屏測試程序”,對應數組為:

{0x00,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,0x00},
{0x40,0x42,0x44,0x58,0x40,0x7F,0x40,0x40,0x40,0x7F,0x40,0x50,0x48,0x46,0x40,0x00},/*"顯",0*/
 
{0x40,0x40,0x42,0x42,0x42,0x42,0x42,0xC2,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00},
{0x20,0x10,0x08,0x06,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x02,0x04,0x08,0x30,0x00},/*"示",1*/
 
{0x00,0x00,0xFE,0x12,0x92,0xB2,0xD2,0x92,0x92,0x92,0xD2,0xB2,0x9E,0x00,0x00,0x00},
{0x40,0x30,0x0F,0x04,0x84,0x64,0x1F,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x00,0x00},/*"屏",2*/
 
{0x10,0x60,0x02,0x8C,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0xFF,0x00,0x00},
{0x04,0x04,0x7E,0x01,0x80,0x47,0x30,0x0F,0x10,0x27,0x00,0x47,0x80,0x7F,0x00,0x00},/*"測",3*/
 
{0x40,0x40,0x42,0xCC,0x00,0x90,0x90,0x90,0x90,0x90,0xFF,0x10,0x11,0x16,0x10,0x00},
{0x00,0x00,0x00,0x3F,0x10,0x28,0x60,0x3F,0x10,0x10,0x01,0x0E,0x30,0x40,0xF0,0x00},/*"試",4*/
 
{0x24,0x24,0xA4,0xFE,0x23,0x22,0x00,0x3E,0x22,0x22,0x22,0x22,0x22,0x3E,0x00,0x00},
{0x08,0x06,0x01,0xFF,0x01,0x06,0x40,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x41,0x00},/*"程",5*/
 
{0x00,0x00,0xFC,0x04,0x04,0x04,0x14,0x15,0x56,0x94,0x54,0x34,0x14,0x04,0x04,0x00},
{0x40,0x30,0x0F,0x00,0x01,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x01,0x05,0x03,0x00},/*"序",6*/

 

想要顯示出來的話,要把這些數組放到oledfont.h文件下:

1545722981259039464.png

main函數代碼:

int main(void)
{ 
    u8 t;
    OLED_Init();   //初始化OLED  
    OLED_Clear();  //清屏
    t=' ';
    while(1) 
    {  
        OLED_ShowCHinese(0,0,0); //0:顯
        OLED_ShowCHinese(18,0,1);//1:示
        OLED_ShowCHinese(36,0,2);//2:屏
        OLED_ShowCHinese(54,0,3);//3:測
        OLED_ShowCHinese(72,0,4);//4:試
        OLED_ShowCHinese(90,0,5);//5:程
        OLED_ShowCHinese(108,0,6);//6:序
        OLED_ShowString(0,2,"1.3' OLED TEST"); //打印字符串
        OLED_ShowString(20,4,"2018/12/25");  
        OLED_ShowString(0,6,"ASCII:");  
        OLED_ShowString(63,6,"CODE:");  
        OLED_ShowChar(48,6,t);//顯示ASCII字符    
        t++;
        if(t>'~')
            t=' ';
        OLED_ShowNum(103,6,t,3,16);//顯示ASCII字符的碼值     
        delay1s();
    }    
}

 

程序顯示效果如下:

圖片6.png

 


三、Arduino — OLED顯示屏

 

硬件連接: 1545723123352010741.png

 

加載庫文件:

打開Arduino IDE -> 項目 -> 加載庫 -> 管理庫中搜索U8glib,然后安裝即可。

1545723175494020196.png

OLED顯示屏顯示代碼:

#include "U8glib.h"
 
U8GLIB_SSD1306_128X64 u8g(10, 9, 12, 11, 13); //創建對象
 
void setup(void) {
 
}
 
void loop(void) {
    for(int i=10;i<80;i++){
     u8g.firstPage();  //表示圖像循環的開始
     do {
         u8g.setFont(u8g_font_fub30);//設置字體和自號
         u8g.setPrintPos(70, 50); //顯示的位置
         u8g.print(i);//顯示變量i的值
         u8g.setFont(u8g_font_fub30);//設置字體和自號
         u8g.setPrintPos(20, 50); //顯示的位置
         u8g.print("i=");//顯示 "i = "
         }while( u8g.nextPage() );//u8g.nextPage() 表示圖像循環的結束
      delay(500);//顯示的時間間隔
    }
}

 

效果圖如下:

1545723248249077390.png


四、總結

本文簡單描述了OLED顯示屏,並教大家如何用C51和Arduino進行開發。OLED顯示屏顯示效果非常的好,所以常常也被用來做一些智能設備的顯示屏,下篇文章我也會教大家如何在OLED顯示屏上顯示時鍾、溫濕度值和光照強度等信息。

 


五、項目結構圖

圖片10.png

 

 

 

注:本文著作權歸作者,由demo大師發表,拒絕轉載,轉載需要作者授權


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM